ARM: mach-shmobile: Dynamic backlight control for Mackerel
authorMagnus Damm <damm@opensource.se>
Mon, 21 Mar 2011 07:49:45 +0000 (07:49 +0000)
committerPaul Mundt <lethal@linux-sh.org>
Wed, 23 Mar 2011 13:57:02 +0000 (22:57 +0900)
Use GPIO_PORT31 to control the backlight on the Mackerel board.

Signed-off-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
arch/arm/mach-shmobile/board-mackerel.c

index 1a63c21..badd8ad 100644 (file)
@@ -295,6 +295,18 @@ static struct fb_videomode mackerel_lcdc_modes[] = {
        },
 };
 
+static int mackerel_set_brightness(void *board_data, int brightness)
+{
+       gpio_set_value(GPIO_PORT31, brightness);
+
+       return 0;
+}
+
+static int mackerel_get_brightness(void *board_data)
+{
+       return gpio_get_value(GPIO_PORT31);
+}
+
 static struct sh_mobile_lcdc_info lcdc_info = {
        .clock_source = LCDC_CLK_BUS,
        .ch[0] = {
@@ -307,6 +319,14 @@ static struct sh_mobile_lcdc_info lcdc_info = {
                .flags                  = 0,
                .lcd_size_cfg.width     = 152,
                .lcd_size_cfg.height    = 91,
+               .board_cfg = {
+                       .set_brightness = mackerel_set_brightness,
+                       .get_brightness = mackerel_get_brightness,
+               },
+               .bl_info = {
+                       .name = "sh_mobile_lcdc_bl",
+                       .max_brightness = 1,
+               },
        }
 };
 
@@ -1059,7 +1079,7 @@ static void __init mackerel_init(void)
        gpio_request(GPIO_FN_LCDDCK,   NULL);
 
        gpio_request(GPIO_PORT31, NULL); /* backlight */
-       gpio_direction_output(GPIO_PORT31, 1);
+       gpio_direction_output(GPIO_PORT31, 0); /* off by default */
 
        gpio_request(GPIO_PORT151, NULL); /* LCDDON */
        gpio_direction_output(GPIO_PORT151, 1);