From e733242a2399fb444997a6c10f45f15d2166c872 Mon Sep 17 00:00:00 2001 From: John Crispin Date: Sun, 30 Mar 2014 09:16:15 +0000 Subject: [PATCH] lantiq: add support for Arcadyan ARV7519PW This patch adds almost full support for this board. - WiFi is still not working - USB will not power up. According to some reports, it may be a passive port Signed-off-by: Antonios Vamporakis SVN-Revision: 40319 --- .../etc/hotplug.d/firmware/10-rt2x00-eeprom | 2 +- .../base-files/etc/uci-defaults/02_network | 9 + target/linux/lantiq/dts/ARV7519PW.dts | 213 ++++++++++++++++++ target/linux/lantiq/image/Makefile | 3 + target/linux/lantiq/xway/profiles/arv.mk | 12 + 5 files changed, 238 insertions(+), 1 deletion(-) create mode 100644 target/linux/lantiq/dts/ARV7519PW.dts diff --git a/target/linux/lantiq/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom b/target/linux/lantiq/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom index 2d5e09d01519..a849584fcf17 100644 --- a/target/linux/lantiq/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom +++ b/target/linux/lantiq/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom @@ -29,7 +29,7 @@ case "$FIRMWARE" in "RT2860.eeprom" ) local board=$(lantiq_board_id) case $board in - ARV7510PW22|ARV7525PW|ARV752DPW|ARV752DPW22) + ARV7510PW22|ARV7519PW|ARV7525PW|ARV752DPW|ARV752DPW22) rt2x00_eeprom_extract "board_config" 1040 512 ;; *) 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 4903eb92d003..329fa2d72e51 100644 --- a/target/linux/lantiq/base-files/etc/uci-defaults/02_network +++ b/target/linux/lantiq/base-files/etc/uci-defaults/02_network @@ -74,6 +74,15 @@ ARV4519PW|ARV7510PW22|ARV7518PW|ARV752DPW22) ucidef_add_switch_vlan "switch0" "1" "0t 2 3 4 5" ;; +# rtl8306g +ARV7519PW) + lan_mac=$(mtd_get_mac_binary board_config 22) + 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" "0 1 2 3 4t" + ;; + WBMR) ucidef_set_interface_lan "eth0.1" ucidef_add_switch "switch0" "1" "1" diff --git a/target/linux/lantiq/dts/ARV7519PW.dts b/target/linux/lantiq/dts/ARV7519PW.dts new file mode 100644 index 000000000000..14781926638b --- /dev/null +++ b/target/linux/lantiq/dts/ARV7519PW.dts @@ -0,0 +1,213 @@ +/dts-v1/; + +/include/ "danube.dtsi" + +/ { + model = "ARV7519PW - Astoria Networks"; + + chosen { + bootargs = "console=ttyLTQ0,115200 init=/etc/preinit"; + }; + + memory@0 { + reg = <0x0 0x4000000>; + }; + + sram@1F000000 { + vmmc@107000 { + status = "okay"; + }; + }; + + fpi@10000000 { + localbus@0 { + 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 0x40000>; + read-only; + }; + + partition@40000 { + label = "uboot_env"; + reg = <0x40000 0x20000>; + }; + + partition@60000 { + label = "firmware"; + reg = <0x60000 0xf80000>; + }; + + partition@fe0000 { + label = "board_config"; + reg = <0xfe0000 0x20000>; + read-only; + }; + }; + + mac_addr { + compatible = "lantiq,eth-mac"; + reg = <0 0xfe0016 0x6>; + mac-increment = <2>; + }; + }; + + gpio: pinmux@E100B10 { + pinctrl-names = "default"; + pinctrl-0 = <&state_default>; + + state_default: pinmux { + ebu { + lantiq,groups = "ebu cs1"; + lantiq,function = "ebu"; + }; + pci_in { + lantiq,groups = "req1"; + lantiq,function = "pci"; + lantiq,open-drain = <1>; + lantiq,pull = <2>; + lantiq,output = <0>; + }; + pci_out { + lantiq,groups = "gnt1"; + lantiq,function = "pci"; + lantiq,pull = <0>; + lantiq,output = <1>; + }; + pci_rst { + lantiq,pins = "io21"; + lantiq,pull = <2>; + lantiq,output = <1>; + }; + switch_rst { + lantiq,pins = "io19"; + lantiq,pull = <2>; + lantiq,output = <1>; + }; + }; + }; + + etop@E180000 { + phy-mode = "mii"; + }; + + /* warning: passive port + only works with active devices */ + ifxhcd@E101000 { + status = "okay"; + }; + + pci@E105400 { + status = "okay"; + lantiq,external-clock; + gpio-reset = <&gpio 21 0>; + req-mask = <0xf>; + }; + }; + + ralink_eep { + compatible = "ralink,eeprom"; + ralink,eeprom = "RT2860.eeprom"; + }; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <100>; + + rfkill { + label = "rfkill"; + gpios = <&gpio 11 1>; + linux,code = <0xf7>; + }; + reset { + label = "reset"; + gpios = <&gpio 28 1>; + linux,code = <0x198>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + power { + label = "power"; + gpios = <&gpio 2 1>; + default-state = "off"; + }; + power2 { + label = "power2"; + gpios = <&gpio 14 1>; + }; + online { + label = "online"; + gpios = <&gpio 3 1>; + }; + online2 { + label = "online2"; + gpios = <&gpio 30 1>; + }; + wifi { + label = "wifi"; + gpios = <&gpio 12 1>; + }; + wifi2 { + label = "wifi2"; + gpios = <&gpio 10 1>; + }; + wifi3 { + label = "wifi3"; + gpios = <&gpio 6 1>; + }; + voice { + label = "voice"; + gpios = <&gpio 31 1>; + }; + wps { + label = "wps"; + gpios = <&gpio 15 1>; + }; + wps2 { + label = "wps2"; + gpios = <&gpio 7 1>; + }; + wps3 { + label = "wps3"; + gpios = <&gpio 23 1>; + }; + dsl { + label = "dsl"; + gpios = <&gpio 4 1>; + }; + lan { + label = "lan"; + gpios = <&gpio 1 1>; + }; + tv { + label = "tv"; + gpios = <&gpio 20 1>; + }; + upgrade { + label = "upgrade"; + gpios = <&gpio 29 1>; + }; + }; + + /* is there another way to "reserve" the GPIO? */ + gpio_export { + compatible = "gpio-export"; + #size-cells = <0>; + + switch { + gpio-export,name = "switch"; + gpio-export,output = <1>; + gpios = <&gpio 19 0>; + }; + }; +}; diff --git a/target/linux/lantiq/image/Makefile b/target/linux/lantiq/image/Makefile index 4550fc461920..cd36d12ca1c8 100644 --- a/target/linux/lantiq/image/Makefile +++ b/target/linux/lantiq/image/Makefile @@ -269,6 +269,9 @@ Image/Build/Profile/ARV7510PW22=$(call Image/Build/$(1),$(1),ARV7510PW22) Image/BuildKernel/Profile/ARV7518PW=$(call Image/BuildKernel/Template,ARV7518PW) Image/Build/Profile/ARV7518PW=$(call Image/Build/$(1),$(1),ARV7518PW) +Image/BuildKernel/Profile/ARV7519PW=$(call Image/BuildKernel/Template,ARV7519PW) +Image/Build/Profile/ARV7519PW=$(call Image/Build/$(1),$(1),ARV7519PW) + Image/BuildKernel/Profile/ARV752DPW=$(call Image/BuildKernel/Template,ARV752DPW) Image/Build/Profile/ARV752DPW=$(call Image/Build/$(1),$(1),ARV752DPW) diff --git a/target/linux/lantiq/xway/profiles/arv.mk b/target/linux/lantiq/xway/profiles/arv.mk index 9b172f266ef2..30cc7780bbec 100644 --- a/target/linux/lantiq/xway/profiles/arv.mk +++ b/target/linux/lantiq/xway/profiles/arv.mk @@ -92,6 +92,18 @@ endef $(eval $(call Profile,ARV7518PW)) +define Profile/ARV7519PW + NAME:=Astoria - ARV7519PW + PACKAGES:=kmod-ltq-hcd-danube kmod-ledtrig-usbdev \ + kmod-ltq-adsl-danube-mei kmod-ltq-adsl-danube \ + kmod-ltq-adsl-danube-fw-a kmod-ltq-atm-danube \ + ltq-adsl-app ppp-mod-pppoa \ + kmod-rt2800-pci wpad-mini \ + swconfig +endef + +$(eval $(call Profile,ARV7519PW)) + define Profile/ARV4520PW NAME:=Easybox 800, WAV-281 - ARV4520PW PACKAGES:=kmod-ltq-hcd-danube kmod-ledtrig-usbdev \ -- 2.30.2