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
			
			
This commit is contained in:
		@@ -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);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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 */
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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 */
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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 */
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user