diff options
author | Antonio Ospite <ospite@studenti.unina.it> | 2009-11-03 17:45:33 +0100 |
---|---|---|
committer | Eric Miao <eric.y.miao@gmail.com> | 2009-12-01 09:03:03 +0800 |
commit | 87303b8a9e162e6c9746e3b9dacb40cf3e3e5e62 (patch) | |
tree | 4baa62a6d024f6fc5eee7fed6fd2250c4eebef84 | |
parent | 405ac4015a92904b6366db7c6ef21491bdb7e771 (diff) | |
download | talos-op-linux-87303b8a9e162e6c9746e3b9dacb40cf3e3e5e62.tar.gz talos-op-linux-87303b8a9e162e6c9746e3b9dacb40cf3e3e5e62.zip |
[ARM] pxa/ezx: add leds-lp3944 support for A910 EZX phone
Signed-off-by: Antonio Ospite <ospite@studenti.unina.it>
Signed-off-by: Eric Miao <eric.y.miao@gmail.com>
-rw-r--r-- | arch/arm/mach-pxa/ezx.c | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/arch/arm/mach-pxa/ezx.c b/arch/arm/mach-pxa/ezx.c index 320e2f8c599e..626c82b13970 100644 --- a/arch/arm/mach-pxa/ezx.c +++ b/arch/arm/mach-pxa/ezx.c @@ -19,6 +19,7 @@ #include <linux/input.h> #include <linux/gpio.h> #include <linux/gpio_keys.h> +#include <linux/leds-lp3944.h> #include <media/soc_camera.h> @@ -1037,6 +1038,57 @@ static struct platform_device a910_camera = { }, }; +/* leds-lp3944 */ +static struct lp3944_platform_data a910_lp3944_leds = { + .leds_size = LP3944_LEDS_MAX, + .leds = { + [0] = { + .name = "a910:red:", + .status = LP3944_LED_STATUS_OFF, + .type = LP3944_LED_TYPE_LED, + }, + [1] = { + .name = "a910:green:", + .status = LP3944_LED_STATUS_OFF, + .type = LP3944_LED_TYPE_LED, + }, + [2] { + .name = "a910:blue:", + .status = LP3944_LED_STATUS_OFF, + .type = LP3944_LED_TYPE_LED, + }, + /* Leds 3 and 4 are used as display power switches */ + [3] = { + .name = "a910::cli_display", + .status = LP3944_LED_STATUS_OFF, + .type = LP3944_LED_TYPE_LED_INVERTED + }, + [4] = { + .name = "a910::main_display", + .status = LP3944_LED_STATUS_ON, + .type = LP3944_LED_TYPE_LED_INVERTED + }, + [5] = { .type = LP3944_LED_TYPE_NONE }, + [6] = { + .name = "a910::torch", + .status = LP3944_LED_STATUS_OFF, + .type = LP3944_LED_TYPE_LED, + }, + [7] = { + .name = "a910::flash", + .status = LP3944_LED_STATUS_OFF, + .type = LP3944_LED_TYPE_LED_INVERTED, + }, + }, +}; + +static struct i2c_board_info __initdata a910_i2c_board_info[] = { + { + I2C_BOARD_INFO("lp3944", 0x60), + .platform_data = &a910_lp3944_leds, + }, +}; + static struct platform_device *a910_devices[] __initdata = { &a910_gpio_keys, }; @@ -1052,6 +1104,7 @@ static void __init a910_init(void) pxa_set_stuart_info(NULL); pxa_set_i2c_info(NULL); + i2c_register_board_info(0, ARRAY_AND_SIZE(a910_i2c_board_info)); set_pxa_fb_info(&ezx_fb_info_2); |