diff mbox series

dt-bindings: timer: Update TI timer to yaml and add compatible for am6

Message ID 20220408081258.57213-1-tony@atomide.com (mailing list archive)
State New, archived
Headers show
Series dt-bindings: timer: Update TI timer to yaml and add compatible for am6 | expand

Commit Message

Tony Lindgren April 8, 2022, 8:12 a.m. UTC
Let's update the TI timer binding to use yaml. And add compatible for
ti,am654-timer for TI am64, am65 and j72 SoCs. As the timer hardware is
the same between am64, am65 and j72 we use the compatible name for the
earliest SoC with this timer.

As this binding is specific to the TI dual-mode timers also known
as dm-timers, let's use ti,timer-dm.yaml naming for the new file.

Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
Cc: Keerthy <j-keerthy@ti.com>
Cc: Nishanth Menon <nm@ti.com>
Cc: Vignesh Raghavendra <vigneshr@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
---
 .../bindings/timer/ti,timer-dm.yaml           | 105 ++++++++++++++++++
 .../devicetree/bindings/timer/ti,timer.txt    |  44 --------
 2 files changed, 105 insertions(+), 44 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/timer/ti,timer-dm.yaml
 delete mode 100644 Documentation/devicetree/bindings/timer/ti,timer.txt

Comments

Nishanth Menon April 8, 2022, 8:27 a.m. UTC | #1
On 11:12-20220408, Tony Lindgren wrote:
[...]

> +  ti,hwmods:
> +    description:
> +      Name of the HWMOD associated with timer. This is for legacy
> +      omap2/3 platforms only.
> +    $ref: /schemas/types.yaml#/definitions/string
> +    deprecated: true
> +
> +required:
> +  - compatible
> +  - reg
> +
> +additionalProperties: false
> +

Should we strengthen the check like in 8250_omap.yaml - something to the
effect of:

if:
  properties:
    compatible:
      contains:
        enum:
          - ti,omap2420-timer
          - ti,omap3430-timer
          - ti,omap4430-timer

then:
  properties:
    ti,hwmods:
      items:
        - pattern: "^timer([1-9]+)$"

else:
  properties:
    ti,hwmods: false
Krzysztof Kozlowski April 8, 2022, 8:32 a.m. UTC | #2
On 08/04/2022 10:12, Tony Lindgren wrote:
> Let's update the TI timer binding to use yaml. And add compatible for
> ti,am654-timer for TI am64, am65 and j72 SoCs. As the timer hardware is
> the same between am64, am65 and j72 we use the compatible name for the
> earliest SoC with this timer.
> 
> As this binding is specific to the TI dual-mode timers also known
> as dm-timers, let's use ti,timer-dm.yaml naming for the new file.

Thank you for your patch. There is something to discuss/improve.

> ---
>  .../bindings/timer/ti,timer-dm.yaml           | 105 ++++++++++++++++++
>  .../devicetree/bindings/timer/ti,timer.txt    |  44 --------

pwm-omap-dmtimer.txt references old path.


>  2 files changed, 105 insertions(+), 44 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/timer/ti,timer-dm.yaml
>  delete mode 100644 Documentation/devicetree/bindings/timer/ti,timer.txt
> 
> diff --git a/Documentation/devicetree/bindings/timer/ti,timer-dm.yaml b/Documentation/devicetree/bindings/timer/ti,timer-dm.yaml
> new file mode 100644
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/timer/ti,timer-dm.yaml
> @@ -0,0 +1,105 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/timer/ti,timer-dm.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Binding for TI dual-mode timer

"TI dual-mode timer"

> +
> +maintainers:
> +  - Tony Lindgren <tony@atomide.com>
> +
> +description: |
> +  The TI dual-mode timer is a general purpose timer with PWM capabilities.
> +
> +properties:
> +  compatible:
> +    enum:
> +      - ti,omap2420-timer
> +      - ti,omap3430-timer
> +      - ti,omap4430-timer
> +      - ti,omap5430-timer
> +      - ti,am335x-timer
> +      - ti,am335x-timer-1ms
> +      - ti,am654-timer

How about ordering the entries by name (so amxxx before omapxxx)?

> +
> +  reg:
> +    minItems: 1
> +    maxItems: 2
> +    description: Timer IO register range

This was maxItems:1 in old binding, so please mention briefly in commit
msg why the change is needed. If only some versions need it, then add
allOf:if:then: constraints.

> +
> +  '#address-cells':
> +    enum: [ 1, 2 ]
> +
> +  '#size-cells':
> +    enum: [ 1, 2 ]

The same. Are these changes to the binding an effect of new compatible?
If yes, better to split it into two patches. One for old binding
(passing dtbs_check on old compatibles) and one for new compatible with
new properties.

> +
> +  clocks:
> +    description:
> +      The functional clock for the timer. Some SoCs like omap24xx also have a
> +      separate interface clock, and some clocks may be only defined for the
> +      interconnect target module parent.
> +    minItems: 1
> +    maxItems: 2

The same - not mentioned in commit msg.

> +
> +  clock-names:
> +    description:
> +      Timer clock names like "fck", "timer_sys_ck".
> +    oneOf:
> +      - enum: [ ick, fck ]
> +      - items:
> +          - const: fck
> +          - enum: [ ick, timer_sys_ck ]

Are the combinations depending on compatible? If so, you need allOf:if:then:

> +
> +  interrupts:
> +    description:
> +      Interrupt if available. The timer PWM features may be usable
> +      in a limited way even without interrupts.
> +    maxItems: 1
> +
> +  ti,timer-alwon:
> +    description:
> +      Timer is always enabled when the SoC is powered. Note that some SoCs like
> +      am335x can suspend to PM coprocessor RTC only mode and in that case the
> +      SoC power is cut including timers.
> +    type: boolean
> +
> +  ti,timer-dsp:
> +    description:
> +      Timer is routable to the DSP in addition to the operating system.
> +    type: boolean
> +
> +  ti,timer-pwm:
> +    description:
> +      Timer has been wired for PWM capability.
> +    type: boolean
> +
> +  ti,timer-secure:
> +    description:
> +      Timer access has been limited to secure mode only.
> +    type: boolean
> +
> +  ti,hwmods:
> +    description:
> +      Name of the HWMOD associated with timer. This is for legacy
> +      omap2/3 platforms only.
> +    $ref: /schemas/types.yaml#/definitions/string
> +    deprecated: true
> +
> +required:
> +  - compatible
> +  - reg

Missing interrupts - they were required. Aren't anymore?

> +
> +additionalProperties: false
> +


Best regards,
Krzysztof
Tony Lindgren April 8, 2022, 8:33 a.m. UTC | #3
* Nishanth Menon <nm@ti.com> [220408 08:25]:
> On 11:12-20220408, Tony Lindgren wrote:
> [...]
> 
> > +  ti,hwmods:
> > +    description:
> > +      Name of the HWMOD associated with timer. This is for legacy
> > +      omap2/3 platforms only.
> > +    $ref: /schemas/types.yaml#/definitions/string
> > +    deprecated: true
> > +
> > +required:
> > +  - compatible
> > +  - reg
> > +
> > +additionalProperties: false
> > +
> 
> Should we strengthen the check like in 8250_omap.yaml - something to the
> effect of:
> 
> if:
>   properties:
>     compatible:
>       contains:
>         enum:
>           - ti,omap2420-timer
>           - ti,omap3430-timer
>           - ti,omap4430-timer
> 
> then:
>   properties:
>     ti,hwmods:
>       items:
>         - pattern: "^timer([1-9]+)$"
> 
> else:
>   properties:
>     ti,hwmods: false

Sure, sounds good to me. I need to check again what all SoCs are already
using ti-sysc for all the timers. I believe system timers only got updated
for some SoCs.

