From 854257b5560f3a62a9ed0741f4887988515c2158 Mon Sep 17 00:00:00 2001 From: blogic Date: Mon, 1 Sep 2014 13:21:49 +0000 Subject: [PATCH] ramips: Add support for VoCore MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is based and tested on VoCore Alpha, but other stuff like status/eth LEDs are present on the final board revision + VoDock. All GPIOs are exported, except spi/i2c. Signed-off-by: Álvaro Fernández Rojas Backport of r41939 git-svn-id: svn://svn.openwrt.org/openwrt/branches/barrier_breaker@42376 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- target/linux/ramips/base-files/etc/diag.sh | 3 + .../base-files/etc/uci-defaults/01_leds | 4 + .../base-files/etc/uci-defaults/02_network | 6 + target/linux/ramips/base-files/lib/ramips.sh | 3 + .../ramips/base-files/lib/upgrade/platform.sh | 1 + target/linux/ramips/dts/VOCORE.dts | 217 ++++++++++++++++++ target/linux/ramips/image/Makefile | 3 + target/linux/ramips/rt305x/profiles/vocore.mk | 19 ++ 8 files changed, 256 insertions(+) create mode 100644 target/linux/ramips/dts/VOCORE.dts create mode 100644 target/linux/ramips/rt305x/profiles/vocore.mk diff --git a/target/linux/ramips/base-files/etc/diag.sh b/target/linux/ramips/base-files/etc/diag.sh index 6f12f28..4aac473 100755 --- a/target/linux/ramips/base-files/etc/diag.sh +++ b/target/linux/ramips/base-files/etc/diag.sh @@ -129,6 +129,9 @@ get_status_led() { v22rw-2x2) status_led="v22rw-2x2:green:security" ;; + vocore) + status_led="vocore:green:status" + ;; w306r-v20) status_led="w306r-v20:green:sys" ;; 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 77c2673..f01cb05 100755 --- a/target/linux/ramips/base-files/etc/uci-defaults/01_leds +++ b/target/linux/ramips/base-files/etc/uci-defaults/01_leds @@ -154,6 +154,10 @@ case $board in v11st-fe) set_wifi_led "rt2800pci-phy0::radio" ;; + vocore) + ucidef_set_led_netdev "eth" "ETH" "vocore:orange:eth" "eth0" + set_wifi_led "vocore:green:status" + ;; w306r-v20) set_wifi_led "rt2800pci-phy0::radio" ;; 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 3ebf544..66ad135 100755 --- a/target/linux/ramips/base-files/etc/uci-defaults/02_network +++ b/target/linux/ramips/base-files/etc/uci-defaults/02_network @@ -163,6 +163,12 @@ ramips_setup_interfaces() ucidef_add_switch_vlan "switch0" "2" "0t 5" ;; + vocore) + ucidef_set_interface_lan "eth0.1" + ucidef_add_switch "switch0" "1" "1" + ucidef_add_switch_vlan "switch0" "1" "0 4 6t" + ;; + wcr-150gn) ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2" ucidef_add_switch "switch0" "1" "1" diff --git a/target/linux/ramips/base-files/lib/ramips.sh b/target/linux/ramips/base-files/lib/ramips.sh index d2a3d9f..d7b5540 100755 --- a/target/linux/ramips/base-files/lib/ramips.sh +++ b/target/linux/ramips/base-files/lib/ramips.sh @@ -238,6 +238,9 @@ ramips_board_detect() { *"V22RW-2X2") name="v22rw-2x2" ;; + *"VoCore") + name="vocore" + ;; *"W502U") name="w502u" ;; diff --git a/target/linux/ramips/base-files/lib/upgrade/platform.sh b/target/linux/ramips/base-files/lib/upgrade/platform.sh index 22b72a1..407c218 100755 --- a/target/linux/ramips/base-files/lib/upgrade/platform.sh +++ b/target/linux/ramips/base-files/lib/upgrade/platform.sh @@ -81,6 +81,7 @@ platform_check_image() { w502u |\ wr6202 |\ v22rw-2x2 | \ + vocore | \ wl341v3 | \ wl-330n | \ wl-330n3g | \ diff --git a/target/linux/ramips/dts/VOCORE.dts b/target/linux/ramips/dts/VOCORE.dts new file mode 100644 index 0000000..e5df9ab --- /dev/null +++ b/target/linux/ramips/dts/VOCORE.dts @@ -0,0 +1,217 @@ +/dts-v1/; + +/include/ "rt5350.dtsi" + +/ { + compatible = "VoCore", "ralink,rt5350-soc"; + model = "VoCore"; + + palmbus@10000000 { + gpio1: gpio@660 { + status = "okay"; + }; + + i2c@900 { + status = "okay"; + }; + + spi@b00 { + status = "okay"; + + m25p80@0 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "s25fl064k"; + reg = <0 0>; + linux,modalias = "m25p80", "s25fl064k"; + spi-max-frequency = <10000000>; + + partition@0 { + label = "uboot"; + reg = <0x0 0x30000>; + read_only; + }; + + partition@30000 { + label = "uboot-env"; + reg = <0x30000 0x10000>; + read-only; + }; + + factory: partition@40000 { + label = "factory"; + reg = <0x40000 0x10000>; + read-only; + }; + + partition@50000 { + label = "firmware"; + reg = <0x50000 0x7b0000>; + }; + }; + }; + }; + + pinctrl { + state_default: pinctrl0 { + gpio { + ralink,group = "jtag", "uartf", "led", "spi_cs1"; + ralink,function = "gpio"; + }; + }; + }; + + ethernet@10100000 { + mtd-mac-address = <&factory 0x4>; + }; + + esw@10110000 { + ralink,portmap = <0x17>; + }; + + wmac@10180000 { + ralink,mtd-eeprom = <&factory 0>; + }; + + ehci@101c0000 { + status = "okay"; + }; + + ohci@101c1000 { + status = "okay"; + }; + + gpio-export { + compatible = "gpio-export"; + #size-cells = <0>; + + gpio0 { + gpio-export,name = "gpio0"; + gpio-export,direction_may_change = <1>; + gpios = <&gpio0 0 0>; + }; + + /* UARTF */ + gpio7 { + /* UARTF_RTS_N */ + gpio-export,name = "gpio7"; + gpio-export,direction_may_change = <1>; + gpios = <&gpio0 7 0>; + }; + gpio8 { + /* UARTF_TXD */ + gpio-export,name = "gpio8"; + gpio-export,direction_may_change = <1>; + gpios = <&gpio0 8 0>; + }; + gpio9 { + /* UARTF_CTS_N */ + gpio-export,name = "gpio9"; + gpio-export,direction_may_change = <1>; + gpios = <&gpio0 9 0>; + }; + gpio12 { + /* UARTF_DCD_N */ + gpio-export,name = "gpio12"; + gpio-export,direction_may_change = <1>; + gpios = <&gpio0 12 0>; + }; + gpio13 { + /* UARTF_DSR_N */ + gpio-export,name = "gpio13"; + gpio-export,direction_may_change = <1>; + gpios = <&gpio0 13 0>; + }; + gpio14 { + /* UARTF_RIN */ + gpio-export,name = "gpio14"; + gpio-export,direction_may_change = <1>; + gpios = <&gpio0 14 0>; + }; + + /* JTAG */ + gpio17 { + /* JTAG_TDO */ + gpio-export,name = "gpio17"; + gpio-export,direction_may_change = <1>; + gpios = <&gpio0 17 0>; + }; + gpio18 { + /* JTAG_TDI */ + gpio-export,name = "gpio18"; + gpio-export,direction_may_change = <1>; + gpios = <&gpio0 18 0>; + }; + gpio19 { + /* JTAG_TMS */ + gpio-export,name = "gpio19"; + gpio-export,direction_may_change = <1>; + gpios = <&gpio0 19 0>; + }; + gpio20 { + /* JTAG_TCLK */ + gpio-export,name = "gpio20"; + gpio-export,direction_may_change = <1>; + gpios = <&gpio0 20 0>; + }; + gpio21 { + /* JTAG_TRST_N */ + gpio-export,name = "gpio21"; + gpio-export,direction_may_change = <1>; + gpios = <&gpio0 21 0>; + }; + + /* ETH LEDs */ + gpio22 { + /* ETH0_LED */ + gpio-export,name = "gpio22"; + gpio-export,direction_may_change = <1>; + gpios = <&gpio1 0 0>; + }; + gpio23 { + /* ETH1_LED */ + gpio-export,name = "gpio23"; + gpio-export,direction_may_change = <1>; + gpios = <&gpio1 1 0>; + }; + gpio24 { + /* ETH2_LED */ + gpio-export,name = "gpio24"; + gpio-export,direction_may_change = <1>; + gpios = <&gpio1 2 0>; + }; + gpio25 { + /* ETH3_LED */ + gpio-export,name = "gpio25"; + gpio-export,direction_may_change = <1>; + gpios = <&gpio1 3 0>; + }; + gpio26 { + /* ETH4_LED */ + gpio-export,name = "gpio26"; + gpio-export,direction_may_change = <1>; + gpios = <&gpio1 4 0>; + }; + + /* SPI_CS1 */ + gpio27 { + gpio-export,name = "gpio27"; + gpio-export,direction_may_change = <1>; + gpios = <&gpio1 5 0>; + }; + }; + + gpio-leds { + compatible = "gpio-leds"; + status { + /* UARTF_RXD */ + label = "vocore:green:status"; + gpios = <&gpio0 10 0>; + }; + eth { + /* UARTF_DTR_N */ + label = "vocore:orange:eth"; + gpios = <&gpio0 11 0>; + }; + }; +}; diff --git a/target/linux/ramips/image/Makefile b/target/linux/ramips/image/Makefile index 053dbdd..2de3328 100644 --- a/target/linux/ramips/image/Makefile +++ b/target/linux/ramips/image/Makefile @@ -476,6 +476,8 @@ Image/Build/Profile/SL-R7205=$(call BuildFirmware/Default4M/$(1),$(1),sl-r7205,S Image/Build/Profile/V22RW-2X2=$(call BuildFirmware/Default4M/$(1),$(1),v22rw-2x2,V22RW-2X2) +Image/Build/Profile/VOCORE=$(call BuildFirmware/Default8M/$(1),$(1),vocore,VOCORE) + Image/Build/Profile/W150M=$(call BuildFirmware/CustomFlashFactory/$(1),$(1),w150m,W150M,$(ralink_default_fw_size_4M),W150M Kernel Image,factory) Image/Build/Profile/W306R_V20=$(call BuildFirmware/CustomFlashFactory/$(1),$(1),w306r-v20,W306R_V20,$(ralink_default_fw_size_4M),linkn Kernel Image,factory) @@ -617,6 +619,7 @@ define Image/Build/Profile/Default $(call Image/Build/Profile/SL-R7205,$(1)) $(call Image/Build/Profile/UR-326N4G,$(1)) $(call Image/Build/Profile/V22RW-2X2,$(1)) + $(call Image/Build/Profile/VOCORE,$(1)) $(call Image/Build/Profile/W150M,$(1)) $(call Image/Build/Profile/W306R_V20,$(1)) $(call Image/Build/Profile/W502U,$(1)) diff --git a/target/linux/ramips/rt305x/profiles/vocore.mk b/target/linux/ramips/rt305x/profiles/vocore.mk new file mode 100644 index 0000000..11fb634 --- /dev/null +++ b/target/linux/ramips/rt305x/profiles/vocore.mk @@ -0,0 +1,19 @@ +# +# Copyright (C) 2014 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +define Profile/VOCORE + NAME:=VoCore + PACKAGES:=\ + kmod-usb-core kmod-usb-ohci kmod-usb2 \ + kmod-i2c-core kmod-i2c-ralink +endef + +define Profile/VOCORE/Description + Package set for VoCore board +endef + +$(eval $(call Profile,VOCORE))