Pārlūkot izejas kodu

ipq806x: create DTSI for TP-Link AD7200 and C2600

Both devices share most of their setup except buttons and LEDs,
so having a common DTSI removes a lot of duplicate code.

In order to have a shared partitioning scheme, device-id and
product-info from AD7200 have been merged into a single
product-info partition like for C2600.

Signed-off-by: Adrian Schmutzler <[email protected]>
Adrian Schmutzler 4 gadi atpakaļ
vecāks
revīzija
8ddaeaf642

+ 315 - 0
target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-ad7200-c2600.dtsi

@@ -0,0 +1,315 @@
+//SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "qcom-ipq8064-v2.0.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+	memory@0 {
+		reg = <0x42000000 0x1e000000>;
+		device_type = "memory";
+	};
+
+	aliases {
+		mdio-gpio0 = &mdio0;
+		label-mac-device = &gmac2;
+	};
+};
+
+&qcom_pinmux {
+	spi_pins: spi_pins {
+		mux {
+			pins = "gpio18", "gpio19", "gpio21";
+			function = "gsbi5";
+			bias-pull-down;
+		};
+
+		data {
+			pins = "gpio18", "gpio19";
+			drive-strength = <10>;
+		};
+
+		cs {
+			pins = "gpio20";
+			function = "gpio";
+			drive-strength = <10>;
+			bias-pull-up;
+		};
+
+		clk {
+			pins = "gpio21";
+			drive-strength = <12>;
+		};
+	};
+
+	usb0_pwr_en_pin: usb0_pwr_en_pin {
+		mux {
+			pins = "gpio25";
+			function = "gpio";
+			drive-strength = <10>;
+			bias-pull-up;
+			output-high;
+		};
+	};
+
+	usb1_pwr_en_pin: usb1_pwr_en_pin {
+		mux {
+			pins = "gpio23";
+			function = "gpio";
+			drive-strength = <10>;
+			bias-pull-up;
+			output-high;
+		};
+	};
+};
+
+&gsbi5 {
+	qcom,mode = <GSBI_PROT_SPI>;
+	status = "okay";
+
+	spi@1a280000 {
+		status = "okay";
+
+		pinctrl-0 = <&spi_pins>;
+		pinctrl-names = "default";
+
+		cs-gpios = <&qcom_pinmux 20 GPIO_ACTIVE_HIGH>;
+
+		flash@0 {
+			compatible = "jedec,spi-nor";
+			#address-cells = <1>;
+			#size-cells = <1>;
+			spi-max-frequency = <50000000>;
+			reg = <0>;
+
+			partition@0 {
+				label = "SBL1";
+				reg = <0x0 0x20000>;
+				read-only;
+			};
+
+			partition@20000 {
+				label = "MIBIB";
+				reg = <0x20000 0x20000>;
+				read-only;
+			};
+
+			partition@40000 {
+				label = "SBL2";
+				reg = <0x40000 0x20000>;
+				read-only;
+			};
+
+			partition@60000 {
+				label = "SBL3";
+				reg = <0x60000 0x30000>;
+				read-only;
+			};
+
+			partition@90000 {
+				label = "DDRCONFIG";
+				reg = <0x90000 0x10000>;
+				read-only;
+			};
+
+			partition@a0000 {
+				label = "SSD";
+				reg = <0xa0000 0x10000>;
+				read-only;
+			};
+
+			partition@b0000 {
+				label = "TZ";
+				reg = <0xb0000 0x30000>;
+				read-only;
+			};
+
+			partition@e0000 {
+				label = "RPM";
+				reg = <0xe0000 0x20000>;
+				read-only;
+			};
+
+			partition@100000 {
+				label = "fs-uboot";
+				reg = <0x100000 0x70000>;
+				read-only;
+			};
+
+			partition@170000 {
+				label = "uboot-env";
+				reg = <0x170000 0x40000>;
+				read-only;
+			};
+
+			partition@1b0000 {
+				label = "radio";
+				reg = <0x1b0000 0x40000>;
+				read-only;
+			};
+
+			partition@1f0000 {
+				label = "os-image";
+				reg = <0x1f0000 0x400000>;
+			};
+
+			partition@5f0000 {
+				label = "rootfs";
+				reg = <0x5f0000 0x1900000>;
+			};
+
+			defaultmac: partition@1ef0000 {
+				label = "default-mac";
+				reg = <0x1ef0000 0x00200>;
+				read-only;
+			};
+
+			partition@1ef0200 {
+				label = "pin";
+				reg = <0x1ef0200 0x00200>;
+				read-only;
+			};
+
+			partition@1ef0400 {
+				label = "product-info";
+				reg = <0x1ef0400 0x0fc00>;
+				read-only;
+			};
+
+			partition@1f00000 {
+				label = "partition-table";
+				reg = <0x1f00000 0x10000>;
+				read-only;
+			};
+
+			partition@1f10000 {
+				label = "soft-version";
+				reg = <0x1f10000 0x10000>;
+				read-only;
+			};
+
+			partition@1f20000 {
+				label = "support-list";
+				reg = <0x1f20000 0x10000>;
+				read-only;
+			};
+
+			partition@1f30000 {
+				label = "profile";
+				reg = <0x1f30000 0x10000>;
+				read-only;
+			};
+
+			partition@1f40000 {
+				label = "default-config";
+				reg = <0x1f40000 0x10000>;
+				read-only;
+			};
+
+			partition@1f50000 {
+				label = "user-config";
+				reg = <0x1f50000 0x40000>;
+				read-only;
+			};
+
+			partition@1f90000 {
+				label = "qos-db";
+				reg = <0x1f90000 0x40000>;
+				read-only;
+			};
+
+			partition@1fd0000 {
+				label = "usb-config";
+				reg = <0x1fd0000 0x10000>;
+				read-only;
+			};
+
+			partition@1fe0000 {
+				label = "log";
+				reg = <0x1fe0000 0x20000>;
+				read-only;
+			};
+		};
+	};
+};
+
+&usb3_0 {
+	status = "okay";
+
+	pinctrl-0 = <&usb0_pwr_en_pin>;
+	pinctrl-names = "default";
+};
+
+&usb3_1 {
+	status = "okay";
+
+	pinctrl-0 = <&usb1_pwr_en_pin>;
+	pinctrl-names = "default";
+};
+
+&pcie0 {
+	status = "okay";
+};
+
+&pcie1 {
+	status = "okay";
+	max-link-speed = <1>;
+};
+
+&mdio0 {
+	status = "okay";
+
+	pinctrl-0 = <&mdio0_pins>;
+	pinctrl-names = "default";
+
+	phy0: ethernet-phy@0 {
+		reg = <0>;
+		qca,ar8327-initvals = <
+			0x00004 0x7600000   /* PAD0_MODE */
+			0x00008 0x1000000   /* PAD5_MODE */
+			0x0000c 0x80        /* PAD6_MODE */
+			0x000e4 0x6a545     /* MAC_POWER_SEL */
+			0x000e0 0xc74164de  /* SGMII_CTRL */
+			0x0007c 0x4e        /* PORT0_STATUS */
+			0x00094 0x4e        /* PORT6_STATUS */
+			>;
+	};
+
+	phy4: ethernet-phy@4 {
+		reg = <4>;
+	};
+};
+
+&gmac1 {
+	status = "okay";
+	phy-mode = "rgmii";
+	qcom,id = <1>;
+
+	pinctrl-0 = <&rgmii2_pins>;
+	pinctrl-names = "default";
+
+	mtd-mac-address = <&defaultmac 0x8>;
+	mtd-mac-address-increment = <1>;
+
+	fixed-link {
+		speed = <1000>;
+		full-duplex;
+	};
+};
+
+&gmac2 {
+	status = "okay";
+	phy-mode = "sgmii";
+	qcom,id = <2>;
+
+	mtd-mac-address = <&defaultmac 0x8>;
+
+	fixed-link {
+		speed = <1000>;
+		full-duplex;
+	};
+};
+
+&adm_dma {
+	status = "okay";
+};

