Kernel-3.10.0-957.el7_nvidia,tegra30-car

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

};