--- a/arch/mips/ath79/mach-ubnt-xm.c +++ b/arch/mips/ath79/mach-ubnt-xm.c @@ -642,3 +642,59 @@ static void __init ubnt_airgateway_setup MIPS_MACHINE(ATH79_MACH_UBNT_AIRGW, "UBNT-AGW", "Ubiquiti AirGateway", ubnt_airgateway_setup); +static struct gpio_led ubnt_airgateway_pro_gpio_leds[] __initdata = { + { + .name = "ubnt:blue:wlan", + .gpio = 13, + }, { + .name = "ubnt:white:status", + .gpio = 17, + }, +}; + + +static struct gpio_keys_button airgateway_pro_gpio_keys[] __initdata = { + { + .desc = "reset", + .type = EV_KEY, + .code = KEY_RESTART, + .debounce_interval = UBNT_XM_KEYS_DEBOUNCE_INTERVAL, + .gpio = 12, + .active_low = 1, + } +}; + +static void __init ubnt_airgateway_pro_setup(void) +{ + u8 *eeprom = (u8 *) KSEG1ADDR(0x1fff0000); + u8 *mac0 = (u8 *) KSEG1ADDR(0x1fff0000); + + ath79_register_m25p80(NULL); + ath79_register_leds_gpio(-1, ARRAY_SIZE(ubnt_airgateway_pro_gpio_leds), + ubnt_airgateway_pro_gpio_leds); + + ath79_register_gpio_keys_polled(-1, UBNT_XM_KEYS_POLL_INTERVAL, + ARRAY_SIZE(airgateway_pro_gpio_keys), + airgateway_pro_gpio_keys); + + ath79_register_wmac(eeprom + UAP_PRO_WMAC_CALDATA_OFFSET, NULL); + ap91_pci_init(eeprom + UAP_PRO_PCI_CALDATA_OFFSET, NULL); + + + ath79_setup_ar934x_eth_cfg(AR934X_ETH_CFG_SW_ONLY_MODE); + + ath79_register_mdio(1, 0x0); + + /* GMAC0 is left unused in this configuration */ + + /* GMAC1 is connected to MAC0 on the internal switch */ + /* The PoE/WAN port connects to port 5 on the internal switch */ + /* The LAN port connects to port 4 on the internal switch */ + ath79_init_mac(ath79_eth1_data.mac_addr, mac0, 0); + ath79_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_GMII; + ath79_register_eth(1); + +} + +MIPS_MACHINE(ATH79_MACH_UBNT_AIRGWP, "UBNT-AGWP", "Ubiquiti AirGateway Pro", + ubnt_airgateway_pro_setup);