Regards,

Tony
Krzysztof Kozlowski April 8, 2022, 8:34 a.m. UTC | #4
On 08/04/2022 10:27, Nishanth Menon wrote:
> On 11:12-20220408, Tony Lindgren wrote:
> [...]
> 
>> +  ti,hwmods:
>> +    description:
>> +      Name of the HWMOD associated with timer. This is for legacy
>> +      omap2/3 platforms only.
>> +    $ref: /schemas/types.yaml#/definitions/string
>> +    deprecated: true
>> +
>> +required:
>> +  - compatible
>> +  - reg
>> +
>> +additionalProperties: false
>> +
> 
> Should we strengthen the check like in 8250_omap.yaml - something to the
> effect of:
> 
> if:

Yes, please. Within allOf because other properties also might need such
constraints.


Best regards,
Krzysztof
Tony Lindgren April 8, 2022, 10:07 a.m. UTC | #5
* Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> [220408 08:30]:
> On 08/04/2022 10:12, Tony Lindgren wrote:
> > +required:
> > +  - compatible
> > +  - reg
> 
> Missing interrupts - they were required. Aren't anymore?

There are cases where the interrupts are not routable to Linux yet
the timer registers can be accessible. These timers can still be usable
in a limited way for some PWM cases though.

Thanks for the good comments on the binding, will update accordingly.
Yeah adding a second patch for the new features makes sense as few
things have changed with the new SoCs.

Regards,

Tony
Rob Herring April 8, 2022, 3:41 p.m. UTC | #6
On Fri, 08 Apr 2022 11:12:58 +0300, Tony Lindgren wrote:
> Let's update the TI timer binding to use yaml. And add compatible for
> ti,am654-timer for TI am64, am65 and j72 SoCs. As the timer hardware is
> the same between am64, am65 and j72 we use the compatible name for the
> earliest SoC with this timer.
> 
> As this binding is specific to the TI dual-mode timers also known
> as dm-timers, let's use ti,timer-dm.yaml naming for the new file.
> 
> Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
> Cc: Keerthy <j-keerthy@ti.com>
> Cc: Nishanth Menon <nm@ti.com>
> Cc: Vignesh Raghavendra <vigneshr@ti.com>
> Signed-off-by: Tony Lindgren <tony@atomide.com>
> ---
>  .../bindings/timer/ti,timer-dm.yaml           | 105 ++++++++++++++++++
>  .../devicetree/bindings/timer/ti,timer.txt    |  44 --------
>  2 files changed, 105 insertions(+), 44 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/timer/ti,timer-dm.yaml
>  delete mode 100644 Documentation/devicetree/bindings/timer/ti,timer.txt
> 

Running 'make dtbs_check' with the schema in this patch gives the
following warnings. Consider if they are expected or the schema is
incorrect. These may not be new warnings.

Note that it is not yet a requirement to have 0 warnings for dtbs_check.
This will change in the future.

Full log is available here: https://patchwork.ozlabs.org/patch/


timer@0: compatible:0: 'ti,am4372-timer-1ms' is not one of ['ti,omap2420-timer', 'ti,omap3430-timer', 'ti,omap4430-timer', 'ti,omap5430-timer', 'ti,am335x-timer', 'ti,am335x-timer-1ms', 'ti,am654-timer']
	arch/arm/boot/dts/am437x-cm-t43.dtb
	arch/arm/boot/dts/am437x-gp-evm.dtb
	arch/arm/boot/dts/am437x-idk-evm.dtb
	arch/arm/boot/dts/am437x-sbc-t43.dtb
	arch/arm/boot/dts/am437x-sk-evm.dtb
	arch/arm/boot/dts/am43x-epos-evm.dtb

