Message ID | 20180117132314.15786-1-arne@nerdkeller.org |
---|---|
State | Changes Requested |
Delegated to: | John Crispin |
Headers | show |
Series | [LEDE-DEV,v2] ar71xx: add support for Ubiquiti Litebeam M5 | expand |
On 17/01/18 14:23, Arne Zachlod wrote: > Specification: > - SoC: Atheros AR9342 > - Flash: 8 MiB > - RAM: 64 MiB > - UART: 1x UART on PCB - 115200 8N1 > - Ethernet: 1 x 100 Mbit with passive PoE (24V/0.2A) > > Doesn't work: > * Flash via TFTP with Uiquiti Uboot > > Installation via vendor firmware: > - upload factory image via webinterface > > Signed-off-by: Arne Zachlod <arne@nerdkeller.org> > --- > target/linux/ar71xx/base-files/etc/board.d/01_leds | 4 ++ > .../linux/ar71xx/base-files/etc/board.d/02_network | 1 + > target/linux/ar71xx/base-files/etc/diag.sh | 3 ++ > target/linux/ar71xx/base-files/lib/ar71xx.sh | 3 ++ > .../ar71xx/base-files/lib/upgrade/platform.sh | 1 + > .../ar71xx/files/arch/mips/ath79/mach-ubnt-xm.c | 58 ++++++++++++++++++++++ > .../linux/ar71xx/files/arch/mips/ath79/machtypes.h | 1 + > target/linux/ar71xx/image/ubnt.mk | 7 +++ this file does not exist. please fix/resend John > 8 files changed, 78 insertions(+) > > diff --git a/target/linux/ar71xx/base-files/etc/board.d/01_leds b/target/linux/ar71xx/base-files/etc/board.d/01_leds > index 150ef91b48..ebdfb142d4 100755 > --- a/target/linux/ar71xx/base-files/etc/board.d/01_leds > +++ b/target/linux/ar71xx/base-files/etc/board.d/01_leds > @@ -363,6 +363,10 @@ hornet-ub-x2) > ucidef_set_led_wlan "wlan" "WLAN" "alfa:blue:wlan" "phy0tpt" > ucidef_set_led_usbdev "usb" "USB" "alfa:blue:usb" "1-1" > ;; > +lbe-m5) > + ucidef_set_led_netdev "lan" "LAN" "ubnt:green:lan" "eth0" > + ucidef_set_led_wlan "wlan" "WLAN" "ubnt:green:wlan" "phy0tpt" > + ;; > mc-mac1200r) > ucidef_set_led_wlan "wlan2g" "WLAN2G" "mercury:green:wlan2g" "phy1tpt" > ucidef_set_led_wlan "wlan5g" "WLAN5G" "mercury:green:wlan5g" "phy0tpt" > diff --git a/target/linux/ar71xx/base-files/etc/board.d/02_network b/target/linux/ar71xx/base-files/etc/board.d/02_network > index fb61792bf4..86d6ffd91d 100755 > --- a/target/linux/ar71xx/base-files/etc/board.d/02_network > +++ b/target/linux/ar71xx/base-files/etc/board.d/02_network > @@ -78,6 +78,7 @@ ar71xx_setup_interfaces() > fritz300e|\ > gl-usb150|\ > hiveap-121|\ > + lbe-m5|\ > loco-m-xw|\ > mr12|\ > mr16|\ > diff --git a/target/linux/ar71xx/base-files/etc/diag.sh b/target/linux/ar71xx/base-files/etc/diag.sh > index 5c60ebd6a8..5042e7a008 100644 > --- a/target/linux/ar71xx/base-files/etc/diag.sh > +++ b/target/linux/ar71xx/base-files/etc/diag.sh > @@ -236,6 +236,9 @@ get_status_led() { > jwap230) > status_led="$board:green:led1" > ;; > + lbe-m5) > + status_led="ubnt:green:sys" > + ;; > ls-sr71) > status_led="ubnt:green:d22" > ;; > diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh > index b5440230a5..00a4acc6e0 100755 > --- a/target/linux/ar71xx/base-files/lib/ar71xx.sh > +++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh > @@ -711,6 +711,9 @@ ar71xx_board_detect() { > *"Lima"*) > name="lima" > ;; > + *"Litebeam M5"*) > + name="lbe-m5" > + ;; > *"Loco M XW") > name="loco-m-xw" > ;; > diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh > index ecf6820a2b..4e839f12c1 100755 > --- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh > +++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh > @@ -248,6 +248,7 @@ platform_check_image() { > hiwifi-hc6361|\ > hornet-ub-x2|\ > jwap230|\ > + lbe-m5|\ > lima|\ > loco-m-xw|\ > mzk-w04nu|\ > diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-ubnt-xm.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-ubnt-xm.c > index 55cf52d19e..8afb3ad054 100644 > --- a/target/linux/ar71xx/files/arch/mips/ath79/mach-ubnt-xm.c > +++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-ubnt-xm.c > @@ -12,6 +12,7 @@ > > #include <linux/init.h> > #include <linux/pci.h> > +#include <linux/gpio.h> > #include <linux/platform_device.h> > #include <linux/ath9k_platform.h> > #include <linux/etherdevice.h> > @@ -503,6 +504,60 @@ static void __init ubnt_loco_m_xw_setup(void) > ath79_register_eth(0); > } > > +#define UBNT_LBE_M5_GPIO_LED_LAN 13 > +#define UBNT_LBE_M5_GPIO_LED_WLAN 14 > +#define UBNT_LBE_M5_GPIO_LED_SYS 16 > + > +static struct gpio_led ubnt_lbe_m5_leds_gpio[] __initdata = { > + { > + .name = "ubnt:green:lan", > + .gpio = UBNT_LBE_M5_GPIO_LED_LAN, > + .active_low = 1, > + }, { > + .name = "ubnt:green:wlan", > + .gpio = UBNT_LBE_M5_GPIO_LED_WLAN, > + .active_low = 1, > + }, { > + .name = "ubnt:green:sys", > + .gpio = UBNT_LBE_M5_GPIO_LED_SYS, > + .active_low = 1, > + }, > +}; > + > +static void __init ubnt_lbe_m5_setup(void) > +{ > + u8 *eeprom = (u8 *) KSEG1ADDR(0x1fff0000); > + > + ath79_register_m25p80(NULL); > + > + ath79_register_wmac(eeprom + UAP_PRO_WMAC_CALDATA_OFFSET, NULL); > + ap91_pci_init(eeprom + UAP_PRO_PCI_CALDATA_OFFSET, NULL); > + > + ath79_register_leds_gpio(-1, ARRAY_SIZE(ubnt_lbe_m5_leds_gpio), > + ubnt_lbe_m5_leds_gpio); > + ath79_register_gpio_keys_polled(-1, UBNT_XM_KEYS_POLL_INTERVAL, > + ARRAY_SIZE(ubnt_xm_gpio_keys), > + ubnt_xm_gpio_keys); > + > + 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); > + > + ath79_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_MII; > + ath79_eth0_data.mii_bus_dev = &ath79_mdio0_device.dev; > + > + gpio_request_one(0, GPIOF_OUT_INIT_LOW | GPIOF_ACTIVE_LOW | > + GPIOF_EXPORT_DIR_FIXED, "SPI nWP"); > + > + mdiobus_register_board_info(ubnt_loco_m_xw_mdio_info, > + ARRAY_SIZE(ubnt_loco_m_xw_mdio_info)); > + > + ath79_register_mdio(0, ~BIT(1)); > + ath79_eth0_data.phy_mask = BIT(1); > + ath79_register_eth(0); > +} > + > static void __init ubnt_rocket_m_xw_setup(void) > { > u8 *eeprom = (u8 *) KSEG1ADDR(0x1fff0000); > @@ -590,6 +645,9 @@ static void __init ubnt_rocket_m_ti_setup(void) > 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_LBE_M5, "UBNT-LBE-M5", "Ubiquiti Litebeam M5", > + ubnt_lbe_m5_setup); > + > MIPS_MACHINE(ATH79_MACH_UBNT_LOCO_M_XW, "UBNT-LOCO-XW", "Ubiquiti Loco M XW", > ubnt_loco_m_xw_setup); > > diff --git a/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h b/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h > index 0f536f0ec5..18604c7d00 100644 > --- a/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h > +++ b/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h > @@ -282,6 +282,7 @@ enum ath79_mach_type { > ATH79_MACH_UBNT_AIRGWP, /* Ubiquiti AirGateway Pro */ > ATH79_MACH_UBNT_AIRROUTER, /* Ubiquiti AirRouter */ > ATH79_MACH_UBNT_BULLET_M, /* Ubiquiti Bullet M */ > + ATH79_MACH_UBNT_LBE_M5, /* Ubiquiti Litebeam M5 */ > ATH79_MACH_UBNT_LOCO_M_XW, /* Ubiquiti Loco M XW */ > ATH79_MACH_UBNT_LSSR71, /* Ubiquiti LS-SR71 */ > ATH79_MACH_UBNT_LSX, /* Ubiquiti LSX */ > diff --git a/target/linux/ar71xx/image/ubnt.mk b/target/linux/ar71xx/image/ubnt.mk > index 2735c7491d..d24afc21be 100644 > --- a/target/linux/ar71xx/image/ubnt.mk > +++ b/target/linux/ar71xx/image/ubnt.mk > @@ -157,6 +157,13 @@ define Device/ubnt-nano-m-xw > endef > TARGET_DEVICES += ubnt-nano-m-xw > > +define Device/ubnt-lbe-m5 > + $(Device/ubnt-xw) > + DEVICE_TITLE := Ubiquiti Litebeam M5 > + BOARDNAME := UBNT-LBE-M5 > +endef > +TARGET_DEVICES += ubnt-lbe-m5 > + > define Device/ubnt-loco-m-xw > $(Device/ubnt-xw) > DEVICE_TITLE := Ubiquiti Loco XW
diff --git a/target/linux/ar71xx/base-files/etc/board.d/01_leds b/target/linux/ar71xx/base-files/etc/board.d/01_leds index 150ef91b48..ebdfb142d4 100755 --- a/target/linux/ar71xx/base-files/etc/board.d/01_leds +++ b/target/linux/ar71xx/base-files/etc/board.d/01_leds @@ -363,6 +363,10 @@ hornet-ub-x2) ucidef_set_led_wlan "wlan" "WLAN" "alfa:blue:wlan" "phy0tpt" ucidef_set_led_usbdev "usb" "USB" "alfa:blue:usb" "1-1" ;; +lbe-m5) + ucidef_set_led_netdev "lan" "LAN" "ubnt:green:lan" "eth0" + ucidef_set_led_wlan "wlan" "WLAN" "ubnt:green:wlan" "phy0tpt" + ;; mc-mac1200r) ucidef_set_led_wlan "wlan2g" "WLAN2G" "mercury:green:wlan2g" "phy1tpt" ucidef_set_led_wlan "wlan5g" "WLAN5G" "mercury:green:wlan5g" "phy0tpt" diff --git a/target/linux/ar71xx/base-files/etc/board.d/02_network b/target/linux/ar71xx/base-files/etc/board.d/02_network index fb61792bf4..86d6ffd91d 100755 --- a/target/linux/ar71xx/base-files/etc/board.d/02_network +++ b/target/linux/ar71xx/base-files/etc/board.d/02_network @@ -78,6 +78,7 @@ ar71xx_setup_interfaces() fritz300e|\ gl-usb150|\ hiveap-121|\ + lbe-m5|\ loco-m-xw|\ mr12|\ mr16|\ diff --git a/target/linux/ar71xx/base-files/etc/diag.sh b/target/linux/ar71xx/base-files/etc/diag.sh index 5c60ebd6a8..5042e7a008 100644 --- a/target/linux/ar71xx/base-files/etc/diag.sh +++ b/target/linux/ar71xx/base-files/etc/diag.sh @@ -236,6 +236,9 @@ get_status_led() { jwap230) status_led="$board:green:led1" ;; + lbe-m5) + status_led="ubnt:green:sys" + ;; ls-sr71) status_led="ubnt:green:d22" ;; diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh index b5440230a5..00a4acc6e0 100755 --- a/target/linux/ar71xx/base-files/lib/ar71xx.sh +++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh @@ -711,6 +711,9 @@ ar71xx_board_detect() { *"Lima"*) name="lima" ;; + *"Litebeam M5"*) + name="lbe-m5" + ;; *"Loco M XW") name="loco-m-xw" ;; diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh index ecf6820a2b..4e839f12c1 100755 --- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh +++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh @@ -248,6 +248,7 @@ platform_check_image() { hiwifi-hc6361|\ hornet-ub-x2|\ jwap230|\ + lbe-m5|\ lima|\ loco-m-xw|\ mzk-w04nu|\ diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-ubnt-xm.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-ubnt-xm.c index 55cf52d19e..8afb3ad054 100644 --- a/target/linux/ar71xx/files/arch/mips/ath79/mach-ubnt-xm.c +++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-ubnt-xm.c @@ -12,6 +12,7 @@ #include <linux/init.h> #include <linux/pci.h> +#include <linux/gpio.h> #include <linux/platform_device.h> #include <linux/ath9k_platform.h> #include <linux/etherdevice.h> @@ -503,6 +504,60 @@ static void __init ubnt_loco_m_xw_setup(void) ath79_register_eth(0); } +#define UBNT_LBE_M5_GPIO_LED_LAN 13 +#define UBNT_LBE_M5_GPIO_LED_WLAN 14 +#define UBNT_LBE_M5_GPIO_LED_SYS 16 + +static struct gpio_led ubnt_lbe_m5_leds_gpio[] __initdata = { + { + .name = "ubnt:green:lan", + .gpio = UBNT_LBE_M5_GPIO_LED_LAN, + .active_low = 1, + }, { + .name = "ubnt:green:wlan", + .gpio = UBNT_LBE_M5_GPIO_LED_WLAN, + .active_low = 1, + }, { + .name = "ubnt:green:sys", + .gpio = UBNT_LBE_M5_GPIO_LED_SYS, + .active_low = 1, + }, +}; + +static void __init ubnt_lbe_m5_setup(void) +{ + u8 *eeprom = (u8 *) KSEG1ADDR(0x1fff0000); + + ath79_register_m25p80(NULL); + + ath79_register_wmac(eeprom + UAP_PRO_WMAC_CALDATA_OFFSET, NULL); + ap91_pci_init(eeprom + UAP_PRO_PCI_CALDATA_OFFSET, NULL); + + ath79_register_leds_gpio(-1, ARRAY_SIZE(ubnt_lbe_m5_leds_gpio), + ubnt_lbe_m5_leds_gpio); + ath79_register_gpio_keys_polled(-1, UBNT_XM_KEYS_POLL_INTERVAL, + ARRAY_SIZE(ubnt_xm_gpio_keys), + ubnt_xm_gpio_keys); + + 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); + + ath79_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_MII; + ath79_eth0_data.mii_bus_dev = &ath79_mdio0_device.dev; + + gpio_request_one(0, GPIOF_OUT_INIT_LOW | GPIOF_ACTIVE_LOW | + GPIOF_EXPORT_DIR_FIXED, "SPI nWP"); + + mdiobus_register_board_info(ubnt_loco_m_xw_mdio_info, + ARRAY_SIZE(ubnt_loco_m_xw_mdio_info)); + + ath79_register_mdio(0, ~BIT(1)); + ath79_eth0_data.phy_mask = BIT(1); + ath79_register_eth(0); +} + static void __init ubnt_rocket_m_xw_setup(void) { u8 *eeprom = (u8 *) KSEG1ADDR(0x1fff0000); @@ -590,6 +645,9 @@ static void __init ubnt_rocket_m_ti_setup(void) 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_LBE_M5, "UBNT-LBE-M5", "Ubiquiti Litebeam M5", + ubnt_lbe_m5_setup); + MIPS_MACHINE(ATH79_MACH_UBNT_LOCO_M_XW, "UBNT-LOCO-XW", "Ubiquiti Loco M XW", ubnt_loco_m_xw_setup); diff --git a/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h b/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h index 0f536f0ec5..18604c7d00 100644 --- a/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h +++ b/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h @@ -282,6 +282,7 @@ enum ath79_mach_type { ATH79_MACH_UBNT_AIRGWP, /* Ubiquiti AirGateway Pro */ ATH79_MACH_UBNT_AIRROUTER, /* Ubiquiti AirRouter */ ATH79_MACH_UBNT_BULLET_M, /* Ubiquiti Bullet M */ + ATH79_MACH_UBNT_LBE_M5, /* Ubiquiti Litebeam M5 */ ATH79_MACH_UBNT_LOCO_M_XW, /* Ubiquiti Loco M XW */ ATH79_MACH_UBNT_LSSR71, /* Ubiquiti LS-SR71 */ ATH79_MACH_UBNT_LSX, /* Ubiquiti LSX */ diff --git a/target/linux/ar71xx/image/ubnt.mk b/target/linux/ar71xx/image/ubnt.mk index 2735c7491d..d24afc21be 100644 --- a/target/linux/ar71xx/image/ubnt.mk +++ b/target/linux/ar71xx/image/ubnt.mk @@ -157,6 +157,13 @@ define Device/ubnt-nano-m-xw endef TARGET_DEVICES += ubnt-nano-m-xw +define Device/ubnt-lbe-m5 + $(Device/ubnt-xw) + DEVICE_TITLE := Ubiquiti Litebeam M5 + BOARDNAME := UBNT-LBE-M5 +endef +TARGET_DEVICES += ubnt-lbe-m5 + define Device/ubnt-loco-m-xw $(Device/ubnt-xw) DEVICE_TITLE := Ubiquiti Loco XW
Specification: - SoC: Atheros AR9342 - Flash: 8 MiB - RAM: 64 MiB - UART: 1x UART on PCB - 115200 8N1 - Ethernet: 1 x 100 Mbit with passive PoE (24V/0.2A) Doesn't work: * Flash via TFTP with Uiquiti Uboot Installation via vendor firmware: - upload factory image via webinterface Signed-off-by: Arne Zachlod <arne@nerdkeller.org> --- target/linux/ar71xx/base-files/etc/board.d/01_leds | 4 ++ .../linux/ar71xx/base-files/etc/board.d/02_network | 1 + target/linux/ar71xx/base-files/etc/diag.sh | 3 ++ target/linux/ar71xx/base-files/lib/ar71xx.sh | 3 ++ .../ar71xx/base-files/lib/upgrade/platform.sh | 1 + .../ar71xx/files/arch/mips/ath79/mach-ubnt-xm.c | 58 ++++++++++++++++++++++ .../linux/ar71xx/files/arch/mips/ath79/machtypes.h | 1 + target/linux/ar71xx/image/ubnt.mk | 7 +++ 8 files changed, 78 insertions(+)