From 37b50fdb92742024849241cf41091f97e11b2ba0 Mon Sep 17 00:00:00 2001 From: John Crispin Date: Thu, 21 Apr 2016 19:46:59 +0000 Subject: [PATCH] ramips: add support for ELECOM WRH-300CR ELECOM WRH-300CR is MT7620N based very small Wi-Fi router with 64MiB DDR2 SDRAM, 16MiB SPI Flash, one fast ethernet port, and (internal but easy-to-access) UART. it also has internal USB hub and USB card reader which provide one USB port, one SD card slot, and one microSD card slot. Signed-off-by: YuheiOKAWA Signed-off-by: FUKAUMI Naoki SVN-Revision: 49211 --- .../ramips/base-files/etc/board.d/01_leds | 4 + .../ramips/base-files/etc/board.d/02_network | 3 +- 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/WRH-300CR.dts | 127 ++++++++++++++++++ target/linux/ramips/image/mt7620.mk | 15 +++ target/linux/ramips/mt7620/profiles/elecom.mk | 18 +++ 8 files changed, 172 insertions(+), 2 deletions(-) create mode 100644 target/linux/ramips/dts/WRH-300CR.dts create mode 100644 target/linux/ramips/mt7620/profiles/elecom.mk 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 2f40955d110..e3b8500d373 100755 --- a/target/linux/ramips/base-files/etc/board.d/01_leds +++ b/target/linux/ramips/base-files/etc/board.d/01_leds @@ -265,6 +265,10 @@ whr-600d) wnce2001) set_wifi_led "$board:green:wlan" ;; +wrh-300cr) + set_wifi_led "$board:green:wlan" + ucidef_set_led_netdev "lan" "lan" "$board:green:ethernet" "eth0" + ;; wt3020) ucidef_set_led_default "power" "power" "$board:blue:power" "0" ;; 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 4b65d36b985..2863b8843f6 100755 --- a/target/linux/ramips/base-files/etc/board.d/02_network +++ b/target/linux/ramips/base-files/etc/board.d/02_network @@ -162,7 +162,8 @@ ramips_setup_interfaces() d105|\ hpm|\ na930|\ - wli-tx4-ag300n) + wli-tx4-ag300n|\ + wrh-300cr) ucidef_set_interface_lan "eth0" ;; e1700|\ diff --git a/target/linux/ramips/base-files/etc/diag.sh b/target/linux/ramips/base-files/etc/diag.sh index a2c965d79dc..44353b6cc8c 100644 --- a/target/linux/ramips/base-files/etc/diag.sh +++ b/target/linux/ramips/base-files/etc/diag.sh @@ -74,7 +74,8 @@ get_status_led() { status_led="$board:green:run" ;; awapn2403|\ - dir-645) + dir-645|\ + wrh-300cr) status_led="$board:green:wps" ;; cf-wr800n|\ diff --git a/target/linux/ramips/base-files/lib/ramips.sh b/target/linux/ramips/base-files/lib/ramips.sh index 5f1df7b83ff..459de6f84dc 100755 --- a/target/linux/ramips/base-files/lib/ramips.sh +++ b/target/linux/ramips/base-files/lib/ramips.sh @@ -460,6 +460,9 @@ ramips_board_detect() { *"WR6202") name="wr6202" ;; + *"WRH-300CR") + name="wrh-300cr" + ;; *"WRTNODE") name="wrtnode" ;; diff --git a/target/linux/ramips/base-files/lib/upgrade/platform.sh b/target/linux/ramips/base-files/lib/upgrade/platform.sh index cbeda7accbb..e880f60f736 100755 --- a/target/linux/ramips/base-files/lib/upgrade/platform.sh +++ b/target/linux/ramips/base-files/lib/upgrade/platform.sh @@ -136,6 +136,7 @@ platform_check_image() { wnce2001|\ wr512-3gn|\ wr6202|\ + wrh-300cr|\ wrtnode|\ wrtnode2r |\ wrtnode2p |\ diff --git a/target/linux/ramips/dts/WRH-300CR.dts b/target/linux/ramips/dts/WRH-300CR.dts new file mode 100644 index 00000000000..79962e91e75 --- /dev/null +++ b/target/linux/ramips/dts/WRH-300CR.dts @@ -0,0 +1,127 @@ +/dts-v1/; + +/include/ "mt7620n.dtsi" + +/ { + compatible = "elecom,wrh-300cr", "ralink,mt7620n-soc"; + model = "ELECOM WRH-300CR"; + + palmbus@10000000 { + gpio1: gpio@638 { + status = "okay"; + }; + + gpio2: gpio@660 { + status = "okay"; + }; + + gpio3: gpio@688 { + status = "okay"; + }; + + spi@b00 { + status = "okay"; + + m25p80@0 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "jedec,spi-nor"; + reg = <0 0>; + linux,modalias = "m25p80", "mx25l12805d"; + spi-max-frequency = <10000000>; + + partition@0 { + label = "u-boot"; + reg = <0x0 0x30000>; + read-only; + }; + + partition@30000 { + label = "u-boot-env"; + reg = <0x30000 0x10000>; + }; + + factory: partition@40000 { + label = "factory"; + reg = <0x40000 0x10000>; + read-only; + }; + + partition@50000 { + label = "recover"; + reg = <0x50000 0x1c0000>; + read-only; + }; + + partition@210000 { + label = "firmware"; + reg = <0x210000 0xdf0000>; + }; + }; + }; + }; + + ehci@101c0000 { + status = "okay"; + }; + + ohci@101c1000 { + status = "okay"; + }; + + ethernet@10100000 { + mtd-mac-address = <&factory 0x2e>; + mediatek,portmap = "llllw"; + }; + + wmac@10180000 { + ralink,mtd-eeprom = <&factory 0>; + }; + + pinctrl { + state_default: pinctrl0 { + default { + ralink,group = "i2c", "ephy", "wled"; + ralink,function = "gpio"; + }; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + + wps { + label = "wrh-300cr:green:wps"; + gpios = <&gpio2 0 1>; + }; + + ethernet { + label = "wrh-300cr:green:ethernet"; + gpios = <&gpio2 3 1>; + }; + + wlan { + label = "wrh-300cr:green:wlan"; + gpios = <&gpio3 0 1>; + }; + }; + + 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>; + }; + + wps { + label = "wps"; + gpios = <&gpio0 2 1>; + linux,code = <0x211>; + }; + }; +}; diff --git a/target/linux/ramips/image/mt7620.mk b/target/linux/ramips/image/mt7620.mk index 18cd20a45bd..c76e98e8097 100644 --- a/target/linux/ramips/image/mt7620.mk +++ b/target/linux/ramips/image/mt7620.mk @@ -64,6 +64,19 @@ endef BuildFirmware/Tplink/squashfs=$(call BuildFirmware/OF/tplink,$(1),$(2),$(3),$(4)) BuildFirmware/Tplink/initramfs=$(call BuildFirmware/OF/tplink/initramfs,$(1),$(2),$(3),$(4)) +define BuildFirmware/WRH-300CR/squashfs + $(call BuildFirmware/Default16M/squashfs,$(1),$(2),$(3)) + cp $(call sysupname,$(1),$(2)) $(KDIR)/v_0.0.0.bin + ( \ + $(STAGING_DIR_HOST)/bin/md5sum $(KDIR)/v_0.0.0.bin | \ + sed 's/ .*//' && \ + echo 458 \ + ) | $(STAGING_DIR_HOST)/bin/md5sum | \ + sed 's/ .*//' > $(KDIR)/v_0.0.0.md5 + $(STAGING_DIR_HOST)/bin/tar -cf $(call imgname,$(1),$(2))-factory.bin -C $(KDIR) v_0.0.0.bin v_0.0.0.md5 +endef +BuildFirmware/WRH-300CR/initramfs=$(call BuildFirmware/Default16M/initramfs,$(1),$(2),$(3)) + Image/Build/Profile/E1700=$(call BuildFirmware/UMedia/$(1),$(1),e1700,E1700,0x013326) ex2700_mtd_size=3866624 @@ -98,6 +111,7 @@ Image/Build/Profile/MLW221=$(call BuildFirmware/Default16M/$(1),$(1),mlw221,MLW2 Image/Build/Profile/MLWG2=$(call BuildFirmware/Default16M/$(1),$(1),mlwg2,MLWG2) Image/Build/Profile/WMR-300=$(call BuildFirmware/Default8M/$(1),$(1),wmr-300,WMR-300) Image/Build/Profile/RT-N14U=$(call BuildFirmware/Default8M/$(1),$(1),rt-n14u,RT-N14U) +Image/Build/Profile/WRH-300CR=$(call BuildFirmware/WRH-300CR/$(1),$(1),wrh-300cr,WRH-300CR) Image/Build/Profile/WRTNODE=$(call BuildFirmware/Default16M/$(1),$(1),wrtnode,WRTNODE) Image/Build/Profile/WT3020=$(call BuildFirmware/PorayDualSize/$(1),$(1),wt3020,WT3020) Image/Build/Profile/MIWIFI-MINI=$(call BuildFirmware/Default16M/$(1),$(1),miwifi-mini,MIWIFI-MINI) @@ -143,6 +157,7 @@ define Image/Build/Profile/Default $(call Image/Build/Profile/MLWG2,$(1)) $(call Image/Build/Profile/WMR-300,$(1)) $(call Image/Build/Profile/RT-N14U,$(1)) + $(call Image/Build/Profile/WRH-300CR,$(1)) $(call Image/Build/Profile/WRTNODE,$(1)) $(call Image/Build/Profile/WT3020,$(1)) $(call Image/Build/Profile/MIWIFI-MINI,$(1)) diff --git a/target/linux/ramips/mt7620/profiles/elecom.mk b/target/linux/ramips/mt7620/profiles/elecom.mk new file mode 100644 index 00000000000..5c84c927154 --- /dev/null +++ b/target/linux/ramips/mt7620/profiles/elecom.mk @@ -0,0 +1,18 @@ +# +# Copyright (C) 2016 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +define Profile/WRH-300CR + NAME:=ELECOM WRH-300CR + PACKAGES:=\ + kmod-usb-core kmod-usb2 kmod-usb-ohci kmod-usb-storage \ + kmod-scsi-core kmod-fs-ext4 block-mount +endef + +define Profile/WRH-300CR/Description + Package set optimized for the ELECOM WRH-300CR. +endef +$(eval $(call Profile,WRH-300CR)) -- 2.30.2