]> git.sur5r.net Git - u-boot/commitdiff
sunxi: video: Add support for LCD reset pin
authorHans de Goede <hdegoede@redhat.com>
Mon, 16 Feb 2015 16:26:41 +0000 (17:26 +0100)
committerHans de Goede <hdegoede@redhat.com>
Fri, 20 Feb 2015 07:11:57 +0000 (08:11 +0100)
On some boards there is a gpio to reset the LCD panel, add support for this.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
board/sunxi/Kconfig
drivers/video/sunxi_display.c

index 3eab81fd12b17fc530595258cbecd2b91d926816..a170c561aab10344474c4fd7921cd302b4695b25 100644 (file)
@@ -312,6 +312,14 @@ config VIDEO_LCD_POWER
        Set the power enable pin for the LCD panel. This takes a string in the
        format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
 
+config VIDEO_LCD_RESET
+       string "LCD panel reset pin"
+       depends on VIDEO
+       default ""
+       ---help---
+       Set the reset pin for the LCD panel. This takes a string in the format
+       understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
+
 config VIDEO_LCD_BL_EN
        string "LCD panel backlight enable pin"
        depends on VIDEO
index dbda97e746b97b5dc2a729198738c449e59163c7..7f01401252a7a157d126f83711a8039d7eddd8cf 100644 (file)
@@ -592,7 +592,7 @@ static void sunxi_lcdc_enable(void)
 
 static void sunxi_lcdc_panel_enable(void)
 {
-       int pin;
+       int pin, reset_pin;
 
        /*
         * Start with backlight disabled to avoid the screen flashing to
@@ -610,6 +610,12 @@ static void sunxi_lcdc_panel_enable(void)
                gpio_direction_output(pin, PWM_OFF);
        }
 
+       reset_pin = sunxi_name_to_gpio(CONFIG_VIDEO_LCD_RESET);
+       if (reset_pin != -1) {
+               gpio_request(reset_pin, "lcd_reset");
+               gpio_direction_output(reset_pin, 0); /* Assert reset */
+       }
+
        /* Give the backlight some time to turn off and power up the panel. */
        mdelay(40);
        pin = sunxi_name_to_gpio(CONFIG_VIDEO_LCD_POWER);
@@ -617,6 +623,9 @@ static void sunxi_lcdc_panel_enable(void)
                gpio_request(pin, "lcd_power");
                gpio_direction_output(pin, 1);
        }
+
+       if (reset_pin != -1)
+               gpio_direction_output(reset_pin, 1); /* De-assert reset */
 }
 
 static void sunxi_lcdc_backlight_enable(void)