summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorGrazvydas Ignotas <notasas@gmail.com>2009-12-10 17:10:21 +0200
committerTom Rix <Tom.Rix@windriver.com>2010-01-04 08:48:15 -0600
commitead39d7aa3ddccb2e374217aeab23bd65cedb762 (patch)
tree2b112424e3938fef8dd40f1cdeb6cbeac2636a64 /drivers
parent87d93a1ba2ae23550e1370adb7a3b00af0831165 (diff)
downloadu-boot-imx-ead39d7aa3ddccb2e374217aeab23bd65cedb762.zip
u-boot-imx-ead39d7aa3ddccb2e374217aeab23bd65cedb762.tar.gz
u-boot-imx-ead39d7aa3ddccb2e374217aeab23bd65cedb762.tar.bz2
TWL4030: make LEDs selectable for twl4030_led_init()
Not all boards have both LEDs hooked, so enabling both on boards with single LED will just waste power. Make it possible to choose LEDs by adding argument to twl4030_led_init(). Using this turn on only LEDB for pandora, leave both LEDs on for all other boards, as it was before this patch. Signed-off-by: Grazvydas Ignotas <notasas@gmail.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/misc/twl4030_led.c18
1 files changed, 7 insertions, 11 deletions
diff --git a/drivers/misc/twl4030_led.c b/drivers/misc/twl4030_led.c
index bfdafef..33cea11 100644
--- a/drivers/misc/twl4030_led.c
+++ b/drivers/misc/twl4030_led.c
@@ -34,19 +34,15 @@
#include <twl4030.h>
-#define LEDAON (0x1 << 0)
-#define LEDBON (0x1 << 1)
-#define LEDAPWM (0x1 << 4)
-#define LEDBPWM (0x1 << 5)
-
-void twl4030_led_init(void)
+void twl4030_led_init(unsigned char ledon_mask)
{
- unsigned char byte;
-
- /* enable LED */
- byte = LEDBPWM | LEDAPWM | LEDBON | LEDAON;
+ /* LEDs need to have corresponding PWMs enabled */
+ if (ledon_mask & TWL4030_LED_LEDEN_LEDAON)
+ ledon_mask |= TWL4030_LED_LEDEN_LEDAPWM;
+ if (ledon_mask & TWL4030_LED_LEDEN_LEDBON)
+ ledon_mask |= TWL4030_LED_LEDEN_LEDBPWM;
- twl4030_i2c_write_u8(TWL4030_CHIP_LED, byte,
+ twl4030_i2c_write_u8(TWL4030_CHIP_LED, ledon_mask,
TWL4030_LED_LEDEN);
}