aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ar71xx/files/arch/mips/ath79/mach-rbspi.c
diff options
context:
space:
mode:
authorThibaut VARÈNE <hacks@slashdirt.org>2018-07-12 13:43:36 +0200
committerJohn Crispin <john@phrozen.org>2018-07-16 15:12:17 +0200
commitc2d2647c099679d64c8d5ef5260ba0f9d4c8f2ba (patch)
tree17e4f72c9ccce2ba3816a60ac6a4103003c5465d /target/linux/ar71xx/files/arch/mips/ath79/mach-rbspi.c
parentf21bcb4db8a12cef62e5698f0f711db8dde99db8 (diff)
downloadupstream-c2d2647c099679d64c8d5ef5260ba0f9d4c8f2ba.tar.gz
upstream-c2d2647c099679d64c8d5ef5260ba0f9d4c8f2ba.tar.bz2
upstream-c2d2647c099679d64c8d5ef5260ba0f9d4c8f2ba.zip
ar71xx: add support for MikroTik RB931-2nD
This patch adds support for the MikroTik RB931-2nD (hAP mini): https://mikrotik.com/product/RB931-2nD Specifications: * SoC: Qualcomm QCA9533 (650MHz) * RAM: 32MiB * Storage: 16MiB SPI NOR flash * Ethernet: 3x100M * Wireless: QCA9533 built-in, dual-chain 802.11b/g/n Installation: 1. Setup a DHCP/BOOTP Server with the following parameters: * DHCP-Option 66 (TFTP server name): pointing to a local TFTP server within the same subnet of the DHCP range * DHCP-Option 67 (Bootfile-Name): matching the initramfs filename of the to be booted image. The usable intramfs files are: - openwrt-ar71xx-mikrotik-vmlinux-initramfs.elf - openwrt-ar71xx-mikrotik-vmlinux-initramfs-lzma.elf - openwrt-ar71xx-mikrotik-rb-nor-flash-16M-initramfs-kernel.bin 2. Press the reset button on the board and keep that pressed. 3. Connect the board to your local network via its Internet port. 4. Release the button after the LEDs on the board are turned off. Now the board should load and start the initramfs image from the TFTP server. 5. Now connect the board via either of its LAN ports (2 or 3). 6. Upload the sysupgrade image to the board with scp: $ scp openwrt-ar71xx-mikrotik-rb-nor-flash-16M-squashfs-sysupgrade.bin root@192.168.1.1:/tmp/fw.bin 7. Log in to the running system listening on 192.168.1.1 via ssh as root (without password): $ ssh root@192.168.1.1 8. Flash the uploaded firmware file from the ssh session via the sysupgrade command: root@OpenWrt:~# sysupgrade /tmp/fw.bin Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Diffstat (limited to 'target/linux/ar71xx/files/arch/mips/ath79/mach-rbspi.c')
-rw-r--r--target/linux/ar71xx/files/arch/mips/ath79/mach-rbspi.c62
1 files changed, 61 insertions, 1 deletions
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-rbspi.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-rbspi.c
index d0fac59f9e..2997018aa3 100644
--- a/target/linux/ar71xx/files/arch/mips/ath79/mach-rbspi.c
+++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-rbspi.c
@@ -5,6 +5,7 @@
* - MikroTik RouterBOARD mAP L-2nD
* - MikroTik RouterBOARD 911-2Hn (911 Lite2)
* - MikroTik RouterBOARD 911-5Hn (911 Lite5)
+ * - MikroTik RouterBOARD 931-2nD (hAP mini)
* - MikroTik RouterBOARD 941L-2nD
* - MikroTik RouterBOARD 951Ui-2nD
* - MikroTik RouterBOARD 952Ui-5ac2nD
@@ -23,7 +24,7 @@
* hardware as the mAP L-2nD. It is unknown if they share the same board
* identifier.
*
- * Copyright (C) 2017 Thibaut VARENE <varenet@parisc-linux.org>
+ * Copyright (C) 2017-2018 Thibaut VARENE <varenet@parisc-linux.org>
* Copyright (C) 2016 David Hutchison <dhutchison@bluemesh.net>
* Copyright (C) 2017 Ryan Mounce <ryan@mounce.com.au>
*
@@ -562,6 +563,37 @@ static struct gpio_led rb911l_leds[] __initdata = {
},
};
+/* RB 931-2nD gpios */
+#define RB931_GPIO_BTN_RESET 0
+#define RB931_GPIO_BTN_MODE 9
+#define RB931_GPIO_LED_USER 1
+
+static struct gpio_keys_button rb931_gpio_keys[] __initdata = {
+ {
+ .desc = "Reset button",
+ .type = EV_KEY,
+ .code = KEY_RESTART,
+ .debounce_interval = RBSPI_KEYS_DEBOUNCE_INTERVAL,
+ .gpio = RB931_GPIO_BTN_RESET,
+ .active_low = 1,
+ }, {
+ .desc = "Mode button",
+ .type = EV_KEY,
+ .code = BTN_0,
+ .debounce_interval = RBSPI_KEYS_DEBOUNCE_INTERVAL,
+ .gpio = RB931_GPIO_BTN_MODE,
+ .active_low = 1,
+ }
+};
+
+static struct gpio_led rb931_leds[] __initdata = {
+ {
+ .name = "rb:green:user",
+ .gpio = RB931_GPIO_LED_USER,
+ .active_low = 1,
+ },
+};
+
static struct gen_74x164_chip_platform_data rbspi_ssr_data = {
.base = RBSPI_SSR_GPIO_BASE,
.num_registers = 1,
@@ -1112,6 +1144,33 @@ static void __init rb911l_setup(void)
ath79_register_leds_gpio(-1, ARRAY_SIZE(rb911l_leds), rb911l_leds);
}
+/*
+ * Init the hAP mini hardware (QCA953x).
+ * The 931-2nD (hAP mini) has 3 ethernet ports, with port 2-3
+ * being assigned to LAN on the casing, and port 1 being assigned
+ * to "internet" (WAN) on the casing. Port 1 is connected to PHY2.
+ * Since WAN is neither PHY0 nor PHY4, we cannot use GMAC0 with this device.
+ */
+static void __init rb931_setup(void)
+{
+ u32 flags = RBSPI_HAS_WLAN0;
+
+ if (!rbspi_platform_setup())
+ return;
+
+ rbspi_peripherals_setup(flags);
+
+ /* GMAC1 is HW MAC, WLAN0 MAC is HW MAC + 3 */
+ rbspi_network_setup(flags, 0, 3, 0);
+
+ ath79_register_leds_gpio(-1, ARRAY_SIZE(rb931_leds), rb931_leds);
+
+ /* hAP mini has two buttons */
+ ath79_register_gpio_keys_polled(-1, RBSPI_KEYS_POLL_INTERVAL,
+ ARRAY_SIZE(rb931_gpio_keys),
+ rb931_gpio_keys);
+}
+
MIPS_MACHINE_NONAME(ATH79_MACH_RB_MAPL, "map-hb", rbmapl_setup);
MIPS_MACHINE_NONAME(ATH79_MACH_RB_941, "H951L", rbhapl_setup);
MIPS_MACHINE_NONAME(ATH79_MACH_RB_911L, "911L", rb911l_setup);
@@ -1124,3 +1183,4 @@ MIPS_MACHINE_NONAME(ATH79_MACH_RB_WAPR, "wap-lte", rbwap_setup);
MIPS_MACHINE_NONAME(ATH79_MACH_RB_CAP, "cap-hb", rbcap_setup);
MIPS_MACHINE_NONAME(ATH79_MACH_RB_MAP, "map2-hb", rbmap_setup);
MIPS_MACHINE_NONAME(ATH79_MACH_RB_WAPAC, "wapg-sc", rbwapgsc_setup);
+MIPS_MACHINE_NONAME(ATH79_MACH_RB_931, "931", rb931_setup);