static void __init tl_wr741nd_setup(void) { u8 *mac = (u8 *) KSEG1ADDR(0x1f01fc00); u8 *ee = (u8 *) KSEG1ADDR(0x1fff1000); ar71xx_add_device_m25p80(&tl_wr741nd_flash_data); ar71xx_gpio_function_disable(AR724X_GPIO_FUNC_ETH_SWITCH_LED0_EN | AR724X_GPIO_FUNC_ETH_SWITCH_LED1_EN | AR724X_GPIO_FUNC_ETH_SWITCH_LED2_EN | AR724X_GPIO_FUNC_ETH_SWITCH_LED3_EN | AR724X_GPIO_FUNC_ETH_SWITCH_LED4_EN); ar71xx_add_device_leds_gpio(-1, ARRAY_SIZE(tl_wr741nd_leds_gpio), tl_wr741nd_leds_gpio); ar71xx_register_gpio_keys_polled(-1, TL_WR741ND_KEYS_POLL_INTERVAL, ARRAY_SIZE(tl_wr741nd_gpio_keys), tl_wr741nd_gpio_keys); ar71xx_init_mac(ar71xx_eth0_data.mac_addr, mac, 1); ar71xx_init_mac(ar71xx_eth1_data.mac_addr, mac, -1); ar71xx_add_device_mdio(0, 0x0); /* LAN ports */ ar71xx_add_device_eth(1); /* WAN port */ ar71xx_add_device_eth(0); ap91_pci_setup_wmac_led_pin(1); ap91_pci_init(ee, mac); }
static void __init whrhpg300n_setup(void) { u8 *ee = (u8 *) KSEG1ADDR(0x1fff1000); u8 *mac = (u8 *) KSEG1ADDR(ee + WHRHPG300N_MAC_OFFSET); ar71xx_add_device_m25p80(&whrhpg300n_flash_data); ar71xx_add_device_leds_gpio(-1, ARRAY_SIZE(whrhpg300n_leds_gpio), whrhpg300n_leds_gpio); ar71xx_register_gpio_keys_polled(-1, WHRHPG300N_KEYS_POLL_INTERVAL, ARRAY_SIZE(whrhpg300n_gpio_keys), whrhpg300n_gpio_keys); ar71xx_init_mac(ar71xx_eth0_data.mac_addr, mac, 0); ar71xx_init_mac(ar71xx_eth1_data.mac_addr, mac, 1); ar71xx_add_device_mdio(0, 0x0); /* LAN ports */ ar71xx_add_device_eth(1); /* WAN port */ ar71xx_add_device_eth(0); ap91_pci_setup_wmac_led_pin(1); ap91_pci_init(ee, mac); }
static void __init ezbox_tl_wr740n_v4_setup(void) { const char *nvram = (char *) KSEG1ADDR(EZBOX_TL_WR740N_V4_NVRAM_ADDR); const char *ubootenv = (char *) KSEG1ADDR(EZBOX_TL_WR740N_V4_UBOOT_ENV_ADDR); u8 mac[6]; u8 *ee = (u8 *) KSEG1ADDR(0x1fff1000); /* enable power for the USB port */ gpio_request(EZBOX_TL_WR740N_V4_GPIO_USB_POWER, "USB power"); gpio_direction_output(EZBOX_TL_WR740N_V4_GPIO_USB_POWER, 1); ar71xx_add_device_m25p80(&ezbox_tl_wr740n_v4_flash_data); ar71xx_add_device_leds_gpio(-1, ARRAY_SIZE(ezbox_tl_wr740n_v4_leds_gpio), ezbox_tl_wr740n_v4_leds_gpio); ar71xx_register_gpio_keys_polled(-1, EZBOX_TL_WR740N_V4_KEYS_POLL_INTERVAL, ARRAY_SIZE(ezbox_tl_wr740n_v4_gpio_keys), ezbox_tl_wr740n_v4_gpio_keys); ar71xx_eth1_data.has_ar7240_switch = 1; if (nvram_parse_mac_addr(nvram, EZBOX_TL_WR740N_V4_NVRAM_SIZE, "lan_hwaddr=", mac) == 0) { ar71xx_init_mac(ar71xx_eth0_data.mac_addr, mac, 0); ar71xx_init_mac(ar71xx_eth1_data.mac_addr, mac, 1); } else if (ubootenv_parse_mac_addr(ubootenv, EZBOX_TL_WR740N_V4_UBOOT_ENV_SIZE, "ethaddr=", mac) == 0) { ar71xx_init_mac(ar71xx_eth0_data.mac_addr, mac, 0); ar71xx_init_mac(ar71xx_eth1_data.mac_addr, mac, 1); } else { memcpy(mac, (u8 *) KSEG1ADDR(0x1f01fc00), sizeof(mac)); ar71xx_init_mac(ar71xx_eth0_data.mac_addr, mac, 0); ar71xx_init_mac(ar71xx_eth1_data.mac_addr, mac, 1); } /* WAN port */ ar71xx_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_RMII; ar71xx_eth0_data.speed = SPEED_100; ar71xx_eth0_data.duplex = DUPLEX_FULL; /* LAN ports */ ar71xx_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_RMII; ar71xx_eth1_data.speed = SPEED_1000; ar71xx_eth1_data.duplex = DUPLEX_FULL; ar71xx_add_device_mdio(0x0); ar71xx_add_device_eth(1); ar71xx_add_device_eth(0); ar71xx_add_device_usb(); ap91_pci_setup_wmac_led_pin(1); ap91_pci_init(ee, mac); }
static void __init tl_mr3420_setup(void) { tl_mr3x20_setup(); ap91_pci_setup_wmac_led_pin(0); }