[PATCH 16/17] mach-sa1100: retire custom LED code

Jochen Friedrich jochen at scram.de
Wed Jul 6 10:04:44 EDT 2011


On 06.07.2011 14:34, Bryan Wu wrote:

> diff --git a/arch/arm/mach-sa1100/simpad.c b/arch/arm/mach-sa1100/simpad.c
> index cfb7607..6f87258 100644
> --- a/arch/arm/mach-sa1100/simpad.c
> +++ b/arch/arm/mach-sa1100/simpad.c
> @@ -13,6 +13,8 @@
>   #include<linux/mtd/mtd.h>
>   #include<linux/mtd/partitions.h>
>   #include<linux/io.h>
> +#include<linux/leds.h>
> +#include<linux/slab.h>
>
>   #include<asm/irq.h>
>   #include<mach/hardware.h>
> @@ -205,7 +207,53 @@ static struct platform_device *devices[] __initdata = {
>   	&simpad_mq200fb
>   };
>
> +/* LEDs */
> +#define LED_GREEN	1
>
> +static void simpad_led_set(struct led_classdev *cdev,
> +			      enum led_brightness b)
> +{
> +	if (b != LED_OFF)
> +		set_cs3_bit(LED_GREEN);
> +	else
> +		clear_cs3_bit(LED_GREEN);
> +}
> +
> +static enum led_brightness simpad_led_get(struct led_classdev *cdev)
> +{
> +	u32 reg = *(CS3BUSTYPE *)(CS3_BASE);
> +
> +	return (reg&  LED_GREEN) ? LED_FULL : LED_OFF;
> +}

NACK, bit 1 on the CS3 register is PCMCIA power control (write) and 
PCMCIA BVD1 (read), but not LED_GREEN. LED2_ON would be correct for 
write, but you would need to read cs3_shadow instead of the register 
itself for the LED status.

BTW: Some time ago I wrote a similar patch for ARM that converts CS3 
functions to GPIOs, wich simplifies the LED stuff even further ;-)

http://www.spinics.net/lists/arm-kernel/msg122479.html

Thanks,
Jochen



More information about the linux-arm-kernel mailing list