From: John Crispin <john@openwrt.org>
Date: Mon, 7 Apr 2014 15:10:22 +0000 (+0000)
Subject: lantiq: there is a V2 of VG3503J that needs a newer fe phy firmware
X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=858b972e66f4f215fcf9774525a5c71bd80be90f;p=openwrt%2Fstaging%2Fdangole.git

lantiq: there is a V2 of VG3503J that needs a newer fe phy firmware

this should really be auto detected by the kernel, lets used this workaround until the real
solution is ready

Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 40418
---

diff --git a/target/linux/lantiq/dts/VG3503J.dts b/target/linux/lantiq/dts/VG3503J.dts
index 8278a177dd..b4b3cf5aec 100644
--- a/target/linux/lantiq/dts/VG3503J.dts
+++ b/target/linux/lantiq/dts/VG3503J.dts
@@ -1,171 +1,11 @@
 /dts-v1/;
 
-/include/ "vr9.dtsi"
+/include/ "VG3503J.dtsi"
 
 / {
-	model = "VG3503J - BT OpenReach VDSL Modem";
-
-	chosen {
-		bootargs = "console=ttyLTQ0,115200 init=/etc/preinit";
-	};
-
-	memory@0 {
-		reg = <0x0 0x2000000>;
-	};
-
-	fpi@10000000 {
-		localbus@0 {
-			ranges = <0 0 0x0 0x3ffffff>;
-			nor-boot@0 {
-				compatible = "lantiq,nor";
-				bank-width = <2>;
-				reg = <0 0x0 0x2000000>;
-				#address-cells = <1>;
-				#size-cells = <1>;
-
-				partition@0 {
-					label = "uboot";
-					reg = <0x00000 0x20000>;
-				};
-
-				partition@20000 {
-					label = "kernel";
-					reg = <0x20000 0x180000>;
-				};
-
-				partition@1a0000 {
-					label = "rootfs";
-					reg = <0x1a0000 0x5a0000>;
-				};
-
-				partition@740000 {
-					label = "btagent";
-					reg = <0x740000 0x80000>;
-				};
-
-				partition@7c0000 {
-					label = "pri_bfocus_cfg";
-					reg = <0x7c0000 0x10000>;
-				};
-
-				partition@7d0000 {
-					label = "sec_bfocus_cfg";
-					reg = <0x7d0000 0x10000>;
-				};
-
-				partition@7e0000 {
-					label = "sysconfig";
-					reg = <0x7e0000 0x10000>;
-				};
-
-				partition@7f0000 {
-					label = "misc_cfg";
-					reg = <0x7f0000 0x10000>;
-				};
-			};
-		};
-
-		gpio: pinmux@E100B10 {
-			pinctrl-names = "default";
-			pinctrl-0 = <&state_default>;
-
-			state_default: pinmux {
-				mdio {
-					lantiq,groups = "mdio";
-					lantiq,function = "mdio";
-				};
-				gphy-leds {
-					lantiq,groups = "gphy0 led0", "gphy0 led1",
-							"gphy0 led2", "gphy1 led0",
-							"gphy1 led1", "gphy1 led2";
-					lantiq,function = "gphy";
-					lantiq,pull = <2>;
-					lantiq,open-drain = <0>;
-					lantiq,output = <1>;
-				};
-			};
-		};
-
-		eth@E108000 {
-			#address-cells = <1>;
-			#size-cells = <0>;
-			compatible = "lantiq,xrx200-net";
-			reg = <	0xE108000 0x3000 /* switch */
-				0xE10B100 0x70 /* mdio */
-				0xE10B1D8 0x30 /* mii */
-				0xE10B308 0x30 /* pmac */
-			>;
-			interrupt-parent = <&icu0>;
-			interrupts = <73 72>;
-
-			interface@0 {
-				compatible = "lantiq,xrx200-pdi";
-				#address-cells = <1>;
-				#size-cells = <0>;
-				reg = <0>;
-				mac-address = [ 00 11 22 33 44 55 ];
-				ethernet@2 {
-					compatible = "lantiq,xrx200-pdi-port";
-					reg = <2>;
-					phy-mode = "mii";
-					phy-handle = <&phy11>;
-				};
-				ethernet@4 {
-					compatible = "lantiq,xrx200-pdi-port";
-					reg = <4>;
-					phy-mode = "mii";
-					phy-handle = <&phy13>;
-				};
-			};
-
-			mdio@0 {
-				#address-cells = <1>;
-				#size-cells = <0>;
-				compatible = "lantiq,xrx200-mdio";
-				phy11: ethernet-phy@11 {
-					reg = <0x11>;
-					compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
-				};
-				phy13: ethernet-phy@13 {
-					reg = <0x13>;
-					compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
-				};
-			};
-		};
-	};
-
 	gphy-xrx200 {
 		compatible = "lantiq,phy-xrx200";
 		firmware = "lantiq/vr9_phy22f_a1x.bin";
 		phys = [ 00 01 ];
 	};
-
-	gpio-keys-polled {
-		compatible = "gpio-keys-polled";
-		#address-cells = <1>;
-		#size-cells = <0>;
-		poll-interval = <100>;
-		reset {
-			label = "reset";
-			gpios = <&gpio 6 1>;
-			linux,code = <0x198>;
-		};
-	};
-
-	gpio-leds {
-		compatible = "gpio-leds";
-
-		power2 {
-			label = "power2";
-			gpios = <&gpio 14 1>;
-		};
-		dsl {
-			label = "bt:green:dsl";
-			gpios = <&gpio 19 1>;
-		};
-		power {
-			label = "power";
-			gpios = <&gpio 28 1>;
-		};
-	};
 };
