[PATCH] dt-bindings: pwm: Add generic "pwm-channels" property

Rob Herring robh at kernel.org
Mon Mar 5 15:53:00 PST 2018


On Wed, Feb 28, 2018 at 01:37:32AM +0000, Andre Przywara wrote:
> Many PWM drivers seem to hardcode the number of PWM channels
> (brcm,iproc-pwm, brcm,kona-pwm.txt). If this is only one device
> supported by the binding, that's probably OK, but for instance for
> sun4i-pwm I see one or two channels, depending on the particular SoC.
> amlogic,meson-gxbb-pwm seems to deduce the number of channels from the
> number of input clocks, and pwm-st has a vendor-specific property for
> that (st,pwm-num-chan).
> To cover all those cases more elegantly in (future) bindings, add a new
> generic property to specify the number of PWM channels a particular
> controller implements.
> For instance the sun4i-pwm driver could be extended to support this for
> future SoCs as well.
> 
> Signed-off-by: Andre Przywara <andre.przywara at arm.com>
> 
> ---
> Hi,
> 
> while looking at the bindings for PWM drivers, I was wondering if we
> should have a generic property to note the number of implemented
> channels? We have something for instance for DMA controllers
> (dma-channels), so adding this to PWM controller bindings sounds
> natural.
> In particular the new sun8i-pwm IP seems to be scalable to a number of
> channels, judging from the register and bit layout and from the bit
> assignment in the manual. I have the gut feeling we will meet this fella
> again in another Allwinner SoC with a different number of channels.

Often this should be implied by the compatible string. However, there 
are no doubt some cases that may need this. One I could think of is the 
PWM controller has more channels than are pinned out.

Reviewed-by: Rob Herring <robh at kernel.org>

> 
> Thanks!
> Andre.
> 
>  Documentation/devicetree/bindings/pwm/pwm.txt | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/pwm/pwm.txt b/Documentation/devicetree/bindings/pwm/pwm.txt
> index 8556263b8502..770f3aee17af 100644
> --- a/Documentation/devicetree/bindings/pwm/pwm.txt
> +++ b/Documentation/devicetree/bindings/pwm/pwm.txt
> @@ -60,10 +60,16 @@ Example with optional PWM specifier for inverse polarity
>  PWM controller nodes must specify the number of cells used for the
>  specifier using the '#pwm-cells' property.
>  
> +A specific controller binding might specify the implemented number of
> +PWM channels using this generic property:
> +	pwm-channels = <8>;
> +This property holds a single 32 bit integer.
> +
>  An example PWM controller might look like this:
>  
>  	pwm: pwm at 7000a000 {
>  		compatible = "nvidia,tegra20-pwm";
>  		reg = <0x7000a000 0x100>;
>  		#pwm-cells = <2>;
> +		pwm-channels = <4>;
>  	};
> -- 
> 2.14.1
> 



More information about the linux-arm-kernel mailing list