ipq806x: use qcom-ipq8064-v1.0.dtsi from upstream
authorAdrian Schmutzler <freifunk@adrianschmutzler.de>
Tue, 14 Jul 2020 11:14:50 +0000 (13:14 +0200)
committerAdrian Schmutzler <freifunk@adrianschmutzler.de>
Wed, 5 Aug 2020 21:08:03 +0000 (23:08 +0200)
This uses upstream qcom-ipq8064-v1.0.dtsi and modifies it by patches
instead of keeping a local version. As a consequence:

- we use a part of the shared definitions there and update device
  DTS files accordingly
- we move additional stuff from our local v1.0.dtsi to the patch
- we drop partitions, LEDs and keys from the file as we will
  implement them differently anyway

Like with the previous patch, this follows the idea that a diff
from upstream might be easier to handle than a big file of our
own with different distribution pattern of properties.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
target/linux/ipq806x/files-5.4/arch/arm/boot/dts/qcom-ipq8064-ap148.dts
target/linux/ipq806x/files-5.4/arch/arm/boot/dts/qcom-ipq8064-ap161.dts
target/linux/ipq806x/files-5.4/arch/arm/boot/dts/qcom-ipq8064-db149.dts
target/linux/ipq806x/files-5.4/arch/arm/boot/dts/qcom-ipq8064-r7500.dts
target/linux/ipq806x/files-5.4/arch/arm/boot/dts/qcom-ipq8064-v1.0.dtsi [deleted file]
target/linux/ipq806x/files-5.4/arch/arm/boot/dts/qcom-ipq8064-wpq864.dts
target/linux/ipq806x/patches-5.4/084-ipq8064-v1.0-dtsi-cleanup.patch [new file with mode: 0644]
target/linux/ipq806x/patches-5.4/085-ipq8064-v1.0-dtsi-additions.patch [new file with mode: 0644]

index 6c3410bf355bfb3503ed0caa887308b5a3778204..a23f3da469abcfeaefc2caf77cd7ff6508060f22 100644 (file)
        status = "okay";
 };
 
-&gsbi4 {
-       qcom,mode = <GSBI_PROT_I2C_UART>;
-       status = "okay";
-
-       serial@16340000 {
-               status = "okay";
-       };
-
-       /*
-       * The i2c device on gsbi4 should not be enabled.
-       * On ipq806x designs gsbi4 i2c is meant for exclusive
-       * RPM usage. Turning this on in kernel manifests as
-       * i2c failure for the RPM.
-       */
-};
-
-&gsbi5 {
-       qcom,mode = <GSBI_PROT_SPI>;
-       status = "okay";
-
-       spi4: spi@1a280000 {
-               status = "okay";
-               spi-max-frequency = <50000000>;
-
-               pinctrl-0 = <&spi_pins>;
-               pinctrl-names = "default";
-
-               cs-gpios = <&qcom_pinmux 20 0>;
-
-               m25p80@0 {
-                       compatible = "s25fl256s1";
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       spi-max-frequency = <50000000>;
-                       reg = <0>;
-
-                       partitions {
-                               compatible = "qcom,smem";
-                       };
-               };
+/*
+* The i2c device on gsbi4 should not be enabled.
+* On ipq806x designs gsbi4 i2c is meant for exclusive
+* RPM usage. Turning this on in kernel manifests as
+* i2c failure for the RPM.
+*/
+
+&flash {
+       partitions {
+               compatible = "qcom,smem";
        };
 };
 
                full-duplex;
        };
 };
-
-&sata_phy {
-       status = "okay";
-};
-
-&sata {
-       status = "okay";
-};
index 41a2bf116e6fe28823376b8b03bb631882e7a8b3..59c06dbcccb0ffd23898b96e1d76e983b6f26caa 100644 (file)
        };
 };
 