+ 1 - 312
target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-ad7200.dts

@@ -1,25 +1,16 @@
 //SPDX-License-Identifier: GPL-2.0-or-later OR MIT
-#include "qcom-ipq8064-v2.0.dtsi"
 
-#include <dt-bindings/input/input.h>
+#include "qcom-ipq8064-ad7200-c2600.dtsi"
 
 / {
 	model = "TP-Link Talon AD7200";
 	compatible = "tplink,ad7200", "qcom,ipq8064";
 
-	memory@0 {
-		reg = <0x42000000 0x1e000000>;
-		device_type = "memory";
-	};
-
 	aliases {
-		mdio-gpio0 = &mdio0;
-
 		led-boot = &led_status;
 		led-failsafe = &led_status;
 		led-running = &led_status;
 		led-upgrade = &led_status;
-		label-mac-device = &gmac2;
 	};
 
 	keys {
@@ -128,311 +119,9 @@
 			bias-pull-up;
 		};
 	};
-
-	spi_pins: spi_pins {
-		mux {
-			pins = "gpio18", "gpio19", "gpio21";
-			function = "gsbi5";
-			bias-pull-down;
-		};
-
-		data {
-			pins = "gpio18", "gpio19";
-			drive-strength = <10>;
-		};
-
-		cs {
-			pins = "gpio20";
-			function = "gpio";
-			drive-strength = <10>;
-			bias-pull-up;
-		};
-
-		clk {
-			pins = "gpio21";
-			drive-strength = <12>;
-		};
-	};
-
-	usb0_pwr_en_pin: usb0_pwr_en_pin {
-		mux {
-			pins = "gpio25";
-			function = "gpio";
-			drive-strength = <10>;
-			bias-pull-up;
-			output-high;
-		};
-	};
-
-	usb1_pwr_en_pin: usb1_pwr_en_pin {
-		mux {
-			pins = "gpio23";
-			function = "gpio";
-			drive-strength = <10>;
-			bias-pull-up;
-			output-high;
-		};
-	};
-};
-
-&gsbi5 {
-	qcom,mode = <GSBI_PROT_SPI>;
-	status = "okay";
-
-	spi@1a280000 {
-		status = "okay";
-
-		pinctrl-0 = <&spi_pins>;
-		pinctrl-names = "default";
-
-		cs-gpios = <&qcom_pinmux 20 GPIO_ACTIVE_HIGH>;
-
-		flash@0 {
-			compatible = "jedec,spi-nor";
-			#address-cells = <1>;
-			#size-cells = <1>;
-			spi-max-frequency = <50000000>;
-			reg = <0>;
-
-			partition@0 {
-				label = "SBL1";
-				reg = <0x0 0x20000>;
-				read-only;
-			};
-
-			partition@20000 {
-				label = "MIBIB";
-				reg = <0x20000 0x20000>;
-				read-only;
-			};
-
-			partition@40000 {
-				label = "SBL2";
-				reg = <0x40000 0x20000>;
-				read-only;
-			};
-
-			partition@60000 {
-				label = "SBL3";
-				reg = <0x60000 0x30000>;
-				read-only;
-			};
-
-			partition@90000 {
-				label = "DDRCONFIG";
-				reg = <0x90000 0x10000>;
-				read-only;
-			};
-
-			partition@a0000 {
-				label = "SSD";
-				reg = <0xa0000 0x10000>;
-				read-only;
-			};
-
-			partition@b0000 {
-				label = "TZ";
-				reg = <0xb0000 0x30000>;
-				read-only;
-			};
-
-			partition@e0000 {
-				label = "RPM";
-				reg = <0xe0000 0x20000>;
-				read-only;
-			};
-
-			partition@100000 {
-				label = "fs-uboot";
-				reg = <0x100000 0x70000>;
-				read-only;
-			};
-
-			partition@170000 {
-				label = "uboot-env";
-				reg = <0x170000 0x40000>;
-				read-only;
-			};
-
-			partition@1b0000 {
-				label = "radio";
-				reg = <0x1b0000 0x40000>;
-				read-only;
-			};
-
-			partition@1f0000 {
-				label = "os-image";
-				reg = <0x1f0000 0x400000>;
-			};
-
-			partition@5f0000 {
-				label = "rootfs";
-				reg = <0x5f0000 0x1900000>;
-			};
-
-			defaultmac: partition@1ef0000 {
-				label = "default-mac";
-				reg = <0x1ef0000 0x00200>;
-				read-only;
-			};
-
-			partition@1ef0200 {
-				label = "pin";
-				reg = <0x1ef0200 0x00200>;
-				read-only;
-			};
-
-			partition@1ef0400 {
-				label = "device-id";
-				reg = <0x1ef0400 0x00200>;
-				read-only;
-			};
-
-			partition@1ef0600 {
-				label = "product-info";
-				reg = <0x1ef0600 0x0fa00>;
-				read-only;
-			};
-
-			partition@1f00000 {
-				label = "partition-table";
-				reg = <0x1f00000 0x10000>;
-				read-only;
-			};
-
-			partition@1f10000 {
-				label = "soft-version";
-				reg = <0x1f10000 0x10000>;
-				read-only;
-			};
-
-			partition@1f20000 {
-				label = "support-list";
-				reg = <0x1f20000 0x10000>;
-				read-only;
-			};
-
-			partition@1f30000 {
-				label = "profile";
-				reg = <0x1f30000 0x10000>;
-				read-only;
-			};
-
-			partition@1f40000 {
-				label = "default-config";
-				reg = <0x1f40000 0x10000>;
-				read-only;
-			};
-
-			partition@1f50000 {
-				label = "user-config";
-				reg = <0x1f50000 0x40000>;
-				read-only;
-			};
-
-			partition@1f90000 {
-				label = "qos-db";
-				reg = <0x1f90000 0x40000>;
-				read-only;
-			};
-
-			partition@1fd0000 {
-				label = "usb-config";
-				reg = <0x1fd0000 0x10000>;
-				read-only;
-			};
-
-			partition@1fe0000 {
-				label = "log";
-				reg = <0x1fe0000 0x20000>;
-				read-only;
-			};
-		};
-	};
-};
-
-&usb3_0 {
-	status = "okay";
-
-	pinctrl-0 = <&usb0_pwr_en_pin>;
-	pinctrl-names = "default";
-};
-
-&usb3_1 {
-	status = "okay";
-
-	pinctrl-0 = <&usb1_pwr_en_pin>;
-	pinctrl-names = "default";
-};
-
-&pcie0 {
-	status = "okay";
-};
-
-&pcie1 {
-	status = "okay";
-	max-link-speed = <1>;
 };
 
 &pcie2 {
 	status = "okay";
 	max-link-speed = <1>;
 };
