diff mbox series

dt-bindings: pwm: st: convert sti-pwm to DT schema

Message ID 20230801220559.32530-1-rgallaispou@gmail.com
State Changes Requested
Headers show
Series dt-bindings: pwm: st: convert sti-pwm to DT schema | expand

Commit Message

Raphael Gallais-Pou Aug. 1, 2023, 10:05 p.m. UTC
Converts st,sti-pwm binding to DT schema format

Signed-off-by: Raphael Gallais-Pou <rgallaispou@gmail.com>
---
 .../devicetree/bindings/pwm/pwm-st.txt        | 43 -----------
 .../devicetree/bindings/pwm/st,sti-pwm.yaml   | 74 +++++++++++++++++++
 2 files changed, 74 insertions(+), 43 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/pwm/pwm-st.txt
 create mode 100644 Documentation/devicetree/bindings/pwm/st,sti-pwm.yaml

Comments

Uwe Kleine-König Aug. 2, 2023, 8:02 a.m. UTC | #1
Hello,

On Wed, Aug 02, 2023 at 12:05:59AM +0200, Raphael Gallais-Pou wrote:
> +  st,capture-num-chan:
> +    $ref: "/schemas/types.yaml#/definitions/uint32"
> +    description: Number of available Capture channels.

I have the theory that nobody actually uses the capture feature and I'd
like to get rid of it. People who do use it, should better switch to the
counter driver.

I wonder if this is the opportunity to drop st,capture-num-chan. There
is no mainline user.

Best regards
Uwe
Raphael Gallais-Pou Aug. 3, 2023, 7:18 a.m. UTC | #2
Hi

Le 02/08/2023 à 10:02, Uwe Kleine-König a écrit :
> Hello,
> 
> On Wed, Aug 02, 2023 at 12:05:59AM +0200, Raphael Gallais-Pou wrote:
>> +  st,capture-num-chan:
>> +    $ref: "/schemas/types.yaml#/definitions/uint32"
>> +    description: Number of available Capture channels.
> 
> I have the theory that nobody actually uses the capture feature and I'd
> like to get rid of it. People who do use it, should better switch to the
> counter driver.

TBH I only found two drivers using it, including this one.

$ grep -rinI "\.capture" drivers/pwm/ | wc -l
2

While I agree that there is not much drivers using capture feature, I 
have mixed feelings about removing it.
> 
> I wonder if this is the opportunity to drop st,capture-num-chan. There
> is no mainline user.

If there is no opposition about removing this feature I suggest to do it 
in a second time, in a serie.

Regards,
Raphaël
> 
> Best regards
> Uwe
>
Uwe Kleine-König Aug. 3, 2023, 8:56 a.m. UTC | #3
On Thu, Aug 03, 2023 at 09:18:14AM +0200, Raphaël Gallais-Pou wrote:
> Hi
> 
> Le 02/08/2023 à 10:02, Uwe Kleine-König a écrit :
> > Hello,
> > 
> > On Wed, Aug 02, 2023 at 12:05:59AM +0200, Raphael Gallais-Pou wrote:
> > > +  st,capture-num-chan:
> > > +    $ref: "/schemas/types.yaml#/definitions/uint32"
> > > +    description: Number of available Capture channels.
> > 
> > I have the theory that nobody actually uses the capture feature and I'd
> > like to get rid of it. People who do use it, should better switch to the
> > counter driver.
> 
> TBH I only found two drivers using it, including this one.
> 
> $ grep -rinI "\.capture" drivers/pwm/ | wc -l
> 2

Right, there is pwm-stm32 and pwm-sti that support capture.

