/*
* MikroTik SPI-NOR RouterBOARDs support
*
+ * - MikroTik RouterBOARD mAP 2nD
* - MikroTik RouterBOARD mAP L-2nD
* - MikroTik RouterBOARD 941L-2nD
* - MikroTik RouterBOARD 951Ui-2nD
* - MikroTik RouterBOARD 952Ui-5ac2nD
* - MikroTik RouterBOARD 962UiGS-5HacT2HnT
* - MikroTik RouterBOARD 750UP r2
+ * - MikroTik RouterBOARD 750P-PBr2
* - MikroTik RouterBOARD 750 r2
* - MikroTik RouterBOARD LHG 5nD
+ * - MikroTik RouterBOARD wAP2nD
*
* Preliminary support for the following hardware
- * - MikroTik RouterBOARD wAP2nD
* - MikroTik RouterBOARD cAP2nD
- * - MikroTik RouterBOARD mAP2nD
* Furthermore, the cAP lite (cAPL2nD) appears to feature the exact same
* hardware as the mAP L-2nD. It is unknown if they share the same board
* identifier.
.active_low = 1,
}, {
.name = "rb:green:eth2",
- .gpio = RBMAP_GPIO_LED_WLAN,
+ .gpio = RBMAP_GPIO_LED_LAN2,
.active_low = 1,
}, {
.name = "rb:red:poe_out",
static struct gen_74x164_chip_platform_data rbspi_ssr_data = {
.base = RBSPI_SSR_GPIO_BASE,
+ .num_registers = 1,
};
/* the spi-ath79 driver can only natively handle CS0. Other CS are bit-banged */
* Init the hEX (PoE) lite hardware (QCA953x).
* The 750UP r2 (hEX PoE lite) is nearly identical to the hAP, only without
* WLAN. The 750 r2 (hEX lite) is nearly identical to the 750UP r2, only
- * without USB and POE. It shares the same bootloader board identifier.
+ * without USB and POE. The 750P Pbr2 (Powerbox) is nearly identical to hEX PoE
+ * lite, only without USB. It shares the same bootloader board identifier.
*/
static void __init rb750upr2_setup(void)
{
if (strstr(mips_get_machine_name(), "750UP r2"))
flags |= RBSPI_HAS_USB | RBSPI_HAS_POE;
+ /* differentiate the Powerbox from the hEX lite */
+ else if (strstr(mips_get_machine_name(), "750P r2"))
+ flags |= RBSPI_HAS_POE;
+
rbspi_952_750r2_setup(flags);
}
}
/*
- * Init the wAP hardware (EXPERIMENTAL).
+ * Init the wAP hardware.
* The wAP 2nD has a single ethernet port.
*/
static void __init rbwap_setup(void)
rbspi_network_setup(flags, 0, 1, 0);
ath79_register_leds_gpio(-1, ARRAY_SIZE(rbwap_leds), rbwap_leds);
+
+ /* wAP has a single reset button as GPIO 16 */
+ ath79_register_gpio_keys_polled(-1, RBSPI_KEYS_POLL_INTERVAL,
+ ARRAY_SIZE(rbspi_gpio_keys_reset16),
+ rbspi_gpio_keys_reset16);
}
/*
}
/*
- * Init the mAP hardware (EXPERIMENTAL).
- * The mAP 2nD has two ethernet ports, PoE output and an SSR for LED
- * multiplexing.
+ * Init the mAP hardware.
+ * The mAP 2nD has two ethernet ports, PoE output, SSR for LED
+ * multiplexing and USB port.
*/
static void __init rbmap_setup(void)
{
- u32 flags = RBSPI_HAS_WLAN0 | RBSPI_HAS_SSR | RBSPI_HAS_POE;
+ u32 flags = RBSPI_HAS_USB | RBSPI_HAS_WLAN0 |
+ RBSPI_HAS_SSR | RBSPI_HAS_POE;
if (rbspi_platform_setup())
return;
if (flags & RBSPI_HAS_POE)
gpio_request_one(RBMAP_GPIO_POE_POWER,
- GPIOF_OUT_INIT_HIGH | GPIOF_EXPORT_DIR_FIXED,
+ GPIOF_OUT_INIT_LOW | GPIOF_EXPORT_DIR_FIXED,
"POE power");
+ /* USB power GPIO is inverted, set GPIOF_ACTIVE_LOW for consistency */
+ if (flags & RBSPI_HAS_USB)
+ gpio_request_one(RBMAP_GPIO_USB_POWER,
+ GPIOF_OUT_INIT_HIGH | GPIOF_ACTIVE_LOW |
+ GPIOF_EXPORT_DIR_FIXED,
+ "USB power");
+
ath79_register_leds_gpio(-1, ARRAY_SIZE(rbmap_leds), rbmap_leds);
+
+ /* mAP 2nD has a single reset button as gpio 16 */
+ ath79_register_gpio_keys_polled(-1, RBSPI_KEYS_POLL_INTERVAL,
+ ARRAY_SIZE(rbspi_gpio_keys_reset16),
+ rbspi_gpio_keys_reset16);
}