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
owl
John Crispin 2014-06-02 12:42:52 +00:00
parent efd09832fe
commit 813a7c3827
12 changed files with 180 additions and 0 deletions

View File

@ -27,6 +27,9 @@ get_status_led() {
br6425 | br-6475nd) br6425 | br-6475nd)
status_led="edimax:green:power" status_led="edimax:green:power"
;; ;;
cy-swr1100)
status_led="samsung:blue:wps"
;;
d105) d105)
status_led="d105:red:power" status_led="d105:red:power"
;; ;;

View File

@ -70,6 +70,7 @@ case "$FIRMWARE" in
broadway | \ broadway | \
br6524n | \ br6524n | \
carambola | \ carambola | \
cy-swr1100 | \
d105 | \ d105 | \
dcs-930 | \ dcs-930 | \
dir-300-b7 | \ dir-300-b7 | \
@ -136,6 +137,9 @@ case "$FIRMWARE" in
"rt2x00pci_1_0.eeprom") "rt2x00pci_1_0.eeprom")
case $board in case $board in
cy-swr1100)
rt2x00_eeprom_extract "factory" 8192 512
;;
rt-n56u | whr-600d) rt-n56u | whr-600d)
rt2x00_eeprom_extract "factory" 32768 512 rt2x00_eeprom_extract "factory" 32768 512
;; ;;

View File

@ -60,6 +60,10 @@ case $board in
br6524n) br6524n)
set_wifi_led "edimax:blue:wlan" 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) d105)
ucidef_set_led_default "power" "POWER" "d105:red:power" "1" ucidef_set_led_default "power" "POWER" "d105:red:power" "1"
set_usb_led "d105:green:usb" set_usb_led "d105:green:usb"

View File

@ -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-610-a1 | \
dir-300-b7 | \ dir-300-b7 | \
dir-320-b1 | \ 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) dir-645)
lan_mac=$(mtd_get_mac_ascii nvram lanmac) lan_mac=$(mtd_get_mac_ascii nvram lanmac)
wan_mac=$(mtd_get_mac_ascii nvram wanmac) wan_mac=$(mtd_get_mac_ascii nvram wanmac)

View File

@ -14,6 +14,7 @@ fix_seama_header() {
board=$(ramips_board_name) board=$(ramips_board_name)
case "$board" in case "$board" in
cy-swr1100 | \
dir-645) dir-645)
fix_seama_header kernel fix_seama_header kernel
;; ;;

View File

@ -51,6 +51,7 @@ preinit_set_mac_address() {
mac=$(mtd_get_mac_binary devdata 16388) mac=$(mtd_get_mac_binary devdata 16388)
ifconfig eth0 hw ether $mac 2>/dev/null ifconfig eth0 hw ether $mac 2>/dev/null
;; ;;
cy-swr1100 |\
dir-645) dir-645)
mac=$(mtd_get_mac_ascii nvram lanmac) mac=$(mtd_get_mac_ascii nvram lanmac)
mac=$(macaddr_setbit_la "$mac") mac=$(macaddr_setbit_la "$mac")

View File

@ -70,6 +70,9 @@ ramips_board_detect() {
*"Aztech HW550-3G") *"Aztech HW550-3G")
name="hw550-3g" name="hw550-3g"
;; ;;
*"CY-SWR1100")
name="cy-swr1100"
;;
*"DCS-930") *"DCS-930")
name="dcs-930" name="dcs-930"
;; ;;

View File

@ -97,6 +97,7 @@ platform_check_image() {
} }
return 0 return 0
;; ;;
cy-swr1100 |\
dir-610-a1 |\ dir-610-a1 |\
dir-645) dir-645)
[ "$magic" != "5ea3a417" ] && { [ "$magic" != "5ea3a417" ] && {

View File

@ -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>;
};
};
};

View File

@ -647,6 +647,8 @@ define BuildFirmware/EdimaxCombined/squashfs
-s $(6) -m $(7) -f $(8) -S $(9) -s $(6) -m $(7) -f $(8) -S $(9)
endef 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)) 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 omniembhpm_mtd_size=16449536
@ -664,6 +666,7 @@ Image/Build/Profile/BR6475ND=$(call BuildFirmware/EdimaxCombined/$(1),$(1),br-64
ifeq ($(SUBTARGET),rt3883) ifeq ($(SUBTARGET),rt3883)
define Image/Build/Profile/Default define Image/Build/Profile/Default
$(call Image/Build/Profile/CYSWR1100,$(1))
$(call Image/Build/Profile/DIR645,$(1)) $(call Image/Build/Profile/DIR645,$(1))
$(call Image/Build/Profile/OMNIEMBHPM,$(1)) $(call Image/Build/Profile/OMNIEMBHPM,$(1))
$(call Image/Build/Profile/RTN56U,$(1)) $(call Image/Build/Profile/RTN56U,$(1))

View File

@ -101,6 +101,7 @@ CONFIG_MTD_OF_PARTS=y
CONFIG_MTD_PHYSMAP=y CONFIG_MTD_PHYSMAP=y
CONFIG_MTD_PHYSMAP_OF=y CONFIG_MTD_PHYSMAP_OF=y
CONFIG_MTD_SPLIT_FIRMWARE=y CONFIG_MTD_SPLIT_FIRMWARE=y
CONFIG_MTD_SPLIT_SEAMA_FW=y
CONFIG_MTD_UIMAGE_SPLIT=y CONFIG_MTD_UIMAGE_SPLIT=y
CONFIG_NEED_DMA_MAP_STATE=y CONFIG_NEED_DMA_MAP_STATE=y
CONFIG_NEED_PER_CPU_KM=y CONFIG_NEED_PER_CPU_KM=y

View File

@ -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))