From: <sle...@us...> - 2007-07-05 14:05:16
|
Revision: 1106 http://svn.sourceforge.net/hackndev/?rev=1106&view=rev Author: sleep_walker Date: 2007-07-05 07:04:39 -0700 (Thu, 05 Jul 2007) Log Message: ----------- palmtt3: wbsd led 'triggered', leds are safer, gpioed-ng would compile everytime Modified Paths: -------------- linux4palm/linux/trunk/drivers/leds/leds-palmtt3.c linux4palm/linux/trunk/drivers/misc/gpioed-ng.c linux4palm/linux/trunk/drivers/mmc/wbsd-palmt3.c Modified: linux4palm/linux/trunk/drivers/leds/leds-palmtt3.c =================================================================== --- linux4palm/linux/trunk/drivers/leds/leds-palmtt3.c 2007-07-05 11:03:48 UTC (rev 1105) +++ linux4palm/linux/trunk/drivers/leds/leds-palmtt3.c 2007-07-05 14:04:39 UTC (rev 1106) @@ -20,46 +20,65 @@ #include <asm/arch/tps65010.h> +struct palmtt3led_work_type { + struct work_struct work; + int led1; + int led2; + int vibra; +} palmtt3led_work; + + +static void tps650101_scheduled_leds(struct work_struct *work) +{ + tps65010_set_led(LED1,palmtt3led_work.led1); + tps65010_set_led(LED2,palmtt3led_work.led2); + tps65010_set_vib(palmtt3led_work.vibra); +} + static void palmtt3led_red_set(struct led_classdev *led_cdev, enum led_brightness value) { if (value) - tps65010_set_led(LED2, ON); + palmtt3led_work.led2 = ON; else - tps65010_set_led(LED2, OFF); + palmtt3led_work.led2 = OFF; + schedule_work(&(palmtt3led_work.work)); } static void palmtt3led_green_set(struct led_classdev *led_cdev, enum led_brightness value) { if (value) - tps65010_set_led(LED1, ON); + palmtt3led_work.led1 = ON; else -/* NOTE: This is set to UNDER_CHG_CTRL, not to OFF... It shows charging status - plugged/unplugged... */ - tps65010_set_led(LED1, UNDER_CHG_CTRL); + palmtt3led_work.led1 = OFF; + schedule_work(&(palmtt3led_work.work)); } static void palmtt3led_red_blink_set(struct led_classdev *led_cdev, enum led_brightness value) { if (value) - tps65010_set_led(LED2, BLINK); + palmtt3led_work.led2 = BLINK; else - tps65010_set_led(LED2, OFF); + palmtt3led_work.led2 = OFF; + schedule_work(&(palmtt3led_work.work)); } static void palmtt3led_green_blink_set(struct led_classdev *led_cdev, enum led_brightness value) { if (value) - tps65010_set_led(LED1, BLINK); + palmtt3led_work.led1 = BLINK; else -/* NOTE: This is set to UNDER_CHG_CTRL, not to OFF... It shows charging status - plugged/unplugged... */ - tps65010_set_led(LED1, UNDER_CHG_CTRL); +/* NOTE: This is set to OFF, not to OFF... It shows charging status - plugged/unplugged... */ + palmtt3led_work.led1 = UNDER_CHG_CTRL; + schedule_work(&(palmtt3led_work.work)); } static void palmtt3_vibra_set(struct led_classdev *led_cdev, enum led_brightness value) { if (value) - tps65010_set_vib(ON); + palmtt3led_work.vibra = ON; else - tps65010_set_vib(OFF); + palmtt3led_work.vibra = OFF; + schedule_work(&(palmtt3led_work.work)); } @@ -144,6 +163,7 @@ led_classdev_unregister(&palmtt3_green_blink_led); } + INIT_WORK(&(palmtt3led_work.work),tps650101_scheduled_leds); return ret; } Modified: linux4palm/linux/trunk/drivers/misc/gpioed-ng.c =================================================================== --- linux4palm/linux/trunk/drivers/misc/gpioed-ng.c 2007-07-05 11:03:48 UTC (rev 1105) +++ linux4palm/linux/trunk/drivers/misc/gpioed-ng.c 2007-07-05 14:04:39 UTC (rev 1106) @@ -98,6 +98,7 @@ printk(KERN_ERR "GPIOed: GPIO %lu set low\n", id); break; #ifdef CONFIG_MACH_T3XSCALE +#if defined(CONFIG_TPS65010) || (defined(CONFIG_GPIOEDNG_MODULE) && defined(CONFIG_TPS65010_MODULE)) case 'T': tps65010_set_gpio_out_value(id, 1); printk(KERN_ERR "GPIOed: GPIO %lu set high on TPS65010\n", id); @@ -107,6 +108,7 @@ printk(KERN_ERR "GPIOed: GPIO %lu set low on TPS65010\n", id); break; #endif +#endif case 'd': GPDR(id) &= ~(GPIO_bit(id)); break; Modified: linux4palm/linux/trunk/drivers/mmc/wbsd-palmt3.c =================================================================== --- linux4palm/linux/trunk/drivers/mmc/wbsd-palmt3.c 2007-07-05 11:03:48 UTC (rev 1105) +++ linux4palm/linux/trunk/drivers/mmc/wbsd-palmt3.c 2007-07-05 14:04:39 UTC (rev 1106) @@ -22,6 +22,7 @@ #include <linux/mmc/host.h> #include <linux/blkdev.h> #include <linux/mmc/protocol.h> +#include <linux/leds.h> #include <linux/highmem.h> @@ -1269,15 +1270,10 @@ tps65010_set_gpio_out_value(GPIO3, HIGH); } - if(host->tps_duty & TPS_LED_OFF) + if(host->tps_duty & TPS_LED_ON) { - DBG("Turning led off\n"); - tps65010_set_led(LED2, OFF); - } - else if(host->tps_duty & TPS_LED_ON) - { DBG("Blinking led\n"); - tps65010_set_led(LED2, ON); + ledtrig_mmc_activity(); } host->tps_duty = 0; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |