ralink: Add support for samsung cy-swr1100 wireless router
authorblogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Mon, 2 Jun 2014 12:42:52 +0000 (12:42 +0000)
committerblogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Mon, 2 Jun 2014 12:42:52 +0000 (12:42 +0000)
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>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@40908 3c298f89-4303-0410-b956-a3cf2f4a3e73

12 files changed:
target/linux/ramips/base-files/etc/diag.sh
target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom
target/linux/ramips/base-files/etc/uci-defaults/01_leds
target/linux/ramips/base-files/etc/uci-defaults/02_network
target/linux/ramips/base-files/etc/uci-defaults/09_fix-seama-header
target/linux/ramips/base-files/lib/preinit/06_set_iface_mac
target/linux/ramips/base-files/lib/ramips.sh
target/linux/ramips/base-files/lib/upgrade/platform.sh
target/linux/ramips/dts/CY-SWR1100.dts [new file with mode: 0644]
target/linux/ramips/image/Makefile
target/linux/ramips/rt3883/config-3.10
target/linux/ramips/rt3883/profiles/samsung.mk [new file with mode: 0644]

index 66a0aaa..f9b4168 100755 (executable)
@@ -27,6 +27,9 @@ get_status_led() {
        br6425 | br-6475nd)
                status_led="edimax:green:power"
                ;;
        br6425 | br-6475nd)
                status_led="edimax:green:power"
                ;;
+       cy-swr1100)
+               status_led="samsung:blue:wps"
+               ;;
        d105)
                status_led="d105:red:power"
                ;;
        d105)
                status_led="d105:red:power"
                ;;
index 1a39bb6..b57bfd8 100644 (file)
@@ -70,6 +70,7 @@ case "$FIRMWARE" in
        broadway | \
        br6524n | \
        carambola | \
        broadway | \
        br6524n | \
        carambola | \
+       cy-swr1100 | \
        d105 | \
        dcs-930 | \
        dir-300-b7 | \
        d105 | \
        dcs-930 | \
        dir-300-b7 | \
@@ -136,6 +137,9 @@ case "$FIRMWARE" in
 
 "rt2x00pci_1_0.eeprom")
        case $board 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
                ;;
        rt-n56u | whr-600d)
                rt2x00_eeprom_extract "factory" 32768 512
                ;;
index 74ba0ba..23c2451 100755 (executable)
@@ -60,6 +60,10 @@ case $board in
        br6524n)
                set_wifi_led "edimax:blue:wlan"
                ;;
        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"
        d105)
                ucidef_set_led_default "power" "POWER" "d105:red:power" "1"
                set_usb_led "d105:green:usb"
index b66d176..b9524f6 100755 (executable)
@@ -78,6 +78,13 @@ ramips_setup_interfaces()
                ucidef_add_switch_vlan "switch0" "1" "1 2 3 4 6t"
                ;;
 
                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 | \
        dir-610-a1 | \
        dir-300-b7 | \
        dir-320-b1 | \
@@ -205,6 +212,7 @@ ramips_setup_macs()
                wan_mac=$(macaddr_add "$lan_mac" 1)
                ;;
 
                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)
        dir-645)
                lan_mac=$(mtd_get_mac_ascii nvram lanmac)
                wan_mac=$(mtd_get_mac_ascii nvram wanmac)
index d8bed79..a6c392c 100755 (executable)
@@ -14,6 +14,7 @@ fix_seama_header() {
 board=$(ramips_board_name)
 
 case "$board" in
 board=$(ramips_board_name)
 
 case "$board" in
+cy-swr1100 | \
 dir-645)
        fix_seama_header kernel
        ;;
 dir-645)
        fix_seama_header kernel
        ;;
index 7ff6e3d..8538c13 100644 (file)
@@ -51,6 +51,7 @@ preinit_set_mac_address() {
                 mac=$(mtd_get_mac_binary devdata 16388)
                 ifconfig eth0 hw ether $mac 2>/dev/null
                 ;;
                 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")
        dir-645)
                mac=$(mtd_get_mac_ascii nvram lanmac)
                mac=$(macaddr_setbit_la "$mac")
index 4619bef..f9732f8 100755 (executable)
@@ -70,6 +70,9 @@ ramips_board_detect() {
        *"Aztech HW550-3G")
                name="hw550-3g"
                ;;
        *"Aztech HW550-3G")
                name="hw550-3g"
                ;;
+       *"CY-SWR1100")
+               name="cy-swr1100"
+               ;;
        *"DCS-930")
                name="dcs-930"
                ;;
        *"DCS-930")
                name="dcs-930"
                ;;
index c85ee0f..3fdf625 100755 (executable)
@@ -97,6 +97,7 @@ platform_check_image() {
                }
                return 0
                ;;
                }
                return 0
                ;;
+       cy-swr1100 |\
        dir-610-a1 |\
        dir-645)
                [ "$magic" != "5ea3a417" ] && {
        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 (file)
index 0000000..d0cc0e5
--- /dev/null
@@ -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>;
+               };
+       };
+};
index 345b850..7d3e826 100644 (file)
@@ -647,6 +647,8 @@ define BuildFirmware/EdimaxCombined/squashfs
                -s $(6) -m $(7) -f $(8) -S $(9)
 endef
 
                -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
 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
 
 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))
        $(call Image/Build/Profile/DIR645,$(1))
        $(call Image/Build/Profile/OMNIEMBHPM,$(1))
        $(call Image/Build/Profile/RTN56U,$(1))
index 911d703..6f56d5b 100644 (file)
@@ -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_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
 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 (file)
index 0000000..18f60d4
--- /dev/null
@@ -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))