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/samsung,exynosautov9-clock.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006 
0007 title: Samsung Exynos Auto v9 SoC clock controller
0008 
0009 maintainers:
0010   - Chanho Park <chanho61.park@samsung.com>
0011   - Chanwoo Choi <cw00.choi@samsung.com>
0012   - Krzysztof Kozlowski <krzk@kernel.org>
0013   - Sylwester Nawrocki <s.nawrocki@samsung.com>
0014   - Tomasz Figa <tomasz.figa@gmail.com>
0015 
0016 description: |
0017   Exynos Auto v9 clock controller is comprised of several CMU units, generating
0018   clocks for different domains. Those CMU units are modeled as separate device
0019   tree nodes, and might depend on each other. Root clocks in that clock tree are
0020   two external clocks:: OSCCLK/XTCXO (26 MHz) and RTCCLK/XrtcXTI (32768 Hz).
0021   The external OSCCLK must be defined as fixed-rate clock in dts.
0022 
0023   CMU_TOP is a top-level CMU, where all base clocks are prepared using PLLs and
0024   dividers; all other clocks of function blocks (other CMUs) are usually
0025   derived from CMU_TOP.
0026 
0027   Each clock is assigned an identifier and client nodes can use this identifier
0028   to specify the clock which they consume. All clocks available for usage
0029   in clock consumer nodes are defined as preprocessor macros in
0030   'include/dt-bindings/clock/samsung,exynosautov9.h' header.
0031 
0032 properties:
0033   compatible:
0034     enum:
0035       - samsung,exynosautov9-cmu-top
0036       - samsung,exynosautov9-cmu-busmc
0037       - samsung,exynosautov9-cmu-core
0038       - samsung,exynosautov9-cmu-fsys2
0039       - samsung,exynosautov9-cmu-peric0
0040       - samsung,exynosautov9-cmu-peric1
0041       - samsung,exynosautov9-cmu-peris
0042 
0043   clocks:
0044     minItems: 1
0045     maxItems: 5
0046 
0047   clock-names:
0048     minItems: 1
0049     maxItems: 5
0050 
0051   "#clock-cells":
0052     const: 1
0053 
0054   reg:
0055     maxItems: 1
0056 
0057 allOf:
0058   - if:
0059       properties:
0060         compatible:
0061           contains:
0062             const: samsung,exynosautov9-cmu-top
0063 
0064     then:
0065       properties:
0066         clocks:
0067           items:
0068             - description: External reference clock (26 MHz)
0069 
0070         clock-names:
0071           items:
0072             - const: oscclk
0073 
0074   - if:
0075       properties:
0076         compatible:
0077           contains:
0078             const: samsung,exynosautov9-cmu-busmc
0079 
0080     then:
0081       properties:
0082         clocks:
0083           items:
0084             - description: External reference clock (26 MHz)
0085             - description: CMU_BUSMC bus clock (from CMU_TOP)
0086 
0087         clock-names:
0088           items:
0089             - const: oscclk
0090             - const: dout_clkcmu_busmc_bus
0091 
0092   - if:
0093       properties:
0094         compatible:
0095           contains:
0096             const: samsung,exynosautov9-cmu-core
0097 
0098     then:
0099       properties:
0100         clocks:
0101           items:
0102             - description: External reference clock (26 MHz)
0103             - description: CMU_CORE bus clock (from CMU_TOP)
0104 
0105         clock-names:
0106           items:
0107             - const: oscclk
0108             - const: dout_clkcmu_core_bus
0109 
0110   - if:
0111       properties:
0112         compatible:
0113           contains:
0114             const: samsung,exynosautov9-cmu-fsys2
0115 
0116     then:
0117       properties:
0118         clocks:
0119           items:
0120             - description: External reference clock (26 MHz)
0121             - description: CMU_FSYS2 bus clock (from CMU_TOP)
0122             - description: UFS clock (from CMU_TOP)
0123             - description: Ethernet clock (from CMU_TOP)
0124 
0125         clock-names:
0126           items:
0127             - const: oscclk
0128             - const: dout_clkcmu_fsys2_bus
0129             - const: dout_fsys2_clkcmu_ufs_embd
0130             - const: dout_fsys2_clkcmu_ethernet
0131 
0132   - if:
0133       properties:
0134         compatible:
0135           contains:
0136             const: samsung,exynosautov9-cmu-peric0
0137 
0138     then:
0139       properties:
0140         clocks:
0141           items:
0142             - description: External reference clock (26 MHz)
0143             - description: CMU_PERIC0 bus clock (from CMU_TOP)
0144             - description: PERIC0 IP clock (from CMU_TOP)
0145 
0146         clock-names:
0147           items:
0148             - const: oscclk
0149             - const: dout_clkcmu_peric0_bus
0150             - const: dout_clkcmu_peric0_ip
0151 
0152   - if:
0153       properties:
0154         compatible:
0155           contains:
0156             const: samsung,exynosautov9-cmu-peric1
0157 
0158     then:
0159       properties:
0160         clocks:
0161           items:
0162             - description: External reference clock (26 MHz)
0163             - description: CMU_PERIC1 bus clock (from CMU_TOP)
0164             - description: PERIC1 IP clock (from CMU_TOP)
0165 
0166         clock-names:
0167           items:
0168             - const: oscclk
0169             - const: dout_clkcmu_peric1_bus
0170             - const: dout_clkcmu_peric1_ip
0171 
0172   - if:
0173       properties:
0174         compatible:
0175           contains:
0176             const: samsung,exynosautov9-cmu-peris
0177 
0178     then:
0179       properties:
0180         clocks:
0181           items:
0182             - description: External reference clock (26 MHz)
0183             - description: CMU_PERIS bus clock (from CMU_TOP)
0184 
0185         clock-names:
0186           items:
0187             - const: oscclk
0188             - const: dout_clkcmu_peris_bus
0189 
0190 required:
0191   - compatible
0192   - "#clock-cells"
0193   - clocks
0194   - clock-names
0195   - reg
0196 
0197 additionalProperties: false
0198 
0199 examples:
0200   # Clock controller node for CMU_FSYS2
0201   - |
0202     #include <dt-bindings/clock/samsung,exynosautov9.h>
0203 
0204     cmu_fsys2: clock-controller@17c00000 {
0205         compatible = "samsung,exynosautov9-cmu-fsys2";
0206         reg = <0x17c00000 0x8000>;
0207         #clock-cells = <1>;
0208 
0209         clocks = <&xtcxo>,
0210                  <&cmu_top DOUT_CLKCMU_FSYS2_BUS>,
0211                  <&cmu_top DOUT_CLKCMU_FSYS2_UFS_EMBD>,
0212                  <&cmu_top DOUT_CLKCMU_FSYS2_ETHERNET>;
0213         clock-names = "oscclk",
0214                       "dout_clkcmu_fsys2_bus",
0215                       "dout_fsys2_clkcmu_ufs_embd",
0216                       "dout_fsys2_clkcmu_ethernet";
0217     };
0218 
0219 ...