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 wrt160nl_setup(void) { const char *nvram = (char *) KSEG1ADDR(WRT160NL_NVRAM_ADDR); u8 *eeprom = (u8 *) KSEG1ADDR(0x1fff1000); u8 mac[6]; if (nvram_parse_mac_addr(nvram, WRT160NL_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); } ar71xx_add_device_mdio(0x0); ar71xx_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_RMII; ar71xx_eth0_data.phy_mask = 0x01; ar71xx_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_RMII; ar71xx_eth1_data.phy_mask = 0x10; ar71xx_add_device_eth(0); ar71xx_add_device_eth(1); ar71xx_add_device_m25p80(&wrt160nl_flash_data); ar71xx_add_device_usb(); if (nvram_parse_mac_addr(nvram, WRT160NL_NVRAM_SIZE, "wl0_hwaddr=", mac) == 0) ar9xxx_add_device_wmac(eeprom, mac); else ar9xxx_add_device_wmac(eeprom, NULL); ar71xx_add_device_leds_gpio(-1, ARRAY_SIZE(wrt160nl_leds_gpio), wrt160nl_leds_gpio); ar71xx_register_gpio_keys_polled(-1, WRT160NL_KEYS_POLL_INTERVAL, ARRAY_SIZE(wrt160nl_gpio_keys), wrt160nl_gpio_keys); }
static void __init dir_600_a1_setup(void) { const char *nvram = (char *) KSEG1ADDR(DIR_600_A1_NVRAM_ADDR); u8 *ee = (u8 *) KSEG1ADDR(0x1fff1000); u8 mac_buff[6]; u8 *mac = NULL; if (nvram_parse_mac_addr(nvram, DIR_600_A1_NVRAM_SIZE, "lan_mac=", mac_buff) == 0) mac = mac_buff; ar71xx_add_device_m25p80(&dir_600_a1_flash_data); ar71xx_add_device_leds_gpio(-1, ARRAY_SIZE(dir_600_a1_leds_gpio), dir_600_a1_leds_gpio); ar71xx_add_device_gpio_buttons(-1, DIR_600_A1_BUTTONS_POLL_INTERVAL, ARRAY_SIZE(dir_600_a1_gpio_buttons), dir_600_a1_gpio_buttons); ar71xx_eth1_data.has_ar7240_switch = 1; ar71xx_set_mac_base(mac); /* WAN port */ ar71xx_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_RMII; ar71xx_eth0_data.speed = SPEED_100; ar71xx_eth0_data.duplex = DUPLEX_FULL; ar71xx_eth0_data.phy_mask = BIT(4); /* 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); ap91_pci_init(ee, mac); }
static void __init dir_615c1_setup(void) { const char *config = (char *) KSEG1ADDR(DIR_615C1_CONFIG_ADDR); u8 *eeprom = (u8 *) KSEG1ADDR(0x1fff1000); u8 mac[6]; u8 *wlan_mac = NULL; if (nvram_parse_mac_addr(config, DIR_615C1_CONFIG_SIZE, "lan_mac=", mac) == 0) { ar71xx_set_mac_base(mac); wlan_mac = mac; } ar71xx_add_device_mdio(0x0); ar71xx_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_RMII; ar71xx_eth0_data.speed = SPEED_100; ar71xx_eth0_data.duplex = DUPLEX_FULL; ar71xx_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_RMII; ar71xx_eth1_data.phy_mask = 0x10; ar71xx_add_device_eth(0); ar71xx_add_device_eth(1); ar71xx_add_device_m25p80(&dir_615c1_flash_data); ar71xx_add_device_leds_gpio(-1, ARRAY_SIZE(dir_615c1_leds_gpio), dir_615c1_leds_gpio); ar71xx_add_device_gpio_buttons(-1, DIR_615C1_BUTTONS_POLL_INTERVAL, ARRAY_SIZE(dir_615c1_gpio_buttons), dir_615c1_gpio_buttons); ar913x_add_device_wmac(eeprom, wlan_mac); }
static void __init dir_615c1_setup(void) { const char *config = (char *) KSEG1ADDR(DIR_615C1_CONFIG_ADDR); u8 *eeprom = (u8 *) KSEG1ADDR(0x1fff1000); u8 mac[6]; u8 *wlan_mac = NULL; if (nvram_parse_mac_addr(config, DIR_615C1_CONFIG_SIZE, "lan_mac=", mac) == 0) { ar71xx_init_mac(ar71xx_eth0_data.mac_addr, mac, 0); ar71xx_init_mac(ar71xx_eth1_data.mac_addr, mac, 1); wlan_mac = mac; } ar71xx_add_device_mdio(0, DIR_615C1_MDIO_MASK); ar71xx_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_RMII; ar71xx_eth0_data.phy_mask = DIR_615C1_LAN_PHYMASK; ar71xx_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_RMII; ar71xx_eth1_data.phy_mask = DIR_615C1_WAN_PHYMASK; ar71xx_add_device_eth(0); ar71xx_add_device_eth(1); ar71xx_add_device_m25p80(&dir_615c1_flash_data); ar71xx_add_device_leds_gpio(-1, ARRAY_SIZE(dir_615c1_leds_gpio), dir_615c1_leds_gpio); ar71xx_register_gpio_keys_polled(-1, DIR_615C1_KEYS_POLL_INTERVAL, ARRAY_SIZE(dir_615c1_gpio_keys), dir_615c1_gpio_keys); ar9xxx_add_device_wmac(eeprom, wlan_mac); }
static void __init dir_600_a1_setup(void) { const char *nvram = (char *) KSEG1ADDR(DIR_600_A1_NVRAM_ADDR); u8 *ee = (u8 *) KSEG1ADDR(0x1fff1000); u8 mac_buff[6]; u8 *mac = NULL; if (nvram_parse_mac_addr(nvram, DIR_600_A1_NVRAM_SIZE, "lan_mac=", mac_buff) == 0) { ar71xx_init_mac(ar71xx_eth0_data.mac_addr, mac_buff, 0); ar71xx_init_mac(ar71xx_eth1_data.mac_addr, mac_buff, 1); mac = mac_buff; } ar71xx_add_device_m25p80(&dir_600_a1_flash_data); ar71xx_add_device_leds_gpio(-1, ARRAY_SIZE(dir_600_a1_leds_gpio), dir_600_a1_leds_gpio); ar71xx_register_gpio_keys_polled(-1, DIR_600_A1_KEYS_POLL_INTERVAL, ARRAY_SIZE(dir_600_a1_gpio_keys), dir_600_a1_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_init(ee, mac); }