lantiq: add support for ZyXEL P2601HNFX
authorLuka Perkov <luka@openwrt.org>
Thu, 19 Sep 2013 00:50:46 +0000 (00:50 +0000)
committerLuka Perkov <luka@openwrt.org>
Thu, 19 Sep 2013 00:50:46 +0000 (00:50 +0000)
SVN-Revision: 38049

target/linux/lantiq/base-files/etc/uci-defaults/02_network
target/linux/lantiq/dts/P2601HNFX.dts [new file with mode: 0644]
target/linux/lantiq/image/Makefile
target/linux/lantiq/xway/profiles/zyxel.mk [new file with mode: 0644]

index a5cf212dde9d8a699b913c54a9bcafe7d5106980..2cf16f34189da0d9cc7943f5327eed04ea7df102 100644 (file)
@@ -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 (file)
index 0000000..905f894
--- /dev/null
@@ -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>;
+               };
+       };
+};
index c34b6b0dfaea3d4af0494e43e8fa5bdaae77777b..1123074da868b3eddf4502705f0af40664b2db1f 100644 (file)
@@ -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 (file)
index 0000000..b2c6ef5
--- /dev/null
@@ -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))