On Wed, Jul 21, 2021 at 05:09:57PM +0200, Marek Vasut wrote: > On 7/21/21 12:49 PM, Daniel Thompson wrote: > > > I'm not sure that's correct, we can simply say that any new uses of the > > > pwm-backlight should specify the initial GPIO configuration, and for the > > > legacy ones, use whatever is in the code now. > > > > I'm not 100% against the idea... however if we still have to get the > > code to read state from the hardware right for legacy cases that means > > we have to do the same work but with fewer people testing it. > > We can do something like this: > > if (of_property_read_bool(np, "enable-active-high")) > gpiod_direction_output(pb->enable_gpio, 1); > else if (of_property_read_bool(np, "enable-active-low")) > gpiod_direction_output(pb->enable_gpio, 0); > else { > WARN_ON_ONCE("Fix your DT"); // or some such notification > ... legacy code path ... > } > > Note that I picked the same DT prop names as drivers/gpio/gpiolib-of.c > of_gpio_flags_quirks() uses, because we are headed into similar mess here > I'm afraid. I don't quite understand what you mean here. We are using gpiolib so for us there is no concept of active-high or active-low. The only concept for us is whether enable_gpio is asserted or not. What the DT property would be describing is purely whether the bootloader left the backlight on or off. This sails very close to the edge of what is in-scope for DT (at least it does it we can read the inherited state directly from the hardware). What it also means decisions about the DT bindings are more about whether, if the backlight is lit up, the bootloader should also disclose what it thinks it has established as the PWM duty cycle as well. Overall I have fairly grave concerns that this simply moves fragility into the bootloader rather then reducing it. Daniel.