diff --git a/target/linux/lantiq/dts/VG3503J.dtsi b/target/linux/lantiq/dts/VG3503J.dtsi
new file mode 100644
index 0000000000..b228a0f9c0
--- /dev/null
+++ b/target/linux/lantiq/dts/VG3503J.dtsi
@@ -0,0 +1,163 @@
+/include/ "vr9.dtsi"
+
+/ {
+	model = "VG3503J - BT OpenReach VDSL Modem";
+
+	chosen {
+		bootargs = "console=ttyLTQ0,115200 init=/etc/preinit";
+	};
+
+	memory@0 {
+		reg = <0x0 0x2000000>;
+	};
+
+	fpi@10000000 {
+		localbus@0 {
+			ranges = <0 0 0x0 0x3ffffff>;
+			nor-boot@0 {
+				compatible = "lantiq,nor";
+				bank-width = <2>;
+				reg = <0 0x0 0x2000000>;
+				#address-cells = <1>;
+				#size-cells = <1>;
+
+				partition@0 {
+					label = "uboot";
+					reg = <0x00000 0x20000>;
+				};
+
+				partition@20000 {
+					label = "kernel";
+					reg = <0x20000 0x180000>;
+				};
+
+				partition@1a0000 {
+					label = "rootfs";
+					reg = <0x1a0000 0x5a0000>;
+				};
+
+				partition@740000 {
+					label = "btagent";
+					reg = <0x740000 0x80000>;
+				};
+
+				partition@7c0000 {
+					label = "pri_bfocus_cfg";
+					reg = <0x7c0000 0x10000>;
+				};
+
+				partition@7d0000 {
+					label = "sec_bfocus_cfg";
+					reg = <0x7d0000 0x10000>;
+				};
+
+				partition@7e0000 {
+					label = "sysconfig";
+					reg = <0x7e0000 0x10000>;
+				};
+
+				partition@7f0000 {
+					label = "misc_cfg";
+					reg = <0x7f0000 0x10000>;
+				};
+			};
+		};
+
+		gpio: pinmux@E100B10 {
+			pinctrl-names = "default";
+			pinctrl-0 = <&state_default>;
+
+			state_default: pinmux {
+				mdio {
+					lantiq,groups = "mdio";
+					lantiq,function = "mdio";
+				};
+				gphy-leds {
+					lantiq,groups = "gphy0 led0", "gphy0 led1",
+							"gphy0 led2", "gphy1 led0",
+							"gphy1 led1", "gphy1 led2";
+					lantiq,function = "gphy";
+					lantiq,pull = <2>;
+					lantiq,open-drain = <0>;
+					lantiq,output = <1>;
+				};
+			};
+		};
+
+		eth@E108000 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			compatible = "lantiq,xrx200-net";
+			reg = <	0xE108000 0x3000 /* switch */
+				0xE10B100 0x70 /* mdio */
+				0xE10B1D8 0x30 /* mii */
+				0xE10B308 0x30 /* pmac */
+			>;
+			interrupt-parent = <&icu0>;
+			interrupts = <73 72>;
+
+			interface@0 {
+				compatible = "lantiq,xrx200-pdi";
+				#address-cells = <1>;
+				#size-cells = <0>;
+				reg = <0>;
+				mac-address = [ 00 11 22 33 44 55 ];
+				ethernet@2 {
+					compatible = "lantiq,xrx200-pdi-port";
+					reg = <2>;
+					phy-mode = "mii";
+					phy-handle = <&phy11>;
+				};
+				ethernet@4 {
+					compatible = "lantiq,xrx200-pdi-port";
+					reg = <4>;
+					phy-mode = "mii";
+					phy-handle = <&phy13>;
+				};
+			};
+
+			mdio@0 {
+				#address-cells = <1>;
+				#size-cells = <0>;
+				compatible = "lantiq,xrx200-mdio";
+				phy11: ethernet-phy@11 {
+					reg = <0x11>;
+					compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
+				};
+				phy13: ethernet-phy@13 {
+					reg = <0x13>;
+					compatible = "lantiq,phy11g", "ethernet-phy-ieee802.3-c22";
+				};
+			};
+		};
+	};
+
+	gpio-keys-polled {
+		compatible = "gpio-keys-polled";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		poll-interval = <100>;
+		reset {
+			label = "reset";
+			gpios = <&gpio 6 1>;
+			linux,code = <0x198>;
+		};
+	};
+
+	gpio-leds {
+		compatible = "gpio-leds";
+
+		power2 {
+			label = "power2";
+			gpios = <&gpio 14 1>;
+		};
+		dsl {
+			label = "bt:green:dsl";
+			gpios = <&gpio 19 1>;
+		};
+		power {
+			label = "power";
+			gpios = <&gpio 28 1>;
+		};
+	};
+};
diff --git a/target/linux/lantiq/dts/VG3503J_V2.dts b/target/linux/lantiq/dts/VG3503J_V2.dts
new file mode 100644
index 0000000000..005d5bc1ad
--- /dev/null
+++ b/target/linux/lantiq/dts/VG3503J_V2.dts
@@ -0,0 +1,11 @@
+/dts-v1/;
+
+/include/ "VG3503J.dtsi"
+
+/ {
+	gphy-xrx200 {
+		compatible = "lantiq,phy-xrx200";
+		firmware = "lantiq/vr9_phy22f_a2x.bin";
+		phys = [ 00 01 ];
+	};
+};
diff --git a/target/linux/lantiq/image/Makefile b/target/linux/lantiq/image/Makefile
index 9b3b98fd15..fd93139d10 100644
--- a/target/linux/lantiq/image/Makefile
+++ b/target/linux/lantiq/image/Makefile
@@ -367,6 +367,9 @@ Image/Build/Profile/FRITZ3370=$(call Image/BuildEVA/$(1),$(1),FRITZ3370)
 Image/BuildKernel/Profile/VG3503J=$(call Image/BuildKernelLoader/Template,VG3503J)
 Image/Build/Profile/VG3503J=$(call Image/BuildLoader/$(1),$(1),VG3503J)
 
