summaryrefslogtreecommitdiffstats
path: root/target/linux/ramips
diff options
context:
space:
mode:
authorJohn Crispin <john@openwrt.org>2013-07-22 15:36:39 +0000
committerJohn Crispin <john@openwrt.org>2013-07-22 15:36:39 +0000
commit0cc1e2acb41a6c0e24579fe35313c81a0751a71a (patch)
treed4c080590dc3d944aa87d3dedbd350db98815317 /target/linux/ramips
parent11d027380ea8105a7e9120fbc5fb74f32435b82b (diff)
downloadmaster-31e0f0ae-0cc1e2acb41a6c0e24579fe35313c81a0751a71a.tar.gz
master-31e0f0ae-0cc1e2acb41a6c0e24579fe35313c81a0751a71a.tar.bz2
master-31e0f0ae-0cc1e2acb41a6c0e24579fe35313c81a0751a71a.zip
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 <ylxu72@gmail.com> SVN-Revision: 37505
Diffstat (limited to 'target/linux/ramips')
-rw-r--r--target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom3
-rwxr-xr-xtarget/linux/ramips/base-files/etc/uci-defaults/01_leds5
-rwxr-xr-xtarget/linux/ramips/base-files/etc/uci-defaults/02_network1
-rwxr-xr-xtarget/linux/ramips/base-files/lib/ramips.sh3
-rwxr-xr-xtarget/linux/ramips/base-files/lib/upgrade/platform.sh1
-rw-r--r--target/linux/ramips/dts/HG255D.dts120
-rw-r--r--target/linux/ramips/image/Makefile7
-rw-r--r--target/linux/ramips/rt305x/profiles/hg255d.mk17
8 files changed, 156 insertions, 1 deletions
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))