mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-06-09 23:36:03 +09:00
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: Hans de Goede <hdegoede@redhat.com> Acked-by: Ian Campbell <ijc@hellion.org.uk>
This commit is contained in:
parent
c17fb11c56
commit
a7403ae84d
|
@ -319,6 +319,13 @@ config VIDEO_LCD_BL_PWM
|
||||||
Set the backlight pwm pin for the LCD panel. This takes a string in the
|
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.
|
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
|
# Note only one of these may be selected at a time! But hidden choices are
|
||||||
# not supported by Kconfig
|
# not supported by Kconfig
|
||||||
|
|
|
@ -23,6 +23,14 @@
|
||||||
#include "hitachi_tx18d42vm_lcd.h"
|
#include "hitachi_tx18d42vm_lcd.h"
|
||||||
#include "ssd2828.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;
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
|
|
||||||
enum sunxi_monitor {
|
enum sunxi_monitor {
|
||||||
|
@ -598,8 +606,7 @@ static void sunxi_lcdc_panel_enable(void)
|
||||||
pin = sunxi_name_to_gpio(CONFIG_VIDEO_LCD_BL_PWM);
|
pin = sunxi_name_to_gpio(CONFIG_VIDEO_LCD_BL_PWM);
|
||||||
if (pin != -1) {
|
if (pin != -1) {
|
||||||
gpio_request(pin, "lcd_backlight_pwm");
|
gpio_request(pin, "lcd_backlight_pwm");
|
||||||
/* backlight pwm is inverted, set to 1 to disable backlight */
|
gpio_direction_output(pin, PWM_OFF);
|
||||||
gpio_direction_output(pin, 1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Give the backlight some time to turn off and power up the panel. */
|
/* 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);
|
gpio_direction_output(pin, 1);
|
||||||
|
|
||||||
pin = sunxi_name_to_gpio(CONFIG_VIDEO_LCD_BL_PWM);
|
pin = sunxi_name_to_gpio(CONFIG_VIDEO_LCD_BL_PWM);
|
||||||
if (pin != -1) {
|
if (pin != -1)
|
||||||
/* backlight pwm is inverted, set to 0 to enable backlight */
|
gpio_direction_output(pin, PWM_ON);
|
||||||
gpio_direction_output(pin, 0);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int sunxi_lcdc_get_clk_delay(const struct ctfb_res_modes *mode)
|
static int sunxi_lcdc_get_clk_delay(const struct ctfb_res_modes *mode)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user