-
-&mdio0 {
-	status = "okay";
-
-	pinctrl-0 = <&mdio0_pins>;
-	pinctrl-names = "default";
-
-	phy0: ethernet-phy@0 {
-		reg = <0>;
-		qca,ar8327-initvals = <
-			0x00004 0x7600000   /* PAD0_MODE */
-			0x00008 0x1000000   /* PAD5_MODE */
-			0x0000c 0x80        /* PAD6_MODE */
-			0x000e4 0x6a545     /* MAC_POWER_SEL */
-			0x000e0 0xc74164de  /* SGMII_CTRL */
-			0x0007c 0x4e        /* PORT0_STATUS */
-			0x00094 0x4e        /* PORT6_STATUS */
-			>;
-	};
-
-	phy4: ethernet-phy@4 {
-		reg = <4>;
-	};
-};
-
-&gmac1 {
-	status = "okay";
-	phy-mode = "rgmii";
-	qcom,id = <1>;
-
-	pinctrl-0 = <&rgmii2_pins>;
-	pinctrl-names = "default";
-
-	mtd-mac-address = <&defaultmac 0x8>;
-	mtd-mac-address-increment = <1>;
-
-	fixed-link {
-		speed = <1000>;
-		full-duplex;
-	};
-};
-
-&gmac2 {
-	status = "okay";
-	phy-mode = "sgmii";
-	qcom,id = <2>;
-
-	mtd-mac-address = <&defaultmac 0x8>;
-
-	fixed-link {
-		speed = <1000>;
-		full-duplex;
-	};
-};
-
-&adm_dma {
-	status = "okay";
-};

