[PATCH 2/2] sunxi: video: Add support for active low LCD power pin

Giulio Benetti
2022-11-22T20:57:25Z

On some board gpio to power LCD can be active low, so let's add
CONFIG_VIDEO_LCD_POWER_ACTIVE_LOW to allow this.

Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
---
arch/arm/mach-sunxi/Kconfig | 7 +++++++
drivers/video/sunxi/sunxi_display.c | 4 ++++
2 files changed, 11 insertions(+)

diff --git a/arch/arm/mach-sunxi/Kconfig b/arch/arm/mach-sunxi/Kconfig
index dbe6005daa..a7375b53a6 100644
--- a/arch/arm/mach-sunxi/Kconfig
+++ b/arch/arm/mach-sunxi/Kconfig
@@ -867,6 +867,13 @@ 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_POWER_ACTIVE_LOW
+ bool "LCD panel power enable pin is inverted"
+ depends on VIDEO_SUNXI
+ default n
+ ---help---
+ Set this if the lcd power pin is active low.
+
config VIDEO_LCD_RESET
string "LCD panel reset pin"
depends on VIDEO_SUNXI
diff --git a/drivers/video/sunxi/sunxi_display.c b/drivers/video/sunxi/sunxi_display.c
index 2ee6212c58..12b542d65b 100644
--- a/drivers/video/sunxi/sunxi_display.c
+++ b/drivers/video/sunxi/sunxi_display.c
@@ -588,7 +588,11 @@ static void sunxi_lcdc_panel_enable(void)
pin = sunxi_name_to_gpio(CONFIG_VIDEO_LCD_POWER);
if (pin >= 0) {
gpio_request(pin, "lcd_power");
+#ifdef CONFIG_VIDEO_LCD_POWER_ACTIVE_LOW
+ gpio_direction_output(pin, 0);
+#else
gpio_direction_output(pin, 1);
+#endif
}

if (reset_pin >= 0)
--
2.34.1