X-Git-Url: http://git.ozo.com/?a=blobdiff_plain;f=target%2Flinux%2Far71xx%2Ffiles%2Farch%2Fmips%2Far71xx%2Fmach-tl-wr741nd.c;h=859ef6afdbbd4cdf3a1eedd2a6b7e8b0bbd505c1;hb=4fea26d57c7977bd2514473970ab33e95f0b7046;hp=cbf77484968b3090f984a90019f7d4b8c8ff7d51;hpb=3507828a2c65c118066dbe4498461751ba53443c;p=openwrt-10.03%2F.git diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-wr741nd.c b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-wr741nd.c index cbf774849..859ef6afd 100644 --- a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-wr741nd.c +++ b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-wr741nd.c @@ -8,12 +8,12 @@ * by the Free Software Foundation. */ +#include #include #include #include -#include -#include #include +#include #include @@ -21,6 +21,7 @@ #include #include "devices.h" +#include "dev-m25p80.h" #define TL_WR741ND_GPIO_LED_QSS 0 #define TL_WR741ND_GPIO_LED_SYSTEM 1 @@ -65,16 +66,6 @@ static struct flash_platform_data tl_wr741nd_flash_data = { #endif }; -static struct spi_board_info tl_wr741nd_spi_info[] = { - { - .bus_num = 0, - .chip_select = 0, - .max_speed_hz = 25000000, - .modalias = "m25p80", - .platform_data = &tl_wr741nd_flash_data, - } -}; - static struct gpio_led tl_wr741nd_leds_gpio[] __initdata = { { .name = "tl-wr741nd:green:system", @@ -105,6 +96,7 @@ static struct gpio_button tl_wr741nd_gpio_buttons[] __initdata = { } }; +#ifdef CONFIG_PCI static struct ar71xx_pci_irq tl_wr741nd_pci_irqs[] __initdata = { { .slot = 0, @@ -113,6 +105,29 @@ static struct ar71xx_pci_irq tl_wr741nd_pci_irqs[] __initdata = { } }; +static struct ath9k_platform_data tl_wr741nd_wmac_data; + +static int tl_wr741nd_pci_plat_dev_init(struct pci_dev *dev) +{ + dev->dev.platform_data = &tl_wr741nd_wmac_data; + return 0; +} + +static void tl_wr741nd_pci_init(void) +{ + u8 *ee = (u8 *) KSEG1ADDR(0x1fff1000); + + memcpy(tl_wr741nd_wmac_data.eeprom_data, ee, + sizeof(tl_wr741nd_wmac_data.eeprom_data)); + + ar71xx_pci_plat_dev_init = tl_wr741nd_pci_plat_dev_init; + + ar71xx_pci_init(ARRAY_SIZE(tl_wr741nd_pci_irqs), tl_wr741nd_pci_irqs); +} +#else +static inline void tl_wr741nd_pci_init(void) { }; +#endif /* CONFIG_PCI */ + static void __init tl_wr741nd_setup(void) { u8 *mac = (u8 *) KSEG1ADDR(0x1f01fc00); @@ -125,18 +140,23 @@ static void __init tl_wr741nd_setup(void) ar71xx_eth0_data.phy_mask = 0x0; ar71xx_eth0_data.speed = SPEED_100; ar71xx_eth0_data.duplex = DUPLEX_FULL; + ar71xx_eth0_data.fifo_cfg1 = 0x0fff0000; + ar71xx_eth0_data.fifo_cfg2 = 0x00001fff; + ar71xx_eth0_data.fifo_cfg3 = 0x008001ff; /* LAN ports */ ar71xx_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_RMII; ar71xx_eth1_data.phy_mask = 0x0; ar71xx_eth1_data.speed = SPEED_1000; ar71xx_eth1_data.duplex = DUPLEX_FULL; + ar71xx_eth1_data.fifo_cfg1 = 0x0fff0000; + ar71xx_eth1_data.fifo_cfg2 = 0x00001fff; + ar71xx_eth1_data.fifo_cfg3 = 0x008001ff; ar71xx_add_device_eth(1); ar71xx_add_device_eth(0); - ar71xx_add_device_spi(NULL, tl_wr741nd_spi_info, - ARRAY_SIZE(tl_wr741nd_spi_info)); + ar71xx_add_device_m25p80(&tl_wr741nd_flash_data); ar71xx_add_device_leds_gpio(-1, ARRAY_SIZE(tl_wr741nd_leds_gpio), tl_wr741nd_leds_gpio); @@ -145,6 +165,6 @@ static void __init tl_wr741nd_setup(void) ARRAY_SIZE(tl_wr741nd_gpio_buttons), tl_wr741nd_gpio_buttons); - ar71xx_pci_init(ARRAY_SIZE(tl_wr741nd_pci_irqs), tl_wr741nd_pci_irqs); + tl_wr741nd_pci_init(); } MIPS_MACHINE(AR71XX_MACH_TL_WR741ND, "TP-LINK TL-WR741ND", tl_wr741nd_setup);