X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fsvn-archive%2Farchive.git;a=blobdiff_plain;f=target%2Flinux%2Far71xx%2Ffiles%2Farch%2Fmips%2Far71xx%2Fmach-ap83.c;h=bcd2faeb5f926c18295a9b1834441d546e712df7;hp=c88f68a41fdfa47a77ce82d73e9618935ddd8315;hb=c1e8a5560a250f85411438381a27b98af7c9c3d4;hpb=b9c60070ad6975bcec918a83305c8bf8a72fcf0c diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-ap83.c b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-ap83.c index c88f68a41f..bcd2faeb5f 100644 --- a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-ap83.c +++ b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-ap83.c @@ -11,18 +11,21 @@ #include #include -#include #include #include -#include #include #include #include -#include #include +#include +#include "machtype.h" #include "devices.h" +#include "dev-ar9xxx-wmac.h" +#include "dev-gpio-buttons.h" +#include "dev-leds-gpio.h" +#include "dev-usb.h" #define AP83_GPIO_LED_WLAN 6 #define AP83_GPIO_LED_POWER 14 @@ -35,6 +38,9 @@ #define AP83_050_GPIO_VSC7385_MOSI 16 #define AP83_050_GPIO_VSC7385_SCK 17 +#define AP83_KEYS_POLL_INTERVAL 20 /* msecs */ +#define AP83_KEYS_DEBOUNCE_INTERVAL (3 * AP83_KEYS_POLL_INTERVAL) + #ifdef CONFIG_MTD_PARTITIONS static struct mtd_partition ap83_flash_partitions[] = { { @@ -42,25 +48,25 @@ static struct mtd_partition ap83_flash_partitions[] = { .offset = 0, .size = 0x040000, .mask_flags = MTD_WRITEABLE, - } , { + }, { .name = "u-boot-env", .offset = 0x040000, .size = 0x020000, .mask_flags = MTD_WRITEABLE, - } , { + }, { .name = "kernel", .offset = 0x060000, .size = 0x140000, - } , { + }, { .name = "rootfs", .offset = 0x1a0000, .size = 0x650000, - } , { + }, { .name = "art", .offset = 0x7f0000, .size = 0x010000, .mask_flags = MTD_WRITEABLE, - } , { + }, { .name = "firmware", .offset = 0x060000, .size = 0x790000, @@ -71,8 +77,8 @@ static struct mtd_partition ap83_flash_partitions[] = { static struct ar91xx_flash_platform_data ap83_flash_data = { .width = 2, #ifdef CONFIG_MTD_PARTITIONS - .parts = ap83_flash_partitions, - .nr_parts = ARRAY_SIZE(ap83_flash_partitions), + .parts = ap83_flash_partitions, + .nr_parts = ARRAY_SIZE(ap83_flash_partitions), #endif }; @@ -110,19 +116,19 @@ static struct gpio_led ap83_leds_gpio[] __initdata = { }, }; -static struct gpio_button ap83_gpio_buttons[] __initdata = { +static struct gpio_keys_button ap83_gpio_keys[] __initdata = { { .desc = "soft_reset", .type = EV_KEY, - .code = BTN_0, - .threshold = 5, + .code = KEY_RESTART, + .debounce_interval = AP83_KEYS_DEBOUNCE_INTERVAL, .gpio = AP83_GPIO_BTN_RESET, .active_low = 1, - } , { + }, { .desc = "jumpstart", .type = EV_KEY, - .code = BTN_1, - .threshold = 5, + .code = KEY_WPS_BUTTON, + .debounce_interval = AP83_KEYS_DEBOUNCE_INTERVAL, .gpio = AP83_GPIO_BTN_JUMPSTART, .active_low = 1, } @@ -169,6 +175,11 @@ static void ap83_vsc7385_reset(void) static struct vsc7385_platform_data ap83_vsc7385_data = { .reset = ap83_vsc7385_reset, .ucode_name = "vsc7385_ucode_ap83.bin", + .mac_cfg = { + .tx_ipg = 6, + .bit2 = 0, + .clk_sel = 3, + }, }; static struct spi_board_info ap83_spi_info[] = { @@ -184,19 +195,18 @@ static struct spi_board_info ap83_spi_info[] = { static void __init ap83_generic_setup(void) { - u8 *mac = (u8 *) KSEG1ADDR(0x1fff1000); - - ar71xx_set_mac_base(mac); + u8 *eeprom = (u8 *) KSEG1ADDR(0x1fff1000); ar71xx_add_device_mdio(0xfffffffe); + ar71xx_init_mac(ar71xx_eth0_data.mac_addr, eeprom, 0); ar71xx_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_RGMII; ar71xx_eth0_data.phy_mask = 0x1; ar71xx_add_device_eth(0); + ar71xx_init_mac(ar71xx_eth1_data.mac_addr, eeprom, 1); ar71xx_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_RGMII; - ar71xx_eth1_data.phy_mask = 0x0; ar71xx_eth1_data.speed = SPEED_1000; ar71xx_eth1_data.duplex = DUPLEX_FULL; @@ -207,12 +217,13 @@ static void __init ap83_generic_setup(void) ar71xx_add_device_leds_gpio(-1, ARRAY_SIZE(ap83_leds_gpio), ap83_leds_gpio); - ar71xx_add_device_gpio_buttons(-1, 20, ARRAY_SIZE(ap83_gpio_buttons), - ap83_gpio_buttons); + ar71xx_register_gpio_keys_polled(-1, AP83_KEYS_POLL_INTERVAL, + ARRAY_SIZE(ap83_gpio_keys), + ap83_gpio_keys); ar71xx_add_device_usb(); - ar91xx_add_device_wmac(); + ar9xxx_add_device_wmac(eeprom, NULL); platform_device_register(&ap83_flash_device); @@ -221,7 +232,7 @@ static void __init ap83_generic_setup(void) static void __init ap83_040_setup(void) { - ar71xx_flash_lock_enable(); + ap83_flash_data.is_shared = 1; ap83_generic_setup(); platform_device_register(&ap83_040_spi_device); } @@ -253,4 +264,4 @@ static void __init ap83_setup(void) } } -MIPS_MACHINE(AR71XX_MACH_AP83, "Atheros AP83", ap83_setup); +MIPS_MACHINE(AR71XX_MACH_AP83, "AP83", "Atheros AP83", ap83_setup);