| NVIDIA Tegra114 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,tegra114-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 160 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 unassigned |
| 1 unassigned |
| 2 unassigned |
| 3 unassigned |
| 4 rtc |
| 5 timer |
| 6 uarta |
| 7 unassigned (register bit affects uartb and vfir) |
| 8 unassigned |
| 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 unassigned |
| |
| 32 unassigned |
| 33 unassigned |
| 34 apbdma |
| 35 unassigned |
| 36 kbc |
| 37 unassigned |
| 38 unassigned |
| 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 |
| 50 mipi |
| 51 hdmi |
| 52 csi |
| 53 unassigned |
| 54 i2c2 |
| 55 uartc |
| 56 mipi-cal |
| 57 emc |
| 58 usb2 |
| 59 usb3 |
| 60 msenc |
| 61 vde |
| 62 bsea |
| 63 bsev |
| |
| 64 unassigned |
| 65 uartd |
| 66 unassigned |
| 67 i2c3 |
| 68 sbc4 |
| 69 sdmmc3 |
| 70 unassigned |
| 71 owr |
| 72 afi |
| 73 csite |
| 74 unassigned |
| 75 unassigned |
| 76 la |
| 77 trace |
| 78 soc_therm |
| 79 dtv |
| 80 ndspeed |
| 81 i2cslow |
| 82 dsib |
| 83 tsec |
| 84 unassigned |
| 85 unassigned |
| 86 unassigned |
| 87 unassigned |
| 88 unassigned |
| 89 xusb_host |
| 90 unassigned |
| 91 msenc |
| 92 csus |
| 93 unassigned |
| 94 unassigned |
| 95 unassigned (bit affects xusb_dev and xusb_dev_src) |
| |
| 96 unassigned |
| 97 unassigned |
| 98 unassigned |
| 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 unassigned |
| 113 audio0_2x |
| 114 audio1_2x |
| 115 audio2_2x |
| 116 audio3_2x |
| 117 audio4_2x |
| 118 spdif_2x |
| 119 actmon |
| 120 extern1 |
| 121 extern2 |
| 122 extern3 |
| 123 unassigned |
| 124 unassigned |
| 125 hda |
| 126 unassigned |
| 127 se |
| |
| 128 hda2hdmi |
| 129 unassigned |
| 130 unassigned |
| 131 unassigned |
| 132 unassigned |
| 133 unassigned |
| 134 unassigned |
| 135 unassigned |
| 136 unassigned |
| 137 unassigned |
| 138 unassigned |
| 139 unassigned |
| 140 unassigned |
| 141 unassigned |
| 142 unassigned |
| 143 unassigned (bit affects xusb_falcon_src, xusb_fs_src, |
| xusb_host_src and xusb_ss_src) |
| 144 cilab |
| 145 cilcd |
| 146 cile |
| 147 dsialp |
| 148 dsiblp |
| 149 unassigned |
| 150 dds |
| 151 unassigned |
| 152 dp2 |
| 153 amx |
| 154 adx |
| 155 unassigned (bit affects dfll_ref and dfll_soc) |
| 156 xusb_ss |
| |
| 192 uartb |
| 193 vfir |
| 194 spdif_in |
| 195 spdif_out |
| 196 vi |
| 197 vi_sensor |
| 198 fuse |
| 199 fuse_burn |
| 200 clk_32k |
| 201 clk_m |
| 202 clk_m_div2 |
| 203 clk_m_div4 |
| 204 pll_ref |
| 205 pll_c |
| 206 pll_c_out1 |
| 207 pll_c2 |
| 208 pll_c3 |
| 209 pll_m |
| 210 pll_m_out1 |
| 211 pll_p |
| 212 pll_p_out1 |
| 213 pll_p_out2 |
| 214 pll_p_out3 |
| 215 pll_p_out4 |
| 216 pll_a |
| 217 pll_a_out0 |
| 218 pll_d |
| 219 pll_d_out0 |
| 220 pll_d2 |
| 221 pll_d2_out0 |
| 222 pll_u |
| 223 pll_u_480M |
| 224 pll_u_60M |
| 225 pll_u_48M |
| 226 pll_u_12M |
| 227 pll_x |
| 228 pll_x_out0 |
| 229 pll_re_vco |
| 230 pll_re_out |
| 231 pll_e_out0 |
| 232 spdif_in_sync |
| 233 i2s0_sync |
| 234 i2s1_sync |
| 235 i2s2_sync |
| 236 i2s3_sync |
| 237 i2s4_sync |
| 238 vimclk_sync |
| 239 audio0 |
| 240 audio1 |
| 241 audio2 |
| 242 audio3 |
| 243 audio4 |
| 244 spdif |
| 245 clk_out_1 |
| 246 clk_out_2 |
| 247 clk_out_3 |
| 248 blink |
| 252 xusb_host_src |
| 253 xusb_falcon_src |
| 254 xusb_fs_src |
| 255 xusb_ss_src |
| 256 xusb_dev_src |
| 257 xusb_dev |
| 258 xusb_hs_src |
| 259 sclk |
| 260 hclk |
| 261 pclk |
| 262 cclk_g |
| 263 cclk_lp |
| 264 dfll_ref |
| 265 dfll_soc |
| |
| Example SoC include file: |
| |
| / { |
| tegra_car: clock { |
| compatible = "nvidia,tegra114-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>; |
| }; |
| }; |