blob: a9ba21144a5689e3466e14330e26bfe280c9eace [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# SPDX-License-Identifier: (GPL-2.0+ OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/clock/nvidia,tegra124-car.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: NVIDIA Tegra Clock and Reset Controller
8
9maintainers:
10 - Jon Hunter <jonathanh@nvidia.com>
11 - Thierry Reding <thierry.reding@gmail.com>
12
13description: |
14 The Clock and Reset (CAR) is the HW module responsible for muxing and gating
15 Tegra's clocks, and setting their rates. It comprises CLKGEN and RSTGEN units.
16
17 CLKGEN provides the registers to program the PLLs. It controls most of
18 the clock source programming and most of the clock dividers.
19
20 CLKGEN input signals include the external clock for the reference frequency
21 (12 MHz, 26 MHz) and the external clock for the Real Time Clock (32.768 KHz).
22
23 Outputs from CLKGEN are inputs clock of the h/w blocks in the Tegra system.
24
25 RSTGEN provides the registers needed to control resetting of each block in
26 the Tegra system.
27
28properties:
29 compatible:
30 enum:
31 - nvidia,tegra124-car
32 - nvidia,tegra132-car
33
34 reg:
35 maxItems: 1
36
37 '#clock-cells':
38 const: 1
39
40 "#reset-cells":
41 const: 1
42
43 nvidia,external-memory-controller:
44 $ref: /schemas/types.yaml#/definitions/phandle
45 description:
46 phandle of the external memory controller node
47
48patternProperties:
49 "^emc-timings-[0-9]+$":
50 type: object
51 properties:
52 nvidia,ram-code:
53 $ref: /schemas/types.yaml#/definitions/uint32
54 description:
55 value of the RAM_CODE field in the PMC_STRAPPING_OPT_A register that
56 this timing set is used for
57
58 patternProperties:
59 "^timing-[0-9]+$":
60 type: object
61 properties:
62 clock-frequency:
63 description:
64 external memory clock rate in Hz
65 minimum: 1000000
66 maximum: 1000000000
67
68 nvidia,parent-clock-frequency:
69 $ref: /schemas/types.yaml#/definitions/uint32
70 description:
71 rate of parent clock in Hz
72 minimum: 1000000
73 maximum: 1000000000
74
75 clocks:
76 items:
77 - description: parent clock of EMC
78
79 clock-names:
80 items:
81 - const: emc-parent
82
83 required:
84 - clock-frequency
85 - nvidia,parent-clock-frequency
86 - clocks
87 - clock-names
88
89 additionalProperties: false
90
91 additionalProperties: false
92
93required:
94 - compatible
95 - reg
96 - '#clock-cells'
97 - "#reset-cells"
98
99additionalProperties: false
100
101examples:
102 - |
103 #include <dt-bindings/clock/tegra124-car.h>
104
105 car: clock-controller@60006000 {
106 compatible = "nvidia,tegra124-car";
107 reg = <0x60006000 0x1000>;
108 #clock-cells = <1>;
109 #reset-cells = <1>;
110 };