ar71xx: provide support for RB-941-2nD via mach-rbspi.c
authorThibaut VARENE <hacks@slashdirt.org>
Tue, 7 Feb 2017 14:23:30 +0000 (15:23 +0100)
committerFelix Fietkau <nbd@nbd.name>
Wed, 15 Feb 2017 10:28:57 +0000 (11:28 +0100)
This patch implements support for the hAP lite in mach-rbspi.c

hAP lite was supported via mach-rb941.c, so this file is removed
as well as the corresponding build bits.

Signed-off-by: Thibaut VARENE <hacks@slashdirt.org>
target/linux/ar71xx/base-files/etc/board.d/01_leds
target/linux/ar71xx/base-files/etc/diag.sh
target/linux/ar71xx/config-4.4
target/linux/ar71xx/files/arch/mips/ath79/Kconfig.openwrt
target/linux/ar71xx/files/arch/mips/ath79/mach-rb941.c [deleted file]
target/linux/ar71xx/files/arch/mips/ath79/mach-rbspi.c
target/linux/ar71xx/image/mikrotik.mk
target/linux/ar71xx/mikrotik/config-default

index 5aa49c98f592190b1c97673b7664eeae96dae2e0..1d692fff3a3ef719ad6479ad351ca5e2468c2d64 100755 (executable)
@@ -223,7 +223,7 @@ rb-750)
        ucidef_set_led_switch "port5" "port5" "rb750:green:port5" "switch0" "0x02"
        ;;
 rb-941-2nd)
        ucidef_set_led_switch "port5" "port5" "rb750:green:port5" "switch0" "0x02"
        ;;
 rb-941-2nd)
-       ucidef_set_led_timer "act" "act" "rb:green:act" "1000" "1000"
+       ucidef_set_led_timer "user" "USR/ACT" "rb:green:user" "1000" "1000"
        ;;
 rb-2011l|\
 rb-2011uas|\
        ;;
 rb-2011l|\
 rb-2011uas|\
index f9d394ba347c91bb08ba2f95f7feed18a70f37ae..527e8b749e1ef15d73ee638d2fbd213931be5a21 100644 (file)
@@ -298,10 +298,11 @@ get_status_led() {
        rb-911g-5hpnd|\
        rb-912uag-2hpnd|\
        rb-912uag-5hpnd|\
        rb-911g-5hpnd|\
        rb-912uag-2hpnd|\
        rb-912uag-5hpnd|\
+       rb-941-2nd|\
        rb-mapl-2nd)
                status_led="rb:green:user"
                ;;
        rb-mapl-2nd)
                status_led="rb:green:user"
                ;;
-       rb-951ui-2hnd | rb-941-2nd)
+       rb-951ui-2hnd)
                status_led="rb:green:act"
                ;;
        rb-sxt2n|\
                status_led="rb:green:act"
                ;;
        rb-sxt2n|\
index 060931a8ddcf4fe2f53f5749ea71e7190fdb3f5c..b9f80a5398e10f0dbf66f125eda5eb785f4f530e 100644 (file)
@@ -147,7 +147,6 @@ CONFIG_ATH79_MACH_R6100=y
 # CONFIG_ATH79_MACH_RB750 is not set
 # CONFIG_ATH79_MACH_RB91X is not set
 # CONFIG_ATH79_MACH_RB922 is not set
 # CONFIG_ATH79_MACH_RB750 is not set
 # CONFIG_ATH79_MACH_RB91X is not set
 # CONFIG_ATH79_MACH_RB922 is not set
-# CONFIG_ATH79_MACH_RB941 is not set
 # CONFIG_ATH79_MACH_RB95X is not set
 # CONFIG_ATH79_MACH_RBSPI is not set
 # CONFIG_ATH79_MACH_RBSXTLITE is not set
 # CONFIG_ATH79_MACH_RB95X is not set
 # CONFIG_ATH79_MACH_RBSPI is not set
 # CONFIG_ATH79_MACH_RBSXTLITE is not set
index 3474cb8f1695215f14a8b8ed5eb83c87dbb9d4e3..9bca451002ba3115ac6a6aba8b8ab971ddc45dd0 100644 (file)
@@ -895,16 +895,6 @@ config ATH79_MACH_RB922
        select ATH79_ROUTERBOOT
        select RLE_DECOMPRESS
 
        select ATH79_ROUTERBOOT
        select RLE_DECOMPRESS
 
