diff options
author | Antonio Ospite <ospite@studenti.unina.it> | 2009-11-03 11:45:33 -0500 |
---|---|---|
committer | Eric Miao <eric.y.miao@gmail.com> | 2009-11-30 20:03:03 -0500 |
commit | 87303b8a9e162e6c9746e3b9dacb40cf3e3e5e62 (patch) | |
tree | 4baa62a6d024f6fc5eee7fed6fd2250c4eebef84 /arch/arm/mach-pxa | |
parent | 405ac4015a92904b6366db7c6ef21491bdb7e771 (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')
-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 @@ | |||
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 */ | ||
1042 | static 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 | |||
1085 | static 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 | |||
1040 | static struct platform_device *a910_devices[] __initdata = { | 1092 | static 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 | ||