ar71xx: add kernel support for dir-835-a1

[juhosg:
  - remove custom mdio bus info and platform data for ar8327, clear the
    .led_cfg field from dir835a1_setup instead,
  - remove arguments of dir835c1_generic_setup function, register the
    LEDs directly from the board specific setup instead]

Signed-off-by: Alexander Stadler <sa.maillists@univie.ac.at>
Patchwork: http://patchwork.openwrt.org/patch/3426/
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

SVN-Revision: 35957
lede-17.01
Gabor Juhos 2013-03-11 15:55:13 +00:00
parent bd6c9d6252
commit a7525f5f5d
5 changed files with 63 additions and 13 deletions

View File

@ -79,6 +79,34 @@ static struct gpio_led dir825c1_leds_gpio[] __initdata = {
}, },
}; };
static struct gpio_led dir835a1_leds_gpio[] __initdata = {
{
.name = "d-link:orange:power",
.gpio = DIR825C1_GPIO_LED_ORANGE_POWER,
.active_low = 1,
},
{
.name = "d-link:green:power",
.gpio = DIR825C1_GPIO_LED_BLUE_POWER,
.active_low = 1,
},
{
.name = "d-link:blue:wps",
.gpio = DIR825C1_GPIO_LED_BLUE_WPS,
.active_low = 1,
},
{
.name = "d-link:orange:planet",
.gpio = DIR825C1_GPIO_LED_ORANGE_PLANET,
.active_low = 1,
},
{
.name = "d-link:green:planet",
.gpio = DIR825C1_GPIO_LED_BLUE_PLANET,
.active_low = 1,
},
};
static struct gpio_keys_button dir825c1_gpio_keys[] __initdata = { static struct gpio_keys_button dir825c1_gpio_keys[] __initdata = {
{ {
.desc = "reset", .desc = "reset",
@ -146,7 +174,7 @@ static void dir825c1_read_ascii_mac(u8 *dest, u8 *src)
memset(dest, 0, ETH_ALEN); memset(dest, 0, ETH_ALEN);
} }
static void __init dir825c1_setup(void) static void __init dir825c1_generic_setup(void)
{ {
u8 *mac = (u8 *) KSEG1ADDR(0x1ffe0000); u8 *mac = (u8 *) KSEG1ADDR(0x1ffe0000);
u8 *art = (u8 *) KSEG1ADDR(0x1fff0000); u8 *art = (u8 *) KSEG1ADDR(0x1fff0000);
@ -156,19 +184,12 @@ static void __init dir825c1_setup(void)
dir825c1_read_ascii_mac(mac0, mac + DIR825C1_MAC0_OFFSET); dir825c1_read_ascii_mac(mac0, mac + DIR825C1_MAC0_OFFSET);
dir825c1_read_ascii_mac(mac1, mac + DIR825C1_MAC1_OFFSET); dir825c1_read_ascii_mac(mac1, mac + DIR825C1_MAC1_OFFSET);
ath79_gpio_output_select(DIR825C1_GPIO_LED_BLUE_USB, AR934X_GPIO_OUT_GPIO);
ath79_register_m25p80(NULL); ath79_register_m25p80(NULL);
ath79_register_leds_gpio(-1, ARRAY_SIZE(dir825c1_leds_gpio),
dir825c1_leds_gpio);
ath79_register_gpio_keys_polled(-1, DIR825C1_KEYS_POLL_INTERVAL, ath79_register_gpio_keys_polled(-1, DIR825C1_KEYS_POLL_INTERVAL,
ARRAY_SIZE(dir825c1_gpio_keys), ARRAY_SIZE(dir825c1_gpio_keys),
dir825c1_gpio_keys); dir825c1_gpio_keys);
ap9x_pci_setup_wmac_led_pin(0, 13);
ap9x_pci_setup_wmac_led_pin(1, 32);
ath79_init_mac(wmac0, mac0, 0); ath79_init_mac(wmac0, mac0, 0);
ath79_register_wmac(art + DIR825C1_WMAC_CALDATA_OFFSET, wmac0); ath79_register_wmac(art + DIR825C1_WMAC_CALDATA_OFFSET, wmac0);
@ -194,6 +215,34 @@ static void __init dir825c1_setup(void)
ath79_register_usb(); ath79_register_usb();
} }
static void __init dir825c1_setup(void)
{
ath79_gpio_output_select(DIR825C1_GPIO_LED_BLUE_USB,
AR934X_GPIO_OUT_GPIO);
ath79_register_leds_gpio(-1, ARRAY_SIZE(dir825c1_leds_gpio),
dir825c1_leds_gpio);
ap9x_pci_setup_wmac_led_pin(0, 13);
ap9x_pci_setup_wmac_led_pin(1, 32);
dir825c1_generic_setup();
}
static void __init dir835a1_setup(void)
{
dir825c1_ar8327_data.led_cfg = NULL;
ath79_register_leds_gpio(-1, ARRAY_SIZE(dir835a1_leds_gpio),
dir835a1_leds_gpio);
dir825c1_generic_setup();
}
MIPS_MACHINE(ATH79_MACH_DIR_825_C1, "DIR-825-C1", MIPS_MACHINE(ATH79_MACH_DIR_825_C1, "DIR-825-C1",
"D-Link DIR-825 rev. C1", "D-Link DIR-825 rev. C1",
dir825c1_setup); dir825c1_setup);
MIPS_MACHINE(ATH79_MACH_DIR_835_A1, "DIR-835-A1",
"D-Link DIR-835 rev. A1",
dir835a1_setup);

View File

@ -1,10 +1,11 @@
--- a/arch/mips/ath79/machtypes.h --- a/arch/mips/ath79/machtypes.h
+++ b/arch/mips/ath79/machtypes.h +++ b/arch/mips/ath79/machtypes.h
@@ -39,6 +39,7 @@ enum ath79_mach_type { @@ -39,6 +39,8 @@ enum ath79_mach_type {
ATH79_MACH_DIR_615_C1, /* D-Link DIR-615 rev. C1 */ ATH79_MACH_DIR_615_C1, /* D-Link DIR-615 rev. C1 */
ATH79_MACH_DIR_615_E4, /* D-Link DIR-615 rev. E4 */ ATH79_MACH_DIR_615_E4, /* D-Link DIR-615 rev. E4 */
ATH79_MACH_DIR_825_B1, /* D-Link DIR-825 rev. B1 */ ATH79_MACH_DIR_825_B1, /* D-Link DIR-825 rev. B1 */
+ ATH79_MACH_DIR_825_C1, /* D-Link DIR-825 rev. C1 */ + ATH79_MACH_DIR_825_C1, /* D-Link DIR-825 rev. C1 */
+ ATH79_MACH_DIR_835_A1, /* D-Link DIR-835 rev. A1 */
ATH79_MACH_EW_DORIN, /* embedded wireless Dorin Platform */ ATH79_MACH_EW_DORIN, /* embedded wireless Dorin Platform */
ATH79_MACH_EW_DORIN_ROUTER, /* embedded wireless Dorin Router Platform */ ATH79_MACH_EW_DORIN_ROUTER, /* embedded wireless Dorin Router Platform */
ATH79_MACH_EAP7660D, /* Senao EAP7660D */ ATH79_MACH_EAP7660D, /* Senao EAP7660D */
@ -15,7 +16,7 @@
select ATH79_DEV_USB select ATH79_DEV_USB
+config ATH79_MACH_DIR_825_C1 +config ATH79_MACH_DIR_825_C1
+ bool "D-Link DIR-825 rev. C1 board support" + bool "D-Link DIR-825 rev. C1/DIR-835 rev. A1 board support"
+ select SOC_AR934X + select SOC_AR934X
+ select ATH79_DEV_AP9X_PCI if PCI + select ATH79_DEV_AP9X_PCI if PCI
+ select ATH79_DEV_ETH + select ATH79_DEV_ETH

View File

@ -1,6 +1,6 @@
--- a/arch/mips/ath79/machtypes.h --- a/arch/mips/ath79/machtypes.h
+++ b/arch/mips/ath79/machtypes.h +++ b/arch/mips/ath79/machtypes.h
@@ -84,6 +84,7 @@ enum ath79_mach_type { @@ -85,6 +85,7 @@ enum ath79_mach_type {
ATH79_MACH_TL_WA7510N_V1, /* TP-LINK TL-WA7510N v1*/ ATH79_MACH_TL_WA7510N_V1, /* TP-LINK TL-WA7510N v1*/
ATH79_MACH_TL_WA901ND, /* TP-LINK TL-WA901ND */ ATH79_MACH_TL_WA901ND, /* TP-LINK TL-WA901ND */
ATH79_MACH_TL_WA901ND_V2, /* TP-LINK TL-WA901ND v2 */ ATH79_MACH_TL_WA901ND_V2, /* TP-LINK TL-WA901ND v2 */

View File

@ -1,6 +1,6 @@
--- a/arch/mips/ath79/machtypes.h --- a/arch/mips/ath79/machtypes.h
+++ b/arch/mips/ath79/machtypes.h +++ b/arch/mips/ath79/machtypes.h
@@ -47,6 +47,7 @@ enum ath79_mach_type { @@ -48,6 +48,7 @@ enum ath79_mach_type {
ATH79_MACH_JA76PF2, /* jjPlus JA76PF2 */ ATH79_MACH_JA76PF2, /* jjPlus JA76PF2 */
ATH79_MACH_JWAP003, /* jjPlus JWAP003 */ ATH79_MACH_JWAP003, /* jjPlus JWAP003 */
ATH79_MACH_HORNET_UB, /* ALFA Networks Hornet-UB */ ATH79_MACH_HORNET_UB, /* ALFA Networks Hornet-UB */

View File

@ -1,6 +1,6 @@
--- a/arch/mips/ath79/machtypes.h --- a/arch/mips/ath79/machtypes.h
+++ b/arch/mips/ath79/machtypes.h +++ b/arch/mips/ath79/machtypes.h
@@ -70,6 +70,7 @@ enum ath79_mach_type { @@ -71,6 +71,7 @@ enum ath79_mach_type {
ATH79_MACH_RB_750G_R3, /* MikroTik RouterBOARD 750GL */ ATH79_MACH_RB_750G_R3, /* MikroTik RouterBOARD 750GL */
ATH79_MACH_RB_751, /* MikroTik RouterBOARD 751 */ ATH79_MACH_RB_751, /* MikroTik RouterBOARD 751 */
ATH79_MACH_RB_751G, /* Mikrotik RouterBOARD 751G */ ATH79_MACH_RB_751G, /* Mikrotik RouterBOARD 751G */