ramips: Add support for VoCore
authorblogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Fri, 1 Aug 2014 20:51:24 +0000 (20:51 +0000)
committerblogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Fri, 1 Aug 2014 20:51:24 +0000 (20:51 +0000)
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 <noltari@gmail.com>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@41939 3c298f89-4303-0410-b956-a3cf2f4a3e73

target/linux/ramips/base-files/etc/diag.sh
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/lib/ramips.sh
target/linux/ramips/base-files/lib/upgrade/platform.sh
target/linux/ramips/dts/VOCORE.dts [new file with mode: 0644]
target/linux/ramips/image/Makefile
target/linux/ramips/rt305x/profiles/vocore.mk [new file with mode: 0644]

index c9b7ded..b095e52 100755 (executable)
@@ -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"
                ;;
index e92a12e..d820aef 100755 (executable)
@@ -150,6 +150,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"
                ;;
index da7600c..be70698 100755 (executable)
@@ -164,6 +164,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"
index d188dd7..a6dcbca 100755 (executable)
@@ -238,6 +238,9 @@ ramips_board_detect() {
        *"V22RW-2X2")
                name="v22rw-2x2"
                ;;
+       *"VoCore")
+               name="vocore"
+               ;;
        *"W502U")
                name="w502u"
                ;;
index 4a70691..a39596d 100755 (executable)
@@ -80,6 +80,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 (file)
index 0000000..e5df9ab
--- /dev/null
@@ -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>;
+               };
+       };
+};
index c8f1a43..6dfaee5 100644 (file)
@@ -473,6 +473,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)
@@ -614,6 +616,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 (file)
index 0000000..11fb634
--- /dev/null
@@ -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))