|
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.
|