-&gsbi4 {
-       qcom,mode = <GSBI_PROT_I2C_UART>;
-       status = "okay";
-       serial@16340000 {
-               status = "okay";
-       };
-
-       /*
-       * The i2c device on gsbi4 should not be enabled.
-       * On ipq806x designs gsbi4 i2c is meant for exclusive
-       * RPM usage. Turning this on in kernel manifests as
-       * i2c failure for the RPM.
-       */
-};
-
-&gsbi5 {
-       qcom,mode = <GSBI_PROT_SPI>;
-       status = "okay";
-
-       spi4: spi@1a280000 {
-               status = "okay";
-               spi-max-frequency = <50000000>;
-
-               pinctrl-0 = <&spi_pins>;
-               pinctrl-names = "default";
-
-               cs-gpios = <&qcom_pinmux 20 0>;
-
-               m25p80@0 {
-                       compatible = "s25fl256s1";
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       spi-max-frequency = <50000000>;
-                       reg = <0>;
-
-                       partitions {
-                               compatible = "qcom,smem";
-                       };
-               };
+/*
+* The i2c device on gsbi4 should not be enabled.
+* On ipq806x designs gsbi4 i2c is meant for exclusive
+* RPM usage. Turning this on in kernel manifests as
+* i2c failure for the RPM.
+*/
+
+&flash {
+       partitions {
+               compatible = "qcom,smem";
        };
 };
 
-&sata_phy {
-       status = "okay";
-};
-
-&sata {
-       status = "okay";
-};
-
 &usb3_0 {
        status = "okay";
 };
index 1f68f826cb5b68215f7c788f38975a73f0658c20..8e8d942fbd71b31fb1709932bc7c26f215ac9efb 100644 (file)
        };
 };
 
