From 858b972e66f4f215fcf9774525a5c71bd80be90f Mon Sep 17 00:00:00 2001 From: John Crispin Date: Mon, 7 Apr 2014 15:10:22 +0000 Subject: [PATCH] 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 SVN-Revision: 40418 --- target/linux/lantiq/dts/VG3503J.dts | 162 +------------------- target/linux/lantiq/dts/VG3503J.dtsi | 163 +++++++++++++++++++++ target/linux/lantiq/dts/VG3503J_V2.dts | 11 ++ target/linux/lantiq/image/Makefile | 3 + target/linux/lantiq/xrx200/profiles/arv.mk | 8 + 5 files changed, 186 insertions(+), 161 deletions(-) create mode 100644 target/linux/lantiq/dts/VG3503J.dtsi create mode 100644 target/linux/lantiq/dts/VG3503J_V2.dts 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 \