arm: at91: convert old leds drivers to gpio_led and led_trigger drivers
PATCH 1/1 arm: at91: convert old leds drivers to gpio_led and led_trigger drivers
Build with at91 defconfigs successfully
--- arch/arm/mach-at91/board-cap9adk.c | 21 ++++++- arch/arm/mach-at91/board-csb337.c | 3 - arch/arm/mach-at91/board-ecbat91.c | 18 +++++- arch/arm/mach-at91/board-eco920.c | 23 ++++++- arch/arm/mach-at91/board-kafa.c | 17 ++++- arch/arm/mach-at91/board-kb9202.c | 23 ++++++- arch/arm/mach-at91/board-rm9200dk.c | 3 - arch/arm/mach-at91/board-rm9200ek.c | 3 - arch/arm/mach-at91/board-sam9-l9260.c | 23 ++++++- arch/arm/mach-at91/board-sam9261ek.c | 3 - arch/arm/mach-at91/board-yl-9200.c | 3 - arch/arm/mach-at91/include/mach/board.h | 1 - arch/arm/mach-at91/leds.c | 105 ------------------------------- 13 files changed, 108 insertions(+), 138 deletions(-)
arch/arm/mach-at91/board-cap9adk.c +19 -2
@@ -55,8 +55,6 @@ static void __init cap9adk_init_early(void)/* Initialize processor: 12 MHz crystal */ at91cap9_initialize (12000000 ); -/* Setup the LEDs: USER1 and USER2 LED for cpu/timer... */ -at91_init_leds (AT91_PIN_PA10 ,AT91_PIN_PA11 );/* ... POWER LED always on */ at91_set_gpio_output (AT91_PIN_PC29 ,1 );
@@ -365,6 +363,23 @@ static struct ac97c_platform_data cap9adk_ac97_data = {// .reset_pin = ... not connected }; +/* +* LEDs +*/ +static struct gpio_led cap9adk_leds[] = { + {/* D1 */ + .name ="led1" , + .gpio =AT91_PIN_PA10 , + .active_low =1 , + .default_trigger ="heartbeat" , + }, + {/* D2 */ + .name ="led2" , + .gpio =AT91_PIN_PA11 , + .active_low =1 , + .default_trigger ="timer" , + } +};static void __init cap9adk_board_init (void ) {
@@ -392,6 +407,8 @@ static void __init cap9adk_board_init(void)at91_add_device_lcdc (&cap9adk_lcdc_data);/* AC97 */ at91_add_device_ac97 (&cap9adk_ac97_data); +/* LEDs */ +at91_gpio_leds (cap9adk_leds,ARRAY_SIZE (cap9adk_leds)); }MACHINE_START (AT91CAP9ADK ,"Atmel AT91CAP9A-DK" )
arch/arm/mach-at91/board-csb337.c +0 -3
@@ -48,9 +48,6 @@ static void __init csb337_init_early(void)/* Initialize processor: 3.6864 MHz crystal */ at91rm9200_initialize (3686400 ); -/* Setup the LEDs */ -at91_init_leds (AT91_PIN_PB0 ,AT91_PIN_PB1 ); -/* DBGU on ttyS0 */ at91_register_uart (0 ,0 ,0 );
arch/arm/mach-at91/board-ecbat91.c +15 -3
@@ -51,9 +51,6 @@ static void __init ecb_at91init_early(void)/* Initialize processor: 18.432 MHz crystal */ at91rm9200_initialize (18432000 ); -/* Setup the LEDs */ -at91_init_leds (AT91_PIN_PC7 ,AT91_PIN_PC7 ); -/* DBGU on ttyS0. (Rx & Tx only) */ at91_register_uart (0 ,0 ,0 );
@@ -149,6 +146,18 @@ static struct spi_board_info __initdata ecb_at91spi_devices[] = { }, }; +/* +* LEDs +*/ +static struct gpio_led ecb_leds[] = { + {/* D1 */ + .name ="led1" , + .gpio =AT91_PIN_PC7 , + .active_low =1 , + .default_trigger ="heartbeat" , + } +}; +static void __init ecb_at91board_init (void ) {/* Serial */
@@ -168,6 +177,9 @@ static void __init ecb_at91board_init(void)/* SPI */ at91_add_device_spi (ecb_at91spi_devices,ARRAY_SIZE (ecb_at91spi_devices)); + +/* LEDs */ +at91_gpio_leds (ecb_leds,ARRAY_SIZE (ecb_leds)); }MACHINE_START (ECBAT91 ,"emQbit's ECB_AT91" )
arch/arm/mach-at91/board-eco920.c +20 -3
@@ -37,9 +37,6 @@ static void __init eco920_init_early(void)at91rm9200_initialize (18432000 ); -/* Setup the LEDs */ -at91_init_leds (AT91_PIN_PB0 ,AT91_PIN_PB1 ); -/* DBGU on ttyS0. (Rx & Tx only */ at91_register_uart (0 ,0 ,0 );
@@ -100,6 +97,24 @@ static struct spi_board_info eco920_spi_devices[] = { }, }; +/* +* LEDs +*/ +static struct gpio_led eco920_leds[] = { + {/* D1 */ + .name ="led1" , + .gpio =AT91_PIN_PB0 , + .active_low =1 , + .default_trigger ="heartbeat" , + }, + {/* D2 */ + .name ="led2" , + .gpio =AT91_PIN_PB1 , + .active_low =1 , + .default_trigger ="timer" , + } +}; +static void __init eco920_board_init (void ) {at91_add_device_serial ();
@@ -130,6 +145,8 @@ static void __init eco920_board_init(void) );at91_add_device_spi (eco920_spi_devices,ARRAY_SIZE (eco920_spi_devices)); +/* LEDs */ +at91_gpio_leds (eco920_leds,ARRAY_SIZE (eco920_leds)); }MACHINE_START (ECO920 ,"eco920" )
arch/arm/mach-at91/board-kafa.c +14 -3
@@ -48,9 +48,6 @@ static void __init kafa_init_early(void)/* Initialize processor: 18.432 MHz crystal */ at91rm9200_initialize (18432000 ); -/* Set up the LEDs */ -at91_init_leds (AT91_PIN_PB4 ,AT91_PIN_PB4 ); -/* DBGU on ttyS0. (Rx & Tx only) */ at91_register_uart (0 ,0 ,0 );
@@ -80,6 +77,18 @@ static struct at91_udc_data __initdata kafa_udc_data = { .pullup_pin = AT91_PIN_PB7, }; +/* +* LEDs +*/ +static struct gpio_led kafa_leds[] = { + {/* D1 */ + .name ="led1" , + .gpio =AT91_PIN_PB4 , + .active_low =1 , + .default_trigger ="heartbeat" , + }, +}; +static void __init kafa_board_init (void ) {/* Serial */
@@ -94,6 +103,8 @@ static void __init kafa_board_init(void)at91_add_device_i2c (NULL ,0 );/* SPI */ at91_add_device_spi (NULL ,0 ); +/* LEDs */ +at91_gpio_leds (kafa_leds,ARRAY_SIZE (kafa_leds)); }MACHINE_START (KAFA ,"Sperry-Sun KAFA" )
arch/arm/mach-at91/board-kb9202.c +20 -3
@@ -50,9 +50,6 @@ static void __init kb9202_init_early(void)/* Initialize processor: 10 MHz crystal */ at91rm9200_initialize (10000000 ); -/* Set up the LEDs */ -at91_init_leds (AT91_PIN_PC19 ,AT91_PIN_PC18 ); -/* DBGU on ttyS0. (Rx & Tx only) */ at91_register_uart (0 ,0 ,0 );
@@ -117,6 +114,24 @@ static struct atmel_nand_data __initdata kb9202_nand_data = { .partition_info = nand_partitions, }; +/* +* LEDs +*/ +static struct gpio_led kb9202_leds[] = { + {/* D1 */ + .name ="led1" , + .gpio =AT91_PIN_PC19 , + .active_low =1 , + .default_trigger ="heartbeat" , + }, + {/* D2 */ + .name ="led2" , + .gpio =AT91_PIN_PC18 , + .active_low =1 , + .default_trigger ="timer" , + } +}; +static void __init kb9202_board_init (void ) {/* Serial */
@@ -135,6 +150,8 @@ static void __init kb9202_board_init(void)at91_add_device_spi (NULL ,0 );/* NAND */ at91_add_device_nand (&kb9202_nand_data); +/* LEDs */ +at91_gpio_leds (kb9202_leds,ARRAY_SIZE (kb9202_leds)); }MACHINE_START (KB9200 ,"KB920x" )
arch/arm/mach-at91/board-rm9200dk.c +0 -3
@@ -50,9 +50,6 @@ static void __init dk_init_early(void)/* Initialize processor: 18.432 MHz crystal */ at91rm9200_initialize (18432000 ); -/* Setup the LEDs */ -at91_init_leds (AT91_PIN_PB2 ,AT91_PIN_PB2 ); -/* DBGU on ttyS0. (Rx & Tx only) */ at91_register_uart (0 ,0 ,0 );
arch/arm/mach-at91/board-rm9200ek.c +0 -3
@@ -50,9 +50,6 @@ static void __init ek_init_early(void)/* Initialize processor: 18.432 MHz crystal */ at91rm9200_initialize (18432000 ); -/* Setup the LEDs */ -at91_init_leds (AT91_PIN_PB1 ,AT91_PIN_PB2 ); -/* DBGU on ttyS0. (Rx & Tx only) */ at91_register_uart (0 ,0 ,0 );
arch/arm/mach-at91/board-sam9-l9260.c +20 -3
@@ -49,9 +49,6 @@ static void __init ek_init_early(void)/* Initialize processor: 18.432 MHz crystal */ at91sam9260_initialize (18432000 ); -/* Setup the LEDs */ -at91_init_leds (AT91_PIN_PA9 ,AT91_PIN_PA6 ); -/* DBGU on ttyS0. (Rx & Tx only) */ at91_register_uart (0 ,0 ,0 );
@@ -190,6 +187,24 @@ static struct at91_mmc_data __initdata ek_mmc_data = {// .vcc_pin = ... not connected }; +/* +* LEDs +*/ +static struct gpio_led ek_leds[] = { + {/* D1 */ + .name ="led1" , + .gpio =AT91_PIN_PA9 , + .active_low =1 , + .default_trigger ="heartbeat" , + }, + {/* D2 */ + .name ="led2" , + .gpio =AT91_PIN_PA6 , + .active_low =1 , + .default_trigger ="timer" , + } +}; +static void __init ek_board_init (void ) {/* Serial */
@@ -208,6 +223,8 @@ static void __init ek_board_init(void)at91_add_device_mmc (0 , &ek_mmc_data);/* I2C */ at91_add_device_i2c (NULL ,0 ); +/* LEDs */ +at91_gpio_leds (ek_leds,ARRAY_SIZE (ek_leds)); }MACHINE_START (SAM9_L9260 ,"Olimex SAM9-L9260" )
arch/arm/mach-at91/board-sam9261ek.c +0 -3
@@ -59,9 +59,6 @@ static void __init ek_init_early(void)/* Initialize processor: 18.432 MHz crystal */ at91sam9261_initialize (18432000 ); -/* Setup the LEDs */ -at91_init_leds (AT91_PIN_PA13 ,AT91_PIN_PA14 ); -/* DBGU on ttyS0. (Rx & Tx only) */ at91_register_uart (0 ,0 ,0 );
arch/arm/mach-at91/board-yl-9200.c +0 -3
@@ -58,9 +58,6 @@ static void __init yl9200_init_early(void)/* Initialize processor: 18.432 MHz crystal */ at91rm9200_initialize (18432000 ); -/* Setup the LEDs D2=PB17 (timer), D3=PB16 (cpu) */ -at91_init_leds (AT91_PIN_PB16 ,AT91_PIN_PB17 ); -/* DBGU on ttyS0. (Rx & Tx only) */ at91_register_uart (0 ,0 ,0 );
arch/arm/mach-at91/include/mach/board.h +0 -1
@@ -200,7 +200,6 @@ struct at91_can_data {extern void __init at91_add_device_can (struct at91_can_data *data);/* LEDs */ -extern void __init at91_init_leds (u8 cpu_led,u8 timer_led);extern void __init at91_gpio_leds (struct gpio_led *leds,int nr);extern void __init at91_pwm_leds (struct gpio_led *leds,int nr);
arch/arm/mach-at91/leds.c +0 -105
108 lines not on this page · raw message
Signature · 1 line
1.7.5
PATCH 1/1 arm: at91: convert old leds drivers to gpio_led and led_trigger drivers
Le 01/06/2011 12:00, Bryan Wu :
Quoted 3 lines
Build with at91 defconfigs successfully
Signed-off-by Bryan Wu <[email protected]>
I think that we can queue it before our "board" files big modification.
Thanks, bye,
Quoted 486 lines
--- arch/arm/mach-at91/board-cap9adk.c | 21 ++++++- arch/arm/mach-at91/board-csb337.c | 3 - arch/arm/mach-at91/board-ecbat91.c | 18 +++++- arch/arm/mach-at91/board-eco920.c | 23 ++++++- arch/arm/mach-at91/board-kafa.c | 17 ++++- arch/arm/mach-at91/board-kb9202.c | 23 ++++++- arch/arm/mach-at91/board-rm9200dk.c | 3 - arch/arm/mach-at91/board-rm9200ek.c | 3 - arch/arm/mach-at91/board-sam9-l9260.c | 23 ++++++- arch/arm/mach-at91/board-sam9261ek.c | 3 - arch/arm/mach-at91/board-yl-9200.c | 3 - arch/arm/mach-at91/include/mach/board.h | 1 - arch/arm/mach-at91/leds.c | 105 ------------------------------- 13 files changed, 108 insertions(+), 138 deletions(-)arch/arm/mach-at91/board-cap9adk.c +19
-2@@ -55,8 +55,6 @@ static void __init cap9adk_init_early(void)/* Initialize processor: 12 MHz crystal */ at91cap9_initialize (12000000 ); -/* Setup the LEDs: USER1 and USER2 LED for cpu/timer... */ -at91_init_leds (AT91_PIN_PA10 ,AT91_PIN_PA11 );/* ... POWER LED always on */ at91_set_gpio_output (AT91_PIN_PC29 ,1 );@@ -365,6 +363,23 @@ static struct ac97c_platform_data cap9adk_ac97_data = {// .reset_pin = ... not connected }; +/* +* LEDs +*/ +static struct gpio_led cap9adk_leds[] = { + {/* D1 */ + .name ="led1" , + .gpio =AT91_PIN_PA10 , + .active_low =1 , + .default_trigger ="heartbeat" , + }, + {/* D2 */ + .name ="led2" , + .gpio =AT91_PIN_PA11 , + .active_low =1 , + .default_trigger ="timer" , + } +};static void __init cap9adk_board_init (void ) {@@ -392,6 +407,8 @@ static void __init cap9adk_board_init(void)at91_add_device_lcdc (&cap9adk_lcdc_data);/* AC97 */ at91_add_device_ac97 (&cap9adk_ac97_data); +/* LEDs */ +at91_gpio_leds (cap9adk_leds,ARRAY_SIZE (cap9adk_leds)); }MACHINE_START (AT91CAP9ADK ,"Atmel AT91CAP9A-DK" )arch/arm/mach-at91/board-csb337.c +0
-3@@ -48,9 +48,6 @@ static void __init csb337_init_early(void)/* Initialize processor: 3.6864 MHz crystal */ at91rm9200_initialize (3686400 ); -/* Setup the LEDs */ -at91_init_leds (AT91_PIN_PB0 ,AT91_PIN_PB1 ); -/* DBGU on ttyS0 */ at91_register_uart (0 ,0 ,0 );arch/arm/mach-at91/board-ecbat91.c +15
-3@@ -51,9 +51,6 @@ static void __init ecb_at91init_early(void)/* Initialize processor: 18.432 MHz crystal */ at91rm9200_initialize (18432000 ); -/* Setup the LEDs */ -at91_init_leds (AT91_PIN_PC7 ,AT91_PIN_PC7 ); -/* DBGU on ttyS0. (Rx & Tx only) */ at91_register_uart (0 ,0 ,0 );@@ -149,6 +146,18 @@ static struct spi_board_info __initdata ecb_at91spi_devices[] = { }, }; +/* +* LEDs +*/ +static struct gpio_led ecb_leds[] = { + {/* D1 */ + .name ="led1" , + .gpio =AT91_PIN_PC7 , + .active_low =1 , + .default_trigger ="heartbeat" , + } +}; +static void __init ecb_at91board_init (void ) {/* Serial */ @@ -168,6 +177,9 @@ static void __init ecb_at91board_init(void)/* SPI */ at91_add_device_spi (ecb_at91spi_devices,ARRAY_SIZE (ecb_at91spi_devices)); + +/* LEDs */ +at91_gpio_leds (ecb_leds,ARRAY_SIZE (ecb_leds)); }MACHINE_START (ECBAT91 ,"emQbit's ECB_AT91" )arch/arm/mach-at91/board-eco920.c +20
-3@@ -37,9 +37,6 @@ static void __init eco920_init_early(void)at91rm9200_initialize (18432000 ); -/* Setup the LEDs */ -at91_init_leds (AT91_PIN_PB0 ,AT91_PIN_PB1 ); -/* DBGU on ttyS0. (Rx & Tx only */ at91_register_uart (0 ,0 ,0 );@@ -100,6 +97,24 @@ static struct spi_board_info eco920_spi_devices[] = { }, }; +/* +* LEDs +*/ +static struct gpio_led eco920_leds[] = { + {/* D1 */ + .name ="led1" , + .gpio =AT91_PIN_PB0 , + .active_low =1 , + .default_trigger ="heartbeat" , + }, + {/* D2 */ + .name ="led2" , + .gpio =AT91_PIN_PB1 , + .active_low =1 , + .default_trigger ="timer" , + } +}; +static void __init eco920_board_init (void ) {at91_add_device_serial ();@@ -130,6 +145,8 @@ static void __init eco920_board_init(void) );at91_add_device_spi (eco920_spi_devices,ARRAY_SIZE (eco920_spi_devices)); +/* LEDs */ +at91_gpio_leds (eco920_leds,ARRAY_SIZE (eco920_leds)); }MACHINE_START (ECO920 ,"eco920" )arch/arm/mach-at91/board-kafa.c +14
-3@@ -48,9 +48,6 @@ static void __init kafa_init_early(void)/* Initialize processor: 18.432 MHz crystal */ at91rm9200_initialize (18432000 ); -/* Set up the LEDs */ -at91_init_leds (AT91_PIN_PB4 ,AT91_PIN_PB4 ); -/* DBGU on ttyS0. (Rx & Tx only) */ at91_register_uart (0 ,0 ,0 );@@ -80,6 +77,18 @@ static struct at91_udc_data __initdata kafa_udc_data = { .pullup_pin = AT91_PIN_PB7, }; +/* +* LEDs +*/ +static struct gpio_led kafa_leds[] = { + {/* D1 */ + .name ="led1" , + .gpio =AT91_PIN_PB4 , + .active_low =1 , + .default_trigger ="heartbeat" , + }, +}; +static void __init kafa_board_init (void ) {/* Serial */ @@ -94,6 +103,8 @@ static void __init kafa_board_init(void)at91_add_device_i2c (NULL ,0 );/* SPI */ at91_add_device_spi (NULL ,0 ); +/* LEDs */ +at91_gpio_leds (kafa_leds,ARRAY_SIZE (kafa_leds)); }MACHINE_START (KAFA ,"Sperry-Sun KAFA" )arch/arm/mach-at91/board-kb9202.c +20
-3@@ -50,9 +50,6 @@ static void __init kb9202_init_early(void)/* Initialize processor: 10 MHz crystal */ at91rm9200_initialize (10000000 ); -/* Set up the LEDs */ -at91_init_leds (AT91_PIN_PC19 ,AT91_PIN_PC18 ); -/* DBGU on ttyS0. (Rx & Tx only) */ at91_register_uart (0 ,0 ,0 );@@ -117,6 +114,24 @@ static struct atmel_nand_data __initdata kb9202_nand_data = { .partition_info = nand_partitions, }; +/* +* LEDs +*/ +static struct gpio_led kb9202_leds[] = { + {/* D1 */ + .name ="led1" , + .gpio =AT91_PIN_PC19 , + .active_low =1 , + .default_trigger ="heartbeat" , + }, + {/* D2 */ + .name ="led2" , + .gpio =AT91_PIN_PC18 , + .active_low =1 , + .default_trigger ="timer" , + } +}; +static void __init kb9202_board_init (void ) {/* Serial */ @@ -135,6 +150,8 @@ static void __init kb9202_board_init(void)at91_add_device_spi (NULL ,0 );/* NAND */ at91_add_device_nand (&kb9202_nand_data); +/* LEDs */ +at91_gpio_leds (kb9202_leds,ARRAY_SIZE (kb9202_leds)); }MACHINE_START (KB9200 ,"KB920x" )arch/arm/mach-at91/board-rm9200dk.c +0
-3@@ -50,9 +50,6 @@ static void __init dk_init_early(void)/* Initialize processor: 18.432 MHz crystal */ at91rm9200_initialize (18432000 ); -/* Setup the LEDs */ -at91_init_leds (AT91_PIN_PB2 ,AT91_PIN_PB2 ); -/* DBGU on ttyS0. (Rx & Tx only) */ at91_register_uart (0 ,0 ,0 );arch/arm/mach-at91/board-rm9200ek.c +0
-3@@ -50,9 +50,6 @@ static void __init ek_init_early(void)/* Initialize processor: 18.432 MHz crystal */ at91rm9200_initialize (18432000 ); -/* Setup the LEDs */ -at91_init_leds (AT91_PIN_PB1 ,AT91_PIN_PB2 ); -/* DBGU on ttyS0. (Rx & Tx only) */ at91_register_uart (0 ,0 ,0 );arch/arm/mach-at91/board-sam9-l9260.c +20
-3@@ -49,9 +49,6 @@ static void __init ek_init_early(void)/* Initialize processor: 18.432 MHz crystal */ at91sam9260_initialize (18432000 ); -/* Setup the LEDs */ -at91_init_leds (AT91_PIN_PA9 ,AT91_PIN_PA6 ); -/* DBGU on ttyS0. (Rx & Tx only) */ at91_register_uart (0 ,0 ,0 );@@ -190,6 +187,24 @@ static struct at91_mmc_data __initdata ek_mmc_data = {// .vcc_pin = ... not connected }; +/* +* LEDs +*/ +static struct gpio_led ek_leds[] = { + {/* D1 */ + .name ="led1" , + .gpio =AT91_PIN_PA9 , + .active_low =1 , + .default_trigger ="heartbeat" , + }, + {/* D2 */ + .name ="led2" , + .gpio =AT91_PIN_PA6 , + .active_low =1 , + .default_trigger ="timer" , + } +}; +static void __init ek_board_init (void ) {/* Serial */ @@ -208,6 +223,8 @@ static void __init ek_board_init(void)at91_add_device_mmc (0 , &ek_mmc_data);/* I2C */ at91_add_device_i2c (NULL ,0 ); +/* LEDs */ +at91_gpio_leds (ek_leds,ARRAY_SIZE (ek_leds)); }MACHINE_START (SAM9_L9260 ,"Olimex SAM9-L9260" )arch/arm/mach-at91/board-sam9261ek.c +0
-3@@ -59,9 +59,6 @@ static void __init ek_init_early(void)/* Initialize processor: 18.432 MHz crystal */ at91sam9261_initialize (18432000 ); -/* Setup the LEDs */ -at91_init_leds (AT91_PIN_PA13 ,AT91_PIN_PA14 ); -/* DBGU on ttyS0. (Rx & Tx only) */ at91_register_uart (0 ,0 ,0 );arch/arm/mach-at91/board-yl-9200.c +0
-3@@ -58,9 +58,6 @@ static void __init yl9200_init_early(void)/* Initialize processor: 18.432 MHz crystal */ at91rm9200_initialize (18432000 ); -/* Setup the LEDs D2=PB17 (timer), D3=PB16 (cpu) */ -at91_init_leds (AT91_PIN_PB16 ,AT91_PIN_PB17 ); -/* DBGU on ttyS0. (Rx & Tx only) */ at91_register_uart (0 ,0 ,0 );arch/arm/mach-at91/include/mach/board.h +0
-1@@ -200,7 +200,6 @@ struct at91_can_data {extern void __init at91_add_device_can (struct at91_can_data *data);/* LEDs */ -extern void __init at91_init_leds (u8 cpu_led,u8 timer_led);extern void __init at91_gpio_leds (struct gpio_led *leds,int nr);extern void __init at91_pwm_leds (struct gpio_led *leds,int nr);arch/arm/mach-at91/leds.c +0
-105@@ -90,108 +90,3 @@ void __init at91_pwm_leds(struct gpio_led *leds, int nr)#else void __init at91_pwm_leds (struct gpio_led *leds,int nr){}#endif - - -/* ------------------------------------------------------------------------- */ - -#if defined(CONFIG_LEDS ) - -#include <asm/leds.h> - -/* -* Old ARM-specific LED framework; not fully functional when generic time is -* in use. -*/ - -static u8 at91_leds_cpu; -static u8 at91_leds_timer; - -static inline void at91_led_on (unsigned int led) -{ -at91_set_gpio_value (led,0 ); -} - -static inline void at91_led_off (unsigned int led) -{ -at91_set_gpio_value (led,1 ); -} - -static inline void at91_led_toggle (unsigned int led) -{ -unsigned long is_off =at91_get_gpio_value (led); -if (is_off) -at91_led_on (led); -else -at91_led_off (led); -} - - -/* -* Handle LED events. -*/ -static void at91_leds_event (led_event_t evt) -{ -unsigned long flags; - -local_irq_save (flags); - -switch (evt) { -case led_start:/* System startup */ -at91_led_on (at91_leds_cpu); -break ; - -case led_stop:/* System stop / suspend */ -at91_led_off (at91_leds_cpu); -break ; - -#ifdef CONFIG_LEDS_TIMER -case led_timer:/* Every 50 timer ticks */ -at91_led_toggle (at91_leds_timer); -break ; -#endif - -#ifdef CONFIG_LEDS_CPU -case led_idle_start:/* Entering idle state */ -at91_led_off (at91_leds_cpu); -break ; - -case led_idle_end:/* Exit idle state */ -at91_led_on (at91_leds_cpu); -break ; -#endif - -default : -break ; - } - -local_irq_restore (flags); -} - - -static int __init leds_init (void ) -{ -if (!at91_leds_timer || !at91_leds_cpu) -return -ENODEV ; - - leds_event = at91_leds_event; - -leds_event (led_start); -return 0 ; -} - -__initcall (leds_init); - - -void __init at91_init_leds (u8 cpu_led,u8 timer_led) -{ -/* Enable GPIO to access the LEDs */ -at91_set_gpio_output (cpu_led,1 ); -at91_set_gpio_output (timer_led,1 ); - - at91_leds_cpu = cpu_led; - at91_leds_timer = timer_led; -} - -#else -void __init at91_init_leds (u8 cpu_led,u8 timer_led) {} -#endif
Signature · 1 line
Nicolas Ferre
PATCH 1/1 arm: at91: convert old leds drivers to gpio_led and led_trigger drivers
Quoted 8 lines · Nicolas Ferre
Le 01/06/2011 12:00, Bryan Wu :
Quoted 3 lines
Build with at91 defconfigs successfully
Signed-off-by Bryan Wu <[email protected]>Acked-by Nicolas Ferre <[email protected]>I think that we can queue it before our "board" files big modification.
agreed
Best Regards,
J.
PATCH 1/1 arm: at91: convert old leds drivers to gpio_led and led_trigger drivers
In reply to Bryan WuHi Bryan,
Quoted 58 lines · Bryan Wu
Build with at91 defconfigs successfully
Signed-off-by Bryan Wu <[email protected]>---
?arch/arm/mach-at91/board-cap9adk.c ? ? ?| ? 21 ++++++- ?arch/arm/mach-at91/board-csb337.c ? ? ? | ? ?3 - ?arch/arm/mach-at91/board-ecbat91.c ? ? ?| ? 18 +++++- ?arch/arm/mach-at91/board-eco920.c ? ? ? | ? 23 ++++++- ?arch/arm/mach-at91/board-kafa.c ? ? ? ? | ? 17 ++++- ?arch/arm/mach-at91/board-kb9202.c ? ? ? | ? 23 ++++++- ?arch/arm/mach-at91/board-rm9200dk.c ? ? | ? ?3 - ?arch/arm/mach-at91/board-rm9200ek.c ? ? | ? ?3 - ?arch/arm/mach-at91/board-sam9-l9260.c ? | ? 23 ++++++- ?arch/arm/mach-at91/board-sam9261ek.c ? ?| ? ?3 - ?arch/arm/mach-at91/board-yl-9200.c ? ? ?| ? ?3 - ?arch/arm/mach-at91/include/mach/board.h | ? ?1 - ?arch/arm/mach-at91/leds.c ? ? ? ? ? ? ? | ?105 -------------------------------?13 files changed, 108 insertions(+), 138 deletions(-)
arch/arm/mach-at91/board-cap9adk.c +0
-0@@ -55,8 +55,6 @@ static void __init cap9adk_init_early(void)? ? ? ?/* Initialize processor: 12 MHz crystal */
? ? ? ?at91cap9_initialize(12000000);- ? ? ? /* Setup the LEDs: USER1 and USER2 LED for cpu/timer... */
- ? ? ?at91_init_leds(AT91_PIN_PA10, AT91_PIN_PA11);
? ? ? ?/* ... POWER LED always on */
? ? ? ?at91_set_gpio_output(AT91_PIN_PC29, 1);arch/arm/mach-at91/board-cap9adk.c +0
-0@@ -365,6 +363,23 @@ static struct ac97c_platform_data cap9adk_ac97_data = {?// ? ? .reset_pin ? ? ?= ... not connected
?};arch/arm/mach-at91/board-cap9adk.c +17
-0+/* +* LEDs +*/ +static struct gpio_led cap9adk_leds[] = { + ? ? ? { ? ? ? /* D1 */ + ? ? ? ? ? ? ? .name ? ? ? ? ? ? ? ? ? = "led1", + ? ? ? ? ? ? ? .gpio ? ? ? ? ? ? ? ? ? = AT91_PIN_PA10, + ? ? ? ? ? ? ? .active_low ? ? ? ? ? ? = 1, + ? ? ? ? ? ? ? .default_trigger ? ? ? ?= "heartbeat", + ? ? ? }, + ? ? ? { ? ? ? /* D2 */ + ? ? ? ? ? ? ? .name ? ? ? ? ? ? ? ? ? = "led2", + ? ? ? ? ? ? ? .gpio ? ? ? ? ? ? ? ? ? = AT91_PIN_PA11, + ? ? ? ? ? ? ? .active_low ? ? ? ? ? ? = 1, + ? ? ? ? ? ? ? .default_trigger ? ? ? ?= "timer", + ? ? ? } +};?static void
__initcap9adk_board_init(void)
?{arch/arm/mach-at91/board-cap9adk.c +0
-0@@ -392,6 +407,8 @@ static void __init cap9adk_board_init(void) ? ? ? ?at91_add_device_lcdc(&cap9adk_lcdc_data);
Quoted 4 lines
? ? ? ?/* AC97 */
? ? ? ?at91_add_device_ac97(&cap9adk_ac97_data);
+ ? ? ? /* LEDs */
+ ? ? ?at91_gpio_leds(cap9adk_leds, ARRAY_SIZE(cap9adk_leds));
I haven't checked the way you register the LEDs, but maybe you can try to use gpio_led_register_device to register them.
Uwe has recently introduced a new new leds-gpio registration helper.
Please check the patch below for an example of its usage:
http://git.pengutronix.de/?p=imx/linux-2.6.git;a=commit;h=cf1738dad02f22781ae1f08414634086fc613d81
Regards,
Fabio Estevam
Jean-Christophe PLAGNIOL-VILLARD
AppliedPATCH 1/1 arm: at91: convert old leds drivers to gpio_led and led_trigger drivers
In reply to Bryan WuQuoted 3 lines · Bryan Wu
Build with at91 defconfigs successfully
Signed-off-by Bryan Wu <[email protected]>
Applied to at91-next
Best Regards,
J.