timer@0: compatible:0: 'ti,am4372-timer' is not one of ['ti,omap2420-timer', 'ti,omap3430-timer', 'ti,omap4430-timer', 'ti,omap5430-timer', 'ti,am335x-timer', 'ti,am335x-timer-1ms', 'ti,am654-timer']
	arch/arm/boot/dts/am437x-cm-t43.dtb
	arch/arm/boot/dts/am437x-cm-t43.dtb
	arch/arm/boot/dts/am437x-cm-t43.dtb
	arch/arm/boot/dts/am437x-cm-t43.dtb
	arch/arm/boot/dts/am437x-cm-t43.dtb
	arch/arm/boot/dts/am437x-cm-t43.dtb
	arch/arm/boot/dts/am437x-cm-t43.dtb
	arch/arm/boot/dts/am437x-cm-t43.dtb
	arch/arm/boot/dts/am437x-cm-t43.dtb
	arch/arm/boot/dts/am437x-cm-t43.dtb
	arch/arm/boot/dts/am437x-gp-evm.dtb
	arch/arm/boot/dts/am437x-gp-evm.dtb
	arch/arm/boot/dts/am437x-gp-evm.dtb
	arch/arm/boot/dts/am437x-gp-evm.dtb
	arch/arm/boot/dts/am437x-gp-evm.dtb
	arch/arm/boot/dts/am437x-gp-evm.dtb
	arch/arm/boot/dts/am437x-gp-evm.dtb
	arch/arm/boot/dts/am437x-gp-evm.dtb
	arch/arm/boot/dts/am437x-gp-evm.dtb
	arch/arm/boot/dts/am437x-gp-evm.dtb
	arch/arm/boot/dts/am437x-idk-evm.dtb
	arch/arm/boot/dts/am437x-idk-evm.dtb
	arch/arm/boot/dts/am437x-idk-evm.dtb
	arch/arm/boot/dts/am437x-idk-evm.dtb
	arch/arm/boot/dts/am437x-idk-evm.dtb
	arch/arm/boot/dts/am437x-idk-evm.dtb
	arch/arm/boot/dts/am437x-idk-evm.dtb
	arch/arm/boot/dts/am437x-idk-evm.dtb
	arch/arm/boot/dts/am437x-idk-evm.dtb
	arch/arm/boot/dts/am437x-idk-evm.dtb
	arch/arm/boot/dts/am437x-sbc-t43.dtb
	arch/arm/boot/dts/am437x-sbc-t43.dtb
	arch/arm/boot/dts/am437x-sbc-t43.dtb
	arch/arm/boot/dts/am437x-sbc-t43.dtb
	arch/arm/boot/dts/am437x-sbc-t43.dtb
	arch/arm/boot/dts/am437x-sbc-t43.dtb
	arch/arm/boot/dts/am437x-sbc-t43.dtb
	arch/arm/boot/dts/am437x-sbc-t43.dtb
	arch/arm/boot/dts/am437x-sbc-t43.dtb
	arch/arm/boot/dts/am437x-sbc-t43.dtb
	arch/arm/boot/dts/am437x-sk-evm.dtb
	arch/arm/boot/dts/am437x-sk-evm.dtb
	arch/arm/boot/dts/am437x-sk-evm.dtb
	arch/arm/boot/dts/am437x-sk-evm.dtb
	arch/arm/boot/dts/am437x-sk-evm.dtb
	arch/arm/boot/dts/am437x-sk-evm.dtb
	arch/arm/boot/dts/am437x-sk-evm.dtb
	arch/arm/boot/dts/am437x-sk-evm.dtb
	arch/arm/boot/dts/am437x-sk-evm.dtb
	arch/arm/boot/dts/am437x-sk-evm.dtb
	arch/arm/boot/dts/am43x-epos-evm.dtb
	arch/arm/boot/dts/am43x-epos-evm.dtb
	arch/arm/boot/dts/am43x-epos-evm.dtb
	arch/arm/boot/dts/am43x-epos-evm.dtb
	arch/arm/boot/dts/am43x-epos-evm.dtb
	arch/arm/boot/dts/am43x-epos-evm.dtb
	arch/arm/boot/dts/am43x-epos-evm.dtb
	arch/arm/boot/dts/am43x-epos-evm.dtb
	arch/arm/boot/dts/am43x-epos-evm.dtb
	arch/arm/boot/dts/am43x-epos-evm.dtb