-config ATH79_MACH_RB941
-       bool "MikroTik RouterBOARD 941-2nd support"
-       select SOC_QCA953X
-       select ATH79_DEV_ETH
-       select ATH79_DEV_GPIO_BUTTONS
-       select ATH79_DEV_LEDS_GPIO
-       select ATH79_DEV_M25P80
-       select ATH79_DEV_WMAC
-       select ATH79_ROUTERBOOT
-
 config ATH79_MACH_RB95X
        bool "MikroTik RouterBOARD 95X support"
        select SOC_AR934X
 config ATH79_MACH_RB95X
        bool "MikroTik RouterBOARD 95X support"
        select SOC_AR934X
@@ -936,6 +926,7 @@ config ATH79_MACH_RBSPI
        help
          Say 'Y' here if you want your kernel to support the
          MikroTik RouterBOARD mAP lite
        help
          Say 'Y' here if you want your kernel to support the
          MikroTik RouterBOARD mAP lite
+         MikroTik RouterBOARD hAP lite
 
 config ATH79_MACH_RBSXTLITE
        bool "MikroTik RouterBOARD SXT Lite"
 
 config ATH79_MACH_RBSXTLITE
        bool "MikroTik RouterBOARD SXT Lite"
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-rb941.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-rb941.c
deleted file mode 100644 (file)
index 5da950b..0000000
+++ /dev/null
@@ -1,173 +0,0 @@
-/*
- *  MikroTik RouterBOARD 941-2nD support
- *
- *  Copyright (C) 2016 Sergey Sergeev <adron@yapic.net>
- *
- *  This program is free software; you can redistribute it and/or modify it
- *  under the terms of the GNU General Public License version 2 as published
- *  by the Free Software Foundation.
- */
-
-#include <linux/export.h>
-#include <linux/pci.h>
-#include <linux/ath9k_platform.h>
-#include <linux/platform_device.h>
-#include <linux/phy.h>
-#include <linux/ar8216_platform.h>
-#include <linux/rle.h>
-#include <linux/routerboot.h>
-#include <linux/gpio.h>
-
-#include <linux/mtd/mtd.h>
-//#include <linux/mtd/nand.h>
-#include <linux/mtd/partitions.h>
-
-#include <asm/mach-ath79/ar71xx_regs.h>
-#include <asm/mach-ath79/ath79.h>
-#include <asm/mach-ath79/irq.h>
-
-#include "common.h"
-#include "dev-ap9x-pci.h"
-#include "dev-eth.h"
-#include "dev-spi.h"
-#include "dev-gpio-buttons.h"
-#include "dev-leds-gpio.h"
-#include "dev-m25p80.h"
-//#include "dev-usb.h"
-#include "dev-wmac.h"
-#include "machtypes.h"
-#include "routerboot.h"
-
-#define RB941_GPIO_LED_ACT      14
-#define RB941_GPIO_BTN_RESET    16
-
-#define RB941_KEYS_POLL_INTERVAL 20 /* msecs */
-#define RB941_KEYS_DEBOUNCE_INTERVAL (3 * RB941_KEYS_POLL_INTERVAL)
-
-#define RB_ROUTERBOOT_OFFSET    0x0000
-#define RB_ROUTERBOOT_SIZE      0xe000
-#define RB_HARD_CFG_OFFSET      0xe000
-#define RB_HARD_CFG_SIZE        0x1000
-#define RB_BIOS_OFFSET          0xf000
-#define RB_BIOS_SIZE            0x1000
-#define RB_ROUTERBOOT2_OFFSET   0x10000
-#define RB_ROUTERBOOT2_SIZE     0xf000
-#define RB_SOFT_CFG_OFFSET      0x1f000
-#define RB_SOFT_CFG_SIZE        0x1000
-#define RB_ROOTFS_OFFSET        0x20000
-#define RB_ROOTFS_SIZE          0x9e0000
-#define RB_KERNEL_OFFSET        0xa00000
-#define RB_KERNEL_SIZE          MTDPART_SIZ_FULL
-
-void __init rb941_wlan_init(void)
-{
-    char *art_buf;
-    u8 wlan_mac[ETH_ALEN];
-
-    art_buf = rb_get_wlan_data();
-    if (art_buf == NULL)
-            return;
-
-    ath79_init_mac(wlan_mac, ath79_mac_base, 11);
-    ath79_register_wmac(art_buf + 0x1000, wlan_mac);
-
-    kfree(art_buf);
-}
-
-static struct mtd_partition rb941_spi_partitions[] = {
-    {
-            .name = "routerboot",
-            .offset = RB_ROUTERBOOT_OFFSET,
-            .mask_flags = MTD_WRITEABLE,
-            .size = RB_ROUTERBOOT_SIZE,
-    }, {
-            .name = "hard_config",
-            .offset = RB_HARD_CFG_OFFSET,
-            .size = RB_HARD_CFG_SIZE,
-            .mask_flags = MTD_WRITEABLE,
-    }, {
-            .name = "bios",
-            .offset = RB_BIOS_OFFSET,
-            .size = RB_BIOS_SIZE,
-            .mask_flags = MTD_WRITEABLE,
-    }, {
-            .name = "routerboot2",
-            .offset = RB_ROUTERBOOT2_OFFSET,
-            .size = RB_ROUTERBOOT2_SIZE,
-            .mask_flags = MTD_WRITEABLE,
-    }, {
-            .name = "soft_config",
-            .offset = RB_SOFT_CFG_OFFSET,
-            .size = RB_SOFT_CFG_SIZE,
-    }, {
-            .name = "rootfs",
-            .offset = RB_ROOTFS_OFFSET,
-            .size = RB_ROOTFS_SIZE,
-    }, {
-            .name = "kernel",
-            .offset = RB_KERNEL_OFFSET,
-            .size = RB_KERNEL_SIZE,
-    }
-};
-
-static struct flash_platform_data rb941_spi_flash_data = {
-    .parts          = rb941_spi_partitions,
-    .nr_parts       = ARRAY_SIZE(rb941_spi_partitions),
-};
-
-static struct gpio_led rb941_leds[] __initdata = {
-    {
-        .name = "rb:green:act",
-        .gpio = RB941_GPIO_LED_ACT,
-        .active_low = 1,
-    },
-};
-
-static struct gpio_keys_button rb941_gpio_keys[] __initdata = {
-    {
-        .desc = "Reset button",
-        .type = EV_KEY,
-        .code = KEY_RESTART,
-        .debounce_interval = RB941_KEYS_DEBOUNCE_INTERVAL,
-        .gpio = RB941_GPIO_BTN_RESET,
-        .active_low = 1,
-    },
-};
-
-static void __init rb941_setup(void)
-{
-    const struct rb_info *info;
-    //try to get rb_info data
-    info = rb_init_info((void *)(KSEG1ADDR(AR71XX_SPI_BASE)), 0x20000);
-    if (!info){
-        pr_err("%s: Can't get rb_info data from flash!\n", __func__);
-        //return -EINVAL; //Not critical ... continue!
-    }
-    ath79_setup_ar934x_eth_cfg(AR934X_ETH_CFG_SW_ONLY_MODE);
-    ath79_register_m25p80(&rb941_spi_flash_data);
-    ath79_register_mdio(0, 0x0);
-
-    /* WAN. We have no WAN. Only LAN. */
-    /*ath79_switch_data.phy4_mii_en = 1;
-    ath79_switch_data.phy_poll_mask = BIT(4);
-    ath79_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_MII;
-    ath79_eth0_data.phy_mask = BIT(4);
-    ath79_init_mac(ath79_eth0_data.mac_addr, ath79_mac_base, 0);
-    ath79_register_eth(0); */
-
-    /* LAN */
-    ath79_init_mac(ath79_eth1_data.mac_addr, ath79_mac_base, 0);
-    ath79_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_GMII;
-    ath79_register_eth(1);
-
-    //ath79_register_usb();
-
-    rb941_wlan_init();
-
-    ath79_register_leds_gpio(-1, ARRAY_SIZE(rb941_leds), rb941_leds);
-    ath79_register_gpio_keys_polled(-1, RB941_KEYS_POLL_INTERVAL,
-                                    ARRAY_SIZE(rb941_gpio_keys),
-                                    rb941_gpio_keys);
-}
-
-MIPS_MACHINE(ATH79_MACH_RB_941, "H951L", "MikroTik RouterBOARD 941-2nD", rb941_setup);
index 3f154b47750f4eb743aa2b602c90d7be94e2bd20..541865220c79dd92d54c79cd2255c3eb4aa61cf1 100644 (file)
@@ -2,6 +2,7 @@
  *  MikroTik SPI-NOR RouterBOARDs support
  *
  *  - MikroTik RouterBOARD mAP L-2nD
  *  MikroTik SPI-NOR RouterBOARDs support
  *
  *  - MikroTik RouterBOARD mAP L-2nD
