[openwrt/openwrt] ipq806x: use qcom-ipq8064-v1.0.dtsi from upstream

LEDE Commits lede-commits at lists.infradead.org
Wed Aug 5 17:08:10 EDT 2020


adrian pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/7c1c0a00fc7948d119a3e3a0dc7a8e89a5c54acc

commit 7c1c0a00fc7948d119a3e3a0dc7a8e89a5c54acc
Author: Adrian Schmutzler <freifunk at adrianschmutzler.de>
AuthorDate: Tue Jul 14 13:14:50 2020 +0200

    ipq806x: use qcom-ipq8064-v1.0.dtsi from upstream
    
    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 at adrianschmutzler.de>
---
 .../arch/arm/boot/dts/qcom-ipq8064-ap148.dts       | 58 +++-----------
 .../arch/arm/boot/dts/qcom-ipq8064-ap161.dts       | 57 +++-----------
 .../arch/arm/boot/dts/qcom-ipq8064-db149.dts       | 82 ++++++++------------
 .../arch/arm/boot/dts/qcom-ipq8064-r7500.dts       | 31 +++-----
 .../arch/arm/boot/dts/qcom-ipq8064-v1.0.dtsi       | 31 --------
 .../arch/arm/boot/dts/qcom-ipq8064-wpq864.dts      | 34 ++-------
 .../084-ipq8064-v1.0-dtsi-cleanup.patch            | 89 ++++++++++++++++++++++
 .../085-ipq8064-v1.0-dtsi-additions.patch          | 26 +++++++
 8 files changed, 186 insertions(+), 222 deletions(-)

diff --git a/target/linux/ipq806x/files-5.4/arch/arm/boot/dts/qcom-ipq8064-ap148.dts b/target/linux/ipq806x/files-5.4/arch/arm/boot/dts/qcom-ipq8064-ap148.dts
index 6c3410bf35..a23f3da469 100644
--- a/target/linux/ipq806x/files-5.4/arch/arm/boot/dts/qcom-ipq8064-ap148.dts
+++ b/target/linux/ipq806x/files-5.4/arch/arm/boot/dts/qcom-ipq8064-ap148.dts
@@ -28,46 +28,16 @@
 	status = "okay";
 };
 
-&gsbi4 {
-	qcom,mode = <GSBI_PROT_I2C_UART>;
-	status = "okay";
-
-	serial at 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 at 1a280000 {
-		status = "okay";
-		spi-max-frequency = <50000000>;
-
-		pinctrl-0 = <&spi_pins>;
-		pinctrl-names = "default";
-
-		cs-gpios = <&qcom_pinmux 20 0>;
-
-		m25p80 at 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";
 	};
 };
 
@@ -156,11 +126,3 @@
 		full-duplex;
 	};
 };
-
-&sata_phy {
-	status = "okay";
-};
-
-&sata {
-	status = "okay";
-};
diff --git a/target/linux/ipq806x/files-5.4/arch/arm/boot/dts/qcom-ipq8064-ap161.dts b/target/linux/ipq806x/files-5.4/arch/arm/boot/dts/qcom-ipq8064-ap161.dts
index 41a2bf116e..59c06dbccc 100644
--- a/target/linux/ipq806x/files-5.4/arch/arm/boot/dts/qcom-ipq8064-ap161.dts
+++ b/target/linux/ipq806x/files-5.4/arch/arm/boot/dts/qcom-ipq8064-ap161.dts
@@ -36,56 +36,19 @@
 	};
 };
 
-&gsbi4 {
-	qcom,mode = <GSBI_PROT_I2C_UART>;
-	status = "okay";
-	serial at 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 at 1a280000 {
-		status = "okay";
-		spi-max-frequency = <50000000>;
-
-		pinctrl-0 = <&spi_pins>;
-		pinctrl-names = "default";
-
-		cs-gpios = <&qcom_pinmux 20 0>;
-
-		m25p80 at 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";
 };
diff --git a/target/linux/ipq806x/files-5.4/arch/arm/boot/dts/qcom-ipq8064-db149.dts b/target/linux/ipq806x/files-5.4/arch/arm/boot/dts/qcom-ipq8064-db149.dts
index 1f68f826cb..8e8d942fbd 100644
--- a/target/linux/ipq806x/files-5.4/arch/arm/boot/dts/qcom-ipq8064-db149.dts
+++ b/target/linux/ipq806x/files-5.4/arch/arm/boot/dts/qcom-ipq8064-db149.dts
@@ -38,61 +38,41 @@
 	};
 };
 
