source: trunk/target/linux/ixp4xx/patches-2.6.34/301-avila_led.patch @ 22373

Last change on this file since 22373 was 22373, checked in by acoul, 6 years ago

ixp4xx: add kernel 2.6.34 preliminary support

File size: 3.9 KB
  • arch/arm/mach-ixp4xx/avila-setup.c

    a b  
    2222#include <linux/serial_8250.h> 
    2323#include <linux/i2c.h> 
    2424#include <linux/i2c/at24.h> 
     25#include <linux/leds.h> 
    2526#include <linux/i2c-gpio.h> 
    2627#include <asm/types.h> 
    2728#include <asm/setup.h> 
    static struct platform_device avila_npec 
    170171        .dev.platform_data      = &avila_npec_data, 
    171172}; 
    172173 
     174static struct gpio_led avila_gpio_leds[] = { 
     175        { 
     176                .name           = "user",  /* green led */ 
     177                .gpio           = AVILA_GW23XX_LED_USER_GPIO, 
     178                .active_low     = 1, 
     179        } 
     180}; 
     181 
     182static struct gpio_led_platform_data avila_gpio_leds_data = { 
     183        .num_leds               = 1, 
     184        .leds                   = avila_gpio_leds, 
     185}; 
     186 
     187static struct platform_device avila_gpio_leds_device = { 
     188        .name                   = "leds-gpio", 
     189        .id                     = -1, 
     190        .dev.platform_data      = &avila_gpio_leds_data, 
     191}; 
     192 
     193static struct latch_led avila_latch_leds[] = { 
     194        { 
     195                .name   = "led0",  /* green led */ 
     196                .bit    = 0, 
     197        }, 
     198        { 
     199                .name   = "led1",  /* green led */ 
     200                .bit    = 1, 
     201        }, 
     202        { 
     203                .name   = "led2",  /* green led */ 
     204                .bit    = 2, 
     205        }, 
     206        { 
     207                .name   = "led3",  /* green led */ 
     208                .bit    = 3, 
     209        }, 
     210        { 
     211                .name   = "led4",  /* green led */ 
     212                .bit    = 4, 
     213        }, 
     214        { 
     215                .name   = "led5",  /* green led */ 
     216                .bit    = 5, 
     217        }, 
     218        { 
     219                .name   = "led6",  /* green led */ 
     220                .bit    = 6, 
     221        }, 
     222        { 
     223                .name   = "led7",  /* green led */ 
     224                .bit    = 7, 
     225        } 
     226}; 
     227 
     228static struct latch_led_platform_data avila_latch_leds_data = { 
     229        .num_leds       = 8, 
     230        .leds           = avila_latch_leds, 
     231        .mem            = 0x51000000, 
     232}; 
     233 
     234static struct platform_device avila_latch_leds_device = { 
     235        .name                   = "leds-latch", 
     236        .id                     = -1, 
     237        .dev.platform_data      = &avila_latch_leds_data, 
     238}; 
     239 
    173240static struct platform_device *avila_devices[] __initdata = { 
    174241        &avila_i2c_gpio, 
    175242        &avila_flash, 
    static void __init avila_gw23xx_setup(vo 
    180247{ 
    181248        platform_device_register(&avila_npeb_device); 
    182249        platform_device_register(&avila_npec_device); 
     250 
     251        platform_device_register(&avila_gpio_leds_device); 
    183252} 
    184253 
    185254static void __init avila_gw2342_setup(void) 
    186255{ 
    187256        platform_device_register(&avila_npeb_device); 
    188257        platform_device_register(&avila_npec_device); 
     258 
     259        platform_device_register(&avila_gpio_leds_device); 
    189260} 
    190261 
    191262static void __init avila_gw2345_setup(void) 
    static void __init avila_gw2345_setup(vo 
    196267 
    197268        avila_npec_data.phy = 5; /* port 5 of the KS8995 switch */ 
    198269        platform_device_register(&avila_npec_device); 
     270 
     271        platform_device_register(&avila_gpio_leds_device); 
    199272} 
    200273 
    201274static void __init avila_gw2347_setup(void) 
    202275{ 
    203276        platform_device_register(&avila_npeb_device); 
     277 
     278        avila_gpio_leds[0].gpio = AVILA_GW23X7_LED_USER_GPIO; 
     279        platform_device_register(&avila_gpio_leds_device); 
    204280} 
    205281 
    206282static void __init avila_gw2348_setup(void) 
    207283{ 
    208284        platform_device_register(&avila_npeb_device); 
    209285        platform_device_register(&avila_npec_device); 
     286 
     287        platform_device_register(&avila_gpio_leds_device); 
    210288} 
    211289 
    212290static void __init avila_gw2353_setup(void) 
    213291{ 
    214292        platform_device_register(&avila_npeb_device); 
     293        platform_device_register(&avila_gpio_leds_device); 
    215294} 
    216295 
    217296static void __init avila_gw2355_setup(void) 
    static void __init avila_gw2355_setup(vo 
    222301 
    223302        avila_npec_data.phy = 16; 
    224303        platform_device_register(&avila_npec_device); 
     304 
     305        platform_device_register(&avila_gpio_leds_device); 
     306 
     307        *IXP4XX_EXP_CS4 |= 0xbfff3c03; 
     308        avila_latch_leds[0].name = "RXD"; 
     309        avila_latch_leds[1].name = "TXD"; 
     310        avila_latch_leds[2].name = "POL"; 
     311        avila_latch_leds[3].name = "LNK"; 
     312        avila_latch_leds[4].name = "ERR"; 
     313        avila_latch_leds_data.num_leds = 5; 
     314        avila_latch_leds_data.mem = 0x54000000; 
     315        platform_device_register(&avila_latch_leds_device); 
    225316} 
    226317 
    227318static void __init avila_gw2357_setup(void) 
    228319{ 
    229320        platform_device_register(&avila_npeb_device); 
     321 
     322        avila_gpio_leds[0].gpio = AVILA_GW23X7_LED_USER_GPIO; 
     323        platform_device_register(&avila_gpio_leds_device); 
     324 
     325        *IXP4XX_EXP_CS1 |= 0xbfff3c03; 
     326        platform_device_register(&avila_latch_leds_device); 
    230327} 
    231328 
    232329static struct avila_board_info avila_boards[] __initdata = { 
Note: See TracBrowser for help on using the repository browser.