Ralink RT3052F, 4MB flash, 32MB ram, one USB 2.0, two buttons 
and seven leds.
Factory image should be used to flash from original firmware.

Signed-off-by: Cezary Jackiewicz <cezary.jackiew...@gmail.com>
---

Index: target/linux/ramips/files/arch/mips/include/asm/mach-ralink/machine.h
===================================================================
--- target/linux/ramips/files/arch/mips/include/asm/mach-ralink/machine.h       
(wersja 35062)
+++ target/linux/ramips/files/arch/mips/include/asm/mach-ralink/machine.h       
(kopia robocza)
@@ -37,6 +37,7 @@
        RAMIPS_MACH_WL_330N3G,          /* Asus WL-330N3G */
 
        /* RT3052 based machines */
+       RAMIPS_MACH_3G300M,             /* Tenda 3G300M */
        RAMIPS_MACH_ALL0239_3G,         /* ALL0239-3G */
        RAMIPS_MACH_ARGUS_ATP52B,       /* Argus ATP-52B */
        RAMIPS_MACH_BC2,                /* NexAira BC2 */
Index: target/linux/ramips/files/arch/mips/ralink/rt305x/Kconfig
===================================================================
--- target/linux/ramips/files/arch/mips/ralink/rt305x/Kconfig   (wersja 35062)
+++ target/linux/ramips/files/arch/mips/ralink/rt305x/Kconfig   (kopia robocza)
@@ -12,6 +12,11 @@
        select RALINK_DEV_GPIO_BUTTONS
        select RALINK_DEV_GPIO_LEDS
 
+config RT305X_MACH_3G300M
+       bool "Tenda 3G300M board support"
+       select RALINK_DEV_GPIO_BUTTONS
+       select RALINK_DEV_GPIO_LEDS
+
 config RT305X_MACH_WR6202
        bool "Accton WR6202"
        select RALINK_DEV_GPIO_BUTTONS
