xref: /freebsd-src/sys/contrib/device-tree/Bindings/timer/cdns,ttc.yaml (revision 01950c46b8155250f64374fb72fc11faa44bf099)
1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2c66ec88fSEmmanuel Vadot%YAML 1.2
3c66ec88fSEmmanuel Vadot---
4c66ec88fSEmmanuel Vadot$id: http://devicetree.org/schemas/timer/cdns,ttc.yaml#
5c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6c66ec88fSEmmanuel Vadot
7c66ec88fSEmmanuel Vadottitle: Cadence TTC - Triple Timer Counter
8c66ec88fSEmmanuel Vadot
9c66ec88fSEmmanuel Vadotmaintainers:
10f126890aSEmmanuel Vadot  - Michal Simek <michal.simek@amd.com>
11c66ec88fSEmmanuel Vadot
12c66ec88fSEmmanuel Vadotproperties:
13c66ec88fSEmmanuel Vadot  compatible:
14c66ec88fSEmmanuel Vadot    const: cdns,ttc
15c66ec88fSEmmanuel Vadot
16c66ec88fSEmmanuel Vadot  reg:
17c66ec88fSEmmanuel Vadot    maxItems: 1
18c66ec88fSEmmanuel Vadot
19c66ec88fSEmmanuel Vadot  interrupts:
20c66ec88fSEmmanuel Vadot    maxItems: 3
21c66ec88fSEmmanuel Vadot    description: |
22c66ec88fSEmmanuel Vadot      A list of 3 interrupts; one per timer channel.
23c66ec88fSEmmanuel Vadot
24c66ec88fSEmmanuel Vadot  clocks:
25c66ec88fSEmmanuel Vadot    maxItems: 1
26c66ec88fSEmmanuel Vadot
27e67e8565SEmmanuel Vadot  power-domains:
28e67e8565SEmmanuel Vadot    maxItems: 1
29e67e8565SEmmanuel Vadot
30c66ec88fSEmmanuel Vadot  timer-width:
31fac71e4eSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
32c66ec88fSEmmanuel Vadot    description: |
33c66ec88fSEmmanuel Vadot      Bit width of the timer, necessary if not 16.
34c66ec88fSEmmanuel Vadot
35*01950c46SEmmanuel Vadot  "#pwm-cells":
36*01950c46SEmmanuel Vadot    const: 3
37*01950c46SEmmanuel Vadot
38c66ec88fSEmmanuel Vadotrequired:
39c66ec88fSEmmanuel Vadot  - compatible
40c66ec88fSEmmanuel Vadot  - reg
41c66ec88fSEmmanuel Vadot  - clocks
42c66ec88fSEmmanuel Vadot
43*01950c46SEmmanuel VadotallOf:
44*01950c46SEmmanuel Vadot  - if:
45*01950c46SEmmanuel Vadot      not:
46*01950c46SEmmanuel Vadot        required:
47*01950c46SEmmanuel Vadot          - "#pwm-cells"
48*01950c46SEmmanuel Vadot    then:
49*01950c46SEmmanuel Vadot      required:
50*01950c46SEmmanuel Vadot        - interrupts
51*01950c46SEmmanuel Vadot
526be33864SEmmanuel VadotadditionalProperties: false
536be33864SEmmanuel Vadot
54c66ec88fSEmmanuel Vadotexamples:
55c66ec88fSEmmanuel Vadot  - |
56c66ec88fSEmmanuel Vadot    ttc0: ttc0@f8001000 {
57c66ec88fSEmmanuel Vadot        interrupt-parent = <&intc>;
58c66ec88fSEmmanuel Vadot        interrupts = <0 10 4>, <0 11 4>, <0 12 4>;
59c66ec88fSEmmanuel Vadot        compatible = "cdns,ttc";
60c66ec88fSEmmanuel Vadot        reg = <0xF8001000 0x1000>;
61c66ec88fSEmmanuel Vadot        clocks = <&cpu_clk 3>;
62c66ec88fSEmmanuel Vadot        timer-width = <32>;
63c66ec88fSEmmanuel Vadot    };
64*01950c46SEmmanuel Vadot
65*01950c46SEmmanuel Vadot  - |
66*01950c46SEmmanuel Vadot    pwm: pwm@f8002000 {
67*01950c46SEmmanuel Vadot        compatible = "cdns,ttc";
68*01950c46SEmmanuel Vadot        reg = <0xf8002000 0x1000>;
69*01950c46SEmmanuel Vadot        clocks = <&cpu_clk 3>;
70*01950c46SEmmanuel Vadot        timer-width = <32>;
71*01950c46SEmmanuel Vadot        #pwm-cells = <3>;
72*01950c46SEmmanuel Vadot    };
73