From 1617f226a906f82ce6516e3e5a1e0909d8aa8806 Mon Sep 17 00:00:00 2001 From: Gabor Juhos Date: Wed, 29 Aug 2012 10:37:43 +0000 Subject: [PATCH] ramips: Add support for 8devices Carambola dev board. Add support for 8devices Carambola dev board. The Carambola is a small RT3050-based development board with two ethernet ports, on-board chip antenna, usb and plenty of accessible gpio ports, sold by 8devices. Signed-off-by: Tobias Diedrich SVN-Revision: 33303 --- .../etc/hotplug.d/firmware/10-rt2x00-eeprom | 1 + .../base-files/etc/uci-defaults/network | 1 + .../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 + .../mips/include/asm/mach-ralink/machine.h | 1 + .../files/arch/mips/ralink/rt305x/Kconfig | 5 +++ .../files/arch/mips/ralink/rt305x/Makefile | 1 + .../arch/mips/ralink/rt305x/mach-carambola.c | 42 +++++++++++++++++++ target/linux/ramips/image/Makefile | 5 +++ target/linux/ramips/rt305x/config-3.3 | 1 + 11 files changed, 62 insertions(+) create mode 100644 target/linux/ramips/files/arch/mips/ralink/rt305x/mach-carambola.c 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 5dadd71018..bb7f66284e 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 @@ -58,6 +58,7 @@ case "$FIRMWARE" in all5002 | \ argus-atp52b | \ bc2 | \ + carambola | \ dir-615-h1 | \ dir-620-a1 | \ esr-9753 | \ diff --git a/target/linux/ramips/base-files/etc/uci-defaults/network b/target/linux/ramips/base-files/etc/uci-defaults/network index 6542d021ee..d20b60af06 100755 --- a/target/linux/ramips/base-files/etc/uci-defaults/network +++ b/target/linux/ramips/base-files/etc/uci-defaults/network @@ -178,6 +178,7 @@ ramips_setup_macs() ;; all0239-3g | \ + carambola | \ w502u) lan_mac=$(ramips_get_mac_binary factory 40) wan_mac=$(ramips_get_mac_binary factory 46) 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 8c2b039547..591c549d14 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 @@ -37,6 +37,7 @@ preinit_set_mac_address() { all0239-3g |\ all0256n |\ all5002 |\ + carambola |\ dir-615-h1 |\ fonera20n |\ hw550-3g |\ diff --git a/target/linux/ramips/base-files/lib/ramips.sh b/target/linux/ramips/base-files/lib/ramips.sh index b07f4e9466..90c28b7ab6 100755 --- a/target/linux/ramips/base-files/lib/ramips.sh +++ b/target/linux/ramips/base-files/lib/ramips.sh @@ -47,6 +47,9 @@ ramips_board_name() { machine=$(awk 'BEGIN{FS="[ \t]+:[ \t]"} /machine/ {print $2}' /proc/cpuinfo) case "$machine" in + *"8devices Carambola") + name="carambola" + ;; *"Edimax 3g-6200n") name="3g-6200n" ;; diff --git a/target/linux/ramips/base-files/lib/upgrade/platform.sh b/target/linux/ramips/base-files/lib/upgrade/platform.sh index d7380f0297..5ebf42a85d 100755 --- a/target/linux/ramips/base-files/lib/upgrade/platform.sh +++ b/target/linux/ramips/base-files/lib/upgrade/platform.sh @@ -19,6 +19,7 @@ platform_check_image() { all0256n | \ all5002 | \ bc2 | \ + carambola | \ dir-300-b1 | \ dir-600-b1 | \ dir-600-b2 | \ diff --git a/target/linux/ramips/files/arch/mips/include/asm/mach-ralink/machine.h b/target/linux/ramips/files/arch/mips/include/asm/mach-ralink/machine.h index 89b437398e..2d5a08f386 100644 --- a/target/linux/ramips/files/arch/mips/include/asm/mach-ralink/machine.h +++ b/target/linux/ramips/files/arch/mips/include/asm/mach-ralink/machine.h @@ -23,6 +23,7 @@ enum ramips_mach_type { /* RT3050 based machines */ RAMIPS_MACH_3G_6200N, /* Edimax 3G-6200N */ RAMIPS_MACH_ALL0256N, /* Allnet ALL0256N */ + RAMIPS_MACH_CARAMBOLA, /* 8devices Carambola */ RAMIPS_MACH_DIR_300_B1, /* D-Link DIR-300 B1 */ RAMIPS_MACH_DIR_600_B1, /* D-Link DIR-600 B1 */ RAMIPS_MACH_DIR_600_B2, /* D-Link DIR-600 B2 */ diff --git a/target/linux/ramips/files/arch/mips/ralink/rt305x/Kconfig b/target/linux/ramips/files/arch/mips/ralink/rt305x/Kconfig index 5837196f6e..945639b97f 100644 --- a/target/linux/ramips/files/arch/mips/ralink/rt305x/Kconfig +++ b/target/linux/ramips/files/arch/mips/ralink/rt305x/Kconfig @@ -2,6 +2,11 @@ if RALINK_RT305X menu "Ralink RT350x machine selection" +config RT305X_MACH_CARAMBOLA + bool "8devices Carambola dev board support" + select RALINK_DEV_GPIO_BUTTONS + select RALINK_DEV_GPIO_LEDS + config RT305X_MACH_3G_6200N bool "Edimax 3G-6200N board support" select RALINK_DEV_GPIO_BUTTONS diff --git a/target/linux/ramips/files/arch/mips/ralink/rt305x/Makefile b/target/linux/ramips/files/arch/mips/ralink/rt305x/Makefile index 0dcb1f9e3d..c7c27cb740 100644 --- a/target/linux/ramips/files/arch/mips/ralink/rt305x/Makefile +++ b/target/linux/ramips/files/arch/mips/ralink/rt305x/Makefile @@ -16,6 +16,7 @@ obj-$(CONFIG_RT305X_MACH_ARGUS_ATP52B) += mach-argus-atp52b.o obj-$(CONFIG_RT305X_MACH_BC2) += mach-bc2.o obj-$(CONFIG_RT305X_MACH_ALL0256N) += mach-all0256n.o obj-$(CONFIG_RT305X_MACH_ALL5002) += mach-all5002.o +obj-$(CONFIG_RT305X_MACH_CARAMBOLA) += mach-carambola.o obj-$(CONFIG_RT305X_MACH_DIR_300_REVB) += mach-dir-300-revb.o obj-$(CONFIG_RT305X_MACH_DIR_615_H1) += mach-dir-615-h1.o obj-$(CONFIG_RT305X_MACH_DAP_1350) += mach-dap-1350.o diff --git a/target/linux/ramips/files/arch/mips/ralink/rt305x/mach-carambola.c b/target/linux/ramips/files/arch/mips/ralink/rt305x/mach-carambola.c new file mode 100644 index 0000000000..c24527a7ba --- /dev/null +++ b/target/linux/ramips/files/arch/mips/ralink/rt305x/mach-carambola.c @@ -0,0 +1,42 @@ +/* + * 8devices Carambola dev board support + * + * Copyright (C) 2012 Tobias Diedrich + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 as published + * by the Free Software Foundation. + */ + +#include +#include + +#include +#include +#include +#include +#include + +#include "devices.h" + +static void __init carambola_init(void) +{ + /* Ugh, inverted logic... + * This actually puts the pins into GPIO mode rather I2C, SPI, ... */ + rt305x_gpio_init(RT305X_GPIO_MODE_UART0(RT305X_GPIO_MODE_GPIO) | + RT305X_GPIO_MODE_I2C | + RT305X_GPIO_MODE_SPI | + RT305X_GPIO_MODE_JTAG | + RT305X_GPIO_MODE_MDIO); + + rt305x_register_flash(0); + + rt305x_esw_data.vlan_config = RT305X_ESW_VLAN_CONFIG_NONE; + rt305x_register_ethernet(); + rt305x_register_wifi(); + rt305x_register_wdt(); + rt305x_register_usb(); +} + +MIPS_MACHINE(RAMIPS_MACH_CARAMBOLA, "CARAMBOLA", "8devices Carambola", + carambola_init); diff --git a/target/linux/ramips/image/Makefile b/target/linux/ramips/image/Makefile index e43b501ee4..d1204f3e29 100644 --- a/target/linux/ramips/image/Makefile +++ b/target/linux/ramips/image/Makefile @@ -403,6 +403,10 @@ define Image/Build/Profile/BC2 $(call Image/Build/Template/$(fs_squash)/$(1),GENERIC_8M,bc2,BC2,ttyS1,57600,phys) endef +define Image/Build/Profile/CARAMBOLA + $(call Image/Build/Template/$(fs_squash)/$(1),GENERIC_8M,carambola,CARAMBOLA,ttyS1,115200,phys) +endef + define Image/Build/Profile/DIR300B1 $(call Image/Build/Template/$(fs_squash)/$(1),DIR300B1,dir-300-b1,DIR-300-B1,wrgn23_dlwbr_dir300b) $(call Image/Build/Template/$(fs_squash)/$(1),DIR300B1,dir-600-b1,DIR-600-B1,wrgn23_dlwbr_dir600b) @@ -538,6 +542,7 @@ define Image/Build/Profile/Default $(call Image/Build/Profile/ALL5002,$(1)) $(call Image/Build/Profile/ARGUS_ATP52B,$(1)) $(call Image/Build/Profile/BC2,$(1)) + $(call Image/Build/Profile/CARAMBOLA,$(1)) $(call Image/Build/Profile/DIR300B1,$(1)) $(call Image/Build/Profile/DIR615H1,$(1)) $(call Image/Build/Profile/DAP1350,$(1)) diff --git a/target/linux/ramips/rt305x/config-3.3 b/target/linux/ramips/rt305x/config-3.3 index 409bdbbbee..1e067fbddf 100644 --- a/target/linux/ramips/rt305x/config-3.3 +++ b/target/linux/ramips/rt305x/config-3.3 @@ -92,6 +92,7 @@ CONFIG_RT305X_MACH_ALL0256N=y CONFIG_RT305X_MACH_ALL5002=y CONFIG_RT305X_MACH_ARGUS_ATP52B=y CONFIG_RT305X_MACH_BC2=y +CONFIG_RT305X_MACH_CARAMBOLA=y CONFIG_RT305X_MACH_DIR_300_REVB=y CONFIG_RT305X_MACH_DIR_615_H1=y CONFIG_RT305X_MACH_DAP_1350=y -- 2.25.1