From 507e27dfc9d6e1d196925dfd32409661cade45c0 Mon Sep 17 00:00:00 2001 From: Chen-Yu Tsai Date: Mon, 12 Jan 2015 18:02:11 +0800 Subject: [PATCH] sunxi: video: Add support for external DAC enable pin 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 Acked-by: Hans de Goede Signed-off-by: Hans de Goede --- board/sunxi/Kconfig | 8 ++++++++ drivers/video/sunxi_display.c | 14 ++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/board/sunxi/Kconfig b/board/sunxi/Kconfig index 5822b41..c5105bb 100644 --- a/board/sunxi/Kconfig +++ b/board/sunxi/Kconfig @@ -314,6 +314,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..d92dfa8 100644 --- a/drivers/video/sunxi_display.c +++ b/drivers/video/sunxi_display.c @@ -813,6 +813,19 @@ static void sunxi_drc_init(void) #endif } +#ifdef CONFIG_VIDEO_VGA_VIA_LCD +static void sunxi_vga_external_dac_enable(void) +{ + int pin; + + 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 +873,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; }