From 790b7911819bffe556f1e7c6d87edd5a44535ee8 Mon Sep 17 00:00:00 2001 From: blogic Date: Mon, 2 Jun 2014 12:42:52 +0000 Subject: [PATCH] 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 git-svn-id: svn://svn.openwrt.org/openwrt/trunk@40908 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- target/linux/ramips/base-files/etc/diag.sh | 3 + .../etc/hotplug.d/firmware/10-rt2x00-eeprom | 4 + .../ramips/base-files/etc/uci-defaults/01_leds | 4 + .../ramips/base-files/etc/uci-defaults/02_network | 8 ++ .../etc/uci-defaults/09_fix-seama-header | 1 + .../ramips/base-files/lib/preinit/06_set_iface_mac | 1 + target/linux/ramips/base-files/lib/ramips.sh | 3 + .../ramips/base-files/lib/upgrade/platform.sh | 1 + target/linux/ramips/dts/CY-SWR1100.dts | 135 +++++++++++++++++++++ target/linux/ramips/image/Makefile | 3 + target/linux/ramips/rt3883/config-3.10 | 1 + target/linux/ramips/rt3883/profiles/samsung.mk | 16 +++ 12 files changed, 180 insertions(+) create mode 100644 target/linux/ramips/dts/CY-SWR1100.dts create mode 100644 target/linux/ramips/rt3883/profiles/samsung.mk 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)) -- 2.11.0