AA: ramips: add support for DIR-620D1
authorJo-Philipp Wich <jow@openwrt.org>
Mon, 6 May 2013 12:26:03 +0000 (12:26 +0000)
committerJo-Philipp Wich <jow@openwrt.org>
Mon, 6 May 2013 12:26:03 +0000 (12:26 +0000)
Both DIR-615H1 and DIR-620D1 are ralink rt3352 based router. But DIR-620D1 have 8MB flash and USB port.

Signed-off-by: Serge Vasilugin <vasilugin@yandex.ru>
SVN-Revision: 36557

target/linux/ramips/base-files/etc/diag.sh
target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom
target/linux/ramips/base-files/etc/uci-defaults/leds
target/linux/ramips/base-files/etc/uci-defaults/network
target/linux/ramips/base-files/lib/preinit/06_set_iface_mac
target/linux/ramips/base-files/lib/ramips.sh
target/linux/ramips/base-files/lib/upgrade/platform.sh
target/linux/ramips/files/arch/mips/include/asm/mach-ralink/machine.h
target/linux/ramips/files/arch/mips/ralink/rt305x/mach-dir-615-h1.c
target/linux/ramips/image/Makefile

index b963b8a6d279bb2b13f143ec95eff7480e71f095..395ed6f452e32157391fb63b00b2ae578bd366d4 100755 (executable)
@@ -36,7 +36,7 @@ get_status_led() {
        argus-atp52b)
                status_led="argus-atp52b:green:run"
                ;;
-       dir-300-b1 | dir-600-b1 | dir-600-b2 | dir-615-h1 | dir-615-d | dir-620-a1)
+       dir-300-b1 | dir-600-b1 | dir-600-b2 | dir-615-h1 | dir-615-d | dir-620-a1 | dir-620-d1)
                status_led="d-link:green:status"
                ;;
        dir-645)
index 3ec4bff687217c67943c8b1ca236bea0c7057cfc..28e9301c03c362c4af034e59ccb0d5209c2098d9 100644 (file)
@@ -62,6 +62,7 @@ case "$FIRMWARE" in
        carambola | \
        dir-615-h1 | \
        dir-620-a1 | \
+       dir-620-d1 | \
        esr-9753 | \
        fonera20n | \
        freestation5 | \
index 81d9c44ea83faf2192eea09be999ca26529e55b3..8f2a92be84a25f4a998d273b1a8e8aa7d9845d75 100755 (executable)
@@ -41,6 +41,9 @@ case $board in
                ucidef_set_led_default "status" "Status LED (amber)" "d-link:amber:status" "0"
                set_wifi_led "rt2800pci-phy0::radio"
                ;;
+       dir-620-d1)
+               set_wifi_led "d-link:green:wifi"
+               ;;
        esr-9753)
                set_wifi_led "rt2800pci-phy0::radio"
                ;;
index 1f3fd632c8bdc76f263159cf28ff1e68737b39ef..cf9c0bb9b2bb5bf1025232818a1bfe221b8a6e05 100755 (executable)
@@ -141,6 +141,7 @@ ramips_setup_macs()
        3g-6200n | \
        argus-atp52b | \
        bc2 | \
+       dir-620-d1 |\
        f5d8235-v1 | \
        nw718 | \
        psr-680w | \
index 20b9a959697c83d51f4feb11718a436659442a6f..b959479e4ad6aea0a4e872be1bb69fb50c9989b7 100644 (file)
@@ -9,6 +9,7 @@ preinit_set_mac_address() {
 
        case $(ramips_board_name) in
        3g-6200n |\
+       dir-620-d1 |\
        wl-330n |\
        wl-330n3g)
                mac=$(ramips_get_mac_binary factory 4)
index f9b874f8b9dfadc22814c0ebfd10899ffc30e6cc..25a120552a4c91b01a50d1ee4f5002b941f19e75 100755 (executable)
@@ -89,6 +89,9 @@ ramips_board_name() {
        *"DIR-620 A1")
                name="dir-620-a1"
                ;;
+       *"DIR-620 D1")
+               name="dir-620-d1"
+               ;;
        *"DIR-615 H1")
                name="dir-615-h1"
                ;;