timer@0: compatible: ['ti,am4372-timer-1ms', 'ti,am335x-timer-1ms'] is too long
	arch/arm/boot/dts/am437x-cm-t43.dtb
	arch/arm/boot/dts/am437x-gp-evm.dtb
	arch/arm/boot/dts/am437x-idk-evm.dtb
	arch/arm/boot/dts/am437x-sbc-t43.dtb
	arch/arm/boot/dts/am437x-sk-evm.dtb
	arch/arm/boot/dts/am43x-epos-evm.dtb

timer@0: compatible: ['ti,am4372-timer', 'ti,am335x-timer'] is too long
	arch/arm/boot/dts/am437x-cm-t43.dtb
	arch/arm/boot/dts/am437x-cm-t43.dtb
	arch/arm/boot/dts/am437x-cm-t43.dtb
	arch/arm/boot/dts/am437x-cm-t43.dtb
	arch/arm/boot/dts/am437x-cm-t43.dtb
	arch/arm/boot/dts/am437x-cm-t43.dtb
	arch/arm/boot/dts/am437x-cm-t43.dtb
	arch/arm/boot/dts/am437x-cm-t43.dtb
	arch/arm/boot/dts/am437x-cm-t43.dtb
	arch/arm/boot/dts/am437x-cm-t43.dtb
	arch/arm/boot/dts/am437x-gp-evm.dtb
	arch/arm/boot/dts/am437x-gp-evm.dtb
	arch/arm/boot/dts/am437x-gp-evm.dtb
	arch/arm/boot/dts/am437x-gp-evm.dtb
	arch/arm/boot/dts/am437x-gp-evm.dtb
	arch/arm/boot/dts/am437x-gp-evm.dtb
	arch/arm/boot/dts/am437x-gp-evm.dtb
	arch/arm/boot/dts/am437x-gp-evm.dtb
	arch/arm/boot/dts/am437x-gp-evm.dtb
	arch/arm/boot/dts/am437x-gp-evm.dtb
	arch/arm/boot/dts/am437x-idk-evm.dtb
	arch/arm/boot/dts/am437x-idk-evm.dtb
	arch/arm/boot/dts/am437x-idk-evm.dtb
	arch/arm/boot/dts/am437x-idk-evm.dtb
	arch/arm/boot/dts/am437x-idk-evm.dtb
	arch/arm/boot/dts/am437x-idk-evm.dtb
	arch/arm/boot/dts/am437x-idk-evm.dtb
	arch/arm/boot/dts/am437x-idk-evm.dtb
	arch/arm/boot/dts/am437x-idk-evm.dtb
	arch/arm/boot/dts/am437x-idk-evm.dtb
	arch/arm/boot/dts/am437x-sbc-t43.dtb
	arch/arm/boot/dts/am437x-sbc-t43.dtb
	arch/arm/boot/dts/am437x-sbc-t43.dtb
	arch/arm/boot/dts/am437x-sbc-t43.dtb
	arch/arm/boot/dts/am437x-sbc-t43.dtb
	arch/arm/boot/dts/am437x-sbc-t43.dtb
	arch/arm/boot/dts/am437x-sbc-t43.dtb
	arch/arm/boot/dts/am437x-sbc-t43.dtb
	arch/arm/boot/dts/am437x-sbc-t43.dtb
	arch/arm/boot/dts/am437x-sbc-t43.dtb
	arch/arm/boot/dts/am437x-sk-evm.dtb
	arch/arm/boot/dts/am437x-sk-evm.dtb
	arch/arm/boot/dts/am437x-sk-evm.dtb
	arch/arm/boot/dts/am437x-sk-evm.dtb
	arch/arm/boot/dts/am437x-sk-evm.dtb
	arch/arm/boot/dts/am437x-sk-evm.dtb
	arch/arm/boot/dts/am437x-sk-evm.dtb
	arch/arm/boot/dts/am437x-sk-evm.dtb
	arch/arm/boot/dts/am437x-sk-evm.dtb
	arch/arm/boot/dts/am437x-sk-evm.dtb
	arch/arm/boot/dts/am43x-epos-evm.dtb
	arch/arm/boot/dts/am43x-epos-evm.dtb
	arch/arm/boot/dts/am43x-epos-evm.dtb
	arch/arm/boot/dts/am43x-epos-evm.dtb
	arch/arm/boot/dts/am43x-epos-evm.dtb
	arch/arm/boot/dts/am43x-epos-evm.dtb
	arch/arm/boot/dts/am43x-epos-evm.dtb
	arch/arm/boot/dts/am43x-epos-evm.dtb
	arch/arm/boot/dts/am43x-epos-evm.dtb
	arch/arm/boot/dts/am43x-epos-evm.dtb
