NVIDIA Tegra20 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,tegra20-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 96 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 95 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 96 and above. 0 cpu 1 unassigned 2 unassigned 3 ac97 4 rtc 5 tmr 6 uart1 7 unassigned (register bit affects uart2 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 twc 17 pwm 18 i2s2 19 epp 20 unassigned (register bit affects vi and vi_sensor) 21 2d 22 usbd 23 isp 24 3d 25 ide 26 disp2 27 disp1 28 host1x 29 vcp 30 unassigned 31 cache2 32 mem 33 ahbdma 34 apbdma 35 unassigned 36 kbc 37 stat_mon 38 pmc 39 fuse 40 kfuse 41 sbc1 42 snor 43 spi1 44 sbc2 45 xio 46 sbc3 47 dvc 48 dsi 49 unassigned (register bit affects tvo and cve) 50 mipi 51 hdmi 52 csi 53 tvdac 54 i2c2 55 uart3 56 unassigned 57 emc 58 usb2 59 usb3 60 mpe 61 vde 62 bsea 63 bsev 64 speedo 65 uart4 66 uart5 67 i2c3 68 sbc4 69 sdmmc3 70 pcie 71 owr 72 afi 73 csite 74 unassigned 75 avpucq 76 la 77 unassigned 78 unassigned 79 unassigned 80 unassigned 81 unassigned 82 unassigned 83 unassigned 84 irama 85 iramb 86 iramc 87 iramd 88 cram2 89 audio_2x a/k/a audio_2x_sync_clk 90 clk_d 91 unassigned 92 sus 93 cdev1 94 cdev2 95 unassigned 96 uart2 97 vfir 98 spdif_in 99 spdif_out 100 vi 101 vi_sensor 102 tvo 103 cve 104 osc 105 clk_32k a/k/a clk_s 106 clk_m 107 sclk 108 cclk 109 hclk 110 pclk 111 blink 112 pll_a 113 pll_a_out0 114 pll_c 115 pll_c_out1 116 pll_d 117 pll_d_out0 118 pll_e 119 pll_m 120 pll_m_out1 121 pll_p 122 pll_p_out1 123 pll_p_out2 124 pll_p_out3 125 pll_p_out4 126 pll_s 127 pll_u 128 pll_x 129 cop a/k/a avp 130 audio a/k/a audio_sync_clk 131 pll_ref 132 twd Example SoC include file: / { tegra_car: clock { compatible = "nvidia,tegra20-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>; }; };