index 0b53d7e7c6f1c019a4e56184cf3f36b30575fd82..25dbe6e6fefeb3c287238e84fd51fbd9556c76d1 100755 (executable)
@@ -26,6 +26,7 @@ platform_check_image() {
        dir-615-h1 | \
        dir-615-d | \
        dir-620-a1 | \
+       dir-620-d1 | \
        dap-1350 | \
        esr-9753 | \
        fonera20n | \
index 8f99ce10b3c9b74fe8993ebae41db8071b365cbd..83d2e2621df74a78736df492276cc3809fe53bfa 100644 (file)
@@ -66,6 +66,7 @@ enum ramips_mach_type {
        /* RT3352 based machines */
        RAMIPS_MACH_ALL5002,            /* Allnet ALL5002 */
        RAMIPS_MACH_DIR_615_H1,
+       RAMIPS_MACH_DIR_620_D1,
 
        /* RT3662 based machines */
        RAMIPS_MACH_DIR_645,            /* D-Link DIR-645 */
index dbfe4aa92f910c19cdaca288096301d0743f256b..33d53a93818a105d949705dda20cc47630ea89cb 100644 (file)
@@ -110,3 +110,70 @@ static void __init dir615h1_init(void)
 
 MIPS_MACHINE(RAMIPS_MACH_DIR_615_H1, "DIR-615-H1", "D-Link DIR-615 H1",
             dir615h1_init);
+
+#define DIR_620_D1_GPIO_LED_STATUS_GREEN 9
+#define DIR_620_D1_GPIO_LED_WIFI_GREEN 17
+#define DIR_620_D1_GPIO_BUTTON_WPS     7  /* active low */
+
+#define DIR_620_D1_KEYS_POLL_INTERVAL  20
+#define DIR_620_D1_KEYS_DEBOUNCE_INTERVAL (3 * DIR_620_D1_KEYS_POLL_INTERVAL)
+
+static struct gpio_led dir_620_d1_leds_gpio[] __initdata = {
+       {
+               .name           = "d-link:green:status",
+               .gpio           = DIR_620_D1_GPIO_LED_STATUS_GREEN,
+               .active_low     = 1,
+       }, {
+               .name           = "d-link:green:wifi",
+               .gpio           = DIR_620_D1_GPIO_LED_WIFI_GREEN,
+               .active_low     = 1,
+       }
+};
+
+static struct gpio_keys_button dir_620_d1_gpio_buttons[] __initdata = {
+       {
+               .desc           = "wps",
+               .type           = EV_KEY,
+               .code           = KEY_RESTART,
+               .debounce_interval = DIR_615_H1_KEYS_DEBOUNCE_INTERVAL,
+               .gpio           = DIR_620_D1_GPIO_BUTTON_WPS,
+               .active_low     = 1,
+       }
+};
+
+const struct flash_platform_data dir620d1_flash = {
+       .type           = "mx25l6405d",
+};
+
+struct spi_board_info dir620d1_spi_slave_info[] __initdata = {
+       {
+               .modalias       = "m25p80",
+               .platform_data  = &dir620d1_flash,
+               .irq            = -1,
+               .max_speed_hz   = 10000000,
+               .bus_num        = 0,
+               .chip_select    = 0,
+       },
+};
+
+static void __init dir620d1_init(void)
+{
+       rt305x_gpio_init( (RT305X_GPIO_MODE_GPIO << RT305X_GPIO_MODE_UART0_SHIFT) |
+                          RT305X_GPIO_MODE_JTAG
+                       );
+       rt305x_register_spi(dir620d1_spi_slave_info,
+                           ARRAY_SIZE(dir620d1_spi_slave_info));
+       rt305x_esw_data.vlan_config = RT305X_ESW_VLAN_CONFIG_LLLLW;
+       rt305x_register_ethernet();
+       ramips_register_gpio_leds(-1, ARRAY_SIZE(dir_620_d1_leds_gpio),
+                                 dir_620_d1_leds_gpio);
+       ramips_register_gpio_buttons(-1, DIR_620_D1_KEYS_POLL_INTERVAL,
+                                    ARRAY_SIZE(dir_620_d1_gpio_buttons),
+                                    dir_620_d1_gpio_buttons);
+       rt305x_register_wifi();
+       rt305x_register_wdt();
+       rt305x_register_usb();
+}
+
+MIPS_MACHINE(RAMIPS_MACH_DIR_620_D1, "DIR-620-D1", "D-Link DIR-620 D1",
+            dir620d1_init);
index 71caa1010e30315bdbcc462d0079998caa49d492..3c0024b98f742b5be63b55472cfc0382473381af 100644 (file)
@@ -231,6 +231,10 @@ define BuildFirmware/DIR620A1
        $(call BuildFirmware/Generic,$(1),$(2),$(call mkcmdline,$(3),ttyS1,57600) $(call mkmtd/phys,$(mtdlayout_dir620a1)),$(kernel_size_dir620a1),$(rootfs_size_dir620a1),DIR_620)
 endef
 
+define BuildFirmware/DIR620D1
+       $(call BuildFirmware/Generic,$(1),$(2),$(call mkcmdline,$(3),ttyS1,57600) $(call mkmtd/spi,$(mtdlayout_dir620a1)),$(kernel_size_dir620a1),$(rootfs_size_dir620a1),DIR_620D1)
+endef
+
 define BuildFirmware/DIR620A1/initramfs
        $(call BuildFirmware/Generic/initramfs,$(1),$(2),$(call mkcmdline,$(3),ttyS1,57600) $(call mkmtd/phys,$(mtdlayout_dir620a1)),$(kernel_size_dir620a1),$(rootfs_size_dir620a1))
 endef
@@ -470,7 +474,8 @@ define Image/Build/Profile/DIR300B1
 endef
 
 define Image/Build/Profile/DIR615H1
-        $(call Image/Build/Template/$(fs_squash)/$(1),DIR615H1,dir-615-h1,DIR-615-H1,ttyS1,57600,spi)
+       $(call Image/Build/Template/$(fs_squash)/$(1),DIR615H1,dir-615-h1,DIR-615-H1,ttyS1,57600,spi)
+       $(call Image/Build/Template/$(fs_squash)/$(1),DIR620D1,dir-620-d1,DIR-620-D1,ttyS1,57600,spi)
 endef
 
 define Image/Build/Profile/DAP1350