@ -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 = {
{
. desc = " reset " ,
@ -146,7 +174,7 @@ static void dir825c1_read_ascii_mac(u8 *dest, u8 *src)
memset ( dest , 0 , ETH_ALEN ) ;
}
static void __init dir825c1_setup ( void )
static void __init dir825c1_generic_ setup ( void )
{
u8 * mac = ( u8 * ) KSEG1ADDR ( 0x1ffe0000 ) ;
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 ( mac1 , mac + DIR825C1_MAC1_OFFSET ) ;
ath79_gpio_output_select ( DIR825C1_GPIO_LED_BLUE_USB , AR934X_GPIO_OUT_GPIO ) ;
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 ,
ARRAY_SIZE ( 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_register_wmac ( art + DIR825C1_WMAC_CALDATA_OFFSET , wmac0 ) ;
@ -194,6 +215,34 @@ static void __init dir825c1_setup(void)
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 " ,
" D-Link DIR-825 rev. C1 " ,
dir825c1_setup ) ;
MIPS_MACHINE ( ATH79_MACH_DIR_835_A1 , " DIR-835-A1 " ,
" D-Link DIR-835 rev. A1 " ,
dir835a1_setup ) ;