1NVIDIA Tegra20 Clock And Reset Controller 2 3This binding uses the common clock binding: 4Documentation/devicetree/bindings/clock/clock-bindings.txt 5 6The CAR (Clock And Reset) Controller on Tegra is the HW module responsible 7for muxing and gating Tegra's clocks, and setting their rates. 8 9Required properties : 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. 16 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. 24 25 The balance of the clocks controlled by the CAR are assigned IDs of 96 and 26 above. 27 28 0 cpu 29 1 unassigned 30 2 unassigned 31 3 ac97 32 4 rtc 33 5 tmr 34 6 uart1 35 7 unassigned (register bit affects uart2 and vfir) 36 8 gpio 37 9 sdmmc2 38 10 unassigned (register bit affects spdif_in and spdif_out) 39 11 i2s1 40 12 i2c1 41 13 ndflash 42 14 sdmmc1 43 15 sdmmc4 44 16 twc 45 17 pwm 46 18 i2s2 47 19 epp 48 20 unassigned (register bit affects vi and vi_sensor) 49 21 2d 50 22 usbd 51 23 isp 52 24 3d 53 25 ide 54 26 disp2 55 27 disp1 56 28 host1x 57 29 vcp 58 30 unassigned 59 31 cache2 60 61 32 mem 62 33 ahbdma 63 34 apbdma 64 35 unassigned 65 36 kbc 66 37 stat_mon 67 38 pmc 68 39 fuse 69 40 kfuse 70 41 sbc1 71 42 snor 72 43 spi1 73 44 sbc2 74 45 xio 75 46 sbc3 76 47 dvc 77 48 dsi 78 49 unassigned (register bit affects tvo and cve) 79 50 mipi 80 51 hdmi 81 52 csi 82 53 tvdac 83 54 i2c2 84 55 uart3 85 56 unassigned 86 57 emc 87 58 usb2 88 59 usb3 89 60 mpe 90 61 vde 91 62 bsea 92 63 bsev 93 94 64 speedo 95 65 uart4 96 66 uart5 97 67 i2c3 98 68 sbc4 99 69 sdmmc3 100 70 pcie 101 71 owr 102 72 afi 103 73 csite 104 74 unassigned 105 75 avpucq 106 76 la 107 77 unassigned 108 78 unassigned 109 79 unassigned 110 80 unassigned 111 81 unassigned 112 82 unassigned 113 83 unassigned 114 84 irama 115 85 iramb 116 86 iramc 117 87 iramd 118 88 cram2 119 89 audio_2x a/k/a audio_2x_sync_clk 120 90 clk_d 121 91 unassigned 122 92 sus 123 93 cdev1 124 94 cdev2 125 95 unassigned 126 127 96 uart2 128 97 vfir 129 98 spdif_in 130 99 spdif_out 131 100 vi 132 101 vi_sensor 133 102 tvo 134 103 cve 135 104 osc 136 105 clk_32k a/k/a clk_s 137 106 clk_m 138 107 sclk 139 108 cclk 140 109 hclk 141 110 pclk 142 111 blink 143 112 pll_a 144 113 pll_a_out0 145 114 pll_c 146 115 pll_c_out1 147 116 pll_d 148 117 pll_d_out0 149 118 pll_e 150 119 pll_m 151 120 pll_m_out1 152 121 pll_p 153 122 pll_p_out1 154 123 pll_p_out2 155 124 pll_p_out3 156 125 pll_p_out4 157 126 pll_s 158 127 pll_u 159 128 pll_x 160 129 cop a/k/a avp 161 130 audio a/k/a audio_sync_clk 162 163Example SoC include file: 164 165/ { 166 tegra_car: clock@60006000 { 167 compatible = "nvidia,tegra20-car"; 168 reg = <0x60006000 0x1000>; 169 #clock-cells = <1>; 170 }; 171 172 usb@c5004000 { 173 clocks = <&tegra_car 58>; /* usb2 */ 174 }; 175}; 176 177Example board file: 178 179/ { 180 clocks { 181 #address-cells = <1>; 182 #size-cells = <0>; 183 184 osc: clock { 185 compatible = "fixed-clock"; 186 #clock-cells = <0>; 187 clock-frequency = <12000000>; 188 }; 189 }; 190 191 i2c@7000d000 { 192 pmic@34 { 193 compatible = "ti,tps6586x"; 194 reg = <0x34>; 195 196 clk_32k: clock { 197 compatible = "fixed-clock"; 198 #clock-cells = <0>; 199 clock-frequency = <32768>; 200 }; 201 }; 202 }; 203 204 &tegra_car { 205 clocks = <&clk_32k> <&osc>; 206 }; 207}; 208