There are a few machines that have a st,sti-pwm device:

	$ grep -rl st,sti-pwm arch/arm/boot/dts/*.dtb
	arch/arm/boot/dts/stih407-b2120.dtb
	arch/arm/boot/dts/stih410-b2120.dtb
	arch/arm/boot/dts/stih410-b2260.dtb
	arch/arm/boot/dts/stih418-b2199.dtb
	arch/arm/boot/dts/stih418-b2264.dtb

but to actually use capture the device tree must have a property
st,capture-num-chan. "st,capture-num-chan" isn't set by any of the
devices.

I think for stm32 it's not that trivial to show that it's unused.
While the capture code isn't a big maintenance burden, I still would
prefer to get rid of it if nobody uses it. Still more given that there
are better alternatives available.

> If there is no opposition about removing this feature I suggest to do it in
> a second time, in a serie.

Does that mean you will do that? I guess not, but at least this means
you're not using capture support.

Best regards
Uwe
Conor Dooley Aug. 3, 2023, 4:09 p.m. UTC | #4
On Thu, Aug 03, 2023 at 10:56:45AM +0200, Uwe Kleine-König wrote:
> On Thu, Aug 03, 2023 at 09:18:14AM +0200, Raphaël Gallais-Pou wrote:
> > Hi
> > 
> > Le 02/08/2023 à 10:02, Uwe Kleine-König a écrit :
> > > Hello,
> > > 
> > > On Wed, Aug 02, 2023 at 12:05:59AM +0200, Raphael Gallais-Pou wrote:
> > > > +  st,capture-num-chan:
> > > > +    $ref: "/schemas/types.yaml#/definitions/uint32"
> > > > +    description: Number of available Capture channels.
> > > 
> > > I have the theory that nobody actually uses the capture feature and I'd
> > > like to get rid of it. People who do use it, should better switch to the
> > > counter driver.
> > 
> > TBH I only found two drivers using it, including this one.
> > 
> > $ grep -rinI "\.capture" drivers/pwm/ | wc -l
> > 2
> 
> Right, there is pwm-stm32 and pwm-sti that support capture.
> 
> There are a few machines that have a st,sti-pwm device:
> 
> 	$ grep -rl st,sti-pwm arch/arm/boot/dts/*.dtb
> 	arch/arm/boot/dts/stih407-b2120.dtb
> 	arch/arm/boot/dts/stih410-b2120.dtb
> 	arch/arm/boot/dts/stih410-b2260.dtb
> 	arch/arm/boot/dts/stih418-b2199.dtb
> 	arch/arm/boot/dts/stih418-b2264.dtb
> 
> but to actually use capture the device tree must have a property
> st,capture-num-chan. "st,capture-num-chan" isn't set by any of the
> devices.
> 
> I think for stm32 it's not that trivial to show that it's unused.
> While the capture code isn't a big maintenance burden, I still would
> prefer to get rid of it if nobody uses it. Still more given that there
> are better alternatives available.
> 
> > If there is no opposition about removing this feature I suggest to do it in
> > a second time, in a serie.
> 
> Does that mean you will do that? I guess not, but at least this means
> you're not using capture support.

It seems like it should either be done as part of the conversion or as a
second patch in the series doing the conversion /shrug
Raphael Gallais-Pou Aug. 3, 2023, 5:19 p.m. UTC | #5
Hi,

Le 03/08/2023 à 18:09, Conor Dooley a écrit :
> On Thu, Aug 03, 2023 at 10:56:45AM +0200, Uwe Kleine-König wrote:
>> On Thu, Aug 03, 2023 at 09:18:14AM +0200, Raphaël Gallais-Pou wrote:
>>> Hi
>>>
>>> Le 02/08/2023 à 10:02, Uwe Kleine-König a écrit :
>>>> Hello,
>>>>
>>>> On Wed, Aug 02, 2023 at 12:05:59AM +0200, Raphael Gallais-Pou wrote:
>>>>> +  st,capture-num-chan:
>>>>> +    $ref: "/schemas/types.yaml#/definitions/uint32"
>>>>> +    description: Number of available Capture channels.
>>>>
>>>> I have the theory that nobody actually uses the capture feature and I'd
>>>> like to get rid of it. People who do use it, should better switch to the
>>>> counter driver.
>>>
>>> TBH I only found two drivers using it, including this one.
>>>
>>> $ grep -rinI "\.capture" drivers/pwm/ | wc -l
>>> 2
>>
>> Right, there is pwm-stm32 and pwm-sti that support capture.
>>
>> There are a few machines that have a st,sti-pwm device:
>>
>> 	$ grep -rl st,sti-pwm arch/arm/boot/dts/*.dtb
>> 	arch/arm/boot/dts/stih407-b2120.dtb
>> 	arch/arm/boot/dts/stih410-b2120.dtb
>> 	arch/arm/boot/dts/stih410-b2260.dtb
>> 	arch/arm/boot/dts/stih418-b2199.dtb
>> 	arch/arm/boot/dts/stih418-b2264.dtb
>>
>> but to actually use capture the device tree must have a property
>> st,capture-num-chan. "st,capture-num-chan" isn't set by any of the
>> devices.

This is also what I came across, this is the reason why I'm not 
reluctant to remove it.

>>
>> I think for stm32 it's not that trivial to show that it's unused.
>> While the capture code isn't a big maintenance burden, I still would
>> prefer to get rid of it if nobody uses it. Still more given that there
>> are better alternatives available.

Regarding stm32, I think the owner of the driver would prefer to handle it.

>>
>>> If there is no opposition about removing this feature I suggest to do it in
>>> a second time, in a serie.
>>
>> Does that mean you will do that? I guess not, but at least this means
>> you're not using capture support.
> 
> It seems like it should either be done as part of the conversion or as a
> second patch in the series doing the conversion /shrug

Splitting the conversion and the capture removal is clearer IMO. Mixing 
both could lead to confusion. I'll send another serie to do this.


Regards,
Raphaël
Rob Herring (Arm) Aug. 11, 2023, 7:29 p.m. UTC | #6
On Wed, Aug 02, 2023 at 12:05:59AM +0200, Raphael Gallais-Pou wrote:
> Converts st,sti-pwm binding to DT schema format
> 
> Signed-off-by: Raphael Gallais-Pou <rgallaispou@gmail.com>
> ---
>  .../devicetree/bindings/pwm/pwm-st.txt        | 43 -----------
>  .../devicetree/bindings/pwm/st,sti-pwm.yaml   | 74 +++++++++++++++++++
>  2 files changed, 74 insertions(+), 43 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/pwm/pwm-st.txt
>  create mode 100644 Documentation/devicetree/bindings/pwm/st,sti-pwm.yaml
> 
> diff --git a/Documentation/devicetree/bindings/pwm/pwm-st.txt b/Documentation/devicetree/bindings/pwm/pwm-st.txt
> deleted file mode 100644
> index 19fce774cafa..000000000000
> --- a/Documentation/devicetree/bindings/pwm/pwm-st.txt
> +++ /dev/null
> @@ -1,43 +0,0 @@
> -STMicroelectronics PWM driver bindings
> ---------------------------------------
> -
> -Required parameters:
> -- compatible :		"st,pwm"
> -- #pwm-cells : 		Number of cells used to specify a PWM. First cell
> -			specifies the per-chip index of the PWM to use and the
> -			second cell is the period in nanoseconds - fixed to 2
> -			for STiH41x.
> -- reg :			Physical base address and length of the controller's
> -			registers.
> -- pinctrl-names: 	Set to "default".
> -- pinctrl-0: 		List of phandles pointing to pin configuration nodes
> -			for PWM module.
> -			For Pinctrl properties, please refer to [1].
> -- clock-names: 		Valid entries are "pwm" and/or "capture".
> -- clocks: 		phandle of the clock used by the PWM module.
> -			For Clk properties, please refer to [2].
> -- interrupts:		IRQ for the Capture device
> -
> -Optional properties:
> -- st,pwm-num-chan:	Number of available PWM channels.  Default is 0.
> -- st,capture-num-chan:	Number of available Capture channels.  Default is 0.
> -
> -[1] Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt
> -[2] Documentation/devicetree/bindings/clock/clock-bindings.txt
> -
> -Example:
> -
> -pwm1: pwm@fe510000 {
> -	compatible = "st,pwm";
> -	reg = <0xfe510000 0x68>;
> -	#pwm-cells = <2>;
> -	pinctrl-names = "default";
> -	pinctrl-0 = <&pinctrl_pwm1_chan0_default
> -		     &pinctrl_pwm1_chan1_default
> -		     &pinctrl_pwm1_chan2_default
> -		     &pinctrl_pwm1_chan3_default>;
> -	clocks = <&clk_sysin>;
> -	clock-names = "pwm";
> -	st,pwm-num-chan = <4>;
> -	st,capture-num-chan = <2>;
> -};
> diff --git a/Documentation/devicetree/bindings/pwm/st,sti-pwm.yaml b/Documentation/devicetree/bindings/pwm/st,sti-pwm.yaml
> new file mode 100644
> index 000000000000..8a7833e9c10c
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/pwm/st,sti-pwm.yaml
> @@ -0,0 +1,74 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/pwm/st,sti-pwm.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: STMicroelectronics STi PWM controller
> +
> +maintainers:
> +  - Patrice Chotard <patrice.chotard@foss.st.com>
> +
> +allOf:
> +  - $ref: pwm.yaml#
> +
> +properties:
> +  compatible:
> +    const: st,sti-pwm
> +
> +  reg:
> +    maxItems: 1
> +
> +  interrupts:
> +    maxItems: 1
> +
> +  pinctrl-names:
> +    const: default
> +
> +  pinctrl-0:
> +    description: Configuration for the default state.
> +
> +  clock-names:
> +    const: pwm
> +
> +  clocks:
> +    $ref: "/schemas/types.yaml#/definitions/phandle"

Drop quotes

> +
> +  st,pwm-num-chan:
> +    $ref: "/schemas/types.yaml#/definitions/uint32"
> +    description: Number of available PWM channels.

Constraints?

> +
> +  st,capture-num-chan:
> +    $ref: "/schemas/types.yaml#/definitions/uint32"
> +    description: Number of available Capture channels.

Constraints?

> +
> +  "#pwm-cells":
> +    const: 2
> +
> +required:
> +  - compatible
> +  - reg
> +  - interrupts
> +  - clock-names
> +  - clocks
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    #include <dt-bindings/interrupt-controller/arm-gic.h>
> +    pwm1: pwm@9510000 {
> +        compatible = "st,sti-pwm";
> +        #pwm-cells = <2>;
> +        reg = <0x9510000 0x68>;
> +        interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>;
> +        pinctrl-names = "default";
> +        pinctrl-0 = <&pinctrl_pwm1_chan0_default
> +                 &pinctrl_pwm1_chan1_default
> +                 &pinctrl_pwm1_chan2_default
> +                 &pinctrl_pwm1_chan3_default>;
> +        clock-names = "pwm";
> +        clocks = <&clk_sysin>;
> +        st,pwm-num-chan = <4>;
> +    };
> +...
> -- 
> 2.41.0
>
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/pwm/pwm-st.txt b/Documentation/devicetree/bindings/pwm/pwm-st.txt
deleted file mode 100644
index 19fce774cafa..000000000000
--- a/Documentation/devicetree/bindings/pwm/pwm-st.txt
+++ /dev/null
@@ -1,43 +0,0 @@ 
-STMicroelectronics PWM driver bindings
---------------------------------------
-
-Required parameters:
-- compatible :		"st,pwm"
-- #pwm-cells : 		Number of cells used to specify a PWM. First cell
-			specifies the per-chip index of the PWM to use and the
-			second cell is the period in nanoseconds - fixed to 2
-			for STiH41x.
-- reg :			Physical base address and length of the controller's
-			registers.
-- pinctrl-names: 	Set to "default".
-- pinctrl-0: 		List of phandles pointing to pin configuration nodes
-			for PWM module.
-			For Pinctrl properties, please refer to [1].
-- clock-names: 		Valid entries are "pwm" and/or "capture".
-- clocks: 		phandle of the clock used by the PWM module.
-			For Clk properties, please refer to [2].
-- interrupts:		IRQ for the Capture device
-
-Optional properties:
-- st,pwm-num-chan:	Number of available PWM channels.  Default is 0.
-- st,capture-num-chan:	Number of available Capture channels.  Default is 0.
-
-[1] Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt
-[2] Documentation/devicetree/bindings/clock/clock-bindings.txt
-
-Example:
-
-pwm1: pwm@fe510000 {
-	compatible = "st,pwm";
-	reg = <0xfe510000 0x68>;
-	#pwm-cells = <2>;
-	pinctrl-names = "default";
-	pinctrl-0 = <&pinctrl_pwm1_chan0_default
-		     &pinctrl_pwm1_chan1_default
-		     &pinctrl_pwm1_chan2_default
-		     &pinctrl_pwm1_chan3_default>;
-	clocks = <&clk_sysin>;
-	clock-names = "pwm";
-	st,pwm-num-chan = <4>;
-	st,capture-num-chan = <2>;
-};
diff --git a/Documentation/devicetree/bindings/pwm/st,sti-pwm.yaml b/Documentation/devicetree/bindings/pwm/st,sti-pwm.yaml
new file mode 100644
index 000000000000..8a7833e9c10c
--- /dev/null
+++ b/Documentation/devicetree/bindings/pwm/st,sti-pwm.yaml
@@ -0,0 +1,74 @@ 
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pwm/st,sti-pwm.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: STMicroelectronics STi PWM controller
+
+maintainers:
+  - Patrice Chotard <patrice.chotard@foss.st.com>
+
+allOf:
+  - $ref: pwm.yaml#
+
+properties:
+  compatible:
+    const: st,sti-pwm
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  pinctrl-names:
+    const: default
+
+  pinctrl-0:
+    description: Configuration for the default state.
+
+  clock-names:
+    const: pwm
+
+  clocks:
+    $ref: "/schemas/types.yaml#/definitions/phandle"
+
+  st,pwm-num-chan:
+    $ref: "/schemas/types.yaml#/definitions/uint32"
+    description: Number of available PWM channels.
+
+  st,capture-num-chan:
+    $ref: "/schemas/types.yaml#/definitions/uint32"
+    description: Number of available Capture channels.
+
+  "#pwm-cells":
+    const: 2
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - clock-names
+  - clocks
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    pwm1: pwm@9510000 {
+        compatible = "st,sti-pwm";
+        #pwm-cells = <2>;
+        reg = <0x9510000 0x68>;
+        interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>;
+        pinctrl-names = "default";
+        pinctrl-0 = <&pinctrl_pwm1_chan0_default
+                 &pinctrl_pwm1_chan1_default
+                 &pinctrl_pwm1_chan2_default
+                 &pinctrl_pwm1_chan3_default>;
+        clock-names = "pwm";
+        clocks = <&clk_sysin>;
+        st,pwm-num-chan = <4>;
+    };
+...