Hello Florian, [adding Linus and linux-gpio to Cc:] On Tue, Oct 29, 2024 at 09:03:57AM -0700, Florian Fainelli wrote: > On 10/29/24 03:44, Uwe Kleine-König wrote: > > On Tue, Oct 15, 2024 at 10:07:10AM -0700, Florian Fainelli wrote: > > > On 10/15/24 09:32, Rob Herring wrote: > > > > Another thing to consider is for any PWM controller with more than > > > > 1 output, you might want this to be per output and therefore should be > > > > a flag in the cells. > > > > > > Yes, that is a good point, this controller has two channels, so it seems > > > like increasing the #pwm-cells might be the way to go. > > > > So the idea is something like: > > > > diff --git a/include/dt-bindings/pwm/pwm.h b/include/dt-bindings/pwm/pwm.h > > index ab9a077e3c7d..d18b006a7399 100644 > > --- a/include/dt-bindings/pwm/pwm.h > > +++ b/include/dt-bindings/pwm/pwm.h > > @@ -11,5 +11,6 @@ > > #define _DT_BINDINGS_PWM_PWM_H > > #define PWM_POLARITY_INVERTED (1 << 0) > > +#define PWM_OUTPUT_OPEN_DRAIN (1 << 1) > > #endif > > > > and then add support for that to the core and drivers? There is some > > intersection with pinctrl (depending on hardware). I wonder if > > abstracting this somehow using the typical pinctrl properties would be a > > saner option?? > > But what if the pin is not managed by a pinctrl provider? Then create one? If that's the PWM itself that is the pinctrl device it would look as follows: pwm@f0408000 { compatible = "brcm,bcm7038-pwm"; pinctrl-0 = <&pwm_pins>; reg = <0xf0408000 0x28>; #pwm-cells = <2>; #pinctrl-cells = <0>; clocks = <&upg_fixed>; pinctrl { pwm_pins: pwm-pins { pins = "A", "B"; drive-open-drain; }; }; }; Maybe this is difficult if there is a pinctrl that configures the output as "PWM" and then there is that additional register in the PWM IP to make this pin open drain? One could just use pinctrl-0 = <&pwm_pins>, <&system_pinctrl_pwm>; then. Not entirely sure this is overengineered, but the dt representation would be nice (IMHO). Thoughts? > I have started > going the route of implementing the PWM_OUTPUT_OPEN_DRAIN bit as an > additional specifier in the #pwm-cells, but I am not sure to what extent > this should be allowed to be changed at runtime. I would not expect that the open-drainness needs to change at runtime. Best regards Uwe
Attachment:
signature.asc
Description: PGP signature