From 3b33adeb9987b52264e56d006784da497eda16f2 Mon Sep 17 00:00:00 2001 From: Luka Perkov Date: Thu, 19 Sep 2013 00:50:46 +0000 Subject: [PATCH] lantiq: add support for ZyXEL P2601HNFX SVN-Revision: 38049 --- .../base-files/etc/uci-defaults/02_network | 6 + target/linux/lantiq/dts/P2601HNFX.dts | 189 ++++++++++++++++++ target/linux/lantiq/image/Makefile | 5 +- target/linux/lantiq/xway/profiles/zyxel.mk | 10 + 4 files changed, 209 insertions(+), 1 deletion(-) create mode 100644 target/linux/lantiq/dts/P2601HNFX.dts create mode 100644 target/linux/lantiq/xway/profiles/zyxel.mk 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 a5cf212dde..2cf16f3418 100644 --- a/target/linux/lantiq/base-files/etc/uci-defaults/02_network +++ b/target/linux/lantiq/base-files/etc/uci-defaults/02_network @@ -90,6 +90,12 @@ H201L) ucidef_add_switch "switch0" "1" "1" ucidef_add_switch_vlan "switch0" "1" "0 1 2 3 4t" ;; + +P2601HNFX) + ucidef_set_interface_lan "eth0.1" + ucidef_add_switch "switch0" "1" "1" + ucidef_add_switch_vlan "switch0" "1" "1 2 3 4 5t" + ;; esac [ -z "$(ls /lib/modules/`uname -r`/ltq_atm*)" ] || set_atm_wan "$vpi" "$vci" "$encaps" "$payload" diff --git a/target/linux/lantiq/dts/P2601HNFX.dts b/target/linux/lantiq/dts/P2601HNFX.dts new file mode 100644 index 0000000000..905f89474d --- /dev/null +++ b/target/linux/lantiq/dts/P2601HNFX.dts @@ -0,0 +1,189 @@ +/dts-v1/; + +/include/ "ar9.dtsi" + +/ { + model = "P2601HNFX - ZyXEL P-2601HN-Fx"; + + chosen { + bootargs = "console=ttyLTQ0,115200 init=/etc/preinit"; + }; + + memory@0 { + reg = <0x0 0x4000000>; + }; + + fpi@10000000 { + #address-cells = <1>; + #size-cells = <1>; + localbus@0 { + #address-cells = <2>; + #size-cells = <1>; + ranges = <0 0 0x0 0x3ffffff + 1 0 0x4000000 0x4000010>; + compatible = "lantiq,localbus", "simple-bus"; + + 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>; + read-only; + }; + + partition@60000 { + label = "firmware"; + reg = <0x60000 0xfa0000>; + }; + }; + }; + + gpio: pinmux@E100B10 { + compatible = "lantiq,pinctrl-xr9"; + pinctrl-names = "default"; + pinctrl-0 = <&state_default>; + + #gpio-cells = <2>; + gpio-controller; + reg = <0xE100B10 0xA0>; + + state_default: pinmux { + stp { + lantiq,groups = "stp"; + lantiq,function = "stp"; + }; + exin { + lantiq,groups = "exin1"; + lantiq,function = "exin"; + }; + pci { + lantiq,groups = "gnt1"; + lantiq,function = "pci"; + }; + conf_out { + lantiq,pins = "io4", "io5", "io6"; + lantiq,open-drain; + lantiq,pull = <0>; + }; + mdio { + lantiq,groups = "mdio"; + lantiq,function = "mdio"; + }; + }; + }; + + etop@E180000 { + phy-mode = "rmii"; + }; + + ifxhcd@E101000 { + status = "okay"; + gpios = <&gpio 9 0>; + }; + + stp: stp@E100BB0 { + #gpio-cells = <2>; + compatible = "lantiq,gpio-stp-xway"; + gpio-controller; + reg = <0xE100BB0 0x40>; + + lantiq,shadow = <0xfff>; + lantiq,groups = <0x3>; + }; + + pci@E105400 { + lantiq,bus-clock = <33333333>; + interrupt-map-mask = <0xf800 0x0 0x0 0x7>; + interrupt-map = <0x7000 0 0 1 &icu0 29 1>; + gpios-reset = <&gpio 21 0>; + req-mask = <0x1>; + }; + }; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <100>; + + reset { + label = "reset"; + gpios = <&gpio 53 1>; + linux,code = <0x198>; + }; + wps { + label = "wps"; + gpios = <&gpio 54 1>; + linux,code = <0x211>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + power { + label = "power"; + gpios = <&stp 11 1>; + default-state = "on"; + }; + power2 { + label = "power2"; + gpios = <&gpio 29 1>; + }; + online { + label = "online"; + gpios = <&stp 13 1>; + }; + online2 { + label = "online2"; + gpios = <&stp 12 1>; + }; + dsl { + label = "dsl"; + gpios = <&stp 14 1>; + }; + phone { + label = "phone"; + gpios = <&stp 9 1>; + }; + phone2 { + label = "phone2"; + gpios = <&stp 8 1>; + }; + wifi { + label = "wifi"; + gpios = <&stp 15 1>; + }; + wifi2 { + label = "wifi2"; + gpios = <&stp 10 1>; + }; + }; + + gpio_export { + compatible = "gpio-export"; + #size-cells = <0>; + + switch { + gpio-export,name = "switch"; + gpio-export,output = <1>; + gpios = <&gpio 50 0>; + }; + usb { + gpio-export,name = "wifi"; + gpio-export,output = <1>; + gpios = <&gpio 9 0>; + }; + }; +}; diff --git a/target/linux/lantiq/image/Makefile b/target/linux/lantiq/image/Makefile index c34b6b0dfa..1123074da8 100644 --- a/target/linux/lantiq/image/Makefile +++ b/target/linux/lantiq/image/Makefile @@ -7,7 +7,7 @@ # boards missing since devicetree update #EASY50712 ARV3527P GIGASX76X BTHOMEHUBV2B BTHOMEHUBV2BOPENRG -#WBMR P2601HNFX +#WBMR include $(TOPDIR)/rules.mk include $(INCLUDE_DIR)/image.mk @@ -258,6 +258,9 @@ Image/Build/Profile/GR7000=$(call Image/Build/$(1),$(1),GR7000) Image/BuildKernel/Profile/H201L=$(call Image/BuildKernel/Template,H201L) Image/Build/Profile/H201L=$(call Image/Build/$(1),$(1),H201L) +Image/BuildKernel/Profile/P2601HNFX=$(call Image/BuildKernel/Template,P2601HNFX) +Image/Build/Profile/P2601HNFX=$(call Image/Build/$(1),$(1),P2601HNFX) + endif diff --git a/target/linux/lantiq/xway/profiles/zyxel.mk b/target/linux/lantiq/xway/profiles/zyxel.mk new file mode 100644 index 0000000000..b2c6ef5bb1 --- /dev/null +++ b/target/linux/lantiq/xway/profiles/zyxel.mk @@ -0,0 +1,10 @@ +define Profile/P2601HNFX + NAME:=ZyXEL P-2601HN-Fx + PACKAGES:= kmod-rt2800-usb wpad-mini \ + kmod-ltq-adsl-ar9-mei kmod-ltq-adsl-ar9 \ + kmod-ltq-adsl-ar9-fw-b kmod-ltq-atm-ar9 \ + ltq-adsl-app ppp-mod-pppoe \ + kmod-ltq-deu-ar9 kmod-ltq-hcd-ar9 \ + swconfig +endef +$(eval $(call Profile,P2601HNFX)) -- 2.25.1