From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chen-Yu Tsai Date: Mon, 12 Jan 2015 18:02:11 +0800 Subject: [U-Boot] [PATCH 2/3] sunxi: video: Add support for external DAC enable pin In-Reply-To: <1421056932-13723-1-git-send-email-wens@csie.org> References: <1421056932-13723-1-git-send-email-wens@csie.org> Message-ID: <1421056932-13723-3-git-send-email-wens@csie.org> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de The external DAC for VGA output might have either a power or reset control pin that needs to be pulled up, as is the case on the Hummingbird A31. Signed-off-by: Chen-Yu Tsai --- board/sunxi/Kconfig | 8 ++++++++ drivers/video/sunxi_display.c | 18 ++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/board/sunxi/Kconfig b/board/sunxi/Kconfig index bce270e..e9a6b3c 100644 --- a/board/sunxi/Kconfig +++ b/board/sunxi/Kconfig @@ -315,6 +315,14 @@ config VIDEO_VGA_VIA_LCD LCD interface driving a VGA connector, such as found on the Olimex A13 boards. +config VIDEO_VGA_EXTERNAL_DAC_EN + string "LCD panel power enable pin" + depends on VIDEO_VGA_VIA_LCD + default "" + ---help--- + Set the enable pin for the external VGA DAC. 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_MODE string "LCD panel timing details" depends on VIDEO diff --git a/drivers/video/sunxi_display.c b/drivers/video/sunxi_display.c index 47d820d..1052af2 100644 --- a/drivers/video/sunxi_display.c +++ b/drivers/video/sunxi_display.c @@ -813,6 +813,23 @@ static void sunxi_drc_init(void) #endif } +#ifdef CONFIG_VIDEO_VGA_VIA_LCD +static void sunxi_vga_external_dac_enable(void) +{ + int pin; + + /* + * Start with backlight disabled to avoid the screen flashing to + * white while the lcd inits. + */ + pin = sunxi_name_to_gpio(CONFIG_VIDEO_VGA_EXTERNAL_DAC_EN); + if (pin != -1) { + gpio_request(pin, "vga_enable"); + gpio_direction_output(pin, 1); + } +} +#endif /* CONFIG_VIDEO_VGA_VIA_LCD */ + static void sunxi_engines_init(void) { sunxi_composer_init(); @@ -860,6 +877,7 @@ static void sunxi_mode_set(const struct ctfb_res_modes *mode, sunxi_lcdc_tcon0_mode_set(mode); sunxi_composer_enable(); sunxi_lcdc_enable(); + sunxi_vga_external_dac_enable(); #endif break; } -- 2.1.4