-&gsbi5 {
-       qcom,mode = <GSBI_PROT_SPI>;
-       status = "okay";
-
-       spi4: spi@1a280000 {
-               status = "okay";
-               spi-max-frequency = <50000000>;
-
-               pinctrl-0 = <&spi_pins>;
-               pinctrl-names = "default";
-
-               cs-gpios = <&qcom_pinmux 20 0>;
-
-               m25p80@0 {
-                       compatible = "s25fl256s1";
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       spi-max-frequency = <50000000>;
-                       reg = <0>;
-                       m25p,fast-read;
-
-                       partition@0 {
-                               label = "lowlevel_init";
-                               reg = <0x0 0x1b0000>;
-                       };
-
-                       partition@1 {
-                               label = "u-boot";
-                               reg = <0x1b0000 0x80000>;
-                       };
-
-                       partition@2 {
-                               label = "u-boot-env";
-                               reg = <0x230000 0x40000>;
-                       };
-
-                       partition@3 {
-                               label = "caldata";
-                               reg = <0x270000 0x40000>;
-                       };
-
-                       partition@4 {
-                               label = "firmware";
-                               reg = <0x2b0000 0x1d50000>;
-                       };
-               };
-       };
+&gsbi4 {
+       status = "disabled";
 };
 
-&sata_phy {
-       status = "okay";
+&gsbi4_serial {
+       status = "disabled";
 };
 
-&sata {
-       status = "okay";
+&flash {
+       m25p,fast-read;
+
+       partition@0 {
+               label = "lowlevel_init";
+               reg = <0x0 0x1b0000>;
+       };
+
+       partition@1 {
+               label = "u-boot";
+               reg = <0x1b0000 0x80000>;
+       };
+
+       partition@2 {
+               label = "u-boot-env";
+               reg = <0x230000 0x40000>;
+       };
+
+       partition@3 {
+               label = "caldata";
+               reg = <0x270000 0x40000>;
+       };
+
+       partition@4 {
+               label = "firmware";
+               reg = <0x2b0000 0x1d50000>;
+       };
 };
 
 &usb3_0 {
index 49b34a32c6287218e1a1134c18c1e8147e1d866a..c1fb3b55345b019573b7c3def01b53c4fc605a58 100644 (file)
        };
 };
 
-&gsbi4 {
-       qcom,mode = <GSBI_PROT_I2C_UART>;
-       status = "okay";
-       serial@16340000 {
-               status = "okay";
+/*
+* The i2c device on gsbi4 should not be enabled.
+* On ipq806x designs gsbi4 i2c is meant for exclusive
+* RPM usage. Turning this on in kernel manifests as
+* i2c failure for the RPM.
+*/
+
+&gsbi5 {
+       status = "disabled";
+
+       spi@1a280000 {
+               status = "disabled";
        };
-       /*
-               * The i2c device on gsbi4 should not be enabled.
-               * On ipq806x designs gsbi4 i2c is meant for exclusive
-               * RPM usage. Turning this on in kernel manifests as
-               * i2c failure for the RPM.
-               */
-};
-
-&sata_phy {
-       status = "okay";
-};
-
-&sata {
-       status = "okay";
 };
 
 &usb3_0 {
diff --git a/target/linux/ipq806x/files-5.4/arch/arm/boot/dts/qcom-ipq8064-v1.0.dtsi b/target/linux/ipq806x/files-5.4/arch/arm/boot/dts/qcom-ipq8064-v1.0.dtsi
deleted file mode 100644 (file)
index 8d93f5c..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-#include "qcom-ipq8064.dtsi"
-
-/ {
-       aliases {
-               serial0 = &gsbi4_serial;
-       };
-
-       chosen {
-               stdout-path = "serial0:115200n8";
-       };
-};
-
-&CPU_SPC {
-       status = "okay";
-};
-
-&pcie0 {
-       phy-tx0-term-offset = <7>;
-};
-
-&pcie1 {
-       phy-tx0-term-offset = <7>;
-};
-
-&pcie2 {
-       phy-tx0-term-offset = <7>;
-};
-
-&sata {
-       ports-implemented = <0x1>;
-};
index 6dc1f92751bdea8e5013c376ee781ac58e325511..c4d2187ef63b09cd6648fe91915a13720f4013a9 100644 (file)
        };
 };
 
-&gsbi4 {
-       status = "okay";
-       qcom,mode = <GSBI_PROT_I2C_UART>;
-};
-
 &gsbi4_serial {
-       status = "okay";
-
        pinctrl-0 = <&uart0_pins>;
        pinctrl-names = "default";
 };
 
-&gsbi5 {
-       status = "okay";
-
-       qcom,mode = <GSBI_PROT_SPI>;
-
-       spi@1a280000 {
-               status = "okay";
-
-               pinctrl-0 = <&spi_pins>;
-               pinctrl-names = "default";
+&flash {
+       compatible = "jedec,spi-nor";
+};
 
-               cs-gpios = <&qcom_pinmux 20 GPIO_ACTIVE_HIGH>;
+&sata_phy {
+       status = "disabled";
+};
 
-               s25fl256s1@0 {
-                       compatible = "jedec,spi-nor";
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       reg = <0>;
-                       spi-max-frequency = <50000000>;
-               };
-       };
+&sata {
+       status = "disabled";
 };
 
 &ss_phy_0 {            /* USB3 port 0 SS phy */
diff --git a/target/linux/ipq806x/patches-5.4/084-ipq8064-v1.0-dtsi-cleanup.patch b/target/linux/ipq806x/patches-5.4/084-ipq8064-v1.0-dtsi-cleanup.patch
new file mode 100644 (file)
index 0000000..e5ea8e6
--- /dev/null
@@ -0,0 +1,89 @@
+This uses upstream qcom-ipq8064-v1.0.dtsi and modifies it by patches
+instead of keeping a local version.
+We drop partitions, LEDs and keys from the file as we will implement
+them differently anyway.
+
+--- a/arch/arm/boot/dts/qcom-ipq8064-v1.0.dtsi
++++ b/arch/arm/boot/dts/qcom-ipq8064-v1.0.dtsi
+@@ -42,16 +42,6 @@
+                                       #size-cells = <1>;
+                                       spi-max-frequency = <50000000>;
+                                       reg = <0>;
+-
+-                                      partition@0 {
+-                                              label = "rootfs";
+-                                              reg = <0x0 0x1000000>;
+-                                      };
+-
+-                                      partition@1 {
+-                                              label = "scratch";
+-                                              reg = <0x1000000 0x1000000>;
+-                                      };
+                               };
+                       };
+               };
+@@ -64,64 +54,5 @@
+                       ports-implemented = <0x1>;
+                       status = "ok";
+               };
+-
+-              gpio_keys {
+-                      compatible = "gpio-keys";
+-                      pinctrl-0 = <&buttons_pins>;
+-                      pinctrl-names = "default";
+-
+-                      button@1 {
+-                              label = "reset";
+-                              linux,code = <KEY_RESTART>;
+-                              gpios = <&qcom_pinmux 54 GPIO_ACTIVE_LOW>;
+-                              linux,input-type = <1>;
+-                              debounce-interval = <60>;
+-                      };
+-                      button@2 {
+-                              label = "wps";
+-                              linux,code = <KEY_WPS_BUTTON>;
+-                              gpios = <&qcom_pinmux 65 GPIO_ACTIVE_LOW>;
+-                              linux,input-type = <1>;
+-                              debounce-interval = <60>;
+-                      };
+-              };
+-
+-              leds {
+-                      compatible = "gpio-leds";
+-                      pinctrl-0 = <&leds_pins>;
+-                      pinctrl-names = "default";
+-
+-                      led@7 {
+-                              label = "led_usb1";
+-                              gpios = <&qcom_pinmux 7 GPIO_ACTIVE_HIGH>;
+-                              linux,default-trigger = "usbdev";
+-                              default-state = "off";
+-                      };
+-
+-                      led@8 {
+-                              label = "led_usb3";
+-                              gpios = <&qcom_pinmux 8 GPIO_ACTIVE_HIGH>;
+-                              linux,default-trigger = "usbdev";
+-                              default-state = "off";
+-                      };
+-
+-                      led@9 {
+-                              label = "status_led_fail";
+-                              gpios = <&qcom_pinmux 9 GPIO_ACTIVE_HIGH>;
+-                              default-state = "off";
+-                      };
+-
+-                      led@26 {
+-                              label = "sata_led";
+-                              gpios = <&qcom_pinmux 26 GPIO_ACTIVE_HIGH>;
+-                              default-state = "off";
+-                      };
+-
+-                      led@53 {
+-                              label = "status_led_pass";
+-                              gpios = <&qcom_pinmux 53 GPIO_ACTIVE_HIGH>;
+-                              default-state = "off";
+-                      };
+-              };
+       };
+ };
diff --git a/target/linux/ipq806x/patches-5.4/085-ipq8064-v1.0-dtsi-additions.patch b/target/linux/ipq806x/patches-5.4/085-ipq8064-v1.0-dtsi-additions.patch
new file mode 100644 (file)
index 0000000..9837fb1
--- /dev/null
@@ -0,0 +1,26 @@
+This uses upstream qcom-ipq8064-v1.0.dtsi and modifies it by patches
+instead of keeping a local version. This patch adds our local adjustments
+for the (local) additional contents of qcom-ipq8064.dtsi
+
+--- a/arch/arm/boot/dts/qcom-ipq8064-v1.0.dtsi
++++ b/arch/arm/boot/dts/qcom-ipq8064-v1.0.dtsi
+@@ -56,3 +56,19 @@
+               };
+       };
+ };
++
++&CPU_SPC {
++      status = "okay";
++};
++
++&pcie0 {
++      phy-tx0-term-offset = <7>;
++};
++
++&pcie1 {
++      phy-tx0-term-offset = <7>;
++};
++
++&pcie2 {
++      phy-tx0-term-offset = <7>;
++};