Tony Lindgren April 11, 2022, 8 a.m. UTC | #7
* Rob Herring <robh@kernel.org> [220408 15:39]:
> On Fri, 08 Apr 2022 11:12:58 +0300, Tony Lindgren wrote:
> > Let's update the TI timer binding to use yaml. And add compatible for
> > ti,am654-timer for TI am64, am65 and j72 SoCs. As the timer hardware is
> > the same between am64, am65 and j72 we use the compatible name for the
> > earliest SoC with this timer.
> > 
> > As this binding is specific to the TI dual-mode timers also known
> > as dm-timers, let's use ti,timer-dm.yaml naming for the new file.
> > 
> > Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
> > Cc: Keerthy <j-keerthy@ti.com>
> > Cc: Nishanth Menon <nm@ti.com>
> > Cc: Vignesh Raghavendra <vigneshr@ti.com>
> > Signed-off-by: Tony Lindgren <tony@atomide.com>
> > ---
> >  .../bindings/timer/ti,timer-dm.yaml           | 105 ++++++++++++++++++
> >  .../devicetree/bindings/timer/ti,timer.txt    |  44 --------
> >  2 files changed, 105 insertions(+), 44 deletions(-)
> >  create mode 100644 Documentation/devicetree/bindings/timer/ti,timer-dm.yaml
> >  delete mode 100644 Documentation/devicetree/bindings/timer/ti,timer.txt
> > 
> 
> Running 'make dtbs_check' with the schema in this patch gives the
> following warnings. Consider if they are expected or the schema is
> incorrect. These may not be new warnings.

Well I was planning to drop the unused ti,am4372-timer related properties,
but instead will document those as discussed in the related dts thread.
I'll be sending an updated version a bit later on.

Regards,

