static void __init ds_common_setup(void) { static u8 mac[6]; u8 *art = (u8 *) KSEG1ADDR(0x1fff0000); ath79_register_m25p80(NULL); if (ar93xx_wmac_read_mac_address(mac)) { ath79_register_wmac(NULL, NULL); } else { ath79_register_wmac(art + DS_CALDATA_OFFSET, art + DS_WMAC_MAC_OFFSET); memcpy(mac, art + DS_WMAC_MAC_OFFSET, sizeof(mac)); } mac[3] |= 0x08; ath79_init_mac(ath79_eth0_data.mac_addr, mac, 0); mac[3] &= 0xF7; ath79_init_mac(ath79_eth1_data.mac_addr, mac, 0); ath79_register_mdio(0, 0x0); /* LAN ports */ ath79_register_eth(1); /* WAN port */ ath79_register_eth(0); }
static void __init ew_dorin_setup(void) { u8 *art = (u8 *) KSEG1ADDR(0x1fff0000); static u8 mac[6]; ath79_register_m25p80(NULL); ath79_register_usb(); if (ar93xx_wmac_read_mac_address(mac)) { ath79_register_wmac(NULL, NULL); } else { ath79_register_wmac(art + DORIN_CALDATA_OFFSET, art + DORIN_WMAC_MAC_OFFSET); memcpy(mac, art + DORIN_WMAC_MAC_OFFSET, sizeof(mac)); } mac[3] |= 0x40; ath79_init_mac(ath79_eth1_data.mac_addr, mac, 0); ath79_register_mdio(0, 0x0); /* LAN ports */ ath79_register_eth(1); ath79_register_leds_gpio(-1, ARRAY_SIZE(dorin_leds_gpio), dorin_leds_gpio); ath79_register_gpio_keys_polled(-1, DORIN_KEYS_POLL_INTERVAL, ARRAY_SIZE(dorin_gpio_keys), dorin_gpio_keys); }