1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
4 $id: http://devicetree.org/schemas/timer/ingenic,tcu.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: Ingenic SoCs Timer/Counter Unit (TCU) devicetree bindings
10 For a description of the TCU hardware and drivers, have a look at
11 Documentation/mips/ingenic-tcu.rst.
14 - Paul Cercueil <paul@crapouillou.net>
31 pattern: "^timer@[0-9a-f]+$"
45 interrupt-controller: true
59 - const: ingenic,jz4780-tcu
60 - const: ingenic,jz4770-tcu
68 - description: RTC clock
69 - description: EXT clock
70 - description: PCLK clock
71 - description: TCU clock
84 - description: TCU0 interrupt
85 - description: TCU1 interrupt
86 - description: TCU2 interrupt
93 assigned-clock-parents:
101 ingenic,pwm-channels-mask:
102 description: Bitmask of TCU channels reserved for PWM use.
103 $ref: /schemas/types.yaml#/definitions/uint32
109 "^watchdog@[a-f0-9]+$":
111 $ref: ../watchdog/watchdog.yaml#
116 - ingenic,jz4740-watchdog
117 - ingenic,jz4780-watchdog
120 - ingenic,jz4770-watchdog
121 - ingenic,jz4725b-watchdog
122 - const: ingenic,jz4740-watchdog
141 $ref: ../pwm/pwm.yaml#
147 - ingenic,jz4725b-pwm
152 - const: ingenic,jz4740-pwm
185 - ingenic,jz4725b-ost
188 - const: ingenic,jz4780-ost
189 - const: ingenic,jz4770-ost
210 additionalProperties: false
215 - interrupt-controller
222 additionalProperties: false
226 #include <dt-bindings/clock/jz4770-cgu.h>
227 #include <dt-bindings/clock/ingenic,tcu.h>
228 tcu: timer@10002000 {
229 compatible = "ingenic,jz4770-tcu", "simple-mfd";
230 reg = <0x10002000 0x1000>;
231 #address-cells = <1>;
233 ranges = <0x0 0x10002000 0x1000>;
237 clocks = <&cgu JZ4770_CLK_RTC>,
238 <&cgu JZ4770_CLK_EXT>,
239 <&cgu JZ4770_CLK_PCLK>;
240 clock-names = "rtc", "ext", "pclk";
242 interrupt-controller;
243 #interrupt-cells = <1>;
245 interrupt-parent = <&intc>;
246 interrupts = <27 26 25>;
248 watchdog: watchdog@0 {
249 compatible = "ingenic,jz4770-watchdog", "ingenic,jz4740-watchdog";
252 clocks = <&tcu TCU_CLK_WDT>;
257 compatible = "ingenic,jz4770-pwm", "ingenic,jz4740-pwm";
262 clocks = <&tcu TCU_CLK_TIMER0>,
263 <&tcu TCU_CLK_TIMER1>,
264 <&tcu TCU_CLK_TIMER2>,
265 <&tcu TCU_CLK_TIMER3>,
266 <&tcu TCU_CLK_TIMER4>,
267 <&tcu TCU_CLK_TIMER5>,
268 <&tcu TCU_CLK_TIMER6>,
269 <&tcu TCU_CLK_TIMER7>;
270 clock-names = "timer0", "timer1", "timer2", "timer3",
271 "timer4", "timer5", "timer6", "timer7";
275 compatible = "ingenic,jz4770-ost";
278 clocks = <&tcu TCU_CLK_OST>;