diff options
author | juhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2014-02-20 17:07:51 +0000 |
---|---|---|
committer | juhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2014-02-20 17:07:51 +0000 |
commit | 8547839a3d65c6dcf0365e3ddcb0cbfc3a619b26 (patch) | |
tree | c25d0bac473acd49c632e1f9ed3120d1712873c4 /target | |
parent | 696cc8ac09257c96f8dc7bd61a84dc506665cdc6 (diff) |
ar71xx: Add support for MikroTik RB951Ui-2HnD
I noticed that the patch at http://patchwork.openwrt.org/patch/4017/
for adding support for the MikroTik RouterBOARD 951Ui-2HnD had been
abandoned because it wasn't generated and sent to the mailing list
correctly and doesn't apply as a result. I have cleaned up this patch.
When testing this on real hardware, I also noticed that wireless didn't
work, so this patch fixes that as well.
This patch applies cleanly to SVN 39392.
Signed-off-by: Matthew Reeve <mreeve@tenxnetworks.com>
Patchwork: http://patchwork.openwrt.org/patch/4773/
[juhosg:
- drop the 'rb951ui_wlan_init' function and rework the code to
use the recently introduced rb95x_wlan_init function instead,
- fix GPIO number of the port5 LED,
- rename LEDs according to the standard LED naming conventions,
and use 'rb' prefix in the names]
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@39641 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target')
-rw-r--r-- | target/linux/ar71xx/files/arch/mips/ath79/mach-rb95x.c | 79 | ||||
-rw-r--r-- | target/linux/ar71xx/patches-3.10/704-MIPS-ath79-add-RB951Ui-2HnD-support.patch | 10 |
2 files changed, 85 insertions, 4 deletions
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-rb95x.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-rb95x.c index 8213c47c10..f6de80ab81 100644 --- a/target/linux/ar71xx/files/arch/mips/ath79/mach-rb95x.c +++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-rb95x.c @@ -36,6 +36,7 @@ #include "dev-wmac.h" #include "machtypes.h" #include "routerboot.h" +#include "dev-leds-gpio.h" #define RB95X_GPIO_NAND_NCE 14 @@ -58,6 +59,38 @@ static struct mtd_partition rb95x_nand_partitions[] = { }, }; +static struct gpio_led rb951ui_leds_gpio[] __initdata = { + { + .name = "rb:green:wlan", + .gpio = 11, + .active_low = 1, + }, { + .name = "rb:green:act", + .gpio = 3, + .active_low = 1, + }, { + .name = "rb:green:port1", + .gpio = 13, + .active_low = 1, + }, { + .name = "rb:green:port2", + .gpio = 12, + .active_low = 1, + }, { + .name = "rb:green:port3", + .gpio = 4, + .active_low = 1, + }, { + .name = "rb:green:port4", + .gpio = 21, + .active_low = 1, + }, { + .name = "rb:green:port5", + .gpio = 16, + .active_low = 1, + } +}; + static struct ar8327_pad_cfg rb95x_ar8327_pad0_cfg = { .mode = AR8327_PAD_MAC_RGMII, .txclk_delay_en = true, @@ -157,6 +190,14 @@ static int __init rb95x_setup(void) rb95x_nand_init(); + return 0; +} + +static void __init rb951g_setup(void) +{ + if (rb95x_setup()) + return; + ath79_setup_ar934x_eth_cfg(AR934X_ETH_CFG_RGMII_GMAC0 | AR934X_ETH_CFG_SW_ONLY_MODE); @@ -171,17 +212,47 @@ static int __init rb95x_setup(void) ath79_register_eth(0); - return 0; + rb95x_wlan_init(); + ath79_register_usb(); } -static void __init rb951g_setup(void) +MIPS_MACHINE(ATH79_MACH_RB_951G, "951G", "MikroTik RouterBOARD 951G-2HnD", + rb951g_setup); + +static void __init rb951ui_setup(void) { if (rb95x_setup()) return; + ath79_setup_ar934x_eth_cfg(AR934X_ETH_CFG_SW_ONLY_MODE); + + ath79_register_mdio(1, 0x0); + + ath79_init_mac(ath79_eth0_data.mac_addr, ath79_mac_base, 0); + ath79_init_mac(ath79_eth1_data.mac_addr, ath79_mac_base, 1); + + 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_eth0_data.mii_bus_dev = &ath79_mdio1_device.dev; + ath79_register_eth(0); + + ath79_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_GMII; + ath79_register_eth(1); + + gpio_request_one(20, GPIOF_OUT_INIT_HIGH | GPIOF_EXPORT_DIR_FIXED, + "USB power"); + + gpio_request_one(2, GPIOF_OUT_INIT_HIGH | GPIOF_EXPORT_DIR_FIXED, + "POE power"); + rb95x_wlan_init(); ath79_register_usb(); + + ath79_register_leds_gpio(-1, ARRAY_SIZE(rb951ui_leds_gpio), + rb951ui_leds_gpio); } -MIPS_MACHINE(ATH79_MACH_RB_951G, "951G", "MikroTik RouterBOARD 951G-2HnD", - rb951g_setup); +MIPS_MACHINE(ATH79_MACH_RB_951U, "951HnD", "MikroTik RouterBOARD 951Ui-2HnD", + rb951ui_setup); diff --git a/target/linux/ar71xx/patches-3.10/704-MIPS-ath79-add-RB951Ui-2HnD-support.patch b/target/linux/ar71xx/patches-3.10/704-MIPS-ath79-add-RB951Ui-2HnD-support.patch new file mode 100644 index 0000000000..509c947cfc --- /dev/null +++ b/target/linux/ar71xx/patches-3.10/704-MIPS-ath79-add-RB951Ui-2HnD-support.patch @@ -0,0 +1,10 @@ +--- a/arch/mips/ath79/machtypes.h ++++ b/arch/mips/ath79/machtypes.h +@@ -81,6 +81,7 @@ enum ath79_mach_type { + ATH79_MACH_RB_751, /* MikroTik RouterBOARD 751 */ + ATH79_MACH_RB_751G, /* Mikrotik RouterBOARD 751G */ + ATH79_MACH_RB_951G, /* Mikrotik RouterBOARD 951G */ ++ ATH79_MACH_RB_951U, /* Mikrotik RouterBOARD 951Ui-2HnD */ + ATH79_MACH_RB_2011G, /* Mikrotik RouterBOARD 2011UAS-2HnD */ + ATH79_MACH_RB_2011L, /* Mikrotik RouterBOARD 2011L */ + ATH79_MACH_RB_2011US, /* Mikrotik RouterBOARD 2011UAS */ |