Tony
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/timer/ti,timer-dm.yaml b/Documentation/devicetree/bindings/timer/ti,timer-dm.yaml
new file mode 100644
--- /dev/null
+++ b/Documentation/devicetree/bindings/timer/ti,timer-dm.yaml
@@ -0,0 +1,105 @@ 
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/timer/ti,timer-dm.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Binding for TI dual-mode timer
+
+maintainers:
+  - Tony Lindgren <tony@atomide.com>
+
+description: |
+  The TI dual-mode timer is a general purpose timer with PWM capabilities.
+
+properties:
+  compatible:
+    enum:
+      - ti,omap2420-timer
+      - ti,omap3430-timer
+      - ti,omap4430-timer
+      - ti,omap5430-timer
+      - ti,am335x-timer
+      - ti,am335x-timer-1ms
+      - ti,am654-timer
+
+  reg:
+    minItems: 1
+    maxItems: 2
+    description: Timer IO register range
+
+  '#address-cells':
+    enum: [ 1, 2 ]
+
+  '#size-cells':
+    enum: [ 1, 2 ]
+
+  clocks:
+    description:
+      The functional clock for the timer. Some SoCs like omap24xx also have a
+      separate interface clock, and some clocks may be only defined for the
+      interconnect target module parent.
+    minItems: 1
+    maxItems: 2
+
+  clock-names:
+    description:
+      Timer clock names like "fck", "timer_sys_ck".
+    oneOf:
+      - enum: [ ick, fck ]
+      - items:
+          - const: fck
+          - enum: [ ick, timer_sys_ck ]
+
+  interrupts:
+    description:
+      Interrupt if available. The timer PWM features may be usable
+      in a limited way even without interrupts.
+    maxItems: 1
+
+  ti,timer-alwon:
+    description:
+      Timer is always enabled when the SoC is powered. Note that some SoCs like
+      am335x can suspend to PM coprocessor RTC only mode and in that case the
+      SoC power is cut including timers.
+    type: boolean
+
+  ti,timer-dsp:
+    description:
+      Timer is routable to the DSP in addition to the operating system.
+    type: boolean
+
+  ti,timer-pwm:
+    description:
+      Timer has been wired for PWM capability.
+    type: boolean
+
+  ti,timer-secure:
+    description:
+      Timer access has been limited to secure mode only.
+    type: boolean
+
+  ti,hwmods:
+    description:
+      Name of the HWMOD associated with timer. This is for legacy
+      omap2/3 platforms only.
+    $ref: /schemas/types.yaml#/definitions/string
+    deprecated: true
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    timer1: timer@0 {
+      compatible = "ti,am335x-timer-1ms";
+      reg = <0x0 0x400>;
+      interrupts = <67>;
+      ti,timer-alwon;
+      clocks = <&timer1_fck>;
+      clock-names = "fck";
+    };
+...
diff --git a/Documentation/devicetree/bindings/timer/ti,timer.txt b/Documentation/devicetree/bindings/timer/ti,timer.txt
deleted file mode 100644
--- a/Documentation/devicetree/bindings/timer/ti,timer.txt
+++ /dev/null
@@ -1,44 +0,0 @@ 
-OMAP Timer bindings
-
-Required properties:
-- compatible:		Should be set to one of the below. Please note that
-			OMAP44xx devices have timer instances that are 100%
-			register compatible with OMAP3xxx devices as well as
-			newer timers that are not 100% register compatible.
-			So for OMAP44xx devices timer instances may use
-			different compatible strings.
-
-			ti,omap2420-timer (applicable to OMAP24xx devices)
-			ti,omap3430-timer (applicable to OMAP3xxx/44xx devices)
-			ti,omap4430-timer (applicable to OMAP44xx devices)
-			ti,omap5430-timer (applicable to OMAP543x devices)
-			ti,am335x-timer	(applicable to AM335x devices)
-			ti,am335x-timer-1ms (applicable to AM335x devices)
-
-- reg:			Contains timer register address range (base address and
-			length).
-- interrupts: 		Contains the interrupt information for the timer. The
-			format is being dependent on which interrupt controller
-			the OMAP device uses.
-- ti,hwmods:		Name of the hwmod associated to the timer, "timer<X>",
-			where <X> is the instance number of the timer from the
-			HW spec.
-
-Optional properties:
-- ti,timer-alwon:	Indicates the timer is in an alway-on power domain.
-- ti,timer-dsp:		Indicates the timer can interrupt the on-chip DSP in
-			addition to the ARM CPU.
-- ti,timer-pwm: 	Indicates the timer can generate a PWM output.
-- ti,timer-secure: 	Indicates the timer is reserved on a secure OMAP device
-			and therefore cannot be used by the kernel.
-
-Example:
-
-timer12: timer@48304000 {
-	compatible = "ti,omap3430-timer";
-	reg = <0x48304000 0x400>;
-	interrupts = <95>;
-	ti,hwmods = "timer12"
-	ti,timer-alwon;
-	ti,timer-secure;
-};