ar71xx: merge changes from 3.10 that were forgotten for 3.14
[openwrt/svn-archive/archive.git] / target / linux / ar71xx / patches-3.14 / 616-MIPS-ath79-ubnt-xw.patch
index ed2fd246ef4898e9d2db304047a22b531b85991a..5e3d4d4000fbae4895305b332e4c3646671155b8 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/ath79/mach-ubnt-xm.c
 +++ b/arch/mips/ath79/mach-ubnt-xm.c
-@@ -332,3 +332,60 @@ static void __init ubnt_uap_pro_setup(vo
+@@ -332,3 +332,78 @@ static void __init ubnt_uap_pro_setup(vo
  MIPS_MACHINE(ATH79_MACH_UBNT_UAP_PRO, "UAP-PRO", "Ubiquiti UniFi AP Pro",
             ubnt_uap_pro_setup);
  
@@ -29,7 +29,7 @@
 +      },
 +};
 +
-+static void __init ubnt_nano_m_xw_setup(void)
++static void __init ubnt_xw_init(void)
 +{
 +      u8 *eeprom = (u8 *) KSEG1ADDR(0x1fff0000);
 +
 +      ath79_register_wmac(eeprom + UAP_PRO_WMAC_CALDATA_OFFSET, NULL);
 +      ap91_pci_init(eeprom + UAP_PRO_PCI_CALDATA_OFFSET, NULL);
 +
-+      ath79_register_mdio(0, ~(BIT(0) | BIT(1) | BIT(5)));
 +
 +      ath79_setup_ar934x_eth_cfg(AR934X_ETH_CFG_MII_GMAC0 | AR934X_ETH_CFG_MII_GMAC0_SLAVE);
 +      ath79_init_mac(ath79_eth0_data.mac_addr,
 +                     eeprom + UAP_PRO_MAC0_OFFSET, 0);
 +
-+      /* GMAC0 is connected to an AR8326 switch */
 +      ath79_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_MII;
++      ath79_eth0_data.mii_bus_dev = &ath79_mdio0_device.dev;
++}
++
++static void __init ubnt_nano_m_xw_setup(void)
++{
++      ubnt_xw_init();
++
++      /* GMAC0 is connected to an AR8326 switch */
++      ath79_register_mdio(0, ~(BIT(0) | BIT(1) | BIT(5)));
 +      ath79_eth0_data.phy_mask = (BIT(0) | BIT(1) | BIT(5));
 +      ath79_eth0_data.speed = SPEED_100;
 +      ath79_eth0_data.duplex = DUPLEX_FULL;
-+      ath79_eth0_data.mii_bus_dev = &ath79_mdio0_device.dev;
++      ath79_register_eth(0);
++}
++
++static void __init ubnt_loco_m_xw_setup(void)
++{
++      ubnt_xw_init();
++
++      ath79_register_mdio(0, ~BIT(1));
++      ath79_eth0_data.phy_mask = BIT(1);
 +      ath79_register_eth(0);
 +}
 +
 +MIPS_MACHINE(ATH79_MACH_UBNT_NANO_M_XW, "UBNT-NM-XW", "Ubiquiti Nanostation M XW",
 +           ubnt_nano_m_xw_setup);
++
++MIPS_MACHINE(ATH79_MACH_UBNT_LOCO_M_XW, "UBNT-LOCO-XW", "Ubiquiti Loco M XW",
++           ubnt_loco_m_xw_setup);
 --- a/arch/mips/ath79/machtypes.h
 +++ b/arch/mips/ath79/machtypes.h
-@@ -124,6 +124,7 @@ enum ath79_mach_type {
+@@ -121,9 +121,11 @@ enum ath79_mach_type {
+       ATH79_MACH_TL_WR941ND,          /* TP-LINK TL-WR941ND */
+       ATH79_MACH_UBNT_AIRROUTER,      /* Ubiquiti AirRouter */
+       ATH79_MACH_UBNT_BULLET_M,       /* Ubiquiti Bullet M */
++      ATH79_MACH_UBNT_LOCO_M_XW,      /* Ubiquiti Loco M XW */
        ATH79_MACH_UBNT_LSSR71,         /* Ubiquiti LS-SR71 */
        ATH79_MACH_UBNT_LSX,            /* Ubiquiti LSX */
        ATH79_MACH_UBNT_NANO_M,         /* Ubiquiti NanoStation M */