aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-pxa/ezx.c
diff options
context:
space:
mode:
authorAntonio Ospite <ospite@studenti.unina.it>2009-11-03 11:45:33 -0500
committerEric Miao <eric.y.miao@gmail.com>2009-11-30 20:03:03 -0500
commit87303b8a9e162e6c9746e3b9dacb40cf3e3e5e62 (patch)
tree4baa62a6d024f6fc5eee7fed6fd2250c4eebef84 /arch/arm/mach-pxa/ezx.c
parent405ac4015a92904b6366db7c6ef21491bdb7e771 (diff)
[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>
Diffstat (limited to 'arch/arm/mach-pxa/ezx.c')
-rw-r--r--arch/arm/mach-pxa/ezx.c53
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 @@
19#include <linux/input.h> 19#include <linux/input.h>
20#include <linux/gpio.h> 20#include <linux/gpio.h>
21#include <linux/gpio_keys.h> 21#include <linux/gpio_keys.h>
22#include <linux/leds-lp3944.h>
22 23
23#include <media/soc_camera.h> 24#include <media/soc_camera.h>
24 25
@@ -1037,6 +1038,57 @@ static struct platform_device a910_camera = {
1037 }, 1038 },
1038}; 1039};
1039 1040
1041/* leds-lp3944 */
1042static struct lp3944_platform_data a910_lp3944_leds = {
1043 .leds_size = LP3944_LEDS_MAX,
1044 .leds = {
1045 [0] = {
1046 .name = "a910:red:",
1047 .status = LP3944_LED_STATUS_OFF,
1048 .type = LP3944_LED_TYPE_LED,
1049 },
1050 [1] = {
1051 .name = "a910:green:",
1052 .status = LP3944_LED_STATUS_OFF,
1053 .type = LP3944_LED_TYPE_LED,
1054 },
1055 [2] {
1056 .name = "a910:blue:",
1057 .status = LP3944_LED_STATUS_OFF,
1058 .type = LP3944_LED_TYPE_LED,
1059 },
1060 /* Leds 3 and 4 are used as display power switches */
1061 [3] = {
1062 .name = "a910::cli_display",
1063 .status = LP3944_LED_STATUS_OFF,
1064 .type = LP3944_LED_TYPE_LED_INVERTED
1065 },
1066 [4] = {
1067 .name = "a910::main_display",
1068 .status = LP3944_LED_STATUS_ON,
1069 .type = LP3944_LED_TYPE_LED_INVERTED
1070 },
1071 [5] = { .type = LP3944_LED_TYPE_NONE },
1072 [6] = {
1073 .name = "a910::torch",
1074 .status = LP3944_LED_STATUS_OFF,
1075 .type = LP3944_LED_TYPE_LED,
1076 },
1077 [7] = {
1078 .name = "a910::flash",
1079 .status = LP3944_LED_STATUS_OFF,
1080 .type = LP3944_LED_TYPE_LED_INVERTED,
1081 },
1082 },
1083};
1084
1085static struct i2c_board_info __initdata a910_i2c_board_info[] = {
1086 {
1087 I2C_BOARD_INFO("lp3944", 0x60),
1088 .platform_data = &a910_lp3944_leds,
1089 },
1090};
1091
1040static struct platform_device *a910_devices[] __initdata = { 1092static struct platform_device *a910_devices[] __initdata = {
1041 &a910_gpio_keys, 1093 &a910_gpio_keys,
1042}; 1094};
@@ -1052,6 +1104,7 @@ static void __init a910_init(void)
1052 pxa_set_stuart_info(NULL); 1104 pxa_set_stuart_info(NULL);
1053 1105
1054 pxa_set_i2c_info(NULL); 1106 pxa_set_i2c_info(NULL);
1107 i2c_register_board_info(0, ARRAY_AND_SIZE(a910_i2c_board_info));
1055 1108
1056 set_pxa_fb_info(&ezx_fb_info_2); 1109 set_pxa_fb_info(&ezx_fb_info_2);
1057 1110