add feature gpio
[lede.git] / target / linux / ramips / files / arch / mips / ralink / rt305x / mach-f5d8235-v2.c
index 6a400424c67cca8544cd9f288df2bc7cd05433fb..073fc75a6eab3802e1523b48905884af6dfe3bd6 100644 (file)
 
 #include <linux/init.h>
 #include <linux/platform_device.h>
-#include <linux/mtd/mtd.h>
-#include <linux/mtd/partitions.h>
-#include <linux/mtd/physmap.h>
 
-#include <linux/rtl8366rb.h>
+#include <linux/rtl8366.h>
 
 #include <asm/mach-ralink/machine.h>
 #include <asm/mach-ralink/dev-gpio-buttons.h>
 #define F5D8235_V2_GPIO_LED_SECURITY_AMBER     12
 
 static struct gpio_led f5d8235v2_leds_gpio[] __initdata = {
-        {
-                .name           = "f5d8235v2:blue:internet",
-                .gpio           = F5D8235_V2_GPIO_LED_INTERNET_BLUE,
-                .active_low     = 1,
-        }, {
-                .name           = "f5d8235v2:amber:internet",
-                .gpio           = F5D8235_V2_GPIO_LED_INTERNET_AMBER,
-                .active_low     = 1,
-        }, {
-                .name           = "f5d8235v2:blue:modem",
-                .gpio           = F5D8235_V2_GPIO_LED_MODEM_BLUE,
-                .active_low     = 1,
-        }, {
-                .name           = "f5d8235v2:amber:modem",
-                .gpio           = F5D8235_V2_GPIO_LED_MODEM_AMBER,
-                .active_low     = 1,
-        }, {
-                .name           = "f5d8235v2:blue:router",
-                .gpio           = F5D8235_V2_GPIO_LED_ROUTER,
-                .active_low     = 1,
-        }, {
-                .name           = "f5d8235v2:blue:storage",
-                .gpio           = F5D8235_V2_GPIO_LED_STORAGE_BLUE,
-                .active_low     = 1,
-        }, {
-                .name           = "f5d8235v2:amber:storage",
-                .gpio           = F5D8235_V2_GPIO_LED_STORAGE_AMBER,
-                .active_low     = 1,
-        }, {
-                .name           = "f5d8235v2:blue:security",
-                .gpio           = F5D8235_V2_GPIO_LED_SECURITY_BLUE,
-                .active_low     = 1,
-        }, {
-                .name           = "f5d8235v2:amber:security",
-                .gpio           = F5D8235_V2_GPIO_LED_SECURITY_AMBER,
-                .active_low     = 1,
-        }
-};
-
-#ifdef CONFIG_MTD_PARTITIONS
-static struct mtd_partition f5d8235v2_partitions[] = {
        {
-               .name   = "u-boot",
-               .offset = 0,
-               .size   = 0x050000,
-               .mask_flags = MTD_WRITEABLE,
+               .name           = "f5d8235v2:blue:internet",
+               .gpio           = F5D8235_V2_GPIO_LED_INTERNET_BLUE,
+               .active_low     = 1,
+       }, {
+               .name           = "f5d8235v2:amber:internet",
+               .gpio           = F5D8235_V2_GPIO_LED_INTERNET_AMBER,
+               .active_low     = 1,
+       }, {
+               .name           = "f5d8235v2:blue:modem",
+               .gpio           = F5D8235_V2_GPIO_LED_MODEM_BLUE,
+               .active_low     = 1,
+       }, {
+               .name           = "f5d8235v2:amber:modem",
+               .gpio           = F5D8235_V2_GPIO_LED_MODEM_AMBER,
+               .active_low     = 1,
+       }, {
+               .name           = "f5d8235v2:blue:router",
+               .gpio           = F5D8235_V2_GPIO_LED_ROUTER,
+               .active_low     = 1,
        }, {
-               .name   = "kernel and rootfs",
-               .offset = 0x050000,
-               .size   = 0x790000,
+               .name           = "f5d8235v2:blue:storage",
+               .gpio           = F5D8235_V2_GPIO_LED_STORAGE_BLUE,
+               .active_low     = 1,
        }, {
-               .name   = "rootfs",
-               .offset = 0x1D0000,
-               .size   = 0x610000,
+               .name           = "f5d8235v2:amber:storage",
+               .gpio           = F5D8235_V2_GPIO_LED_STORAGE_AMBER,
+               .active_low     = 1,
        }, {
-               .name   = "nvram",
-               .offset = 0x7E0000,
-               .size   = 0x010000,
+               .name           = "f5d8235v2:blue:security",
+               .gpio           = F5D8235_V2_GPIO_LED_SECURITY_BLUE,
+               .active_low     = 1,
        }, {
-               .name   = "factory",
-               .offset = 0x7F0000,
-               .size   = 0x010000,
+               .name           = "f5d8235v2:amber:security",
+               .gpio           = F5D8235_V2_GPIO_LED_SECURITY_AMBER,
+               .active_low     = 1,
        }
 };
-#endif /* CONFIG_MTD_PARTITIONS */
 
-static struct physmap_flash_data f5d8235v2_flash_data = {
-#ifdef CONFIG_MTD_PARTITIONS
-       .nr_parts       = ARRAY_SIZE(f5d8235v2_partitions),
-       .parts          = f5d8235v2_partitions,
-#endif
-};
-
-
-static struct rtl8366rb_platform_data f5d8235v2_switch_data = {
-       .gpio_sda        = RT305X_GPIO_I2C_SD,
-       .gpio_sck        = RT305X_GPIO_I2C_SCLK,
+static struct rtl8366_platform_data f5d8235v2_switch_data = {
+       .gpio_sda       = RT305X_GPIO_I2C_SD,
+       .gpio_sck       = RT305X_GPIO_I2C_SCLK,
 };
 
 static struct platform_device f5d8235v2_switch = {
-        .name           = RTL8366RB_DRIVER_NAME,
+       .name           = RTL8366RB_DRIVER_NAME,
        .id             = -1,
-        .dev           = {
-           .platform_data = &f5d8235v2_switch_data,
-        }
+       .dev            = {
+               .platform_data = &f5d8235v2_switch_data,
+       }
 };
 
 static void __init f5d8235v2_init(void)
@@ -129,12 +91,17 @@ static void __init f5d8235v2_init(void)
                                        RT305X_GPIO_MODE_I2C |
                                        RT305X_GPIO_MODE_SPI |
                                        RT305X_GPIO_MODE_MDIO);
-       rt305x_register_flash(0, &f5d8235v2_flash_data);
+
+       rt305x_register_flash(0);
+
        ramips_register_gpio_leds(-1, ARRAY_SIZE(f5d8235v2_leds_gpio),
                                                f5d8235v2_leds_gpio);
+       rt305x_esw_data.vlan_config = RT305X_ESW_VLAN_CONFIG_NONE;
        rt305x_register_ethernet();
        platform_device_register(&f5d8235v2_switch);
        rt305x_register_wifi();
+       rt305x_register_wdt();
+       rt305x_register_usb();
 }
 
 MIPS_MACHINE(RAMIPS_MACH_F5D8235_V2, "F5D8235_V2", "Belkin F5D8235 v2",