1
NVIDIA Tegra20 Clock And Reset Controller
3
This binding uses the common clock binding:
4
Documentation/devicetree/bindings/clock/clock-bindings.txt
6
The CAR (Clock And Reset) Controller on Tegra is the HW module responsible
7
for muxing and gating Tegra's clocks, and setting their rates.
10
- compatible : Should be "nvidia,tegra20-car"
11
- reg : Should contain CAR registers location and length
12
- clocks : Should contain phandle and clock specifiers for two clocks:
13
the 32 KHz "32k_in", and the board-specific oscillator "osc".
14
- #clock-cells : Should be 1.
15
In clock consumers, this cell represents the clock ID exposed by the CAR.
17
The first 96 clocks are numbered to match the bits in the CAR's CLK_OUT_ENB
18
registers. These IDs often match those in the CAR's RST_DEVICES registers,
19
but not in all cases. Some bits in CLK_OUT_ENB affect multiple clocks. In
20
this case, those clocks are assigned IDs above 95 in order to highlight
21
this issue. Implementations that interpret these clock IDs as bit values
22
within the CLK_OUT_ENB or RST_DEVICES registers should be careful to
23
explicitly handle these special cases.
25
The balance of the clocks controlled by the CAR are assigned IDs of 96 and
35
7 unassigned (register bit affects uart2 and vfir)
38
10 unassigned (register bit affects spdif_in and spdif_out)
48
20 unassigned (register bit affects vi and vi_sensor)
78
49 unassigned (register bit affects tvo and cve)
119
89 audio_2x a/k/a audio_2x_sync_clk
136
105 clk_32k a/k/a clk_s
161
130 audio a/k/a audio_sync_clk
163
Example SoC include file:
166
tegra_car: clock@60006000 {
167
compatible = "nvidia,tegra20-car";
168
reg = <0x60006000 0x1000>;
173
clocks = <&tegra_car 58>; /* usb2 */
181
#address-cells = <1>;
185
compatible = "fixed-clock";
187
clock-frequency = <12000000>;
193
compatible = "ti,tps6586x";
197
compatible = "fixed-clock";
199
clock-frequency = <32768>;
205
clocks = <&clk_32k> <&osc>;