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 c44fb7d047..11299dcb92 100755 --- a/target/linux/ar71xx/base-files/etc/board.d/01_leds +++ b/target/linux/ar71xx/base-files/etc/board.d/01_leds @@ -626,6 +626,7 @@ rb-911-2hn|\ rb-911-5hn) ucidef_set_led_netdev "eth" "ETH" "rb:green:eth" "eth0" ;; +rb-931-2nd|\ rb-941-2nd) ucidef_set_led_timer "user" "USR/ACT" "rb:green:user" "1000" "1000" ;; 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 4a141e9f87..f43392709e 100755 --- a/target/linux/ar71xx/base-files/etc/board.d/02_network +++ b/target/linux/ar71xx/base-files/etc/board.d/02_network @@ -315,6 +315,10 @@ ar71xx_setup_interfaces() dap-2695-a1) ucidef_add_switch "switch0" "0@eth0" "2:lan" "3:wan" "6@eth1" ;; + rb-931-2nd) + ucidef_add_switch "switch0" \ + "0@eth0" "1:lan:3" "2:lan:2" "3:wan:1" + ;; rb-941-2nd) ucidef_add_switch "switch0" \ "0@eth0" "1:lan:4" "2:lan:3" "3:lan:2" "4:wan:1" diff --git a/target/linux/ar71xx/base-files/etc/diag.sh b/target/linux/ar71xx/base-files/etc/diag.sh index 137baa935e..d3cdc81b39 100644 --- a/target/linux/ar71xx/base-files/etc/diag.sh +++ b/target/linux/ar71xx/base-files/etc/diag.sh @@ -368,6 +368,7 @@ get_status_led() { rb-911g-2hpnd|\ rb-911g-5hpacd|\ rb-911g-5hpnd|\ + rb-931-2nd|\ rb-941-2nd|\ rb-951ui-2nd|\ rb-952ui-5ac2nd|\ diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh index 63b7a4f108..82b902545c 100755 --- a/target/linux/ar71xx/base-files/lib/ar71xx.sh +++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh @@ -1061,6 +1061,9 @@ ar71xx_board_detect() { *"RouterBOARD 921GS-5HPacD r2") name="rb-921gs-5hpacd-r2" ;; + *"RouterBOARD 931-2nD") + name="rb-931-2nd" + ;; *"RouterBOARD 941-2nD") name="rb-941-2nd" ;; diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh index 41e60d7f01..3607fc22a6 100755 --- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh +++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh @@ -704,6 +704,7 @@ platform_check_image() { rb-750up-r2|\ rb-911-2hn|\ rb-911-5hn|\ + rb-931-2nd|\ rb-941-2nd|\ rb-951ui-2nd|\ rb-952ui-5ac2nd|\ @@ -731,6 +732,7 @@ platform_pre_upgrade() { rb-750up-r2|\ rb-911-2hn|\ rb-911-5hn|\ + rb-931-2nd|\ rb-941-2nd|\ rb-951ui-2nd|\ rb-952ui-5ac2nd|\ diff --git a/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt b/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt index 394e8d3c5e..7b454d6504 100644 --- a/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt +++ b/target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt @@ -1133,6 +1133,7 @@ config ATH79_MACH_RBSPI MikroTik ROuterBOARD 911-5Hn (911 Lite5) MikroTik RouterBOARD mAP MikroTik RouterBOARD mAP lite + MikroTik RouterBOARD hAP mini MikroTik RouterBOARD hAP lite MikroTik RouterBOARD hAP MikroTik RouterBOARD hAP ac 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 + * Copyright (C) 2017-2018 Thibaut VARENE * Copyright (C) 2016 David Hutchison * Copyright (C) 2017 Ryan Mounce * @@ -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); diff --git a/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h b/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h index c5be6b9a38..fc01b9b62b 100644 --- a/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h +++ b/target/linux/ar71xx/files/arch/mips/ath79/machtypes.h @@ -211,6 +211,7 @@ enum ath79_mach_type { ATH79_MACH_RB_751G, /* Mikrotik RouterBOARD 751G */ ATH79_MACH_RB_911L, /* Mikrotik RouterBOARD 911-2Hn/911-5Hn boards */ ATH79_MACH_RB_922GS, /* Mikrotik RouterBOARD 911/922GS boards */ + ATH79_MACH_RB_931, /* MikroTik RouterBOARD 931-2nD */ ATH79_MACH_RB_941, /* MikroTik RouterBOARD 941-2nD */ ATH79_MACH_RB_951G, /* Mikrotik RouterBOARD 951G */ ATH79_MACH_RB_951U, /* Mikrotik RouterBOARD 951Ui-2HnD */ diff --git a/target/linux/ar71xx/image/mikrotik.mk b/target/linux/ar71xx/image/mikrotik.mk index 3238a885a8..afef8f7618 100644 --- a/target/linux/ar71xx/image/mikrotik.mk +++ b/target/linux/ar71xx/image/mikrotik.mk @@ -46,7 +46,7 @@ define Device/rb-nor-flash-16M DEVICE_PACKAGES := rbcfg rssileds -nand-utils kmod-ledtrig-gpio IMAGE_SIZE := 16000k KERNEL_INSTALL := 1 - SUPPORTED_DEVICES := rb-750-r2 rb-750up-r2 rb-750p-pbr2 rb-911-2hn rb-911-5hn rb-941-2nd rb-951ui-2nd rb-952ui-5ac2nd rb-962uigs-5hact2hnt rb-lhg-5nd rb-map-2nd rb-mapl-2nd rb-wap-2nd rb-wapr-2nd + SUPPORTED_DEVICES := rb-750-r2 rb-750up-r2 rb-750p-pbr2 rb-911-2hn rb-911-5hn rb-931-2nd rb-941-2nd rb-951ui-2nd rb-952ui-5ac2nd rb-962uigs-5hact2hnt rb-lhg-5nd rb-map-2nd rb-mapl-2nd rb-wap-2nd rb-wapr-2nd IMAGE/sysupgrade.bin := append-kernel | kernel2minor -s 1024 -e | pad-to $$$$(BLOCKSIZE) | \ append-rootfs | pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE) endef