+ *  - MikroTik RouterBOARD 941L-2nD
  *
  *  Copyright (C) 2017 Thibaut VARENE <varenet@parisc-linux.org>
  *
  *
  *  Copyright (C) 2017 Thibaut VARENE <varenet@parisc-linux.org>
  *
@@ -155,6 +156,16 @@ static struct gpio_led rbmapl_leds[] __initdata = {
        },
 };
 
        },
 };
 
+/* RB 941L-2nD gpios */
+#define RBHAPL_GPIO_LED_USER   14
+static struct gpio_led rbhapl_leds[] __initdata = {
+       {
+               .name = "rb:green:user",
+               .gpio = RBHAPL_GPIO_LED_USER,
+               .active_low = 1,
+       },
+};
+
 void __init rbspi_wlan_init(int wmac_offset)
 {
        char *art_buf;
 void __init rbspi_wlan_init(int wmac_offset)
 {
        char *art_buf;
@@ -276,4 +287,32 @@ static void __init rbmapl_setup(void)
        ath79_gpio_output_select(RBMAPL_GPIO_LED_POWER, AR934X_GPIO_OUT_GPIO);
 }
 
        ath79_gpio_output_select(RBMAPL_GPIO_LED_POWER, AR934X_GPIO_OUT_GPIO);
 }
 
