[v4,1/1] dt-bindings: pwm: ti,pwm-omap-dmtimer: Update binding for yaml

Message ID 20231114082709.54138-1-tony@atomide.com
State New
Headers
Series [v4,1/1] dt-bindings: pwm: ti,pwm-omap-dmtimer: Update binding for yaml |

Commit Message

Tony Lindgren Nov. 14, 2023, 8:27 a.m. UTC
  Update for yaml and remove the old txt binding.

As we can replace most of the custom timer API with standard Linux
frameworks such as clock framework, let's tag the properties for
ti,prescaler and ti,clock-source as deprecated.

Cc: linux-pwm@vger.kernel.org
Cc: Nishanth Menon <nm@ti.com>
Cc: Thierry Reding <thierry.reding@gmail.com>
Cc: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Cc: Vignesh Raghavendra <vigneshr@ti.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Tony Lindgren <tony@atomide.com>
---

Changes since v3:

- No changes, reposted without patch 1/2. The pwm.yaml related issues got
  fixed by commit 05b743db9d8c ("dt-bindings: pwm: restrict node name
  suffixes")

Changes since v2:

- Reviewed-by collected from Krzysztof, no changes

Changes since v1:

- Fix issues noticed by Krzysztof

---
 .../bindings/pwm/pwm-omap-dmtimer.txt         | 22 -------
 .../bindings/pwm/ti,omap-dmtimer-pwm.yaml     | 59 +++++++++++++++++++
 2 files changed, 59 insertions(+), 22 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/pwm/pwm-omap-dmtimer.txt
 create mode 100644 Documentation/devicetree/bindings/pwm/ti,omap-dmtimer-pwm.yaml
  

Comments

Uwe Kleine-König Nov. 14, 2023, 10:36 a.m. UTC | #1
Hello,

On Tue, Nov 14, 2023 at 10:27:06AM +0200, Tony Lindgren wrote:
> +  ti,timers:
> +    description: Timer instance phandle for the PWM
> +    $ref: /schemas/types.yaml#/definitions/phandle
> +
> +  ti,prescaler:
> +    description: |
> +      Legacy clock prescaler for timer. The timer counter is prescaled
> +      with 2^n where n is the prescaler.
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    enum: [ 0, 1, 2, 3, 4, 5, 6, 7 ]
> +    deprecated: true
> +
> +  ti,clock-source:
> +    description: |
> +      Legacy clock for timer, please use assigned-clocks instead.
> +      0x00 - high-frequency system clock (timer_sys_ck)
> +      0x01 - 32-kHz always-on clock (timer_32k_ck)
> +      0x02 - external clock (timer_ext_ck, OMAP2 only)
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    enum: [ 0, 1, 2 ]
> +    deprecated: true

Someone could collect some bonus points by converting these:

	$ git grep ti,clock-source arch/arm/boot
	arch/arm/boot/dts/ti/omap/am335x-guardian.dts:          ti,clock-source = <0x01>;
	arch/arm/boot/dts/ti/omap/am3517-evm.dts:               ti,clock-source = <0x01>;
	arch/arm/boot/dts/ti/omap/logicpd-torpedo-baseboard.dtsi:               ti,clock-source = <0x01>;
	arch/arm/boot/dts/ti/omap/motorola-mapphone-common.dtsi:                ti,clock-source = <0x01>;
	arch/arm/boot/dts/ti/omap/motorola-mapphone-common.dtsi:                ti,clock-source = <0x01>;
	arch/arm/boot/dts/ti/omap/omap3-gta04.dtsi:             ti,clock-source = <0x01>;
	arch/arm/boot/dts/ti/omap/omap3-n900.dts:               ti,clock-source = <0x00>; /* timer_sys_ck */

(I verified, this are all about this binding.)

otherwise LGTM:

Reviewed-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>

Should this go via the pwm tree or via some arm or omap or dt tree?

Best regards
Uwe
  
Tony Lindgren Nov. 14, 2023, 11:34 a.m. UTC | #2
* Uwe Kleine-König <u.kleine-koenig@pengutronix.de> [231114 10:36]:
> Hello,
> 
> On Tue, Nov 14, 2023 at 10:27:06AM +0200, Tony Lindgren wrote:
> > +  ti,timers:
> > +    description: Timer instance phandle for the PWM
> > +    $ref: /schemas/types.yaml#/definitions/phandle
> > +
> > +  ti,prescaler:
> > +    description: |
> > +      Legacy clock prescaler for timer. The timer counter is prescaled
> > +      with 2^n where n is the prescaler.
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    enum: [ 0, 1, 2, 3, 4, 5, 6, 7 ]
> > +    deprecated: true
> > +
> > +  ti,clock-source:
> > +    description: |
> > +      Legacy clock for timer, please use assigned-clocks instead.
> > +      0x00 - high-frequency system clock (timer_sys_ck)
> > +      0x01 - 32-kHz always-on clock (timer_32k_ck)
> > +      0x02 - external clock (timer_ext_ck, OMAP2 only)
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    enum: [ 0, 1, 2 ]
> > +    deprecated: true
> 
> Someone could collect some bonus points by converting these:
> 
> 	$ git grep ti,clock-source arch/arm/boot
> 	arch/arm/boot/dts/ti/omap/am335x-guardian.dts:          ti,clock-source = <0x01>;
> 	arch/arm/boot/dts/ti/omap/am3517-evm.dts:               ti,clock-source = <0x01>;
> 	arch/arm/boot/dts/ti/omap/logicpd-torpedo-baseboard.dtsi:               ti,clock-source = <0x01>;
> 	arch/arm/boot/dts/ti/omap/motorola-mapphone-common.dtsi:                ti,clock-source = <0x01>;
> 	arch/arm/boot/dts/ti/omap/motorola-mapphone-common.dtsi:                ti,clock-source = <0x01>;
> 	arch/arm/boot/dts/ti/omap/omap3-gta04.dtsi:             ti,clock-source = <0x01>;
> 	arch/arm/boot/dts/ti/omap/omap3-n900.dts:               ti,clock-source = <0x00>; /* timer_sys_ck */
> 
> (I verified, this are all about this binding.)

Agreed, we should update all those.

> otherwise LGTM:
> 
> Reviewed-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
> 
> Should this go via the pwm tree or via some arm or omap or dt tree?

Please take this via the pwm tree, there are no dependencies.

Regards,

Tony
  

Patch

diff --git a/Documentation/devicetree/bindings/pwm/pwm-omap-dmtimer.txt b/Documentation/devicetree/bindings/pwm/pwm-omap-dmtimer.txt
deleted file mode 100644
--- a/Documentation/devicetree/bindings/pwm/pwm-omap-dmtimer.txt
+++ /dev/null
@@ -1,22 +0,0 @@ 
-* OMAP PWM for dual-mode timers
-
-Required properties:
-- compatible: Shall contain "ti,omap-dmtimer-pwm".
-- ti,timers: phandle to PWM capable OMAP timer. See timer/ti,timer-dm.yaml for info
-  about these timers.
-- #pwm-cells: Should be 3. See pwm.yaml in this directory for a description of
-  the cells format.
-
-Optional properties:
-- ti,prescaler: Should be a value between 0 and 7, see the timers datasheet
-- ti,clock-source: Set dmtimer parent clock, values between 0 and 2:
-  - 0x00 - high-frequency system clock (timer_sys_ck)
-  - 0x01 - 32-kHz always-on clock (timer_32k_ck)
-  - 0x02 - external clock (timer_ext_ck, OMAP2 only)
-
-Example:
-	pwm9: dmtimer-pwm@9 {
-		compatible = "ti,omap-dmtimer-pwm";
-		ti,timers = <&timer9>;
-		#pwm-cells = <3>;
-	};
diff --git a/Documentation/devicetree/bindings/pwm/ti,omap-dmtimer-pwm.yaml b/Documentation/devicetree/bindings/pwm/ti,omap-dmtimer-pwm.yaml
new file mode 100644
--- /dev/null
+++ b/Documentation/devicetree/bindings/pwm/ti,omap-dmtimer-pwm.yaml
@@ -0,0 +1,59 @@ 
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pwm/ti,omap-dmtimer-pwm.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: TI dual mode timer PWM controller
+
+maintainers:
+  - Tony Lindgren <tony@atomide.com>
+
+description:
+  TI dual mode timer instances have an IO pin for PWM capability
+
+allOf:
+  - $ref: pwm.yaml#
+
+properties:
+  compatible:
+    const: ti,omap-dmtimer-pwm
+
+  "#pwm-cells":
+    const: 3
+
+  ti,timers:
+    description: Timer instance phandle for the PWM
+    $ref: /schemas/types.yaml#/definitions/phandle
+
+  ti,prescaler:
+    description: |
+      Legacy clock prescaler for timer. The timer counter is prescaled
+      with 2^n where n is the prescaler.
+    $ref: /schemas/types.yaml#/definitions/uint32
+    enum: [ 0, 1, 2, 3, 4, 5, 6, 7 ]
+    deprecated: true
+
+  ti,clock-source:
+    description: |
+      Legacy clock for timer, please use assigned-clocks instead.
+      0x00 - high-frequency system clock (timer_sys_ck)
+      0x01 - 32-kHz always-on clock (timer_32k_ck)
+      0x02 - external clock (timer_ext_ck, OMAP2 only)
+    $ref: /schemas/types.yaml#/definitions/uint32
+    enum: [ 0, 1, 2 ]
+    deprecated: true
+
+required:
+  - compatible
+  - ti,timers
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    pwm9: pwm {
+      compatible = "ti,omap-dmtimer-pwm";
+      ti,timers = <&timer9>;
+      #pwm-cells = <3>;
+    };