From 0cc1e2acb41a6c0e24579fe35313c81a0751a71a Mon Sep 17 00:00:00 2001 From: John Crispin Date: Mon, 22 Jul 2013 15:36:39 +0000 Subject: [PATCH] ramips: Add support for Huawei HG255D in trunk HG255D is a kind of popular low-end home gateway in China, this patch bring the the trunk support for it. It is adapted from a local Chinese community (www.right.com.cn), so credit should given to them. This patch is tested to work except trivial LED issues. Signed-off-by: Leon Xu SVN-Revision: 37505 --- .../etc/hotplug.d/firmware/10-rt2x00-eeprom | 3 +- .../base-files/etc/uci-defaults/01_leds | 5 + .../base-files/etc/uci-defaults/02_network | 1 + target/linux/ramips/base-files/lib/ramips.sh | 3 + .../ramips/base-files/lib/upgrade/platform.sh | 1 + target/linux/ramips/dts/HG255D.dts | 120 ++++++++++++++++++ target/linux/ramips/image/Makefile | 7 + target/linux/ramips/rt305x/profiles/hg255d.mk | 17 +++ 8 files changed, 156 insertions(+), 1 deletion(-) create mode 100644 target/linux/ramips/dts/HG255D.dts create mode 100644 target/linux/ramips/rt305x/profiles/hg255d.mk diff --git a/target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom b/target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom index fef89eae0e..469811eb2b 100644 --- a/target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom +++ b/target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom @@ -104,7 +104,8 @@ case "$FIRMWARE" in mzk-w300nh2 | \ ur-326n4g | \ ur-336un | \ - xdxrn502j) + xdxrn502j | \ + hg255d) rt2x00_eeprom_extract "factory" 0 512 ;; diff --git a/target/linux/ramips/base-files/etc/uci-defaults/01_leds b/target/linux/ramips/base-files/etc/uci-defaults/01_leds index 608816f195..036d311d9b 100755 --- a/target/linux/ramips/base-files/etc/uci-defaults/01_leds +++ b/target/linux/ramips/base-files/etc/uci-defaults/01_leds @@ -124,6 +124,11 @@ case $board in wcr-150gn) set_usb_led "wcr150gn:amber:user" ;; + hg255d) + set_wifi_led "hg255d:wlan" + set_usb_led "hg255d:usb" + ucidef_set_led_netdev "eth" "Internet" "hg255d:internet" "eth0.2" + ;; wnce2001) set_wifi_led "netgear:green:wlan" ;; diff --git a/target/linux/ramips/base-files/etc/uci-defaults/02_network b/target/linux/ramips/base-files/etc/uci-defaults/02_network index 747a83d454..cbacd3d621 100755 --- a/target/linux/ramips/base-files/etc/uci-defaults/02_network +++ b/target/linux/ramips/base-files/etc/uci-defaults/02_network @@ -192,6 +192,7 @@ ramips_setup_macs() ;; rt-n13u | \ + hg255d | \ fonera20n) lan_mac=$(mtd_get_mac_binary factory 40) wan_mac=$(macaddr_add "$lan_mac" 1) diff --git a/target/linux/ramips/base-files/lib/ramips.sh b/target/linux/ramips/base-files/lib/ramips.sh index c5f216f780..22c9885f39 100755 --- a/target/linux/ramips/base-files/lib/ramips.sh +++ b/target/linux/ramips/base-files/lib/ramips.sh @@ -217,6 +217,9 @@ ramips_board_detect() { *"XDX RN502J") name="xdxrn502j" ;; + *"HG255D") + name="hg255d" + ;; *) name="generic" ;; diff --git a/target/linux/ramips/base-files/lib/upgrade/platform.sh b/target/linux/ramips/base-files/lib/upgrade/platform.sh index c7f06b2f43..3513ff4196 100755 --- a/target/linux/ramips/base-files/lib/upgrade/platform.sh +++ b/target/linux/ramips/base-files/lib/upgrade/platform.sh @@ -42,6 +42,7 @@ platform_check_image() { rt-n13u | \ freestation5 | \ hw550-3g | \ + hg255d | \ mofi3500-3gn | \ mpr-a2 | \ mzk-w300nh2 | \ diff --git a/target/linux/ramips/dts/HG255D.dts b/target/linux/ramips/dts/HG255D.dts new file mode 100644 index 0000000000..695969038d --- /dev/null +++ b/target/linux/ramips/dts/HG255D.dts @@ -0,0 +1,120 @@ +/dts-v1/; + +/include/ "rt3050.dtsi" + +/ { + compatible = "HG255D", "ralink,rt3052-soc"; + model = "HuaWei HG255D"; + + palmbus@10000000 { + sysc@0 { + ralink,pinmux = "i2c", "spi", "uartlite", "jtag", "mdio", "sdram", "rgmii"; + ralink,uartmux = "gpio"; + ralink,wdtmux = <1>; + }; + + gpio0: gpio@600 { + status = "okay"; + }; + }; + + cfi@1f000000 { + compatible = "cfi-flash"; + reg = <0x1f000000 0x1000000>; + + bank-width = <2>; + device-width = <2>; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "u-boot"; + reg = <0x0 0x40000>; + read-only; + }; + + partition@30000 { + label = "u-boot-env"; + reg = <0x40000 0x20000>; + read-only; + }; + + factory: partition@60000 { + label = "factory"; + reg = <0x60000 0x20000>; + read-only; + }; + + partition@80000 { + label = "firmware"; + reg = <0x80000 0xf80000>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + power { + label = "hg255d:power"; + gpios = <&gpio0 8 1>; + }; + internet { + label = "hg255d:internet"; + gpios = <&gpio0 13 1>; + }; + wifi { + label = "hg255d:wlan"; + gpios = <&gpio0 14 1>; + }; + usb { + label = "hg255d:usb"; + gpios = <&gpio0 9 1>; + }; + wps { + label = "hg255d:wps"; + gpios = <&gpio0 12 1>; + }; + voice { + label = "hg255d:voice"; + gpios = <&gpio0 5 1>; + }; + }; + + gpio-keys-polled { + compatible = "gpio-keys-polled"; + #address-cells = <1>; + #size-cells = <0>; + poll-interval = <10>; + reset { + label = "reset"; + gpios = <&gpio0 4 1>; + linux,code = <0x198>; + }; + wps { + label = "wps"; + gpios = <&gpio0 10 1>; + linux,code = <0x211>; + }; + rfkill { + label = "rfkill"; + gpios = <&gpio0 0 1>; + linux,code = <0xf7>; + }; + }; + + ethernet@10100000 { + status = "okay"; + }; + + esw@10110000 { + status = "okay"; + ralink,portmap = <0x2f>; + }; + + wmac@10180000 { + status = "okay"; + }; + + otg@101c0000 { + status = "okay"; + }; +}; diff --git a/target/linux/ramips/image/Makefile b/target/linux/ramips/image/Makefile index 499f105acd..dcae8482c6 100644 --- a/target/linux/ramips/image/Makefile +++ b/target/linux/ramips/image/Makefile @@ -114,6 +114,10 @@ ralink_default_fw_size_8M=8060928 BuildFirmware/Default8M/squashfs=$(call BuildFirmware/OF,$(1),$(2),$(3),$(ralink_default_fw_size_8M),$(4)) BuildFirmware/Default8M/initramfs=$(call BuildFirmware/OF/initramfs,$(1),$(2),$(3),$(4)) +ralink_default_fw_size_16M=16252928 +BuildFirmware/Default16M/squashfs=$(call BuildFirmware/OF,$(1),$(2),$(3),$(ralink_default_fw_size_16M),$(4)) +BuildFirmware/Default16M/initramfs=$(call BuildFirmware/OF/initramfs,$(1),$(2),$(3),$(4)) + # Build images for a custom sized flash layout # $(1) = squashfs/initramfs # $(2) = lowercase board name @@ -328,6 +332,8 @@ Image/Build/Profile/FONERA20N=$(call BuildFirmware/Edimax/$(1),$(1),fonera20n,FO Image/Build/Profile/RT-N13U=$(call BuildFirmware/Default8M/$(1),$(1),rt-n13u,RT-N13U) +Image/Build/Profile/HG255D=$(call BuildFirmware/Default16M/$(1),$(1),hg255d,HG255D) + Image/Build/Profile/FREESTATION5=$(call BuildFirmware/Default8M/$(1),$(1),freestation5,FREESTATION5) Image/Build/Profile/MOFI3500-3GN=$(call BuildFirmware/Default8M/$(1),$(1),mofi3500-3gn,MOFI3500-3GN) @@ -460,6 +466,7 @@ define Image/Build/Profile/Default $(call Image/Build/Profile/F5D8235V2,$(1)) $(call Image/Build/Profile/FONERA20N,$(1)) $(call Image/Build/Profile/FREESTATION5,$(1)) + $(call Image/Build/Profile/HG255D,$(1)) $(call Image/Build/Profile/HW550-3G,$(1)) $(call Image/Build/Profile/MOFI3500-3GN,$(1)) $(call Image/Build/Profile/MPRA2,$(1)) diff --git a/target/linux/ramips/rt305x/profiles/hg255d.mk b/target/linux/ramips/rt305x/profiles/hg255d.mk new file mode 100644 index 0000000000..9aebe093ce --- /dev/null +++ b/target/linux/ramips/rt305x/profiles/hg255d.mk @@ -0,0 +1,17 @@ +# +# Copyright (C) 2013 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +define Profile/HG255D + NAME:=HuaWei HG255D + PACKAGES:=kmod-leds-gpio kmod-rt2800-pci wpad-mini kmod-usb-dwc2 +endef + +define Profile/HG255D/Description + Package set for HuaWei HG255D. +endef + +$(eval $(call Profile,HG255D))