On Tue, 20 Jun 2023 15:00:20 -0500 Chris Morgan <macroalpha82@xxxxxxxxx> wrote: Hi Chris, thanks for taking care of upstreaming, cute little device. > From: Chris Morgan <macromorgan@xxxxxxxxxxx> > > Add a default pinctrl for the pwm function. > > Signed-off-by: Chris Morgan <macromorgan@xxxxxxxxxxx> > --- > arch/arm/boot/dts/sun8i-v3s.dtsi | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/arch/arm/boot/dts/sun8i-v3s.dtsi b/arch/arm/boot/dts/sun8i-v3s.dtsi > index b001251644f7..e5977524abe2 100644 > --- a/arch/arm/boot/dts/sun8i-v3s.dtsi > +++ b/arch/arm/boot/dts/sun8i-v3s.dtsi > @@ -414,6 +414,11 @@ mmc1_pins: mmc1-pins { > bias-pull-up; > }; > > + pwm_pins: pwm-pins { > + pins = "PB4"; > + function = "pwm0"; > + }; > + > spi0_pins: spi0-pins { > pins = "PC0", "PC1", "PC2", "PC3"; > function = "spi0"; > @@ -441,6 +446,8 @@ pwm: pwm@1c21400 { > "allwinner,sun7i-a20-pwm"; > reg = <0x01c21400 0xc>; > clocks = <&osc24M>; > + pinctrl-0 = <&pwm_pins>; > + pinctrl-names = "default"; How is this supposed to work with multiple channels? There is PWM1 on PB5. If one wants to potentially use that, we would need to add a reference to those pins here as well, and they would all be muxed to PWM upon the PWM controller probing? So while I see that it's the only output pin for PWM0, this might still need to go into the board .dts, alongside the status = "okay"; line. So each board would specify exactly the pins it needs (PWM0 only, PWM1 only, both or none). Otherwise I compared this against the manual and Linux pinctrl driver, it all matches up. Cheers, Andre > #pwm-cells = <3>; > status = "disabled"; > };