+/*
+ * Init the hAP lite hardware.
+ * The 941-2nD (hAP lite) has 4 ethernet ports, with port 2-4
+ * being assigned to LAN on the casing, and port 1 being assigned
+ * to "internet" (WAN) on the casing. Port 1 is connected to PHY3.
+ * Since WAN is neither PHY0 nor PHY4, we cannot use GMAC0 with this device.
+ */
+static void __init rbhapl_setup(void)
+{
+       u32 flags = RBSPI_HAS_WLAN;
+
+       if (rbspi_platform_setup())
+               return;
+
+       rbspi_peripherals_setup(flags);
+
+       /* GMAC1 is HW MAC, WLAN MAC is HW MAC + 4 */
+       rbspi_network_setup(flags, 0, 4);
+
+       ath79_register_leds_gpio(-1, ARRAY_SIZE(rbhapl_leds), rbhapl_leds);
+
+       /* hAP lite 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);
+}
+
 MIPS_MACHINE_NONAME(ATH79_MACH_RB_MAPL, "map-hb", rbmapl_setup);
 MIPS_MACHINE_NONAME(ATH79_MACH_RB_MAPL, "map-hb", rbmapl_setup);
+MIPS_MACHINE_NONAME(ATH79_MACH_RB_941, "H951L", rbhapl_setup);
index bcfa768dd797beb359379c4e78c08177ab397874..c7cf15d061d14fc2944c3fc3383c96489558d7ba 100644 (file)
@@ -37,10 +37,4 @@ define Device/rb-nor-flash-16M
   IMAGE/sysupgrade.bin = append-rootfs | pad-rootfs | combined-image | check-size $$$$(IMAGE_SIZE)
 endef
 
   IMAGE/sysupgrade.bin = append-rootfs | pad-rootfs | combined-image | check-size $$$$(IMAGE_SIZE)
 endef
 
-define Device/rb-941-2nd
-$(Device/rb-nor-flash-16M)
-  DEVICE_TITLE := hAP lite
-  BOARDNAME:= rb-941-2nd
-endef
-
-TARGET_DEVICES += rb-nor-flash-16M rb-941-2nd
+TARGET_DEVICES += rb-nor-flash-16M
index a8af0e721e369c33ffb539d72ba2962f35c6f5de..62ff5a52dde68ab71aea15650c6a43429566f8b4 100644 (file)
@@ -112,7 +112,6 @@ CONFIG_ATH79_MACH_RB4XX=y
 CONFIG_ATH79_MACH_RB750=y
 CONFIG_ATH79_MACH_RB91X=y
 CONFIG_ATH79_MACH_RB922=y
 CONFIG_ATH79_MACH_RB750=y
 CONFIG_ATH79_MACH_RB91X=y
 CONFIG_ATH79_MACH_RB922=y
-CONFIG_ATH79_MACH_RB941=y
 CONFIG_ATH79_MACH_RB95X=y
 CONFIG_ATH79_MACH_RBSPI=y
 CONFIG_ATH79_MACH_RBSXTLITE=y
 CONFIG_ATH79_MACH_RB95X=y
 CONFIG_ATH79_MACH_RBSPI=y
 CONFIG_ATH79_MACH_RBSXTLITE=y