0001 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/clock/tesla,fsd-clock.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006
0007 title: Tesla FSD (Full Self-Driving) SoC clock controller
0008
0009 maintainers:
0010 - Alim Akhtar <alim.akhtar@samsung.com>
0011 - linux-fsd@tesla.com
0012
0013 description: |
0014 FSD clock controller consist of several clock management unit
0015 (CMU), which generates clocks for various inteernal SoC blocks.
0016 The root clock comes from external OSC clock (24 MHz).
0017
0018 All available clocks are defined as preprocessor macros in
0019 'dt-bindings/clock/fsd-clk.h' header.
0020
0021 properties:
0022 compatible:
0023 enum:
0024 - tesla,fsd-clock-cmu
0025 - tesla,fsd-clock-imem
0026 - tesla,fsd-clock-peric
0027 - tesla,fsd-clock-fsys0
0028 - tesla,fsd-clock-fsys1
0029 - tesla,fsd-clock-mfc
0030 - tesla,fsd-clock-cam_csi
0031
0032 clocks:
0033 minItems: 1
0034 maxItems: 6
0035
0036 clock-names:
0037 minItems: 1
0038 maxItems: 6
0039
0040 "#clock-cells":
0041 const: 1
0042
0043 reg:
0044 maxItems: 1
0045
0046 allOf:
0047 - if:
0048 properties:
0049 compatible:
0050 contains:
0051 const: tesla,fsd-clock-cmu
0052 then:
0053 properties:
0054 clocks:
0055 items:
0056 - description: External reference clock (24 MHz)
0057 clock-names:
0058 items:
0059 - const: fin_pll
0060
0061 - if:
0062 properties:
0063 compatible:
0064 contains:
0065 const: tesla,fsd-clock-imem
0066 then:
0067 properties:
0068 clocks:
0069 items:
0070 - description: External reference clock (24 MHz)
0071 - description: IMEM TCU clock (from CMU_CMU)
0072 - description: IMEM bus clock (from CMU_CMU)
0073 - description: IMEM DMA clock (from CMU_CMU)
0074 clock-names:
0075 items:
0076 - const: fin_pll
0077 - const: dout_cmu_imem_tcuclk
0078 - const: dout_cmu_imem_aclk
0079 - const: dout_cmu_imem_dmaclk
0080
0081 - if:
0082 properties:
0083 compatible:
0084 contains:
0085 const: tesla,fsd-clock-peric
0086 then:
0087 properties:
0088 clocks:
0089 items:
0090 - description: External reference clock (24 MHz)
0091 - description: Shared0 PLL div4 clock (from CMU_CMU)
0092 - description: PERIC shared1 div36 clock (from CMU_CMU)
0093 - description: PERIC shared0 div3 TBU clock (from CMU_CMU)
0094 - description: PERIC shared0 div20 clock (from CMU_CMU)
0095 - description: PERIC shared1 div4 DMAclock (from CMU_CMU)
0096 clock-names:
0097 items:
0098 - const: fin_pll
0099 - const: dout_cmu_pll_shared0_div4
0100 - const: dout_cmu_peric_shared1div36
0101 - const: dout_cmu_peric_shared0div3_tbuclk
0102 - const: dout_cmu_peric_shared0div20
0103 - const: dout_cmu_peric_shared1div4_dmaclk
0104
0105 - if:
0106 properties:
0107 compatible:
0108 contains:
0109 const: tesla,fsd-clock-fsys0
0110 then:
0111 properties:
0112 clocks:
0113 items:
0114 - description: External reference clock (24 MHz)
0115 - description: Shared0 PLL div6 clock (from CMU_CMU)
0116 - description: FSYS0 shared1 div4 clock (from CMU_CMU)
0117 - description: FSYS0 shared0 div4 clock (from CMU_CMU)
0118 clock-names:
0119 items:
0120 - const: fin_pll
0121 - const: dout_cmu_pll_shared0_div6
0122 - const: dout_cmu_fsys0_shared1div4
0123 - const: dout_cmu_fsys0_shared0div4
0124
0125 - if:
0126 properties:
0127 compatible:
0128 contains:
0129 const: tesla,fsd-clock-fsys1
0130 then:
0131 properties:
0132 clocks:
0133 items:
0134 - description: External reference clock (24 MHz)
0135 - description: FSYS1 shared0 div8 clock (from CMU_CMU)
0136 - description: FSYS1 shared0 div4 clock (from CMU_CMU)
0137 clock-names:
0138 items:
0139 - const: fin_pll
0140 - const: dout_cmu_fsys1_shared0div8
0141 - const: dout_cmu_fsys1_shared0div4
0142
0143 - if:
0144 properties:
0145 compatible:
0146 contains:
0147 const: tesla,fsd-clock-mfc
0148 then:
0149 properties:
0150 clocks:
0151 items:
0152 - description: External reference clock (24 MHz)
0153 clock-names:
0154 items:
0155 - const: fin_pll
0156
0157 - if:
0158 properties:
0159 compatible:
0160 contains:
0161 const: tesla,fsd-clock-cam_csi
0162 then:
0163 properties:
0164 clocks:
0165 items:
0166 - description: External reference clock (24 MHz)
0167 clock-names:
0168 items:
0169 - const: fin_pll
0170
0171 required:
0172 - compatible
0173 - "#clock-cells"
0174 - clocks
0175 - clock-names
0176 - reg
0177
0178 additionalProperties: false
0179
0180 examples:
0181 # Clock controller node for CMU_FSYS1
0182 - |
0183 #include <dt-bindings/clock/fsd-clk.h>
0184
0185 clock_fsys1: clock-controller@16810000 {
0186 compatible = "tesla,fsd-clock-fsys1";
0187 reg = <0x16810000 0x3000>;
0188 #clock-cells = <1>;
0189
0190 clocks = <&fin_pll>,
0191 <&clock_cmu DOUT_CMU_FSYS1_SHARED0DIV8>,
0192 <&clock_cmu DOUT_CMU_FSYS1_SHARED0DIV4>;
0193 clock-names = "fin_pll",
0194 "dout_cmu_fsys1_shared0div8",
0195 "dout_cmu_fsys1_shared0div4";
0196 };
0197
0198 ...