+Image/BuildKernel/Profile/VG3503J_V2=$(call Image/BuildKernelLoader/Template,VG3503J_V2)
+Image/Build/Profile/VG3503J_V2=$(call Image/BuildLoader/$(1),$(1),VG3503J_V2)
+
 Image/BuildKernel/Profile/TDW8970=$(call Image/BuildKernelTPLink/Template,TDW8970,TD-W8970v1,$(1))
 Image/Build/Profile/TDW8970=$(call Image/BuildTPLink/$(1),$(1),TDW8970,TD-W8970v1)
 
diff --git a/target/linux/lantiq/xrx200/profiles/arv.mk b/target/linux/lantiq/xrx200/profiles/arv.mk
index ce6f761001..a32ec64ac0 100644
--- a/target/linux/lantiq/xrx200/profiles/arv.mk
+++ b/target/linux/lantiq/xrx200/profiles/arv.mk
@@ -6,6 +6,14 @@ endef
 
 $(eval $(call Profile,VG3503J))
 
+define Profile/VG3503J_V2
+  NAME:=BT Openreach - ECI VDSL Modem v2
+  PACKAGES:=kmod-ltq-vdsl-vr9-mei kmod-ltq-vdsl-vr9 \
+       kmod-ltq-ptm-vr9 ltq-vdsl-app
+endef
+
+$(eval $(call Profile,VG3503J_V2))
+
 define Profile/VGV7519NOR
   NAME:=Experiabox 8 VGV7519
   PACKAGES:=kmod-ath9k wpad-mini \