summaryrefslogtreecommitdiff
path: root/Documentation/devicetree/bindings/timer/ti,timer-dm.yaml
diff options
context:
space:
mode:
authorTony Lindgren <tony@atomide.com>2022-04-14 11:58:06 +0300
committerRob Herring <robh@kernel.org>2022-04-26 00:55:02 +0300
commit82b9a6bb4b7a350619650b32e7d64ca945e0f234 (patch)
treeb0052a9d8e0428213ee233bfe1aa61ad73c3abc6 /Documentation/devicetree/bindings/timer/ti,timer-dm.yaml
parentf14eb061fe89de0a090837c28ea15a79403730ee (diff)
downloadlinux-82b9a6bb4b7a350619650b32e7d64ca945e0f234.tar.xz
dt-bindings: timer: Update TI timer to yaml
Let's update the TI timer binding to use yaml. As this binding is specific to the TI dual-mode timers also known as dm-timers, let's use file name ti,timer-dm.yaml to avoid confusion with other timers. We add checks for the deprecated ti,hwmods property as done for other TI device driver bindings earlier. We also correct the issue with the old binding that was out of date for several properties. The am43 related timers are undocumented, but compatible with the am3 timers. Let's add the am43 timers too. The dm814 and dm816 timers are missing, let's add them. Some timers on some SoCs are dual mapped, like the ABE timers on omap4 and 5. The reg property maxItems must be updated to 2. The timer clocks can be managed by the parent interconnect target module with no clocks assigned for the timer node. And in some cases, the SoC may need to configure additional system clock for the timer in addition to the functional clock. The clock names are optional and not specific to the comptible property. For example, dra7 timers on l3 interconnect do not need clock-names, while the timers on dra7 l4 interconnect need them with both being compatible with ti,omap5430-timer. Cc: Daniel Lezcano <daniel.lezcano@linaro.org> Cc: Grygorii Strashko <grygorii.strashko@ti.com> 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> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Reviewed-by: Grygorii Strashko <grygorii.strashko@ti.com> Signed-off-by: Rob Herring <robh@kernel.org> Link: https://lore.kernel.org/r/20220414085807.7389-2-tony@atomide.com
Diffstat (limited to 'Documentation/devicetree/bindings/timer/ti,timer-dm.yaml')
-rw-r--r--Documentation/devicetree/bindings/timer/ti,timer-dm.yaml142
1 files changed, 142 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/timer/ti,timer-dm.yaml b/Documentation/devicetree/bindings/timer/ti,timer-dm.yaml
new file mode 100644
index 000000000000..7c0eb53a944b
--- /dev/null
+++ b/Documentation/devicetree/bindings/timer/ti,timer-dm.yaml
@@ -0,0 +1,142 @@
+# 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: 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:
+ oneOf:
+ - items:
+ - enum:
+ - ti,am335x-timer
+ - ti,am335x-timer-1ms
+ - ti,dm814-timer
+ - ti,dm816-timer
+ - ti,omap2420-timer
+ - ti,omap3430-timer
+ - ti,omap4430-timer
+ - ti,omap5430-timer
+ - items:
+ - const: ti,am4372-timer
+ - const: ti,am335x-timer
+ - items:
+ - const: ti,am4372-timer-1ms
+ - const: ti,am335x-timer-1ms
+
+ reg:
+ items:
+ - description: IO address
+ - description: L3 to L4 mapping for omap4/5 L4 ABE
+ minItems: 1
+
+ clocks:
+ items:
+ - description: Functional clock
+ - description: System clock for omap4/5 and dra7
+ minItems: 1
+
+ clock-names:
+ items:
+ - const: fck
+ - const: timer_sys_ck
+ minItems: 1
+
+ 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
+ - interrupts
+
+additionalProperties: false
+
+allOf:
+ - if:
+ not:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - ti,omap3430-timer
+ - ti,omap4430-timer
+ - ti,omap5430-timer
+ then:
+ properties:
+ reg:
+ maxItems: 1
+ clocks:
+ maxItems: 1
+ clock-names:
+ maxItems: 1
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - ti,dm814-timer
+ - ti,dm816-timer
+ - ti,omap2420-timer
+ - ti,omap3430-timer
+ then:
+ properties:
+ ti,hwmods:
+ items:
+ - pattern: "^timer([1-9]|1[0-2])$"
+ else:
+ properties:
+ ti,hwmods: false
+
+examples:
+ - |
+ timer1: timer@0 {
+ compatible = "ti,am335x-timer-1ms";
+ reg = <0x0 0x400>;
+ interrupts = <67>;
+ ti,timer-alwon;
+ clocks = <&timer1_fck>;
+ clock-names = "fck";
+ };
+...