~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/devicetree/bindings/timer/ingenic,tcu.yaml

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
  2 %YAML 1.2
  3 ---
  4 $id: http://devicetree.org/schemas/timer/ingenic,tcu.yaml#
  5 $schema: http://devicetree.org/meta-schemas/core.yaml#
  6 
  7 title: Ingenic SoCs Timer/Counter Unit (TCU)
  8 
  9 description: |
 10   For a description of the TCU hardware and drivers, have a look at
 11   Documentation/arch/mips/ingenic-tcu.rst.
 12 
 13 maintainers:
 14   - Paul Cercueil <paul@crapouillou.net>
 15 
 16 select:
 17   properties:
 18     compatible:
 19       contains:
 20         enum:
 21           - ingenic,jz4740-tcu
 22           - ingenic,jz4725b-tcu
 23           - ingenic,jz4760-tcu
 24           - ingenic,jz4760b-tcu
 25           - ingenic,jz4770-tcu
 26           - ingenic,jz4780-tcu
 27           - ingenic,x1000-tcu
 28   required:
 29     - compatible
 30 
 31 properties:
 32   $nodename:
 33     pattern: "^timer@[0-9a-f]+$"
 34 
 35   "#address-cells":
 36     const: 1
 37 
 38   "#size-cells":
 39     const: 1
 40 
 41   "#clock-cells":
 42     const: 1
 43 
 44   "#interrupt-cells":
 45     const: 1
 46 
 47   interrupt-controller: true
 48 
 49   ranges: true
 50 
 51   compatible:
 52     oneOf:
 53       - items:
 54           - enum:
 55               - ingenic,jz4740-tcu
 56               - ingenic,jz4725b-tcu
 57               - ingenic,jz4760-tcu
 58               - ingenic,x1000-tcu
 59           - const: simple-mfd
 60       - items:
 61           - enum:
 62               - ingenic,jz4780-tcu
 63               - ingenic,jz4770-tcu
 64               - ingenic,jz4760b-tcu
 65           - const: ingenic,jz4760-tcu
 66           - const: simple-mfd
 67 
 68   reg:
 69     maxItems: 1
 70 
 71   clocks:
 72     items:
 73       - description: RTC clock
 74       - description: EXT clock
 75       - description: PCLK clock
 76       - description: TCU clock
 77     minItems: 3
 78 
 79   clock-names:
 80     items:
 81       - const: rtc
 82       - const: ext
 83       - const: pclk
 84       - const: tcu
 85     minItems: 3
 86 
 87   interrupts:
 88     items:
 89       - description: TCU0 interrupt
 90       - description: TCU1 interrupt
 91       - description: TCU2 interrupt
 92     minItems: 1
 93 
 94   assigned-clocks:
 95     minItems: 1
 96     maxItems: 8
 97 
 98   assigned-clock-parents:
 99     minItems: 1
