* Mitch Bradley wrote: > To further complicate matters, the relationship between PWM duty > cycle and perceived brightness is usually nonlinear, so > equally-spaced duty cycle percentages might not result in the best > perceived brightness ramp. Yes, I've seen that on numerous devices as well. > One useful way to describe a given hardware system would be to have > properties reporting values that work well for that hardware. You > would need to report a good base clock frequency, a good base > period, and an array of N values that give a good perceived > brightness ramp. I'm not sure I quite understand what you mean by base period. Would the base period not be simply the inverse of the frequency? Or should the base period be the "step size" to multiply each element of the brightness levels with? > The backlight control on my PC laptop has 16 levels, 0 to 15. That > seems adequate to me. I have a laptop that uses 8 level, 0 to 7. Combining that with the above it should be easy to represent in the DT: bl: backlight { pwms = <&pwm 0 5000000>; base-period = <...>; brightness-levels = <...>; }; However, that would entail some major modifications to the pwm-backlight driver to make it compute the actual duty cycle based on the array of brightness levels. This also raises a more general question: in a lot of drivers the DT binding is used to provide an alternative source for platform data. With that assumption, is it still reasonable to describe data in DT is such a different way from the platform data? I mean in this particular case, there will be no way to convert the DT data to the corresponding platform data because there simply is no correspondence. Thierry