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)
10 For a description of the TCU hardware and drivers, have a look at
11 Documentation/arch/mips/ingenic-tcu.rst.
14 - Paul Cercueil <paul@crapouillou.net>
33 pattern: "^timer@[0-9a-f]+$"
47 interrupt-controller: true
65 - const: ingenic,jz4760-tcu
73 - description: RTC clock
74 - description: EXT clock
75 - description: PCLK clock
76 - description: TCU clock
89 - description: TCU0 interrupt
90 - description: TCU1 interrupt
91 - description: TCU2 interrupt
98 assigned-clock-parents:
102 assigned-clock-rates:
106 ingenic,pwm-channels-mask:
107 description: Bitmask of TCU channels reserved for PWM use.
108 $ref: /schemas/types.yaml#/definitions/uint32
114 "^watchdog@[a-f0-9]+$":
116 $ref: /schemas/watchdog/watchdog.yaml#
117 unevaluatedProperties: false
123 - ingenic,jz4740-watchdog
124 - ingenic,jz4780-watchdog
127 - ingenic,jz4770-watchdog
128 - ingenic,jz4760b-watchdog
129 - ingenic,jz4760-watchdog
130 - ingenic,jz4725b-watchdog
131 - const: ingenic,jz4740-watchdog
150 $ref: /schemas/pwm/pwm.yaml#
151 unevaluatedProperties: false
158 - ingenic,jz4725b-pwm
163 - ingenic,jz4760b-pwm
166 - const: ingenic,jz4740-pwm
199 - ingenic,jz4725b-ost
200 - ingenic,jz4760b-ost
202 - const: ingenic,jz4760-ost
203 - const: ingenic,jz4725b-ost
208 - const: ingenic,jz4760b-ost
229 additionalProperties: false
234 - interrupt-controller
241 additionalProperties: false
245 #include <dt-bindings/clock/ingenic,jz4770-cgu.h>
246 #include <dt-bindings/clock/ingenic,tcu.h>
247 tcu: timer@10002000 {
248 compatible = "ingenic,jz4770-tcu", "ingenic,jz4760-tcu", "simple-mfd";
249 reg = <0x10002000 0x1000>;
250 #address-cells = <1>;
252 ranges = <0x0 0x10002000 0x1000>;
256 clocks = <&cgu JZ4770_CLK_RTC>,
257 <&cgu JZ4770_CLK_EXT>,
258 <&cgu JZ4770_CLK_PCLK>;
259 clock-names = "rtc", "ext", "pclk";
261 interrupt-controller;
262 #interrupt-cells = <1>;
264 interrupt-parent = <&intc>;
265 interrupts = <27 26 25>;
267 watchdog: watchdog@0 {
268 compatible = "ingenic,jz4770-watchdog", "ingenic,jz4740-watchdog";
271 clocks = <&tcu TCU_CLK_WDT>;
276 compatible = "ingenic,jz4770-pwm", "ingenic,jz4740-pwm";
281 clocks = <&tcu TCU_CLK_TIMER0>,
282 <&tcu TCU_CLK_TIMER1>,
283 <&tcu TCU_CLK_TIMER2>,
284 <&tcu TCU_CLK_TIMER3>,
285 <&tcu TCU_CLK_TIMER4>,
286 <&tcu TCU_CLK_TIMER5>,
287 <&tcu TCU_CLK_TIMER6>,
288 <&tcu TCU_CLK_TIMER7>;
289 clock-names = "timer0", "timer1", "timer2", "timer3",
290 "timer4", "timer5", "timer6", "timer7";
294 compatible = "ingenic,jz4770-ost", "ingenic,jz4760b-ost";
297 clocks = <&tcu TCU_CLK_OST>;