From 7bac455a4ccd4a55e5db64c7eac224c98be045b6 Mon Sep 17 00:00:00 2001 From: John Crispin Date: Mon, 20 Oct 2014 06:28:48 +0000 Subject: [PATCH] ramips: add support for Nexx WT3020 devices SVN-Revision: 42983 --- ...-add-support-for-Nexx-WT3020-devices.patch | 319 ++++++++++++++++++ .../ramips/base-files/etc/board.d/01_leds | 3 + .../ramips/base-files/etc/board.d/02_network | 1 + target/linux/ramips/base-files/etc/diag.sh | 3 + target/linux/ramips/base-files/lib/ramips.sh | 3 + .../ramips/base-files/lib/upgrade/platform.sh | 1 + target/linux/ramips/dts/WT3020-4M.dts | 100 ++++++ target/linux/ramips/dts/WT3020-8M.dts | 100 ++++++ target/linux/ramips/image/Makefile | 2 + 9 files changed, 532 insertions(+) create mode 100644 0001-ramips-add-support-for-Nexx-WT3020-devices.patch create mode 100644 target/linux/ramips/dts/WT3020-4M.dts create mode 100644 target/linux/ramips/dts/WT3020-8M.dts diff --git a/0001-ramips-add-support-for-Nexx-WT3020-devices.patch b/0001-ramips-add-support-for-Nexx-WT3020-devices.patch new file mode 100644 index 0000000000..a67b275473 --- /dev/null +++ b/0001-ramips-add-support-for-Nexx-WT3020-devices.patch @@ -0,0 +1,319 @@ +From fceb829eca2bc088ad66b18099b57dc96f1bae43 Mon Sep 17 00:00:00 2001 +From: Roger Pueyo Centelles +Date: Sun, 19 Oct 2014 17:50:01 +0200 +Subject: [PATCH] ramips: add support for Nexx WT3020 devices + +--- + target/linux/ramips/base-files/etc/board.d/01_leds | 3 + + .../linux/ramips/base-files/etc/board.d/02_network | 1 + + target/linux/ramips/base-files/etc/diag.sh | 3 + + target/linux/ramips/base-files/lib/ramips.sh | 3 + + .../ramips/base-files/lib/upgrade/platform.sh | 1 + + target/linux/ramips/dts/WT3020-4M.dts | 100 +++++++++++++++++++++ + target/linux/ramips/dts/WT3020-8M.dts | 100 +++++++++++++++++++++ + target/linux/ramips/image/Makefile | 2 + + 8 files changed, 213 insertions(+) + create mode 100644 target/linux/ramips/dts/WT3020-4M.dts + create mode 100644 target/linux/ramips/dts/WT3020-8M.dts + +diff --git a/target/linux/ramips/base-files/etc/board.d/01_leds b/target/linux/ramips/base-files/etc/board.d/01_leds +index 26f384d..7ca7ffb 100755 +--- a/target/linux/ramips/base-files/etc/board.d/01_leds ++++ b/target/linux/ramips/base-files/etc/board.d/01_leds +@@ -213,6 +213,9 @@ case $board in + wt1520) + set_wifi_led "rt2800pci-phy0::radio" + ;; ++ wt3020) ++ ucidef_set_led_default "power" "power" "nexx:blue:power" "0" ++ ;; + y1 |\ + y1s) + ucidef_set_led_default "power" "power" "lenovo:blue:power" "1" +diff --git a/target/linux/ramips/base-files/etc/board.d/02_network b/target/linux/ramips/base-files/etc/board.d/02_network +index 7ecec5f..ff8fbc0 100755 +--- a/target/linux/ramips/base-files/etc/board.d/02_network ++++ b/target/linux/ramips/base-files/etc/board.d/02_network +@@ -127,6 +127,7 @@ ramips_setup_interfaces() + hg255d | \ + rt-n14u | \ + wrtnode | \ ++ wt3020 | \ + ur-326n4g | \ + zbt-wa05) + ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2" +diff --git a/target/linux/ramips/base-files/etc/diag.sh b/target/linux/ramips/base-files/etc/diag.sh +index aed7d6a..2977099 100755 +--- a/target/linux/ramips/base-files/etc/diag.sh ++++ b/target/linux/ramips/base-files/etc/diag.sh +@@ -170,6 +170,9 @@ get_status_led() { + nexx-wt1520) + status_led="nexx-wt1520:white:power" + ;; ++ nexx-wt3020) ++ status_led="nexx:blue:power" ++ ;; + mzk-w300nh2) + status_led="mzkw300nh2:green:power" + ;; +diff --git a/target/linux/ramips/base-files/lib/ramips.sh b/target/linux/ramips/base-files/lib/ramips.sh +index 08c5dff..88fa623 100755 +--- a/target/linux/ramips/base-files/lib/ramips.sh ++++ b/target/linux/ramips/base-files/lib/ramips.sh +@@ -184,6 +184,9 @@ ramips_board_detect() { + *"Nexx WT1520") + name="wt1520" + ;; ++ *"Nexx WT3020") ++ name="wt3020" ++ ;; + *"NW718") + name="nw718" + ;; +diff --git a/target/linux/ramips/base-files/lib/upgrade/platform.sh b/target/linux/ramips/base-files/lib/upgrade/platform.sh +index 61a0935..c9a418e 100755 +--- a/target/linux/ramips/base-files/lib/upgrade/platform.sh ++++ b/target/linux/ramips/base-files/lib/upgrade/platform.sh +@@ -97,6 +97,7 @@ platform_check_image() { + wr8305rt |\ + wrtnode |\ + wt1520 |\ ++ wt3020 |\ + x5 |\ + x8 |\ + y1 |\ +diff --git a/target/linux/ramips/dts/WT3020-4M.dts b/target/linux/ramips/dts/WT3020-4M.dts +new file mode 100644 +index 0000000..7583680 +--- /dev/null ++++ b/target/linux/ramips/dts/WT3020-4M.dts +@@ -0,0 +1,100 @@ ++/dts-v1/; ++ ++/include/ "mt7620n.dtsi" ++ ++/ { ++ compatible = "wt3020", "ralink,mt7620n-soc"; ++ model = "Nexx WT3020"; ++ ++ palmbus@10000000 { ++ gpio2: gpio@660 { ++ status = "okay"; ++ }; ++ ++ gpio3: gpio@688 { ++ status = "okay"; ++ }; ++ ++ spi@b00 { ++ status = "okay"; ++ ++ m25p80@0 { ++ #address-cells = <1>; ++ #size-cells = <1>; ++ compatible = "w25q32"; ++ reg = <0 0>; ++ linux,modalias = "m25p80", "w25q32"; ++ spi-max-frequency = <10000000>; ++ ++ partition@0 { ++ label = "u-boot"; ++ reg = <0x0 0x30000>; ++ read-only; ++ }; ++ ++ partition@30000 { ++ label = "u-boot-env"; ++ reg = <0x30000 0x10000>; ++ read-only; ++ }; ++ ++ factory: partition@40000 { ++ label = "factory"; ++ reg = <0x40000 0x10000>; ++ read-only; ++ }; ++ ++ partition@50000 { ++ label = "firmware"; ++ reg = <0x50000 0x3b0000>; ++ }; ++ }; ++ }; ++ }; ++ ++ ehci@101c0000 { ++ status = "okay"; ++ }; ++ ++ ohci@101c1000 { ++ status = "okay"; ++ }; ++ ++ ethernet@10100000 { ++ mtd-mac-address = <&factory 0x4>; ++ ralink,port-map = "wllll"; ++ }; ++ ++ wmac@10180000 { ++ ralink,mtd-eeprom = <&factory 0>; ++ }; ++ ++ pinctrl { ++ state_default: pinctrl0 { ++ default { ++ ralink,group = "ephy", "wled", "pa", "i2c", "wdt", "uartf"; ++ ralink,function = "gpio"; ++ }; ++ }; ++ }; ++ ++ gpio-keys-polled { ++ compatible = "gpio-keys-polled"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ poll-interval = <20>; ++ reset { ++ label = "reset"; ++ gpios = <&gpio0 1 1>; ++ linux,code = <0x198>; ++ }; ++ }; ++ ++ gpio-leds { ++ compatible = "gpio-leds"; ++ power { ++ label = "nexx:blue:power"; ++ gpios = <&gpio3 0 0>; ++ }; ++ }; ++}; +diff --git a/target/linux/ramips/dts/WT3020-8M.dts b/target/linux/ramips/dts/WT3020-8M.dts +new file mode 100644 +index 0000000..5fa7c92 +--- /dev/null ++++ b/target/linux/ramips/dts/WT3020-8M.dts +@@ -0,0 +1,100 @@ ++/dts-v1/; ++ ++/include/ "mt7620n.dtsi" ++ ++/ { ++ compatible = "wt3020", "ralink,mt7620n-soc"; ++ model = "Nexx WT3020"; ++ ++ palmbus@10000000 { ++ gpio2: gpio@660 { ++ status = "okay"; ++ }; ++ ++ gpio3: gpio@688 { ++ status = "okay"; ++ }; ++ ++ spi@b00 { ++ status = "okay"; ++ ++ m25p80@0 { ++ #address-cells = <1>; ++ #size-cells = <1>; ++ compatible = "w25q64"; ++ reg = <0 0>; ++ linux,modalias = "m25p80", "w25q64"; ++ spi-max-frequency = <10000000>; ++ ++ partition@0 { ++ label = "u-boot"; ++ reg = <0x0 0x30000>; ++ read-only; ++ }; ++ ++ partition@30000 { ++ label = "u-boot-env"; ++ reg = <0x30000 0x10000>; ++ read-only; ++ }; ++ ++ factory: partition@40000 { ++ label = "factory"; ++ reg = <0x40000 0x10000>; ++ read-only; ++ }; ++ ++ partition@50000 { ++ label = "firmware"; ++ reg = <0x50000 0x7b0000>; ++ }; ++ }; ++ }; ++ }; ++ ++ ehci@101c0000 { ++ status = "okay"; ++ }; ++ ++ ohci@101c1000 { ++ status = "okay"; ++ }; ++ ++ ethernet@10100000 { ++ mtd-mac-address = <&factory 0x4>; ++ ralink,port-map = "wllll"; ++ }; ++ ++ wmac@10180000 { ++ ralink,mtd-eeprom = <&factory 0>; ++ }; ++ ++ pinctrl { ++ state_default: pinctrl0 { ++ default { ++ ralink,group = "ephy", "wled", "pa", "i2c", "wdt", "uartf"; ++ ralink,function = "gpio"; ++ }; ++ }; ++ }; ++ ++ gpio-keys-polled { ++ compatible = "gpio-keys-polled"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ poll-interval = <20>; ++ reset { ++ label = "reset"; ++ gpios = <&gpio0 1 1>; ++ linux,code = <0x198>; ++ }; ++ }; ++ ++ gpio-leds { ++ compatible = "gpio-leds"; ++ power { ++ label = "nexx:blue:power"; ++ gpios = <&gpio3 0 0>; ++ }; ++ }; ++}; +diff --git a/target/linux/ramips/image/Makefile b/target/linux/ramips/image/Makefile +index f048caf..a93b82c 100644 +--- a/target/linux/ramips/image/Makefile ++++ b/target/linux/ramips/image/Makefile +@@ -769,6 +769,7 @@ Image/Build/Profile/WMR300=$(call BuildFirmware/Default8M/$(1),$(1),wmr-300,WMR3 + Image/Build/Profile/RT-N14U=$(call BuildFirmware/Default8M/$(1),$(1),rt-n14u,RT-N14U) + Image/Build/Profile/WR8305RT=$(call BuildFirmware/Default8M/$(1),$(1),wr8305rt,WR8305RT) + Image/Build/Profile/WRTNODE=$(call BuildFirmware/Default16M/$(1),$(1),wrtnode,WRTNODE) ++Image/Build/Profile/WT3020=$(call BuildFirmware/DefaultDualSize/$(1),$(1),wt3020,WT3020) + Image/Build/Profile/ZBT-WA05=$(call BuildFirmware/Default8M/$(1),$(1),zbt-wa05,ZBT-WA05) + + ifeq ($(SUBTARGET),mt7620n) +@@ -778,6 +779,7 @@ define Image/Build/Profile/Default + $(call Image/Build/Profile/RT-N14U,$(1)) + $(call Image/Build/Profile/WR8305RT,$(1)) + $(call Image/Build/Profile/WRTNODE,$(1)) ++ $(call Image/Build/Profile/WT3020,$(1)) + $(call Image/Build/Profile/ZBT-WA05,$(1)) + endef + endif +-- +2.1.1 + diff --git a/target/linux/ramips/base-files/etc/board.d/01_leds b/target/linux/ramips/base-files/etc/board.d/01_leds index 26f384d318..7ca7ffb0fd 100755 --- a/target/linux/ramips/base-files/etc/board.d/01_leds +++ b/target/linux/ramips/base-files/etc/board.d/01_leds @@ -213,6 +213,9 @@ case $board in wt1520) set_wifi_led "rt2800pci-phy0::radio" ;; + wt3020) + ucidef_set_led_default "power" "power" "nexx:blue:power" "0" + ;; y1 |\ y1s) ucidef_set_led_default "power" "power" "lenovo:blue:power" "1" diff --git a/target/linux/ramips/base-files/etc/board.d/02_network b/target/linux/ramips/base-files/etc/board.d/02_network index 7ecec5fd27..ff8fbc079d 100755 --- a/target/linux/ramips/base-files/etc/board.d/02_network +++ b/target/linux/ramips/base-files/etc/board.d/02_network @@ -127,6 +127,7 @@ ramips_setup_interfaces() hg255d | \ rt-n14u | \ wrtnode | \ + wt3020 | \ ur-326n4g | \ zbt-wa05) ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2" diff --git a/target/linux/ramips/base-files/etc/diag.sh b/target/linux/ramips/base-files/etc/diag.sh index aed7d6ab2e..297709950d 100755 --- a/target/linux/ramips/base-files/etc/diag.sh +++ b/target/linux/ramips/base-files/etc/diag.sh @@ -170,6 +170,9 @@ get_status_led() { nexx-wt1520) status_led="nexx-wt1520:white:power" ;; + nexx-wt3020) + status_led="nexx:blue:power" + ;; mzk-w300nh2) status_led="mzkw300nh2:green:power" ;; diff --git a/target/linux/ramips/base-files/lib/ramips.sh b/target/linux/ramips/base-files/lib/ramips.sh index 08c5dff020..88fa623d54 100755 --- a/target/linux/ramips/base-files/lib/ramips.sh +++ b/target/linux/ramips/base-files/lib/ramips.sh @@ -184,6 +184,9 @@ ramips_board_detect() { *"Nexx WT1520") name="wt1520" ;; + *"Nexx WT3020") + name="wt3020" + ;; *"NW718") name="nw718" ;; diff --git a/target/linux/ramips/base-files/lib/upgrade/platform.sh b/target/linux/ramips/base-files/lib/upgrade/platform.sh index 61a0935d7e..c9a418e790 100755 --- a/target/linux/ramips/base-files/lib/upgrade/platform.sh +++ b/target/linux/ramips/base-files/lib/upgrade/platform.sh @@ -97,6 +97,7 @@ platform_check_image() { wr8305rt |\ wrtnode |\ wt1520 |\ + wt3020 |\ x5 |\ x8 |\ y1 |\ diff --git a/target/linux/ramips/dts/WT3020-4M.dts b/target/linux/ramips/dts/WT3020-4M.dts new file mode 100644 index 0000000000..7583680099 --- /dev/null +++ b/target/linux/ramips/dts/WT3020-4M.dts @@ -0,0 +1,100 @@ +/dts-v1/; + +/include/ "mt7620n.dtsi" + +/ { + compatible = "wt3020", "ralink,mt7620n-soc"; + model = "Nexx WT3020"; + + palmbus@10000000 { + gpio2: gpio@660 { + status = "okay"; + }; + + gpio3: gpio@688 { + status = "okay"; + }; + + spi@b00 { + status = "okay"; + + m25p80@0 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "w25q32"; + reg = <0 0>; + linux,modalias = "m25p80", "w25q32"; + spi-max-frequency = <10000000>; + + partition@0 { + label = "u-boot"; + reg = <0x0 0x30000>; + read-only; + }; + + partition@30000 { + label = "u-boot-env"; + reg = <0x30000 0x10000>; + read-only; + }; + + factory: partition@40000 { + label = "factory"; + reg = <0x40000 0x10000>; + read-only; + }; + + partition@50000 { + label = "firmware"; + reg = <0x50000 0x3b0000>; + }; + }; + }; + }; + + ehci@101c0000 { + status = "okay"; + }; + + ohci@101c1000 { + status = "okay"; + }; + + ethernet@10100000 { + mtd-mac-address = <&factory 0x4>; + ralink,port-map = "wllll"; + }; + + wmac@10180000 { + ralink,mtd-eeprom = <&factory 0>; + }; + + pinctrl { + state_default: pinctrl0 { + default { + ralink,group = "ephy", "wled", "pa", "i2c", "wdt", "uartf"; + ralink,function = "gpio"; + }; + }; + }; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + reset { + label = "reset"; + gpios = <&gpio0 1 1>; + linux,code = <0x198>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + power { + label = "nexx:blue:power"; + gpios = <&gpio3 0 0>; + }; + }; +}; diff --git a/target/linux/ramips/dts/WT3020-8M.dts b/target/linux/ramips/dts/WT3020-8M.dts new file mode 100644 index 0000000000..5fa7c92730 --- /dev/null +++ b/target/linux/ramips/dts/WT3020-8M.dts @@ -0,0 +1,100 @@ +/dts-v1/; + +/include/ "mt7620n.dtsi" + +/ { + compatible = "wt3020", "ralink,mt7620n-soc"; + model = "Nexx WT3020"; + + palmbus@10000000 { + gpio2: gpio@660 { + status = "okay"; + }; + + gpio3: gpio@688 { + status = "okay"; + }; + + spi@b00 { + status = "okay"; + + m25p80@0 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "w25q64"; + reg = <0 0>; + linux,modalias = "m25p80", "w25q64"; + spi-max-frequency = <10000000>; + + partition@0 { + label = "u-boot"; + reg = <0x0 0x30000>; + read-only; + }; + + partition@30000 { + label = "u-boot-env"; + reg = <0x30000 0x10000>; + read-only; + }; + + factory: partition@40000 { + label = "factory"; + reg = <0x40000 0x10000>; + read-only; + }; + + partition@50000 { + label = "firmware"; + reg = <0x50000 0x7b0000>; + }; + }; + }; + }; + + ehci@101c0000 { + status = "okay"; + }; + + ohci@101c1000 { + status = "okay"; + }; + + ethernet@10100000 { + mtd-mac-address = <&factory 0x4>; + ralink,port-map = "wllll"; + }; + + wmac@10180000 { + ralink,mtd-eeprom = <&factory 0>; + }; + + pinctrl { + state_default: pinctrl0 { + default { + ralink,group = "ephy", "wled", "pa", "i2c", "wdt", "uartf"; + ralink,function = "gpio"; + }; + }; + }; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <20>; + reset { + label = "reset"; + gpios = <&gpio0 1 1>; + linux,code = <0x198>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + power { + label = "nexx:blue:power"; + gpios = <&gpio3 0 0>; + }; + }; +}; diff --git a/target/linux/ramips/image/Makefile b/target/linux/ramips/image/Makefile index f048cafadc..a93b82cc9e 100644 --- a/target/linux/ramips/image/Makefile +++ b/target/linux/ramips/image/Makefile @@ -769,6 +769,7 @@ Image/Build/Profile/WMR300=$(call BuildFirmware/Default8M/$(1),$(1),wmr-300,WMR3 Image/Build/Profile/RT-N14U=$(call BuildFirmware/Default8M/$(1),$(1),rt-n14u,RT-N14U) Image/Build/Profile/WR8305RT=$(call BuildFirmware/Default8M/$(1),$(1),wr8305rt,WR8305RT) Image/Build/Profile/WRTNODE=$(call BuildFirmware/Default16M/$(1),$(1),wrtnode,WRTNODE) +Image/Build/Profile/WT3020=$(call BuildFirmware/DefaultDualSize/$(1),$(1),wt3020,WT3020) Image/Build/Profile/ZBT-WA05=$(call BuildFirmware/Default8M/$(1),$(1),zbt-wa05,ZBT-WA05) ifeq ($(SUBTARGET),mt7620n) @@ -778,6 +779,7 @@ define Image/Build/Profile/Default $(call Image/Build/Profile/RT-N14U,$(1)) $(call Image/Build/Profile/WR8305RT,$(1)) $(call Image/Build/Profile/WRTNODE,$(1)) + $(call Image/Build/Profile/WT3020,$(1)) $(call Image/Build/Profile/ZBT-WA05,$(1)) endef endif