xref: /openbmc/linux/Documentation/devicetree/bindings/timer/ti,timer-dm.yaml (revision 4f2c0a4acffbec01079c28f839422e64ddeff004)
182b9a6bbSTony Lindgren# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
282b9a6bbSTony Lindgren%YAML 1.2
382b9a6bbSTony Lindgren---
482b9a6bbSTony Lindgren$id: http://devicetree.org/schemas/timer/ti,timer-dm.yaml#
582b9a6bbSTony Lindgren$schema: http://devicetree.org/meta-schemas/core.yaml#
682b9a6bbSTony Lindgren
782b9a6bbSTony Lindgrentitle: TI dual-mode timer
882b9a6bbSTony Lindgren
982b9a6bbSTony Lindgrenmaintainers:
1082b9a6bbSTony Lindgren  - Tony Lindgren <tony@atomide.com>
1182b9a6bbSTony Lindgren
1282b9a6bbSTony Lindgrendescription: |
1382b9a6bbSTony Lindgren  The TI dual-mode timer is a general purpose timer with PWM capabilities.
1482b9a6bbSTony Lindgren
1582b9a6bbSTony Lindgrenproperties:
1682b9a6bbSTony Lindgren  compatible:
1782b9a6bbSTony Lindgren    oneOf:
1882b9a6bbSTony Lindgren      - items:
1982b9a6bbSTony Lindgren          - enum:
2082b9a6bbSTony Lindgren              - ti,am335x-timer
2182b9a6bbSTony Lindgren              - ti,am335x-timer-1ms
22c4f3f823STony Lindgren              - ti,am654-timer
2382b9a6bbSTony Lindgren              - ti,dm814-timer
2482b9a6bbSTony Lindgren              - ti,dm816-timer
2582b9a6bbSTony Lindgren              - ti,omap2420-timer
2682b9a6bbSTony Lindgren              - ti,omap3430-timer
2782b9a6bbSTony Lindgren              - ti,omap4430-timer
2882b9a6bbSTony Lindgren              - ti,omap5430-timer
2982b9a6bbSTony Lindgren      - items:
3082b9a6bbSTony Lindgren          - const: ti,am4372-timer
3182b9a6bbSTony Lindgren          - const: ti,am335x-timer
3282b9a6bbSTony Lindgren      - items:
3382b9a6bbSTony Lindgren          - const: ti,am4372-timer-1ms
3482b9a6bbSTony Lindgren          - const: ti,am335x-timer-1ms
3582b9a6bbSTony Lindgren
3682b9a6bbSTony Lindgren  reg:
3782b9a6bbSTony Lindgren    items:
3882b9a6bbSTony Lindgren      - description: IO address
3982b9a6bbSTony Lindgren      - description: L3 to L4 mapping for omap4/5 L4 ABE
4082b9a6bbSTony Lindgren    minItems: 1
4182b9a6bbSTony Lindgren
4282b9a6bbSTony Lindgren  clocks:
4382b9a6bbSTony Lindgren    items:
4482b9a6bbSTony Lindgren      - description: Functional clock
4582b9a6bbSTony Lindgren      - description: System clock for omap4/5 and dra7
4682b9a6bbSTony Lindgren    minItems: 1
4782b9a6bbSTony Lindgren
4882b9a6bbSTony Lindgren  clock-names:
4982b9a6bbSTony Lindgren    items:
5082b9a6bbSTony Lindgren      - const: fck
5182b9a6bbSTony Lindgren      - const: timer_sys_ck
5282b9a6bbSTony Lindgren    minItems: 1
5382b9a6bbSTony Lindgren
54*3b684d04STony Lindgren  power-domains:
55*3b684d04STony Lindgren    description:
56*3b684d04STony Lindgren      Power domain if available
57*3b684d04STony Lindgren    maxItems: 1
58*3b684d04STony Lindgren
5982b9a6bbSTony Lindgren  interrupts:
6082b9a6bbSTony Lindgren    description:
6182b9a6bbSTony Lindgren      Interrupt if available. The timer PWM features may be usable
6282b9a6bbSTony Lindgren      in a limited way even without interrupts.
6382b9a6bbSTony Lindgren    maxItems: 1
6482b9a6bbSTony Lindgren
6582b9a6bbSTony Lindgren  ti,timer-alwon:
6682b9a6bbSTony Lindgren    description:
6782b9a6bbSTony Lindgren      Timer is always enabled when the SoC is powered. Note that some SoCs like
6882b9a6bbSTony Lindgren      am335x can suspend to PM coprocessor RTC only mode and in that case the
6982b9a6bbSTony Lindgren      SoC power is cut including timers.
7082b9a6bbSTony Lindgren    type: boolean
7182b9a6bbSTony Lindgren
7282b9a6bbSTony Lindgren  ti,timer-dsp:
7382b9a6bbSTony Lindgren    description:
7482b9a6bbSTony Lindgren      Timer is routable to the DSP in addition to the operating system.
7582b9a6bbSTony Lindgren    type: boolean
7682b9a6bbSTony Lindgren
7782b9a6bbSTony Lindgren  ti,timer-pwm:
7882b9a6bbSTony Lindgren    description:
7982b9a6bbSTony Lindgren      Timer has been wired for PWM capability.
8082b9a6bbSTony Lindgren    type: boolean
8182b9a6bbSTony Lindgren
8282b9a6bbSTony Lindgren  ti,timer-secure:
8382b9a6bbSTony Lindgren    description:
8482b9a6bbSTony Lindgren      Timer access has been limited to secure mode only.
8582b9a6bbSTony Lindgren    type: boolean
8682b9a6bbSTony Lindgren
8782b9a6bbSTony Lindgren  ti,hwmods:
8882b9a6bbSTony Lindgren    description:
8982b9a6bbSTony Lindgren      Name of the HWMOD associated with timer. This is for legacy
9082b9a6bbSTony Lindgren      omap2/3 platforms only.
9182b9a6bbSTony Lindgren    $ref: /schemas/types.yaml#/definitions/string
9282b9a6bbSTony Lindgren    deprecated: true
9382b9a6bbSTony Lindgren
9482b9a6bbSTony Lindgrenrequired:
9582b9a6bbSTony Lindgren  - compatible
9682b9a6bbSTony Lindgren  - reg
9782b9a6bbSTony Lindgren
9882b9a6bbSTony LindgrenadditionalProperties: false
9982b9a6bbSTony Lindgren
10082b9a6bbSTony LindgrenallOf:
10182b9a6bbSTony Lindgren  - if:
10282b9a6bbSTony Lindgren      properties:
10382b9a6bbSTony Lindgren        compatible:
10482b9a6bbSTony Lindgren          contains:
105c4f3f823STony Lindgren            const: ti,am654-timer
106c4f3f823STony Lindgren    then:
107c4f3f823STony Lindgren      required:
108*3b684d04STony Lindgren        - power-domains
109*3b684d04STony Lindgren    else:
110*3b684d04STony Lindgren      required:
111c4f3f823STony Lindgren        - interrupts
112c4f3f823STony Lindgren
113c4f3f823STony Lindgren  - if:
114c4f3f823STony Lindgren      not:
115c4f3f823STony Lindgren        properties:
116c4f3f823STony Lindgren          compatible:
117c4f3f823STony Lindgren            contains:
11882b9a6bbSTony Lindgren              enum:
11982b9a6bbSTony Lindgren                - ti,omap3430-timer
12082b9a6bbSTony Lindgren                - ti,omap4430-timer
12182b9a6bbSTony Lindgren                - ti,omap5430-timer
12282b9a6bbSTony Lindgren    then:
12382b9a6bbSTony Lindgren      properties:
12482b9a6bbSTony Lindgren        reg:
12582b9a6bbSTony Lindgren          maxItems: 1
12682b9a6bbSTony Lindgren        clocks:
12782b9a6bbSTony Lindgren          maxItems: 1
12882b9a6bbSTony Lindgren        clock-names:
12982b9a6bbSTony Lindgren          maxItems: 1
13082b9a6bbSTony Lindgren
13182b9a6bbSTony Lindgren  - if:
13282b9a6bbSTony Lindgren      properties:
13382b9a6bbSTony Lindgren        compatible:
13482b9a6bbSTony Lindgren          contains:
13582b9a6bbSTony Lindgren            enum:
13682b9a6bbSTony Lindgren              - ti,dm814-timer
13782b9a6bbSTony Lindgren              - ti,dm816-timer
13882b9a6bbSTony Lindgren              - ti,omap2420-timer
13982b9a6bbSTony Lindgren              - ti,omap3430-timer
14082b9a6bbSTony Lindgren    then:
14182b9a6bbSTony Lindgren      properties:
14282b9a6bbSTony Lindgren        ti,hwmods:
14382b9a6bbSTony Lindgren          items:
14482b9a6bbSTony Lindgren            - pattern: "^timer([1-9]|1[0-2])$"
14582b9a6bbSTony Lindgren    else:
14682b9a6bbSTony Lindgren      properties:
14782b9a6bbSTony Lindgren        ti,hwmods: false
14882b9a6bbSTony Lindgren
14982b9a6bbSTony Lindgrenexamples:
15082b9a6bbSTony Lindgren  - |
15182b9a6bbSTony Lindgren    timer1: timer@0 {
15282b9a6bbSTony Lindgren      compatible = "ti,am335x-timer-1ms";
15382b9a6bbSTony Lindgren      reg = <0x0 0x400>;
15482b9a6bbSTony Lindgren      interrupts = <67>;
15582b9a6bbSTony Lindgren      ti,timer-alwon;
15682b9a6bbSTony Lindgren      clocks = <&timer1_fck>;
15782b9a6bbSTony Lindgren      clock-names = "fck";
15882b9a6bbSTony Lindgren    };
15982b9a6bbSTony Lindgren...
160