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>
This commit is contained in:
parent
87d93a1ba2
commit
ead39d7aa3
@ -63,7 +63,7 @@ int board_init(void)
|
||||
int misc_init_r(void)
|
||||
{
|
||||
twl4030_power_init();
|
||||
twl4030_led_init();
|
||||
twl4030_led_init(TWL4030_LED_LEDEN_LEDAON | TWL4030_LED_LEDEN_LEDBON);
|
||||
dieid_num_r();
|
||||
|
||||
/*
|
||||
|
@ -149,7 +149,7 @@ int misc_init_r(void)
|
||||
{
|
||||
zoom2_identify();
|
||||
twl4030_power_init();
|
||||
twl4030_led_init();
|
||||
twl4030_led_init(TWL4030_LED_LEDEN_LEDAON | TWL4030_LED_LEDEN_LEDBON);
|
||||
dieid_num_r();
|
||||
|
||||
/*
|
||||
|
@ -67,7 +67,7 @@ int board_init(void)
|
||||
int misc_init_r(void)
|
||||
{
|
||||
twl4030_power_init();
|
||||
twl4030_led_init();
|
||||
twl4030_led_init(TWL4030_LED_LEDEN_LEDAON | TWL4030_LED_LEDEN_LEDBON);
|
||||
|
||||
#if defined(CONFIG_CMD_NET)
|
||||
setup_net_chip();
|
||||
|
@ -66,7 +66,7 @@ int misc_init_r(void)
|
||||
struct gpio *gpio6_base = (struct gpio *)OMAP34XX_GPIO6_BASE;
|
||||
|
||||
twl4030_power_init();
|
||||
twl4030_led_init();
|
||||
twl4030_led_init(TWL4030_LED_LEDEN_LEDBON);
|
||||
|
||||
/* Configure GPIOs to output */
|
||||
writel(~(GPIO14 | GPIO15 | GPIO16 | GPIO23), &gpio1_base->oe);
|
||||
|
@ -107,7 +107,7 @@ int misc_init_r(void)
|
||||
struct gpio *gpio6_base = (struct gpio *)OMAP34XX_GPIO6_BASE;
|
||||
|
||||
twl4030_power_init();
|
||||
twl4030_led_init();
|
||||
twl4030_led_init(TWL4030_LED_LEDEN_LEDAON | TWL4030_LED_LEDEN_LEDBON);
|
||||
|
||||
/* Configure GPIOs to output */
|
||||
writel(~(GPIO23 | GPIO10 | GPIO8 | GPIO2 | GPIO1), &gpio6_base->oe);
|
||||
|
@ -76,7 +76,7 @@ int misc_init_r(void)
|
||||
|
||||
twl4030_power_init();
|
||||
#ifdef CONFIG_TWL4030_LED
|
||||
twl4030_led_init();
|
||||
twl4030_led_init(TWL4030_LED_LEDEN_LEDAON | TWL4030_LED_LEDEN_LEDBON);
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_DRIVER_DM9000
|
||||
|
@ -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;
|
||||
/* 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;
|
||||
|
||||
/* enable LED */
|
||||
byte = LEDBPWM | LEDAPWM | LEDBON | LEDAON;
|
||||
|
||||
twl4030_i2c_write_u8(TWL4030_CHIP_LED, byte,
|
||||
twl4030_i2c_write_u8(TWL4030_CHIP_LED, ledon_mask,
|
||||
TWL4030_LED_LEDEN);
|
||||
|
||||
}
|
||||
|
@ -306,6 +306,10 @@
|
||||
|
||||
/* LED */
|
||||
#define TWL4030_LED_LEDEN 0xEE
|
||||
#define TWL4030_LED_LEDEN_LEDAON (1 << 0)
|
||||
#define TWL4030_LED_LEDEN_LEDBON (1 << 1)
|
||||
#define TWL4030_LED_LEDEN_LEDAPWM (1 << 4)
|
||||
#define TWL4030_LED_LEDEN_LEDBPWM (1 << 5)
|
||||
|
||||
/* Keypad */
|
||||
#define TWL4030_KEYPAD_KEYP_CTRL_REG 0xD2
|
||||
@ -504,7 +508,7 @@ void twl4030_power_mmc_init(void);
|
||||
/*
|
||||
* LED
|
||||
*/
|
||||
void twl4030_led_init(void);
|
||||
void twl4030_led_init(unsigned char ledon_mask);
|
||||
|
||||
/*
|
||||
* USB
|
||||
|
Loading…
Reference in New Issue
Block a user