Index: target/linux/ramips/files/arch/mips/ralink/rt305x/mach-3g300m.c
===================================================================
--- target/linux/ramips/files/arch/mips/ralink/rt305x/mach-3g300m.c     (wersja 
0)
+++ target/linux/ramips/files/arch/mips/ralink/rt305x/mach-3g300m.c     (kopia 
robocza)
@@ -0,0 +1,126 @@
+/*
+ *  Tenda 3G300M board support
+ *
+ *  Copyright (C) 2013 Cezary Jackiewicz <cezary.jackiew...@gmail.com>
+ *
+ *  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 <linux/init.h>
+#include <linux/platform_device.h>
+#include <linux/spi/spi.h>
+#include <linux/spi/flash.h>
+#include <linux/gpio.h>
+
+#include <asm/mach-ralink/machine.h>
+#include <asm/mach-ralink/dev-gpio-buttons.h>
+#include <asm/mach-ralink/dev-gpio-leds.h>
+#include <asm/mach-ralink/rt305x.h>
+#include <asm/mach-ralink/rt305x_regs.h>
+
+#include "devices.h"
+
+#define TENDA_3G300M_GPIO_BUTTON_RESET         0
+#define TENDA_3G300M_GPIO_BUTTON_MODE          10
+
+#define TENDA_3G300M_GPIO_LED_3GROUTER         11
+#define TENDA_3G300M_GPIO_LED_AP               12
+#define TENDA_3G300M_GPIO_LED_WISPROUTER       9
+#define TENDA_3G300M_GPIO_LED_WIRELESSROUTER   13
+#define TENDA_3G300M_GPIO_LED_3G               7
+#define TENDA_3G300M_GPIO_LED_WPSRESET         14
+
+#define TENDA_3G300M_KEYS_POLL_INTERVAL        20
+#define TENDA_3G300M_KEYS_DEBOUNCE_INTERVAL    (3 * 
TENDA_3G300M_KEYS_POLL_INTERVAL)
+
+const struct flash_platform_data tenda_3g300m_flash = {
+       .type           = "mx25l3205d",
+};
+
+struct spi_board_info tenda_3g300m_spi_slave_info[] __initdata = {
+       {
+               .modalias       = "m25p80",
+               .platform_data  = &tenda_3g300m_flash,
+               .irq            = -1,
+               .max_speed_hz   = 10000000,
+               .bus_num        = 0,
+               .chip_select    = 0,
+       }
+};
+
+static struct gpio_led tenda_3g300m_leds_gpio[] __initdata = {
+        {
+               .name           = "tenda:blue:3grouter",
+               .gpio           = TENDA_3G300M_GPIO_LED_3GROUTER,
+               .active_low     = 1,
+       },{
+               .name           = "tenda:blue:ap",
+               .gpio           = TENDA_3G300M_GPIO_LED_AP,
+               .active_low     = 1,
+       },{
+               .name           = "tenda:blue:wisprouter",
+               .gpio           = TENDA_3G300M_GPIO_LED_WISPROUTER,
+               .active_low     = 1,
+       },{
+               .name           = "tenda:blue:wirelessrouter",
+               .gpio           = TENDA_3G300M_GPIO_LED_WIRELESSROUTER,
+               .active_low     = 1,
+       },{
+               .name           = "tenda:blue:3g",
+               .gpio           = TENDA_3G300M_GPIO_LED_3G,
+               .active_low     = 1,
+       },{
+               .name           = "tenda:blue:wpsreset",
+               .gpio           = TENDA_3G300M_GPIO_LED_WPSRESET,
+               .active_low     = 1,
+       }
+};
+
+static struct gpio_keys_button tenda_3g300m_gpio_buttons[] __initdata = {
+       {
+               .desc           = "reset",
+               .type           = EV_KEY,
+               .code           = KEY_RESTART,
+               .debounce_interval = TENDA_3G300M_KEYS_DEBOUNCE_INTERVAL,
+               .gpio           = TENDA_3G300M_GPIO_BUTTON_RESET,
+               .active_low     = 1,
+       },{
+               .desc           = "mode",
+               .type           = EV_KEY,
+               .code           = BTN_0,
+               .debounce_interval = TENDA_3G300M_KEYS_DEBOUNCE_INTERVAL,
+               .gpio           = TENDA_3G300M_GPIO_BUTTON_MODE,
+               .active_low     = 1,
+       }
+};
+
+static void __init tenda_3g300m_init(void)
+{
+       rt305x_gpio_init((RT305X_GPIO_MODE_GPIO <<
+                        RT305X_GPIO_MODE_UART0_SHIFT) |
+                        RT305X_GPIO_MODE_JTAG);
+
+       rt305x_register_spi(tenda_3g300m_spi_slave_info,
+                       ARRAY_SIZE(tenda_3g300m_spi_slave_info));
+
+       ramips_register_gpio_leds(-1, ARRAY_SIZE(tenda_3g300m_leds_gpio),
+                       tenda_3g300m_leds_gpio);
+
+       ramips_register_gpio_buttons(-1, TENDA_3G300M_KEYS_POLL_INTERVAL,
+                       ARRAY_SIZE(tenda_3g300m_gpio_buttons),
+                       tenda_3g300m_gpio_buttons);
+
+       rt305x_esw_data.vlan_config = RT305X_ESW_VLAN_CONFIG_LLLLW;
+       rt305x_register_ethernet();
+
+       rt305x_register_wifi();
+
+       rt305x_register_wdt();
+
+       rt305x_register_usb();
+}
+
+MIPS_MACHINE(RAMIPS_MACH_3G300M, "3G300M", "Tenda 3G300M",
+               tenda_3g300m_init);
Index: target/linux/ramips/files/arch/mips/ralink/rt305x/Makefile
===================================================================
--- target/linux/ramips/files/arch/mips/ralink/rt305x/Makefile  (wersja 35062)
+++ target/linux/ramips/files/arch/mips/ralink/rt305x/Makefile  (kopia robocza)
@@ -12,6 +12,7 @@
 obj-$(CONFIG_EARLY_PRINTK)             += early_printk.o
 
 obj-$(CONFIG_RT305X_MACH_3G_6200N)     += mach-3g-6200n.o
+obj-$(CONFIG_RT305X_MACH_3G300M)       += mach-3g300m.o
 obj-$(CONFIG_RT305X_MACH_ARGUS_ATP52B) += mach-argus-atp52b.o
 obj-$(CONFIG_RT305X_MACH_BC2)          += mach-bc2.o
 obj-$(CONFIG_RT305X_MACH_AIR3GII)      += mach-air3gii.o
Index: target/linux/ramips/rt305x/config-3.6
===================================================================
--- target/linux/ramips/rt305x/config-3.6       (wersja 35062)
+++ target/linux/ramips/rt305x/config-3.6       (kopia robocza)
@@ -93,6 +93,7 @@
 # CONFIG_RALINK_RT3883 is not set
 CONFIG_RAMIPS_WDT=y
 CONFIG_RT305X_MACH_3G_6200N=y
+CONFIG_RT305X_MACH_3G300M=y
 CONFIG_RT305X_MACH_AIR3GII=y
 CONFIG_RT305X_MACH_ALL0256N=y
 CONFIG_RT305X_MACH_ALL5002=y
Index: target/linux/ramips/rt305x/config-3.7
===================================================================
--- target/linux/ramips/rt305x/config-3.7       (wersja 35062)
+++ target/linux/ramips/rt305x/config-3.7       (kopia robocza)
@@ -103,6 +103,7 @@
 # CONFIG_RALINK_RT3883 is not set
 CONFIG_RAMIPS_WDT=y
 CONFIG_RT305X_MACH_3G_6200N=y
+CONFIG_RT305X_MACH_3G300M=y
 CONFIG_RT305X_MACH_AIR3GII=y
 CONFIG_RT305X_MACH_ALL0256N=y
 CONFIG_RT305X_MACH_ALL5002=y
Index: target/linux/ramips/rt305x/profiles/tenda.mk
===================================================================
--- target/linux/ramips/rt305x/profiles/tenda.mk        (wersja 35062)
+++ target/linux/ramips/rt305x/profiles/tenda.mk        (kopia robocza)
@@ -5,6 +5,19 @@
 # See /LICENSE for more information.
 #
 
+define Profile/3G300M
+       NAME:=Tenda 3G300M
+       PACKAGES:=\
+               kmod-usb-core kmod-usb-rt305x-dwc_otg \
+               kmod-ledtrig-usbdev
+endef
+
+define Profile/3G300M/Description
+       Package set for Tenda 3G300M board
+endef
+
+$(eval $(call Profile,3G300M))
+
 define Profile/W306R_V20
        NAME:=Tenda W306R V2.0
        PACKAGES:=
Index: target/linux/ramips/base-files/lib/upgrade/platform.sh
===================================================================
--- target/linux/ramips/base-files/lib/upgrade/platform.sh      (wersja 35062)
+++ target/linux/ramips/base-files/lib/upgrade/platform.sh      (kopia robocza)
@@ -15,6 +15,7 @@
 
        case "$board" in
        3g-6200n | \
+       3g300m | \
        air3gii | \
        all0239-3g | \
        all0256n | \
Index: target/linux/ramips/base-files/lib/preinit/06_set_iface_mac
===================================================================
--- target/linux/ramips/base-files/lib/preinit/06_set_iface_mac (wersja 35062)
+++ target/linux/ramips/base-files/lib/preinit/06_set_iface_mac (kopia robocza)
@@ -9,6 +9,7 @@
 
        case $(ramips_board_name) in
        3g-6200n |\
+       3g300m | \
        mzk-w300nh2 |\
        wl-330n |\
        wl-330n3g)
Index: target/linux/ramips/base-files/lib/ramips.sh
===================================================================
--- target/linux/ramips/base-files/lib/ramips.sh        (wersja 35062)
+++ target/linux/ramips/base-files/lib/ramips.sh        (kopia robocza)
@@ -182,6 +185,9 @@
        *"Sitecom WL-351 v1 002")
                name="wl-351"
                ;;
+       *"Tenda 3G300M")
+               name="3g300m"
+               ;;
        *"Tenda W306R V2.0")
                name="w306r-v20"
                ;;
Index: target/linux/ramips/base-files/etc/diag.sh
===================================================================
--- target/linux/ramips/base-files/etc/diag.sh  (wersja 35062)
+++ target/linux/ramips/base-files/etc/diag.sh  (kopia robocza)
@@ -33,6 +33,9 @@
        3g-6200n)
                status_led="edimax:green:power"
                ;;
+       3g300m)
+               status_led="tenda:blue:ap"
+               ;;
        argus-atp52b)
                status_led="argus-atp52b:green:run"
                ;;
Index: target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom
===================================================================
--- target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom      
(wersja 35062)
+++ target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom      
(kopia robocza)
@@ -52,6 +52,7 @@
                ;;
 
        3g-6200n | \
+       3g300m | \
        air3gii | \
        all0239-3g | \
        all0256n | \
Index: target/linux/ramips/base-files/etc/uci-defaults/leds
===================================================================
--- target/linux/ramips/base-files/etc/uci-defaults/leds        (wersja 35062)
+++ target/linux/ramips/base-files/etc/uci-defaults/leds        (kopia robocza)
@@ -18,6 +18,9 @@
                set_wifi_led "edimax:amber:wlan"
                set_usb_led "edimax:blue:3g"
                ;;
+       3g300m)
+               set_usb_led "tenda:blue:3g"
+               ;;
        air3gii)
                set_wifi_led "airlive:green:wlan"
                set_usb_led "airlive:green:mobile"
Index: target/linux/ramips/base-files/etc/uci-defaults/network
===================================================================
--- target/linux/ramips/base-files/etc/uci-defaults/network     (wersja 35062)
+++ target/linux/ramips/base-files/etc/uci-defaults/network     (kopia robocza)
@@ -42,6 +42,7 @@
        ucidef_set_interface_loopback
 
        case $board in
+       3g300m | \
        all0256n | \
        all5002 | \
        broadway)
@@ -148,6 +149,7 @@
                lan_mac=$(ramips_get_mac_binary factory 40)
                ;;
        3g-6200n | \
+       3g300m | \
        air3gii | \
        argus-atp52b | \
        bc2 | \
Index: target/linux/ramips/image/Makefile
===================================================================
--- target/linux/ramips/image/Makefile  (wersja 35062)
+++ target/linux/ramips/image/Makefile  (kopia robocza)
@@ -146,6 +146,16 @@
        $(call BuildFirmware/Generic,$(1),$(2),$(call mkcmdline,$(3),$(4),$(5)) 
$(call mkmtd/$(6),$(mtdlayout_edimax_3g6200n)),917504,2818048)
 endef
 
+define BuildFirmware/3G300M
+       $(call BuildFirmware/Generic,$(1),$(2),$(call mkcmdline,$(3),$(4),$(5)) 
$(call mkmtd/$(6),$(mtdlayout_4M)),917504,2949120)
+       mkimage -A mips -O linux -T kernel -C lzma $(call kernel_entry) \
+               -n "3G150M_SPI Kernel Image" \
+               -d "$(KDIR)/vmlinux-$(2).bin.lzma" \
+               "$(KDIR)/vmlinux-$(2).uImage"
+       $(call 
CatFiles,$(KDIR)/vmlinux-$(2).uImage,917504,$(KDIR)/root.$(1),2949120,$(call 
imgname,$(1),$(2))-factory.bin)
+endef
+
+
 
mtdlayout_allnet_all5002=192k(u-boot)ro,64k(u-boot-env)ro,64k(factory)ro,1024k(kernel),31424k(rootfs),32448k@0x50000(firmware)
 define BuildFirmware/ALL5002
        $(call BuildFirmware/Generic,$(1),$(2),$(call mkcmdline,$(3),$(4),$(5)) 
$(call mkmtd/$(6),$(mtdlayout_allnet_all5002)),1048576,32178176)
@@ -481,6 +491,10 @@
        $(call 
Image/Build/Template/$(fs_squash)/$(1),3G6200N,3g-6200n,3G-6200N,ttyS1,57600,phys)
 endef
 
+define Image/Build/Profile/3G300M
+       $(call 
Image/Build/Template/$(fs_squash)/$(1),3G300M,3g300m,3G300M,ttyS1,57600,spi)
+endef
+
 define Image/Build/Profile/AIR3GII
        $(call 
Image/Build/Template/$(fs_squash)/$(1),GENERIC_4M,air3gii,AIR3GII,ttyS1,57600,spi)
 endef
@@ -652,6 +670,7 @@
 ifeq ($(CONFIG_RALINK_RT305X),y)
 define Image/Build/Profile/Default
        $(call Image/Build/Profile/3G6200N,$(1))
+       $(call Image/Build/Profile/3G300M,$(1))
        $(call Image/Build/Profile/AIR3GII,$(1))
        $(call Image/Build/Profile/ALL02393G,$(1))
        $(call Image/Build/Profile/ALL0256N,$(1))


-- 
Pozdrawiam,
 Cezary Jackiewicz
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to