[PATCH v2 0/4] backlight: pwm_bl: support linear interpolation and brightness to human eye

From: Enric Balletbo i Serra
Date: Wed Feb 07 2018 - 09:14:39 EST


Dear all,

This series is a second patchset integrating the requested changes.

The first and second patch what tries to solve is the problem of
granularity for high resolution PWMs. The idea is simple interpolate
between 2 brightness values so we can have a high PWM duty cycle (a
16 bits PWM is up to 65535 possible steps) without having to list
out every possible value in the dts. I think that this patch is
required to not break backward compability, to be more flexible and
also extend the functionality to be able to use high resolution PWM
with enough steps to have a good UI experience in userspace.

The thirth and fourth patch is a bit more ambicious, the idea is let
decide the driver the brightness-levels required in function of the PWM
resolution. To do this create a brightness-levels table filled with the
CIE 1931 algorithm values to convert brightness to PWM duty cycle.

More detailed info is available in the commit message of every patch.

Both functionalities were tested on a Samsung Chromebook Plus (that has
a 16 bits PWM) and a SL50 device (with a 8 bits PWM)

Waiting for your feedback.

Best regards,

Enric Balletbo i Serra (4):
backlight: pwm_bl: linear interpolation between brightness-levels
dt-bindings: pwm-backlight: add a num-interpolation-steps property.
backlight: pwm_bl: compute brightness of LED linearly to human eye.
dt-bindings: pwm-backlight: move brightness-levels to optional.

.../bindings/leds/backlight/pwm-backlight.txt | 34 ++-
drivers/video/backlight/pwm_bl.c | 235 +++++++++++++++++++--
2 files changed, 249 insertions(+), 20 deletions(-)

--
2.15.1