From e366e14d1b593fae9515d67d27f3f53614df2aab Mon Sep 17 00:00:00 2001 From: blogic Date: Sun, 12 Jan 2014 12:07:07 +0000 Subject: [PATCH] lantiq: improve Arcadyan ARV4510PW support Arcadyan ARV4510PW has already a build profile in OpenWrt, but it is severely lacking. This patch brings it up-to-date. Signed-off-by: Matti Laakso git-svn-id: svn://svn.openwrt.org/openwrt/trunk@39230 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- .../base-files/etc/uci-defaults/02_network | 16 +- target/linux/lantiq/dts/ARV4510PW.dts | 147 ++++++++++++++---- target/linux/lantiq/xway/profiles/arv.mk | 9 +- 3 files changed, 135 insertions(+), 37 deletions(-) diff --git a/target/linux/lantiq/base-files/etc/uci-defaults/02_network b/target/linux/lantiq/base-files/etc/uci-defaults/02_network index 3262f080c3..41785f4ba0 100644 --- a/target/linux/lantiq/base-files/etc/uci-defaults/02_network +++ b/target/linux/lantiq/base-files/etc/uci-defaults/02_network @@ -47,16 +47,24 @@ board=$(lantiq_board_id) case "$board" in # adm6996 +ARV4510PW) + lan_mac=$(mtd_get_mac_ascii uboot_env ethaddr) + wan_mac=$(macaddr_add "$lan_mac" 1) + ucidef_set_interface_lan "eth0.1" + ucidef_add_switch "switch0" "1" "1" + ucidef_add_switch_vlan "switch0" "1" "3 2 1 0 5t" + ;; + ARV4520PW) ucidef_set_interface_lan "eth0.1" - ucidef_add_switch "eth0" "1" "1" - ucidef_add_switch_vlan "eth0" "1" "3 2 1 0 5t" + ucidef_add_switch "switch0" "1" "1" + ucidef_add_switch_vlan "switch0" "1" "3 2 1 0 5t" ;; ACMP252|GIGASX76X) ucidef_set_interface_lan "eth0.1" - ucidef_add_switch "eth0" "1" "1" - ucidef_add_switch_vlan "eth0" "1" "4 3 2 1 5t" + ucidef_add_switch "switch0" "1" "1" + ucidef_add_switch_vlan "switch0" "1" "4 3 2 1 5t" ;; # ar8316 diff --git a/target/linux/lantiq/dts/ARV4510PW.dts b/target/linux/lantiq/dts/ARV4510PW.dts index 9adad34a36..adba211eac 100644 --- a/target/linux/lantiq/dts/ARV4510PW.dts +++ b/target/linux/lantiq/dts/ARV4510PW.dts @@ -3,7 +3,7 @@ /include/ "danube.dtsi" / { - model = "ARV4510QW - Wippies Homebox"; + model = "ARV4510PW - Wippies, Elisa"; chosen { bootargs = "console=ttyLTQ0,115200 init=/etc/preinit"; @@ -32,32 +32,20 @@ partition@0 { label = "uboot"; - reg = <0x00000 0x20000>; + reg = <0x00000 0x40000>; read-only; }; - partition@20000 { + partition@40000 { label = "uboot_env"; - reg = <0x20000 0x20000>; + reg = <0x40000 0x20000>; read-only; }; - partition@240000 { + partition@60000 { label = "firmware"; - reg = <0x40000 0xf00000>; + reg = <0x60000 0xfa0000>; }; - - partition@fe0000 { - label = "boardconfig"; - reg = <0xfe0000 0x10000>; - read-only; - }; - }; - - mac_addr { - compatible = "lantiq,eth-mac"; - reg = <0 0xff0016 0x6>; - mac-increment = <2>; }; }; gpio: pinmux@E100B10 { @@ -65,36 +53,47 @@ pinctrl-0 = <&state_default>; state_default: pinmux { + ebu { + lantiq,groups = "ebu a23"; + lantiq,function = "ebu"; + lantiq,output = <1>; + }; stp { lantiq,groups = "stp"; - lantiq,function = "stp"; + lantiq,function = "stp"; + lantiq,output = <1>; }; exin { - lantiq,groups = "exin2"; + lantiq,groups = "exin1", "exin2"; lantiq,function = "exin"; + lantiq,output = <0>; }; pci_in { lantiq,groups = "req1", "req2"; lantiq,function = "pci"; - lantiq,open-drain = <1>; - lantiq,pull = <2>; lantiq,output = <0>; }; pci_out { - lantiq,groups = "gnt1"; + lantiq,groups = "gnt1", "gnt2"; lantiq,function = "pci"; lantiq,output = <1>; }; pci_rst { lantiq,pins = "io21"; - lantiq,pull = <0>; + lantiq,open-drain; lantiq,output = <1>; }; + buttons { + lantiq,pins = "io3", "io14"; + lantiq,pull = <2>; + lantiq,output = <0>; + }; }; }; gpios: stp@E100BB0 { status = "okay"; + lantiq,groups = <0x7>; }; etop@E180000 { @@ -105,14 +104,104 @@ status = "okay"; lantiq,external-clock; interrupt-map = < - 0x7000 0 0 1 &icu0 30 - 0x7800 0 0 1 &icu0 135 - 0x7800 0 0 2 &icu0 135 - 0x7800 0 0 3 &icu0 135 + 0x6000 0 0 1 &icu0 135 + 0x7800 0 0 1 &icu0 66 + 0x7800 0 0 2 &icu0 66 + 0x7800 0 0 3 &icu0 66 >; gpio-reset = <&gpio 21 0>; - req-mask = <0x3>; + req-mask = <0x7>; }; }; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <100>; + + wps { + label = "wps"; + gpios = <&gpio 14 1>; + linux,code = <0x211>; + }; + reset { + label = "reset"; + gpios = <&gpio 3 1>; + linux,code = <0x198>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + power { + label = "power"; + gpios = <&gpios 21 0>; + }; + power2 { + label = "power2"; + gpios = <&gpios 20 0>; + }; + lan1 { + label = "lan1"; + gpios = <&gpios 19 0>; + }; + lan2 { + label = "lan2"; + gpios = <&gpios 18 0>; + }; + lan3 { + label = "lan3"; + gpios = <&gpios 17 0>; + }; + lan4 { + label = "lan4"; + gpios = <&gpios 16 0>; + }; + wifi { + label = "wifi"; + gpios = <&gpios 15 0>; + }; + adsl { + label = "adsl"; + gpios = <&gpios 14 0>; + }; + internet { + label = "internet"; + gpios = <&gpios 13 0>; + }; + internet2 { + label = "internet2"; + gpios = <&gpios 12 0>; + }; + voip { + label = "voip"; + gpios = <&gpios 11 0>; + }; + phone { + label = "phone"; + gpios = <&gpios 10 0>; + }; + phone2 { + label = "phone2"; + gpios = <&gpios 9 0>; + }; + usb { + label = "usb"; + gpios = <&gpios 8 0>; + }; + usb2 { + label = "usb2"; + gpios = <&gpios 7 0>; + }; + usb3 { + label = "usb3"; + gpios = <&gpios 6 0>; + }; + unlabeled { + label = "unlabeled"; + gpios = <&gpios 5 0>; + }; + }; }; diff --git a/target/linux/lantiq/xway/profiles/arv.mk b/target/linux/lantiq/xway/profiles/arv.mk index 6bd4035452..ea611fddcf 100644 --- a/target/linux/lantiq/xway/profiles/arv.mk +++ b/target/linux/lantiq/xway/profiles/arv.mk @@ -43,12 +43,13 @@ endef $(eval $(call Profile,ARV4518PWR01A)) define Profile/ARV4510PW - NAME:=Wippies Homebox - ARV4510PW - PACKAGES:=kmod-ledtrig-usbdev kmod-usb2 kmod-usb-uhci \ + NAME:=Wippies, Elisa - ARV4510PW + PACKAGES:=kmod-ledtrig-usbdev kmod-usb2-pci kmod-usb-uhci \ kmod-ltq-adsl-danube-mei kmod-ltq-adsl-danube \ - kmod-ltq-adsl-danube-fw-b kmod-ltq-atm-danube \ + kmod-ltq-adsl-danube-fw-a kmod-ltq-atm-danube \ ltq-adsl-app ppp-mod-pppoa \ - kmod-rt61 wpad-mini \ + kmod-ltq-tapi kmod-ltq-vmmc \ + kmod-rt2800-pci kmod-ath5k wpad-mini \ swconfig endef -- 2.30.2