Back to home page

OSCL-LXR

 
 

    


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 ...