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>; }; };