From: Enric Balletbo i Serra <hidden> Date: 2017-06-28 11:16:57
From: huang lin <redacted>
Add a pwm-delay-us property to specify the delay between setting an
initial (non-zero) PWM value and enabling the backlight, and also the
delay between disabling the backlight and setting PWM value to 0.
Signed-off-by: huang lin <redacted>
Signed-off-by: Enric Balletbo i Serra <redacted>
---
Documentation/devicetree/bindings/leds/backlight/pwm-backlight.txt | 4 ++++
1 file changed, 4 insertions(+)
@@ -17,6 +17,9 @@ Optional properties: "pwms" property (see PWM binding[0]) - enable-gpios: contains a single GPIO specifier for the GPIO which enables and disables the backlight (see GPIO binding[1])+ - pwm-delay-us: delay between setting an initial (non-zero) PWM value and+ enabling the backlight, and also the delay between disabling+ the backlight and setting PWM value to 0. [0]: Documentation/devicetree/bindings/pwm/pwm.txt [1]: Documentation/devicetree/bindings/gpio/gpio.txt
From: Enric Balletbo i Serra <hidden> Date: 2017-06-28 11:17:02
From: huang lin <redacted>
Some panel backlight (i.e. N116BGE-L41), in their power sequence
specifications, request a delay between PWM signal and the backlight
enable signal, so use the pwm-delay-us property to meet the timing.
Signed-off-by: huang lin <redacted>
Signed-off-by: Enric Balletbo i Serra <redacted>
---
drivers/video/backlight/pwm_bl.c | 18 ++++++++++++++----
1 file changed, 14 insertions(+), 4 deletions(-)
@@ -54,10 +56,14 @@ static void pwm_backlight_power_on(struct pwm_bl_data *pb, int brightness)if(err<0)dev_err(pb->dev,"failed to enable power supply\n");+pwm_enable(pb->pwm);++if(pb->pwm_delay)+usleep_range(pb->pwm_delay,pb->pwm_delay+2000);+if(pb->enable_gpio)gpiod_set_value_cansleep(pb->enable_gpio,1);-pwm_enable(pb->pwm);pb->enabled=true;}
From: Daniel Thompson <hidden> Date: 2017-06-28 13:17:11
On 28/06/17 12:16, Enric Balletbo i Serra wrote:
quoted hunk
From: huang lin <redacted>
Add a pwm-delay-us property to specify the delay between setting an
initial (non-zero) PWM value and enabling the backlight, and also the
delay between disabling the backlight and setting PWM value to 0.
Signed-off-by: huang lin <redacted>
Signed-off-by: Enric Balletbo i Serra <redacted>
---
Documentation/devicetree/bindings/leds/backlight/pwm-backlight.txt | 4 ++++
1 file changed, 4 insertions(+)
@@ -17,6 +17,9 @@ Optional properties: "pwms" property (see PWM binding[0]) - enable-gpios: contains a single GPIO specifier for the GPIO which enables and disables the backlight (see GPIO binding[1])+ - pwm-delay-us: delay between setting an initial (non-zero) PWM value and+ enabling the backlight, and also the delay between disabling+ the backlight and setting PWM value to 0.
If is safe to assume power-on delay and power-off delay will be the same?
I've only took a quick look but several backlight controllers support
asymetric power-on/off sequences...
Daniel.
From: Pavel Machek <hidden> Date: 2017-06-28 13:30:20
On Wed 2017-06-28 13:16:31, Enric Balletbo i Serra wrote:
From: huang lin <redacted>
Add a pwm-delay-us property to specify the delay between setting an
initial (non-zero) PWM value and enabling the backlight, and also the
delay between disabling the backlight and setting PWM value to 0.
quoted hunk
Signed-off-by: huang lin <redacted>
Signed-off-by: Enric Balletbo i Serra <redacted>
---
Documentation/devicetree/bindings/leds/backlight/pwm-backlight.txt | 4 ++++
1 file changed, 4 insertions(+)
@@ -17,6 +17,9 @@ Optional properties: "pwms" property (see PWM binding[0]) - enable-gpios: contains a single GPIO specifier for the GPIO which enables and disables the backlight (see GPIO binding[1])+ - pwm-delay-us: delay between setting an initial (non-zero) PWM value and+ enabling the backlight, and also the delay between disabling+ the backlight and setting PWM value to 0.
Hi Daniel, Pavel,
2017-06-28 15:30 GMT+02:00 Pavel Machek [off-list ref]:
On Wed 2017-06-28 13:16:31, Enric Balletbo i Serra wrote:
quoted
From: huang lin <redacted>
Add a pwm-delay-us property to specify the delay between setting an
initial (non-zero) PWM value and enabling the backlight, and also the
delay between disabling the backlight and setting PWM value to 0.
quoted
Signed-off-by: huang lin <redacted>
Signed-off-by: Enric Balletbo i Serra <redacted>
---
Documentation/devicetree/bindings/leds/backlight/pwm-backlight.txt | 4 ++++
1 file changed, 4 insertions(+)
@@ -17,6 +17,9 @@ Optional properties: "pwms" property (see PWM binding[0]) - enable-gpios: contains a single GPIO specifier for the GPIO which enables and disables the backlight (see GPIO binding[1])+ - pwm-delay-us: delay between setting an initial (non-zero) PWM value and+ enabling the backlight, and also the delay between disabling+ the backlight and setting PWM value to 0.
quoted
If is safe to assume power-on delay and power-off delay will be the same?
I've only took a quick look but several backlight controllers support asymetric power-on/off sequences..
Daniel, right the ones I checked are symmetric but asymmetric timings
are possible I guess, so I think now that specify the two delays is
more accurate, maybe the binding should be something like this?
pwm-delay-us = <delay_before_on delay_after_off>;
I understood it as "you set PWM and it takes a while for display to
light up"
but that's not correct. Changelog from second patch makes it
clear. Please
clarify it here, too.
Pavel, oh, your dude is interesting ...
That's the idea, the sequence is:
Power on, you set the PWM signal, wait a bit and set the LED_EN signal.
Power off, you clear the LED_EN signal, wait a bit and stop the PWM signal.
Note that the patch inverts the sequence, before this patch first you
set LED_EN signal and then the PWM signal
I assumed that the sequence was wrong but maybe I'm mistaken and there
are some panels that follow the original sequence. On the few panels I
checked the power on/off sequence is how I described above, i.e. see
[1] p. 17, the sequence is first PWM and then LED_EN. I'll take a look
at other panel datasheets, or if you know one, could you provide me
the datasheet?
Thanks,
[1] http://www.jxlcd.com/Upload/PicFiles/N116BGE-L41.pdf
From: Daniel Thompson <hidden> Date: 2017-06-29 13:08:00
On 28/06/17 15:15, Enric Balletbo Serra wrote:
Hi Daniel, Pavel,
2017-06-28 15:30 GMT+02:00 Pavel Machek [off-list ref]:
quoted
On Wed 2017-06-28 13:16:31, Enric Balletbo i Serra wrote:
quoted
From: huang lin <redacted>
Add a pwm-delay-us property to specify the delay between setting an
initial (non-zero) PWM value and enabling the backlight, and also the
delay between disabling the backlight and setting PWM value to 0.
quoted
Signed-off-by: huang lin <redacted>
Signed-off-by: Enric Balletbo i Serra <redacted>
---
Documentation/devicetree/bindings/leds/backlight/pwm-backlight.txt | 4 ++++
1 file changed, 4 insertions(+)
@@ -17,6 +17,9 @@ Optional properties: "pwms" property (see PWM binding[0]) - enable-gpios: contains a single GPIO specifier for the GPIO which enables and disables the backlight (see GPIO binding[1])+ - pwm-delay-us: delay between setting an initial (non-zero) PWM value and+ enabling the backlight, and also the delay between disabling+ the backlight and setting PWM value to 0.
quoted
If is safe to assume power-on delay and power-off delay will be the same?
I've only took a quick look but several backlight controllers support asymetric power-on/off sequences..
Daniel, right the ones I checked are symmetric but asymmetric timings
are possible I guess, so I think now that specify the two delays is
more accurate, maybe the binding should be something like this?
pwm-delay-us = <delay_before_on delay_after_off>;
I think so. Like you I can't actually point at any asymmetric power
sequence diagrams but there are a controller devices with power
sequencing registers that support asymmetry. I'm inclined to take that
as a hint...
quoted
I understood it as "you set PWM and it takes a while for display to
light up"
but that's not correct. Changelog from second patch makes it
clear. Please
clarify it here, too.
Pavel, oh, your dude is interesting ...
That's the idea, the sequence is:
Power on, you set the PWM signal, wait a bit and set the LED_EN signal.
Power off, you clear the LED_EN signal, wait a bit and stop the PWM signal.
Note that the patch inverts the sequence, before this patch first you
set LED_EN signal and then the PWM signal
I assumed that the sequence was wrong but maybe I'm mistaken and there
are some panels that follow the original sequence. On the few panels I
checked the power on/off sequence is how I described above, i.e. see
[1] p. 17, the sequence is first PWM and then LED_EN. I'll take a look
at other panel datasheets, or if you know one, could you provide me
the datasheet?
Thanks,
[1] http://www.jxlcd.com/Upload/PicFiles/N116BGE-L41.pdf