diff mbox

[3/3] ARM: sun8i: v3s: add backlight device node for Lichee Pi Zero LCD

Message ID 20170524121320.4171-3-icenowy@aosc.io (mailing list archive)
State New, archived
Headers show

Commit Message

Icenowy Zheng May 24, 2017, 12:13 p.m. UTC
The 40-pin LCD connector on Lichee Pi Zero has backlight pins, which is
controlled by the PWM0 controller of the V3s SoC, and the controlling
part is on the board.

Add the PWM and backlight device nodes in the device tree file, but
leave them disabled, as they can only be useful when the LCD is
attached. The LCD device tree overlay files can enable these controllers
and make use of them.

Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
---
 arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dts | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

Comments

Maxime Ripard May 29, 2017, 7:41 a.m. UTC | #1
Hi,

On Wed, May 24, 2017 at 08:13:20PM +0800, Icenowy Zheng wrote:
> The 40-pin LCD connector on Lichee Pi Zero has backlight pins, which is
> controlled by the PWM0 controller of the V3s SoC, and the controlling
> part is on the board.
> 
> Add the PWM and backlight device nodes in the device tree file, but
> leave them disabled, as they can only be useful when the LCD is
> attached. The LCD device tree overlay files can enable these controllers
> and make use of them.
> 
> Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
> ---
>  arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dts | 14 ++++++++++++++
>  1 file changed, 14 insertions(+)
> 
> diff --git a/arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dts b/arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dts
> index 387fc2aa546d..e0721bf725d1 100644
> --- a/arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dts
> +++ b/arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dts
> @@ -52,6 +52,14 @@
>  		serial0 = &uart0;
>  	};
>  
> +	backlight: backlight {
> +		compatible = "pwm-backlight";
> +		pwms = <&pwm 0 50000 0>;
> +		brightness-levels = <0 10 20 30 40 50 60 70 80 90 100>;

This is unlikely, the perceived brightness by the human eye is not
linear, and is actually much closer to a logarithmic function, which
means you should have use an exponential function here in order to
appear that your brightness increase is linear.

Maxime
Chen-Yu Tsai May 29, 2017, 8:16 a.m. UTC | #2
On Mon, May 29, 2017 at 3:41 PM, Maxime Ripard
<maxime.ripard@free-electrons.com> wrote:
> Hi,
>
> On Wed, May 24, 2017 at 08:13:20PM +0800, Icenowy Zheng wrote:
>> The 40-pin LCD connector on Lichee Pi Zero has backlight pins, which is
>> controlled by the PWM0 controller of the V3s SoC, and the controlling
>> part is on the board.
>>
>> Add the PWM and backlight device nodes in the device tree file, but
>> leave them disabled, as they can only be useful when the LCD is
>> attached. The LCD device tree overlay files can enable these controllers
>> and make use of them.
>>
>> Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
>> ---
>>  arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dts | 14 ++++++++++++++
>>  1 file changed, 14 insertions(+)
>>
>> diff --git a/arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dts b/arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dts
>> index 387fc2aa546d..e0721bf725d1 100644
>> --- a/arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dts
>> +++ b/arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dts
>> @@ -52,6 +52,14 @@
>>               serial0 = &uart0;
>>       };
>>
>> +     backlight: backlight {
>> +             compatible = "pwm-backlight";
>> +             pwms = <&pwm 0 50000 0>;
>> +             brightness-levels = <0 10 20 30 40 50 60 70 80 90 100>;
>
> This is unlikely, the perceived brightness by the human eye is not
> linear, and is actually much closer to a logarithmic function, which
> means you should have use an exponential function here in order to
> appear that your brightness increase is linear.

I think the backlight is a functional part of the panel. It probably
belongs in the panel's overlay.

ChenYu
Maxime Ripard May 29, 2017, 9:26 a.m. UTC | #3
On Mon, May 29, 2017 at 04:16:51PM +0800, Chen-Yu Tsai wrote:
> On Mon, May 29, 2017 at 3:41 PM, Maxime Ripard
> <maxime.ripard@free-electrons.com> wrote:
> > Hi,
> >
> > On Wed, May 24, 2017 at 08:13:20PM +0800, Icenowy Zheng wrote:
> >> The 40-pin LCD connector on Lichee Pi Zero has backlight pins, which is
> >> controlled by the PWM0 controller of the V3s SoC, and the controlling
> >> part is on the board.
> >>
> >> Add the PWM and backlight device nodes in the device tree file, but
> >> leave them disabled, as they can only be useful when the LCD is
> >> attached. The LCD device tree overlay files can enable these controllers
> >> and make use of them.
> >>
> >> Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
> >> ---
> >>  arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dts | 14 ++++++++++++++
> >>  1 file changed, 14 insertions(+)
> >>
> >> diff --git a/arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dts b/arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dts
> >> index 387fc2aa546d..e0721bf725d1 100644
> >> --- a/arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dts
> >> +++ b/arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dts
> >> @@ -52,6 +52,14 @@
> >>               serial0 = &uart0;
> >>       };
> >>
> >> +     backlight: backlight {
> >> +             compatible = "pwm-backlight";
> >> +             pwms = <&pwm 0 50000 0>;
> >> +             brightness-levels = <0 10 20 30 40 50 60 70 80 90 100>;
> >
> > This is unlikely, the perceived brightness by the human eye is not
> > linear, and is actually much closer to a logarithmic function, which
> > means you should have use an exponential function here in order to
> > appear that your brightness increase is linear.
> 
> I think the backlight is a functional part of the panel. It probably
> belongs in the panel's overlay.

Yeah, that's also true.

Maxime
diff mbox

Patch

diff --git a/arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dts b/arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dts
index 387fc2aa546d..e0721bf725d1 100644
--- a/arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dts
+++ b/arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dts
@@ -52,6 +52,14 @@ 
 		serial0 = &uart0;
 	};
 
+	backlight: backlight {
+		compatible = "pwm-backlight";
+		pwms = <&pwm 0 50000 0>;
+		brightness-levels = <0 10 20 30 40 50 60 70 80 90 100>;
+		default-brightness-level = <8>;
+		status = "disabled";
+	};
+
 	chosen {
 		stdout-path = "serial0:115200n8";
 	};
@@ -86,6 +94,12 @@ 
 	status = "okay";
 };
 
+&pwm {
+	pinctrl-0 = <&pwm0_pins>;
+	pinctrl-names = "default";
+	status = "disabled";
+};
+
 &uart0 {
 	pinctrl-0 = <&uart0_pins_a>;
 	pinctrl-names = "default";