X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/1bd851b509d3a9236fb236fa6c4a861b53465540..ce72e8dfb54204f8b09a33a4c5346c91a55238e6:/target/linux/ramips/files/arch/mips/ralink/rt305x/mach-dir-300-revb.c diff --git a/target/linux/ramips/files/arch/mips/ralink/rt305x/mach-dir-300-revb.c b/target/linux/ramips/files/arch/mips/ralink/rt305x/mach-dir-300-revb.c index 93d28a5b2..c0167bc03 100644 --- a/target/linux/ramips/files/arch/mips/ralink/rt305x/mach-dir-300-revb.c +++ b/target/linux/ramips/files/arch/mips/ralink/rt305x/mach-dir-300-revb.c @@ -1,7 +1,7 @@ /* * D-Link DIR-300 rev B board support * - * Copyright (C) 2009 Gabor Juhos + * Copyright (C) 2009-2010 Gabor Juhos * * 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 @@ -13,10 +13,10 @@ #include #include #include -#include #include -#include +#include +#include #include #include @@ -29,6 +29,8 @@ #define DIR_300B_GPIO_BUTTON_WPS 0 /* active low */ #define DIR_300B_GPIO_BUTTON_RESET 10 /* active low */ +#define DIR_300B_BUTTONS_POLL_INTERVAL 20 + #ifdef CONFIG_MTD_PARTITIONS static struct mtd_partition dir_300b_partitions[] = { { @@ -49,15 +51,15 @@ static struct mtd_partition dir_300b_partitions[] = { }, { .name = "kernel", .offset = 0x050000, - .size = 0x090000, + .size = 0x0d0000, }, { .name = "rootfs", - .offset = 0x140000, - .size = 0x2B0000, + .offset = 0x120000, + .size = 0x2e0000, }, { - .name = "openwrt", + .name = "firmware", .offset = 0x050000, - .size = 0x3a0000, + .size = 0x3b0000, } }; #endif /* CONFIG_MTD_PARTITIONS */ @@ -71,20 +73,38 @@ static struct physmap_flash_data dir_300b_flash_data = { static struct gpio_led dir_300b_leds_gpio[] __initdata = { { - .name = "dir-300b:amber:status", + .name = "d-link:amber:status", .gpio = DIR_300B_GPIO_LED_STATUS_AMBER, .active_low = 1, }, { - .name = "dir-300b:green:status", + .name = "d-link:green:status", .gpio = DIR_300B_GPIO_LED_STATUS_GREEN, .active_low = 1, }, { - .name = "dir-300b:blue:wps", + .name = "d-link:blue:wps", .gpio = DIR_300B_GPIO_LED_WPS, .active_low = 1, } }; +static struct gpio_button dir_300b_gpio_buttons[] __initdata = { + { + .desc = "reset", + .type = EV_KEY, + .code = KEY_RESTART, + .threshold = 3, + .gpio = DIR_300B_GPIO_BUTTON_RESET, + .active_low = 1, + }, { + .desc = "wps", + .type = EV_KEY, + .code = KEY_WPS_BUTTON, + .threshold = 3, + .gpio = DIR_300B_GPIO_BUTTON_WPS, + .active_low = 1, + } +}; + static void __init dir_300b_init(void) { rt305x_gpio_init(RT305X_GPIO_MODE_GPIO << RT305X_GPIO_MODE_UART0_SHIFT); @@ -93,7 +113,12 @@ static void __init dir_300b_init(void) rt305x_register_ethernet(); ramips_register_gpio_leds(-1, ARRAY_SIZE(dir_300b_leds_gpio), dir_300b_leds_gpio); + ramips_register_gpio_buttons(-1, DIR_300B_BUTTONS_POLL_INTERVAL, + ARRAY_SIZE(dir_300b_gpio_buttons), + dir_300b_gpio_buttons); + rt305x_register_wifi(); + rt305x_register_wdt(); } -MIPS_MACHINE(RAMIPS_MACH_DIR_300_REVB, "DIR-300-revB", "D-Link DIR-300 revB", +MIPS_MACHINE(RAMIPS_MACH_DIR_300_B1, "DIR-300-B1", "D-Link DIR-300 B1", dir_300b_init);