diff options
author | Gabor Juhos <juhosg@openwrt.org> | 2014-02-20 17:07:51 +0000 |
---|---|---|
committer | Gabor Juhos <juhosg@openwrt.org> | 2014-02-20 17:07:51 +0000 |
commit | d19b868b12a3d76addbf0d16a854f2d5976f7608 (patch) | |
tree | 9939fcd045a29e6514f06291207aaaa98d5da9db /target/linux/ar71xx/files/arch/mips/ath79/mach-rb95x.c | |
parent | ab6e3af7fc94d3c04e13f468c56c097f88644a7c (diff) | |
download | upstream-d19b868b12a3d76addbf0d16a854f2d5976f7608.tar.gz upstream-d19b868b12a3d76addbf0d16a854f2d5976f7608.tar.bz2 upstream-d19b868b12a3d76addbf0d16a854f2d5976f7608.zip |
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>
SVN-Revision: 39641
Diffstat (limited to 'target/linux/ar71xx/files/arch/mips/ath79/mach-rb95x.c')
-rw-r--r-- | target/linux/ar71xx/files/arch/mips/ath79/mach-rb95x.c | 79 |
1 files changed, 75 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); |