+ 1 - 307
target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-c2600.dts

@@ -1,24 +1,14 @@
-#include "qcom-ipq8064-v2.0.dtsi"
-
-#include <dt-bindings/input/input.h>
+#include "qcom-ipq8064-ad7200-c2600.dtsi"
 
 / {
 	model = "TP-Link Archer C2600";
 	compatible = "tplink,c2600", "qcom,ipq8064";
 
-	memory@0 {
-		reg = <0x42000000 0x1e000000>;
-		device_type = "memory";
-	};
-
 	aliases {
-		mdio-gpio0 = &mdio0;
-
 		led-boot = &power;
 		led-failsafe = &general;
 		led-running = &power;
 		led-upgrade = &general;
-		label-mac-device = &gmac2;
 	};
 
 	keys {
@@ -118,300 +108,4 @@
 			bias-pull-up;
 		};
 	};
-
-	spi_pins: spi_pins {
-		mux {
-			pins = "gpio18", "gpio19", "gpio21";
-			function = "gsbi5";
-			bias-pull-down;
-		};
-
-		data {
-			pins = "gpio18", "gpio19";
-			drive-strength = <10>;
-		};
-
-		cs {
-			pins = "gpio20";
-			function = "gpio";
-			drive-strength = <10>;
-			bias-pull-up;
-		};
-
-		clk {
-			pins = "gpio21";
-			drive-strength = <12>;
-		};
-	};
-
-	usb0_pwr_en_pin: usb0_pwr_en_pin {
-		mux {
-			pins = "gpio25";
-			function = "gpio";
-			drive-strength = <10>;
-			bias-pull-up;
-			output-high;
-		};
-	};
-
-	usb1_pwr_en_pin: usb1_pwr_en_pin {
-		mux {
-			pins = "gpio23";
-			function = "gpio";
-			drive-strength = <10>;
-			bias-pull-up;
-			output-high;
-		};
-	};
-};
-
-&gsbi5 {
-	qcom,mode = <GSBI_PROT_SPI>;
-	status = "okay";
-
-	spi5: spi@1a280000 {
-		status = "okay";
-
-		pinctrl-0 = <&spi_pins>;
-		pinctrl-names = "default";
-
-		cs-gpios = <&qcom_pinmux 20 GPIO_ACTIVE_HIGH>;
-
-		m25p80@0 {
-			compatible = "jedec,spi-nor";
-			#address-cells = <1>;
-			#size-cells = <1>;
-			spi-max-frequency = <50000000>;
-			reg = <0>;
-
-			SBL1@0 {
-				label = "SBL1";
-				reg = <0x0 0x20000>;
-				read-only;
-			};
-
-			MIBIB@20000 {
-				label = "MIBIB";
-				reg = <0x20000 0x20000>;
-				read-only;
-			};
-
-			SBL2@40000 {
-				label = "SBL2";
-				reg = <0x40000 0x20000>;
-				read-only;
-			};
-
-			SBL3@60000 {
-				label = "SBL3";
-				reg = <0x60000 0x30000>;
-				read-only;
-			};
-
-			DDRCONFIG@90000 {
-				label = "DDRCONFIG";
-				reg = <0x90000 0x10000>;
-				read-only;
-			};
-
-			SSD@a0000 {
-				label = "SSD";
-				reg = <0xa0000 0x10000>;
-				read-only;
-			};
-
-			TZ@b0000 {
-				label = "TZ";
-				reg = <0xb0000 0x30000>;
-				read-only;
-			};
-
-			RPM@e0000 {
-				label = "RPM";
-				reg = <0xe0000 0x20000>;
-				read-only;
-			};
-
-			fs-uboot@100000 {
-				label = "fs-uboot";
-				reg = <0x100000 0x70000>;
-				read-only;
-			};
-
-			uboot-env@170000 {
-				label = "uboot-env";
-				reg = <0x170000 0x40000>;
-				read-only;
-			};
-
-			radio@1b0000 {
-				label = "radio";
-				reg = <0x1b0000 0x40000>;
-				read-only;
-			};
-
-			os-image@1f0000 {
-				label = "os-image";
-				reg = <0x1f0000 0x400000>;
-			};
-
-			rootfs@5f0000 {
-				label = "rootfs";
-				reg = <0x5f0000 0x1900000>;
-			};
-
-			defaultmac: default-mac@1ef0000 {
-				label = "default-mac";
-				reg = <0x1ef0000 0x00200>;
-				read-only;
-			};
-
-			pin@1ef0200 {
-				label = "pin";
-				reg = <0x1ef0200 0x00200>;
-				read-only;
-			};
-
-			product-info@1ef0400 {
-				label = "product-info";
-				reg = <0x1ef0400 0x0fc00>;
-				read-only;
-			};
-
-			partition-table@1f00000 {
-				label = "partition-table";
-				reg = <0x1f00000 0x10000>;
-				read-only;
-			};
-
-			soft-version@1f10000 {
-				label = "soft-version";
-				reg = <0x1f10000 0x10000>;
-				read-only;
-			};
-
-			support-list@1f20000 {
-				label = "support-list";
-				reg = <0x1f20000 0x10000>;
-				read-only;
-			};
-
-			profile@1f30000 {
-				label = "profile";
-				reg = <0x1f30000 0x10000>;
-				read-only;
-			};
-
-			default-config@1f40000 {
-				label = "default-config";
-				reg = <0x1f40000 0x10000>;
-				read-only;
-			};
-
-			user-config@1f50000 {
-				label = "user-config";
-				reg = <0x1f50000 0x40000>;
-				read-only;
-			};
-
-			qos-db@1f90000 {
-				label = "qos-db";
-				reg = <0x1f90000 0x40000>;
-				read-only;
-			};
-
-			usb-config@1fd0000 {
-				label = "usb-config";
-				reg = <0x1fd0000 0x10000>;
-				read-only;
-			};
-
-			log@1fe0000 {
-				label = "log";
-				reg = <0x1fe0000 0x20000>;
-				read-only;
-			};
-		};
-	};
-};
-
-&usb3_0 {
-	status = "okay";
-
-	pinctrl-0 = <&usb0_pwr_en_pin>;
-	pinctrl-names = "default";
-};
-
-&usb3_1 {
-	status = "okay";
-
-	pinctrl-0 = <&usb1_pwr_en_pin>;
-	pinctrl-names = "default";
-};
-
-&pcie0 {
-	status = "okay";
-};
-
-&pcie1 {
-	status = "okay";
-	max-link-speed = <1>;
-};
-
-&mdio0 {
-	status = "okay";
-
-	pinctrl-0 = <&mdio0_pins>;
-	pinctrl-names = "default";
-
-	phy0: ethernet-phy@0 {
-		reg = <0>;
-		qca,ar8327-initvals = <
-			0x00004 0x7600000   /* PAD0_MODE */
-			0x00008 0x1000000   /* PAD5_MODE */
-			0x0000c 0x80        /* PAD6_MODE */
-			0x000e4 0x6a545     /* MAC_POWER_SEL */
-			0x000e0 0xc74164de  /* SGMII_CTRL */
-			0x0007c 0x4e        /* PORT0_STATUS */
-			0x00094 0x4e        /* PORT6_STATUS */
-			>;
-	};
-
-	phy4: ethernet-phy@4 {
-		reg = <4>;
-	};
-};
-
-&gmac1 {
-	status = "okay";
-	phy-mode = "rgmii";
-	qcom,id = <1>;
-
-	pinctrl-0 = <&rgmii2_pins>;
-	pinctrl-names = "default";
-
-	mtd-mac-address = <&defaultmac 0x8>;
-	mtd-mac-address-increment = <1>;
-
-	fixed-link {
-		speed = <1000>;
-		full-duplex;
-	};
-};
-
-&gmac2 {
-	status = "okay";
-	phy-mode = "sgmii";
-	qcom,id = <2>;
-
-	mtd-mac-address = <&defaultmac 0x8>;
-
-	fixed-link {
-		speed = <1000>;
-		full-duplex;
-	};
-};
-
-&adm_dma {
-	status = "okay";
 };