aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn Crispin <john@openwrt.org>2014-06-02 12:42:52 +0000
committerJohn Crispin <john@openwrt.org>2014-06-02 12:42:52 +0000
commit813a7c3827afe71f49f2985c607585900a7db4fb (patch)
treebf7b310aad63e81c8676b0615f3a3adf01447a9b
parentefd09832febde11e9d4bc6fca6e471f94933867f (diff)
downloadupstream-813a7c3827afe71f49f2985c607585900a7db4fb.tar.gz
upstream-813a7c3827afe71f49f2985c607585900a7db4fb.tar.bz2
upstream-813a7c3827afe71f49f2985c607585900a7db4fb.zip
ralink: Add support for samsung cy-swr1100 wireless router
It is base on rt3662 soc with dual band 802.11n wireless router. Use rtl8367R switch chip. This patch adds a profile for this board. It use seama image header. so i also enable it on kernel config. Signed-off-by: michael lee <igvtee@gmail.com> SVN-Revision: 40908
-rwxr-xr-xtarget/linux/ramips/base-files/etc/diag.sh3
-rw-r--r--target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom4
-rwxr-xr-xtarget/linux/ramips/base-files/etc/uci-defaults/01_leds4
-rwxr-xr-xtarget/linux/ramips/base-files/etc/uci-defaults/02_network8
-rwxr-xr-xtarget/linux/ramips/base-files/etc/uci-defaults/09_fix-seama-header1
-rw-r--r--target/linux/ramips/base-files/lib/preinit/06_set_iface_mac1
-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/CY-SWR1100.dts135
-rw-r--r--target/linux/ramips/image/Makefile3
-rw-r--r--target/linux/ramips/rt3883/config-3.101
-rw-r--r--target/linux/ramips/rt3883/profiles/samsung.mk16
12 files changed, 180 insertions, 0 deletions
diff --git a/target/linux/ramips/base-files/etc/diag.sh b/target/linux/ramips/base-files/etc/diag.sh
index 66a0aaae47..f9b4168245 100755
--- a/target/linux/ramips/base-files/etc/diag.sh
+++ b/target/linux/ramips/base-files/etc/diag.sh
@@ -27,6 +27,9 @@ get_status_led() {
br6425 | br-6475nd)
status_led="edimax:green:power"
;;
+ cy-swr1100)
+ status_led="samsung:blue:wps"
+ ;;
d105)
status_led="d105:red:power"
;;
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 1a39bb6035..b57bfd82ae 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
@@ -70,6 +70,7 @@ case "$FIRMWARE" in
broadway | \
br6524n | \
carambola | \
+ cy-swr1100 | \
d105 | \
dcs-930 | \
dir-300-b7 | \
@@ -136,6 +137,9 @@ case "$FIRMWARE" in
"rt2x00pci_1_0.eeprom")
case $board in
+ cy-swr1100)
+ rt2x00_eeprom_extract "factory" 8192 512
+ ;;
rt-n56u | whr-600d)
rt2x00_eeprom_extract "factory" 32768 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 74ba0ba63e..23c24515e2 100755
--- a/target/linux/ramips/base-files/etc/uci-defaults/01_leds
+++ b/target/linux/ramips/base-files/etc/uci-defaults/01_leds
@@ -60,6 +60,10 @@ case $board in
br6524n)
set_wifi_led "edimax:blue:wlan"
;;
+ cy-swr1100)
+ ucidef_set_led_default "wps" "WPS" "samsung:blue:wps" "0"
+ set_usb_led "samsung:blue:usb"
+ ;;
d105)
ucidef_set_led_default "power" "POWER" "d105:red:power" "1"
set_usb_led "d105:green:usb"
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 b66d176ec0..b9524f6d2c 100755
--- a/target/linux/ramips/base-files/etc/uci-defaults/02_network
+++ b/target/linux/ramips/base-files/etc/uci-defaults/02_network
@@ -78,6 +78,13 @@ ramips_setup_interfaces()
ucidef_add_switch_vlan "switch0" "1" "1 2 3 4 6t"
;;
+ cy-swr1100)
+ ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
+ ucidef_add_switch "switch0" "1" "1"
+ ucidef_add_switch_vlan "switch0" "1" "0 1 2 3 9t"
+ ucidef_add_switch_vlan "switch0" "2" "4 9t"
+ ;;
+
dir-610-a1 | \
dir-300-b7 | \
dir-320-b1 | \
@@ -205,6 +212,7 @@ ramips_setup_macs()
wan_mac=$(macaddr_add "$lan_mac" 1)
;;
+ cy-swr1100 | \
dir-645)
lan_mac=$(mtd_get_mac_ascii nvram lanmac)
wan_mac=$(mtd_get_mac_ascii nvram wanmac)
diff --git a/target/linux/ramips/base-files/etc/uci-defaults/09_fix-seama-header b/target/linux/ramips/base-files/etc/uci-defaults/09_fix-seama-header
index d8bed79514..a6c392c6ba 100755
--- a/target/linux/ramips/base-files/etc/uci-defaults/09_fix-seama-header
+++ b/target/linux/ramips/base-files/etc/uci-defaults/09_fix-seama-header
@@ -14,6 +14,7 @@ fix_seama_header() {
board=$(ramips_board_name)
case "$board" in
+cy-swr1100 | \
dir-645)
fix_seama_header kernel
;;
diff --git a/target/linux/ramips/base-files/lib/preinit/06_set_iface_mac b/target/linux/ramips/base-files/lib/preinit/06_set_iface_mac
index 7ff6e3d5e6..8538c136ab 100644
--- a/target/linux/ramips/base-files/lib/preinit/06_set_iface_mac
+++ b/target/linux/ramips/base-files/lib/preinit/06_set_iface_mac
@@ -51,6 +51,7 @@ preinit_set_mac_address() {
mac=$(mtd_get_mac_binary devdata 16388)
ifconfig eth0 hw ether $mac 2>/dev/null
;;
+ cy-swr1100 |\
dir-645)
mac=$(mtd_get_mac_ascii nvram lanmac)
mac=$(macaddr_setbit_la "$mac")
diff --git a/target/linux/ramips/base-files/lib/ramips.sh b/target/linux/ramips/base-files/lib/ramips.sh
index 4619befb29..f9732f8eeb 100755
--- a/target/linux/ramips/base-files/lib/ramips.sh
+++ b/target/linux/ramips/base-files/lib/ramips.sh
@@ -70,6 +70,9 @@ ramips_board_detect() {
*"Aztech HW550-3G")
name="hw550-3g"
;;
+ *"CY-SWR1100")
+ name="cy-swr1100"
+ ;;
*"DCS-930")
name="dcs-930"
;;
diff --git a/target/linux/ramips/base-files/lib/upgrade/platform.sh b/target/linux/ramips/base-files/lib/upgrade/platform.sh
index c85ee0f703..3fdf625282 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() {
}
return 0
;;
+ cy-swr1100 |\
dir-610-a1 |\
dir-645)
[ "$magic" != "5ea3a417" ] && {
diff --git a/target/linux/ramips/dts/CY-SWR1100.dts b/target/linux/ramips/dts/CY-SWR1100.dts
new file mode 100644
index 0000000000..d0cc0e5fc5
--- /dev/null
+++ b/target/linux/ramips/dts/CY-SWR1100.dts
@@ -0,0 +1,135 @@
+/dts-v1/;
+
+/include/ "rt3883.dtsi"
+
+/ {
+ compatible = "CY-SWR1100", "ralink,rt3883-soc";
+ model = "Samsung CY-SWR1100";
+
+ palmbus@10000000 {
+ gpio1: gpio@638 {
+ status = "okay";
+ };
+ };
+
+ pinctrl {
+ state_default: pinctrl0 {
+ gpio {
+ ralink,group = "i2c", "spi";
+ ralink,function = "gpio";
+ };
+ };
+ };
+
+ ethernet@10100000 {
+ mtd-mac-address = <&factory 0x66>;
+ port@0 {
+ ralink,fixed-link = <1000 1 1 1>;
+ };
+ };
+
+ pci@10140000 {
+ status = "okay";
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&pci_pins>;
+ pci_pins: pci {
+ pci {
+ ralink,group = "pci";
+ ralink,function = "pci-fnc";
+ };
+ };
+
+ host-bridge {
+ pci-bridge@1 {
+ status = "okay";
+ };
+ };
+ };
+
+ wmac@10180000 {
+ status = "okay";
+ };
+
+ ehci@101c0000 {
+ status = "okay";
+ };
+
+ ohci@101c1000 {
+ status = "okay";
+ };
+
+ nor-flash@1c000000 {
+ compatible = "cfi-flash";
+ reg = <0x1c000000 0x800000>;
+
+ bank-width = <2>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+ partition@30000 {
+ label = "uboot-env";
+ reg = <0x30000 0x4000>;
+ read-only;
+ };
+ factory: partition@34000 {
+ label = "factory";
+ reg = <0x34000 0x4000>;
+ read-only;
+ };
+ partition@38000 {
+ label = "nvram";
+ reg = <0x38000 0x8000>;
+ read-only;
+ };
+ partition@40000 {
+ label = "devdata";
+ reg = <0x40000 0x10000>;
+ };
+ partition@50000 {
+ label = "firmware";
+ reg = <0x50000 0x7b0000>;
+ };
+ };
+
+ rtl8367 {
+ compatible = "realtek,rtl8367";
+ gpio-sda = <&gpio0 1 0>;
+ gpio-sck = <&gpio0 2 0>;
+ realtek,extif0 = <1 0 1 1 1 1 1 1 2>;
+ };
+
+ gpio-keys-polled {
+ compatible = "gpio-keys-polled";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ poll-interval = <100>;
+ reset {
+ label = "reset";
+ gpios = <&gpio0 6 1>;
+ linux,code = <0x198>;
+ };
+ wps {
+ label = "wps";
+ gpios = <&gpio0 3 1>;
+ linux,code = <0x211>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+ wps {
+ label = "samsung:blue:wps";
+ gpios = <&gpio0 0 1>;
+ };
+ usb {
+ label = "samsung:blue:usb";
+ gpios = <&gpio1 1 1>;
+ };
+ };
+};
diff --git a/target/linux/ramips/image/Makefile b/target/linux/ramips/image/Makefile
index 345b85003f..7d3e826b4a 100644
--- a/target/linux/ramips/image/Makefile
+++ b/target/linux/ramips/image/Makefile
@@ -647,6 +647,8 @@ define BuildFirmware/EdimaxCombined/squashfs
-s $(6) -m $(7) -f $(8) -S $(9)
endef
+Image/Build/Profile/CYSWR1100=$(call BuildFirmware/Seama/$(1),$(1),cy-swr1100,CY-SWR1100,wrgnd10_samsung_ss815,$(ralink_default_fw_size_8M))
+
Image/Build/Profile/DIR645=$(call BuildFirmware/Seama/$(1),$(1),dir-645,DIR-645,wrgn39_dlob.hans_dir645,$(ralink_default_fw_size_8M))
omniembhpm_mtd_size=16449536
@@ -664,6 +666,7 @@ Image/Build/Profile/BR6475ND=$(call BuildFirmware/EdimaxCombined/$(1),$(1),br-64
ifeq ($(SUBTARGET),rt3883)
define Image/Build/Profile/Default
+ $(call Image/Build/Profile/CYSWR1100,$(1))
$(call Image/Build/Profile/DIR645,$(1))
$(call Image/Build/Profile/OMNIEMBHPM,$(1))
$(call Image/Build/Profile/RTN56U,$(1))
diff --git a/target/linux/ramips/rt3883/config-3.10 b/target/linux/ramips/rt3883/config-3.10
index 911d7033b7..6f56d5bb7c 100644
--- a/target/linux/ramips/rt3883/config-3.10
+++ b/target/linux/ramips/rt3883/config-3.10
@@ -101,6 +101,7 @@ CONFIG_MTD_OF_PARTS=y
CONFIG_MTD_PHYSMAP=y
CONFIG_MTD_PHYSMAP_OF=y
CONFIG_MTD_SPLIT_FIRMWARE=y
+CONFIG_MTD_SPLIT_SEAMA_FW=y
CONFIG_MTD_UIMAGE_SPLIT=y
CONFIG_NEED_DMA_MAP_STATE=y
CONFIG_NEED_PER_CPU_KM=y
diff --git a/target/linux/ramips/rt3883/profiles/samsung.mk b/target/linux/ramips/rt3883/profiles/samsung.mk
new file mode 100644
index 0000000000..18f60d4a3c
--- /dev/null
+++ b/target/linux/ramips/rt3883/profiles/samsung.mk
@@ -0,0 +1,16 @@
+#
+# Copyright (C) 2012 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+define Profile/CYSWR1100
+ NAME:=Samsung CY-SWR1100
+ PACKAGES:=kmod-usb-core kmod-usb-ohci kmod-usb2 swconfig
+endef
+
+define Profile/CYSWR1100/Description
+ Package set compatible with the Samsung CY-SWR1100 board.
+endef
+$(eval $(call Profile,CYSWR1100))