100     maxItems: 8
101 
102   assigned-clock-rates:
103     minItems: 1
104     maxItems: 8
105 
106   ingenic,pwm-channels-mask:
107     description: Bitmask of TCU channels reserved for PWM use.
108     $ref: /schemas/types.yaml#/definitions/uint32
109     minimum: 0x00
110     maximum: 0xff
111     default: 0xfc
112 
113 patternProperties:
114   "^watchdog@[a-f0-9]+$":
115     type: object
116     $ref: /schemas/watchdog/watchdog.yaml#
117     unevaluatedProperties: false
118 
119     properties:
120       compatible:
121         oneOf:
122           - enum:
123               - ingenic,jz4740-watchdog
124               - ingenic,jz4780-watchdog
125           - items:
126               - enum:
127                   - ingenic,jz4770-watchdog
128                   - ingenic,jz4760b-watchdog
129                   - ingenic,jz4760-watchdog
130                   - ingenic,jz4725b-watchdog
131               - const: ingenic,jz4740-watchdog
132 
133       reg:
134         maxItems: 1
135 
136       clocks:
137         maxItems: 1
138 
139       clock-names:
140         const: wdt
141 
142     required:
143       - compatible
144       - reg
145       - clocks
146       - clock-names
147 
148   "^pwm@[a-f0-9]+$":
149     type: object
150     $ref: /schemas/pwm/pwm.yaml#
151     unevaluatedProperties: false
152 
153     properties:
154       compatible:
155         oneOf:
156           - enum:
157               - ingenic,jz4740-pwm
158               - ingenic,jz4725b-pwm
159               - ingenic,x1000-pwm
160           - items:
161               - enum:
162                   - ingenic,jz4760-pwm
163                   - ingenic,jz4760b-pwm
164                   - ingenic,jz4770-pwm
165                   - ingenic,jz4780-pwm
166               - const: ingenic,jz4740-pwm
167 
168       reg:
169         maxItems: 1
170 
171       clocks:
172         minItems: 6
173         maxItems: 8
174 
175       clock-names:
176         items:
177           - const: timer0
178           - const: timer1
179           - const: timer2
180           - const: timer3
181           - const: timer4
182           - const: timer5
183           - const: timer6
184           - const: timer7
185         minItems: 6
186 
187     required:
188       - compatible
189       - reg
190       - clocks
191       - clock-names
192 
193   "^timer@[a-f0-9]+$":
194     type: object
195     properties:
196       compatible:
197         oneOf:
198           - enum:
199               - ingenic,jz4725b-ost
200               - ingenic,jz4760b-ost
201           - items:
202               - const: ingenic,jz4760-ost
203               - const: ingenic,jz4725b-ost
204           - items:
205               - enum:
206                   - ingenic,jz4780-ost
207                   - ingenic,jz4770-ost
208               - const: ingenic,jz4760b-ost
209 
210       reg:
211         maxItems: 1
212 
213       clocks:
214         maxItems: 1
215 
216       clock-names:
217         const: ost
218 
219       interrupts:
220         maxItems: 1
221 
222     required:
223       - compatible
224       - reg
225       - clocks
226       - clock-names
227       - interrupts
228 
229     additionalProperties: false
230 
231 required:
232   - "#clock-cells"
233   - "#interrupt-cells"
234   - interrupt-controller
235   - compatible
236   - reg
237   - clocks
238   - clock-names
239   - interrupts
240 
241 additionalProperties: false
242 
243 examples:
244   - |
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>;
251       #size-cells = <1>;
252       ranges = <0x0 0x10002000 0x1000>;
253 
254       #clock-cells = <1>;
255 
256       clocks = <&cgu JZ4770_CLK_RTC>,
257                <&cgu JZ4770_CLK_EXT>,
258                <&cgu JZ4770_CLK_PCLK>;
259       clock-names = "rtc", "ext", "pclk";
260 
261       interrupt-controller;
262       #interrupt-cells = <1>;
263 
264       interrupt-parent = <&intc>;
265       interrupts = <27 26 25>;
266 
267       watchdog: watchdog@0 {
268         compatible = "ingenic,jz4770-watchdog", "ingenic,jz4740-watchdog";
269         reg = <0x0 0xc>;
270 
271         clocks = <&tcu TCU_CLK_WDT>;
272         clock-names = "wdt";
273       };
274 
275       pwm: pwm@40 {
276         compatible = "ingenic,jz4770-pwm", "ingenic,jz4740-pwm";
277         reg = <0x40 0x80>;
278 
279         #pwm-cells = <3>;
280 
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";
291       };
292 
293       ost: timer@e0 {
294         compatible = "ingenic,jz4770-ost", "ingenic,jz4760b-ost";
295         reg = <0xe0 0x20>;
296 
297         clocks = <&tcu TCU_CLK_OST>;
298         clock-names = "ost";
299 
300         interrupts = <15>;
301       };
302     };

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php