Kernel-3.10.0-957.el7_nvidia,tegra114-car

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

};