forked from Minki/linux
263 lines
4.4 KiB
Plaintext
263 lines
4.4 KiB
Plaintext
|
NVIDIA Tegra30 Clock And Reset Controller
|
||
|
|
||
|
This binding uses the common clock binding:
|
||
|
Documentation/devicetree/bindings/clock/clock-bindings.txt
|
||
|
|
||
|
The CAR (Clock And Reset) Controller on Tegra is the HW module responsible
|
||
|
for muxing and gating Tegra's clocks, and setting their rates.
|
||
|
|
||
|
Required properties :
|
||
|
- compatible : Should be "nvidia,tegra30-car"
|
||
|
- reg : Should contain CAR registers location and length
|
||
|
- clocks : Should contain phandle and clock specifiers for two clocks:
|
||
|
the 32 KHz "32k_in", and the board-specific oscillator "osc".
|
||
|
- #clock-cells : Should be 1.
|
||
|
In clock consumers, this cell represents the clock ID exposed by the CAR.
|
||
|
|
||
|
The first 130 clocks are numbered to match the bits in the CAR's CLK_OUT_ENB
|
||
|
registers. These IDs often match those in the CAR's RST_DEVICES registers,
|
||
|
but not in all cases. Some bits in CLK_OUT_ENB affect multiple clocks. In
|
||
|
this case, those clocks are assigned IDs above 160 in order to highlight
|
||
|
this issue. Implementations that interpret these clock IDs as bit values
|
||
|
within the CLK_OUT_ENB or RST_DEVICES registers should be careful to
|
||
|
explicitly handle these special cases.
|
||
|
|
||
|
The balance of the clocks controlled by the CAR are assigned IDs of 160 and
|
||
|
above.
|
||
|
|
||
|
0 cpu
|
||
|
1 unassigned
|
||
|
2 unassigned
|
||
|
3 unassigned
|
||
|
4 rtc
|
||
|
5 timer
|
||
|
6 uarta
|
||
|
7 unassigned (register bit affects uartb and vfir)
|
||
|
8 gpio
|
||
|
9 sdmmc2
|
||
|
10 unassigned (register bit affects spdif_in and spdif_out)
|
||
|
11 i2s1
|
||
|
12 i2c1
|
||
|
13 ndflash
|
||
|
14 sdmmc1
|
||
|
15 sdmmc4
|
||
|
16 unassigned
|
||
|
17 pwm
|
||
|
18 i2s2
|
||
|
19 epp
|
||
|
20 unassigned (register bit affects vi and vi_sensor)
|
||
|
21 2d
|
||
|
22 usbd
|
||
|
23 isp
|
||
|
24 3d
|
||
|
25 unassigned
|
||
|
26 disp2
|
||
|
27 disp1
|
||
|
28 host1x
|
||
|
29 vcp
|
||
|
30 i2s0
|
||
|
31 cop_cache
|
||
|
|
||
|
32 mc
|
||
|
33 ahbdma
|
||
|
34 apbdma
|
||
|
35 unassigned
|
||
|
36 kbc
|
||
|
37 statmon
|
||
|
38 pmc
|
||
|
39 unassigned (register bit affects fuse and fuse_burn)
|
||
|
40 kfuse
|
||
|
41 sbc1
|
||
|
42 nor
|
||
|
43 unassigned
|
||
|
44 sbc2
|
||
|
45 unassigned
|
||
|
46 sbc3
|
||
|
47 i2c5
|
||
|
48 dsia
|
||
|
49 unassigned (register bit affects cve and tvo)
|
||
|
50 mipi
|
||
|
51 hdmi
|
||
|
52 csi
|
||
|
53 tvdac
|
||
|
54 i2c2
|
||
|
55 uartc
|
||
|
56 unassigned
|
||
|
57 emc
|
||
|
58 usb2
|
||
|
59 usb3
|
||
|
60 mpe
|
||
|
61 vde
|
||
|
62 bsea
|
||
|
63 bsev
|
||
|
|
||
|
64 speedo
|
||
|
65 uartd
|
||
|
66 uarte
|
||
|
67 i2c3
|
||
|
68 sbc4
|
||
|
69 sdmmc3
|
||
|
70 pcie
|
||
|
71 owr
|
||
|
72 afi
|
||
|
73 csite
|
||
|
74 pciex
|
||
|
75 avpucq
|
||
|
76 la
|
||
|
77 unassigned
|
||
|
78 unassigned
|
||
|
79 dtv
|
||
|
80 ndspeed
|
||
|
81 i2cslow
|
||
|
82 dsib
|
||
|
83 unassigned
|
||
|
84 irama
|
||
|
85 iramb
|
||
|
86 iramc
|
||
|
87 iramd
|
||
|
88 cram2
|
||
|
89 unassigned
|
||
|
90 audio_2x a/k/a audio_2x_sync_clk
|
||
|
91 unassigned
|
||
|
92 csus
|
||
|
93 cdev2
|
||
|
94 cdev1
|
||
|
95 unassigned
|
||
|
|
||
|
96 cpu_g
|
||
|
97 cpu_lp
|
||
|
98 3d2
|
||
|
99 mselect
|
||
|
100 tsensor
|
||
|
101 i2s3
|
||
|
102 i2s4
|
||
|
103 i2c4
|
||
|
104 sbc5
|
||
|
105 sbc6
|
||
|
106 d_audio
|
||
|
107 apbif
|
||
|
108 dam0
|
||
|
109 dam1
|
||
|
110 dam2
|
||
|
111 hda2codec_2x
|
||
|
112 atomics
|
||
|
113 audio0_2x
|
||
|
114 audio1_2x
|
||
|
115 audio2_2x
|
||
|
116 audio3_2x
|
||
|
117 audio4_2x
|
||
|
118 audio5_2x
|
||
|
119 actmon
|
||
|
120 extern1
|
||
|
121 extern2
|
||
|
122 extern3
|
||
|
123 sata_oob
|
||
|
124 sata
|
||
|
125 hda
|
||
|
127 se
|
||
|
128 hda2hdmi
|
||
|
129 sata_cold
|
||
|
|
||
|
160 uartb
|
||
|
161 vfir
|
||
|
162 spdif_in
|
||
|
163 spdif_out
|
||
|
164 vi
|
||
|
165 vi_sensor
|
||
|
166 fuse
|
||
|
167 fuse_burn
|
||
|
168 cve
|
||
|
169 tvo
|
||
|
|
||
|
170 clk_32k
|
||
|
171 clk_m
|
||
|
172 clk_m_div2
|
||
|
173 clk_m_div4
|
||
|
174 pll_ref
|
||
|
175 pll_c
|
||
|
176 pll_c_out1
|
||
|
177 pll_m
|
||
|
178 pll_m_out1
|
||
|
179 pll_p
|
||
|
180 pll_p_out1
|
||
|
181 pll_p_out2
|
||
|
182 pll_p_out3
|
||
|
183 pll_p_out4
|
||
|
184 pll_a
|
||
|
185 pll_a_out0
|
||
|
186 pll_d
|
||
|
187 pll_d_out0
|
||
|
188 pll_d2
|
||
|
189 pll_d2_out0
|
||
|
190 pll_u
|
||
|
191 pll_x
|
||
|
192 pll_x_out0
|
||
|
193 pll_e
|
||
|
194 spdif_in_sync
|
||
|
195 i2s0_sync
|
||
|
196 i2s1_sync
|
||
|
197 i2s2_sync
|
||
|
198 i2s3_sync
|
||
|
199 i2s4_sync
|
||
|
200 vimclk
|
||
|
201 audio0
|
||
|
202 audio1
|
||
|
203 audio2
|
||
|
204 audio3
|
||
|
205 audio4
|
||
|
206 audio5
|
||
|
207 clk_out_1 (extern1)
|
||
|
208 clk_out_2 (extern2)
|
||
|
209 clk_out_3 (extern3)
|
||
|
210 sclk
|
||
|
211 blink
|
||
|
212 cclk_g
|
||
|
213 cclk_lp
|
||
|
214 twd
|
||
|
215 cml0
|
||
|
216 cml1
|
||
|
217 hclk
|
||
|
218 pclk
|
||
|
|
||
|
Example SoC include file:
|
||
|
|
||
|
/ {
|
||
|
tegra_car: clock {
|
||
|
compatible = "nvidia,tegra30-car";
|
||
|
reg = <0x60006000 0x1000>;
|
||
|
#clock-cells = <1>;
|
||
|
};
|
||
|
|
||
|
usb@c5004000 {
|
||
|
clocks = <&tegra_car 58>; /* usb2 */
|
||
|
};
|
||
|
};
|
||
|
|
||
|
Example board file:
|
||
|
|
||
|
/ {
|
||
|
clocks {
|
||
|
compatible = "simple-bus";
|
||
|
#address-cells = <1>;
|
||
|
#size-cells = <0>;
|
||
|
|
||
|
osc: clock@0 {
|
||
|
compatible = "fixed-clock";
|
||
|
reg = <0>;
|
||
|
#clock-cells = <0>;
|
||
|
clock-frequency = <12000000>;
|
||
|
};
|
||
|
|
||
|
clk_32k: clock@1 {
|
||
|
compatible = "fixed-clock";
|
||
|
reg = <1>;
|
||
|
#clock-cells = <0>;
|
||
|
clock-frequency = <32768>;
|
||
|
};
|
||
|
};
|
||
|
|
||
|
&tegra_car {
|
||
|
clocks = <&clk_32k> <&osc>;
|
||
|
};
|
||
|
};
|