Commit a7403ae8 authored by Hans de Goede's avatar Hans de Goede

sunxi: video: Make pwm polarity configurable

It turns out that there are some panels where the pwm input is not active low,
so make it configurable.
Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
Acked-by: default avatarIan Campbell <ijc@hellion.org.uk>
parent c17fb11c
......@@ -319,6 +319,13 @@ config VIDEO_LCD_BL_PWM
Set the backlight pwm 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_PWM_ACTIVE_LOW
bool "LCD panel backlight pwm is inverted"
depends on VIDEO
default y
---help---
Set this if the backlight pwm output is active low.
# Note only one of these may be selected at a time! But hidden choices are
# not supported by Kconfig
......
......@@ -23,6 +23,14 @@
#include "hitachi_tx18d42vm_lcd.h"
#include "ssd2828.h"
#ifdef CONFIG_VIDEO_LCD_BL_PWM_ACTIVE_LOW
#define PWM_ON 0
#define PWM_OFF 1
#else
#define PWM_ON 1
#define PWM_OFF 0
#endif
DECLARE_GLOBAL_DATA_PTR;
enum sunxi_monitor {
......@@ -598,8 +606,7 @@ static void sunxi_lcdc_panel_enable(void)
pin = sunxi_name_to_gpio(CONFIG_VIDEO_LCD_BL_PWM);
if (pin != -1) {
gpio_request(pin, "lcd_backlight_pwm");
/* backlight pwm is inverted, set to 1 to disable backlight */
gpio_direction_output(pin, 1);
gpio_direction_output(pin, PWM_OFF);
}
/* Give the backlight some time to turn off and power up the panel. */
......@@ -626,10 +633,8 @@ static void sunxi_lcdc_backlight_enable(void)
gpio_direction_output(pin, 1);
pin = sunxi_name_to_gpio(CONFIG_VIDEO_LCD_BL_PWM);
if (pin != -1) {
/* backlight pwm is inverted, set to 0 to enable backlight */
gpio_direction_output(pin, 0);
}
if (pin != -1)
gpio_direction_output(pin, PWM_ON);
}
static int sunxi_lcdc_get_clk_delay(const struct ctfb_res_modes *mode)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment