diff options
author | Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> | 2013-07-04 15:13:29 -0400 |
---|---|---|
committer | Simon Horman <horms+renesas@verge.net.au> | 2013-07-16 21:06:18 -0400 |
commit | 3f3bee2e31f6fbf8ac09b58b8e87374d24387cef (patch) | |
tree | 0c7530e1e028c1eb02c593e2c07c17b2c3cda65d /arch/sh | |
parent | fe79f919f47eabf6eae08414dcc078b0d89dfd8e (diff) |
sh: kfr2r09: Use lv5207lp backlight
Replace the backlight callback with a lv5207lp backlight platform
device.
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Diffstat (limited to 'arch/sh')
-rw-r--r-- | arch/sh/boards/mach-kfr2r09/lcd_wqvga.c | 48 | ||||
-rw-r--r-- | arch/sh/boards/mach-kfr2r09/setup.c | 19 | ||||
-rw-r--r-- | arch/sh/include/mach-kfr2r09/mach/kfr2r09.h | 2 |
3 files changed, 14 insertions, 55 deletions
diff --git a/arch/sh/boards/mach-kfr2r09/lcd_wqvga.c b/arch/sh/boards/mach-kfr2r09/lcd_wqvga.c index c62050332629..355a78a3b313 100644 --- a/arch/sh/boards/mach-kfr2r09/lcd_wqvga.c +++ b/arch/sh/boards/mach-kfr2r09/lcd_wqvga.c | |||
@@ -276,51 +276,3 @@ void kfr2r09_lcd_start(void *sohandle, struct sh_mobile_lcdc_sys_bus_ops *so) | |||
276 | { | 276 | { |
277 | write_memory_start(sohandle, so); | 277 | write_memory_start(sohandle, so); |
278 | } | 278 | } |
279 | |||
280 | #define CTRL_CKSW 0x10 | ||
281 | #define CTRL_C10 0x20 | ||
282 | #define CTRL_CPSW 0x80 | ||
283 | #define MAIN_MLED4 0x40 | ||
284 | #define MAIN_MSW 0x80 | ||
285 | |||
286 | int kfr2r09_lcd_set_brightness(int brightness) | ||
287 | { | ||
288 | struct i2c_adapter *a; | ||
289 | struct i2c_msg msg; | ||
290 | unsigned char buf[2]; | ||
291 | int ret; | ||
292 | |||
293 | a = i2c_get_adapter(0); | ||
294 | if (!a) | ||
295 | return -ENODEV; | ||
296 | |||
297 | buf[0] = 0x00; | ||
298 | if (brightness) | ||
299 | buf[1] = CTRL_CPSW | CTRL_C10 | CTRL_CKSW; | ||
300 | else | ||
301 | buf[1] = 0; | ||
302 | |||
303 | msg.addr = 0x75; | ||
304 | msg.buf = buf; | ||
305 | msg.len = 2; | ||
306 | msg.flags = 0; | ||
307 | ret = i2c_transfer(a, &msg, 1); | ||
308 | if (ret != 1) | ||
309 | return -ENODEV; | ||
310 | |||
311 | buf[0] = 0x01; | ||
312 | if (brightness) | ||
313 | buf[1] = MAIN_MSW | MAIN_MLED4 | 0x0c; | ||
314 | else | ||
315 | buf[1] = 0; | ||
316 | |||
317 | msg.addr = 0x75; | ||
318 | msg.buf = buf; | ||
319 | msg.len = 2; | ||
320 | msg.flags = 0; | ||
321 | ret = i2c_transfer(a, &msg, 1); | ||
322 | if (ret != 1) | ||
323 | return -ENODEV; | ||
324 | |||
325 | return 0; | ||
326 | } | ||
diff --git a/arch/sh/boards/mach-kfr2r09/setup.c b/arch/sh/boards/mach-kfr2r09/setup.c index ab502f12ef57..1df4398f8375 100644 --- a/arch/sh/boards/mach-kfr2r09/setup.c +++ b/arch/sh/boards/mach-kfr2r09/setup.c | |||
@@ -21,6 +21,7 @@ | |||
21 | #include <linux/input.h> | 21 | #include <linux/input.h> |
22 | #include <linux/input/sh_keysc.h> | 22 | #include <linux/input/sh_keysc.h> |
23 | #include <linux/i2c.h> | 23 | #include <linux/i2c.h> |
24 | #include <linux/platform_data/lv5207lp.h> | ||
24 | #include <linux/regulator/fixed.h> | 25 | #include <linux/regulator/fixed.h> |
25 | #include <linux/regulator/machine.h> | 26 | #include <linux/regulator/machine.h> |
26 | #include <linux/usb/r8a66597.h> | 27 | #include <linux/usb/r8a66597.h> |
@@ -159,11 +160,6 @@ static struct sh_mobile_lcdc_info kfr2r09_sh_lcdc_info = { | |||
159 | .setup_sys = kfr2r09_lcd_setup, | 160 | .setup_sys = kfr2r09_lcd_setup, |
160 | .start_transfer = kfr2r09_lcd_start, | 161 | .start_transfer = kfr2r09_lcd_start, |
161 | }, | 162 | }, |
162 | .bl_info = { | ||
163 | .name = "sh_mobile_lcdc_bl", | ||
164 | .max_brightness = 1, | ||
165 | .set_brightness = kfr2r09_lcd_set_brightness, | ||
166 | }, | ||
167 | .sys_bus_cfg = { | 163 | .sys_bus_cfg = { |
168 | .ldmt2r = 0x07010904, | 164 | .ldmt2r = 0x07010904, |
169 | .ldmt3r = 0x14012914, | 165 | .ldmt3r = 0x14012914, |
@@ -195,6 +191,17 @@ static struct platform_device kfr2r09_sh_lcdc_device = { | |||
195 | }, | 191 | }, |
196 | }; | 192 | }; |
197 | 193 | ||
194 | static struct lv5207lp_platform_data kfr2r09_backlight_data = { | ||
195 | .fbdev = &kfr2r09_sh_lcdc_device.dev, | ||
196 | .def_value = 13, | ||
197 | .max_value = 13, | ||
198 | }; | ||
199 | |||
200 | static struct i2c_board_info kfr2r09_backlight_board_info = { | ||
201 | I2C_BOARD_INFO("lv5207lp", 0x75), | ||
202 | .platform_data = &kfr2r09_backlight_data, | ||
203 | }; | ||
204 | |||
198 | static struct r8a66597_platdata kfr2r09_usb0_gadget_data = { | 205 | static struct r8a66597_platdata kfr2r09_usb0_gadget_data = { |
199 | .on_chip = 1, | 206 | .on_chip = 1, |
200 | }; | 207 | }; |
@@ -627,6 +634,8 @@ static int __init kfr2r09_devices_setup(void) | |||
627 | gpio_request(GPIO_FN_SDHI0CMD, NULL); | 634 | gpio_request(GPIO_FN_SDHI0CMD, NULL); |
628 | gpio_request(GPIO_FN_SDHI0CLK, NULL); | 635 | gpio_request(GPIO_FN_SDHI0CLK, NULL); |
629 | 636 | ||
637 | i2c_register_board_info(0, &kfr2r09_backlight_board_info, 1); | ||
638 | |||
630 | return platform_add_devices(kfr2r09_devices, | 639 | return platform_add_devices(kfr2r09_devices, |
631 | ARRAY_SIZE(kfr2r09_devices)); | 640 | ARRAY_SIZE(kfr2r09_devices)); |
632 | } | 641 | } |
diff --git a/arch/sh/include/mach-kfr2r09/mach/kfr2r09.h b/arch/sh/include/mach-kfr2r09/mach/kfr2r09.h index c20c9e5f5eab..79f154e5cb9c 100644 --- a/arch/sh/include/mach-kfr2r09/mach/kfr2r09.h +++ b/arch/sh/include/mach-kfr2r09/mach/kfr2r09.h | |||
@@ -4,13 +4,11 @@ | |||
4 | #include <video/sh_mobile_lcdc.h> | 4 | #include <video/sh_mobile_lcdc.h> |
5 | 5 | ||
6 | #if defined(CONFIG_FB_SH_MOBILE_LCDC) || defined(CONFIG_FB_SH_MOBILE_LCDC_MODULE) | 6 | #if defined(CONFIG_FB_SH_MOBILE_LCDC) || defined(CONFIG_FB_SH_MOBILE_LCDC_MODULE) |
7 | int kfr2r09_lcd_set_brightness(int brightness); | ||
8 | int kfr2r09_lcd_setup(void *sys_ops_handle, | 7 | int kfr2r09_lcd_setup(void *sys_ops_handle, |
9 | struct sh_mobile_lcdc_sys_bus_ops *sys_ops); | 8 | struct sh_mobile_lcdc_sys_bus_ops *sys_ops); |
10 | void kfr2r09_lcd_start(void *sys_ops_handle, | 9 | void kfr2r09_lcd_start(void *sys_ops_handle, |
11 | struct sh_mobile_lcdc_sys_bus_ops *sys_ops); | 10 | struct sh_mobile_lcdc_sys_bus_ops *sys_ops); |
12 | #else | 11 | #else |
13 | static int kfr2r09_lcd_set_brightness(int brightness) {} | ||
14 | static int kfr2r09_lcd_setup(void *sys_ops_handle, | 12 | static int kfr2r09_lcd_setup(void *sys_ops_handle, |
15 | struct sh_mobile_lcdc_sys_bus_ops *sys_ops) | 13 | struct sh_mobile_lcdc_sys_bus_ops *sys_ops) |
16 | { | 14 | { |