-&gsbi5 {
-	qcom,mode = <GSBI_PROT_SPI>;
-	status = "okay";
-
-	spi4: spi at 1a280000 {
-		status = "okay";
-		spi-max-frequency = <50000000>;
-
-		pinctrl-0 = <&spi_pins>;
-		pinctrl-names = "default";
-
-		cs-gpios = <&qcom_pinmux 20 0>;
-
-		m25p80 at 0 {
-			compatible = "s25fl256s1";
-			#address-cells = <1>;
-			#size-cells = <1>;
-			spi-max-frequency = <50000000>;
-			reg = <0>;
-			m25p,fast-read;
-
-			partition at 0 {
-				label = "lowlevel_init";
-				reg = <0x0 0x1b0000>;
-			};
-
-			partition at 1 {
-				label = "u-boot";
-				reg = <0x1b0000 0x80000>;
-			};
-
-			partition at 2 {
-				label = "u-boot-env";
-				reg = <0x230000 0x40000>;
-			};
-
-			partition at 3 {
-				label = "caldata";
-				reg = <0x270000 0x40000>;
-			};
-
-			partition at 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 at 0 {
+		label = "lowlevel_init";
+		reg = <0x0 0x1b0000>;
+	};
+
+	partition at 1 {
+		label = "u-boot";
+		reg = <0x1b0000 0x80000>;
+	};
+
+	partition at 2 {
+		label = "u-boot-env";
+		reg = <0x230000 0x40000>;
+	};
+
+	partition at 3 {
+		label = "caldata";
+		reg = <0x270000 0x40000>;
+	};
+
+	partition at 4 {
+		label = "firmware";
+		reg = <0x2b0000 0x1d50000>;
+	};
 };
 
 &usb3_0 {
diff --git a/target/linux/ipq806x/files-5.4/arch/arm/boot/dts/qcom-ipq8064-r7500.dts b/target/linux/ipq806x/files-5.4/arch/arm/boot/dts/qcom-ipq8064-r7500.dts
index 49b34a32c6..c1fb3b5534 100644
--- a/target/linux/ipq806x/files-5.4/arch/arm/boot/dts/qcom-ipq8064-r7500.dts
+++ b/target/linux/ipq806x/files-5.4/arch/arm/boot/dts/qcom-ipq8064-r7500.dts
@@ -133,26 +133,19 @@
 	};
 };
 
-&gsbi4 {
-	qcom,mode = <GSBI_PROT_I2C_UART>;
-	status = "okay";
-	serial at 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 at 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
index 8d93f5c3ed..0000000000
--- a/target/linux/ipq806x/files-5.4/arch/arm/boot/dts/qcom-ipq8064-v1.0.dtsi
+++ /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>;
-};
diff --git a/target/linux/ipq806x/files-5.4/arch/arm/boot/dts/qcom-ipq8064-wpq864.dts b/target/linux/ipq806x/files-5.4/arch/arm/boot/dts/qcom-ipq8064-wpq864.dts
index 6dc1f92751..c4d2187ef6 100644
--- a/target/linux/ipq806x/files-5.4/arch/arm/boot/dts/qcom-ipq8064-wpq864.dts
+++ b/target/linux/ipq806x/files-5.4/arch/arm/boot/dts/qcom-ipq8064-wpq864.dts
@@ -336,39 +336,21 @@
 	};
 };
 
-&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 at 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 at 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
index 0000000000..e5ea8e6393
--- /dev/null
+++ b/target/linux/ipq806x/patches-5.4/084-ipq8064-v1.0-dtsi-cleanup.patch
@@ -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 at 0 {
+-						label = "rootfs";
+-						reg = <0x0 0x1000000>;
+-					};
+-
+-					partition at 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 at 1 {
+-				label = "reset";
+-				linux,code = <KEY_RESTART>;
+-				gpios = <&qcom_pinmux 54 GPIO_ACTIVE_LOW>;
+-				linux,input-type = <1>;
+-				debounce-interval = <60>;
+-			};
+-			button at 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 at 7 {
+-				label = "led_usb1";
+-				gpios = <&qcom_pinmux 7 GPIO_ACTIVE_HIGH>;
+-				linux,default-trigger = "usbdev";
+-				default-state = "off";
+-			};
+-
+-			led at 8 {
+-				label = "led_usb3";
+-				gpios = <&qcom_pinmux 8 GPIO_ACTIVE_HIGH>;
+-				linux,default-trigger = "usbdev";
+-				default-state = "off";
+-			};
+-
+-			led at 9 {
+-				label = "status_led_fail";
+-				gpios = <&qcom_pinmux 9 GPIO_ACTIVE_HIGH>;
+-				default-state = "off";
+-			};
+-
+-			led at 26 {
+-				label = "sata_led";
+-				gpios = <&qcom_pinmux 26 GPIO_ACTIVE_HIGH>;
+-				default-state = "off";
+-			};
+-
+-			led at 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
index 0000000000..9837fb156d
--- /dev/null
+++ b/target/linux/ipq806x/patches-5.4/085-ipq8064-v1.0-dtsi-additions.patch
@@ -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>;
++};



More information about the lede-commits mailing list