xref: /freebsd/sys/contrib/device-tree/Bindings/clock/samsung,exynos990-clock.yaml (revision 8ccc0d235c226d84112561d453c49904398d085c)
12846c905SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
22846c905SEmmanuel Vadot%YAML 1.2
32846c905SEmmanuel Vadot---
42846c905SEmmanuel Vadot$id: http://devicetree.org/schemas/clock/samsung,exynos990-clock.yaml#
52846c905SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
62846c905SEmmanuel Vadot
72846c905SEmmanuel Vadottitle: Samsung Exynos990 SoC clock controller
82846c905SEmmanuel Vadot
92846c905SEmmanuel Vadotmaintainers:
102846c905SEmmanuel Vadot  - Igor Belwon <igor.belwon@mentallysanemainliners.org>
112846c905SEmmanuel Vadot  - Chanwoo Choi <cw00.choi@samsung.com>
122846c905SEmmanuel Vadot  - Krzysztof Kozlowski <krzk@kernel.org>
132846c905SEmmanuel Vadot
142846c905SEmmanuel Vadotdescription: |
152846c905SEmmanuel Vadot  Exynos990 clock controller is comprised of several CMU units, generating
162846c905SEmmanuel Vadot  clocks for different domains. Those CMU units are modeled as separate device
172846c905SEmmanuel Vadot  tree nodes, and might depend on each other. The root clock in that root tree
182846c905SEmmanuel Vadot  is an external clock: OSCCLK (26 MHz). This external clock must be defined
192846c905SEmmanuel Vadot  as a fixed-rate clock in dts.
202846c905SEmmanuel Vadot
212846c905SEmmanuel Vadot  CMU_TOP is a top-level CMU, where all base clocks are prepared using PLLs and
222846c905SEmmanuel Vadot  dividers; all other clocks of function blocks (other CMUs) are usually
232846c905SEmmanuel Vadot  derived from CMU_TOP.
242846c905SEmmanuel Vadot
252846c905SEmmanuel Vadot  Each clock is assigned an identifier and client nodes can use this identifier
262846c905SEmmanuel Vadot  to specify the clock which they consume. All clocks available for usage
272846c905SEmmanuel Vadot  in clock consumer nodes are defined as preprocessor macros in
282846c905SEmmanuel Vadot  'include/dt-bindings/clock/samsung,exynos990.h' header.
292846c905SEmmanuel Vadot
302846c905SEmmanuel Vadotproperties:
312846c905SEmmanuel Vadot  compatible:
322846c905SEmmanuel Vadot    enum:
332846c905SEmmanuel Vadot      - samsung,exynos990-cmu-hsi0
34*8ccc0d23SEmmanuel Vadot      - samsung,exynos990-cmu-peris
352846c905SEmmanuel Vadot      - samsung,exynos990-cmu-top
362846c905SEmmanuel Vadot
372846c905SEmmanuel Vadot  clocks:
382846c905SEmmanuel Vadot    minItems: 1
392846c905SEmmanuel Vadot    maxItems: 5
402846c905SEmmanuel Vadot
412846c905SEmmanuel Vadot  clock-names:
422846c905SEmmanuel Vadot    minItems: 1
432846c905SEmmanuel Vadot    maxItems: 5
442846c905SEmmanuel Vadot
452846c905SEmmanuel Vadot  "#clock-cells":
462846c905SEmmanuel Vadot    const: 1
472846c905SEmmanuel Vadot
482846c905SEmmanuel Vadot  reg:
492846c905SEmmanuel Vadot    maxItems: 1
502846c905SEmmanuel Vadot
512846c905SEmmanuel Vadotrequired:
522846c905SEmmanuel Vadot  - compatible
532846c905SEmmanuel Vadot  - clocks
542846c905SEmmanuel Vadot  - clock-names
552846c905SEmmanuel Vadot  - "#clock-cells"
562846c905SEmmanuel Vadot  - reg
572846c905SEmmanuel Vadot
582846c905SEmmanuel VadotallOf:
592846c905SEmmanuel Vadot  - if:
602846c905SEmmanuel Vadot      properties:
612846c905SEmmanuel Vadot        compatible:
622846c905SEmmanuel Vadot          contains:
632846c905SEmmanuel Vadot            const: samsung,exynos990-cmu-hsi0
642846c905SEmmanuel Vadot
652846c905SEmmanuel Vadot    then:
662846c905SEmmanuel Vadot      properties:
672846c905SEmmanuel Vadot        clocks:
682846c905SEmmanuel Vadot          items:
692846c905SEmmanuel Vadot            - description: External reference clock (26 MHz)
702846c905SEmmanuel Vadot            - description: CMU_HSI0 BUS clock (from CMU_TOP)
712846c905SEmmanuel Vadot            - description: CMU_HSI0 USB31DRD clock (from CMU_TOP)
722846c905SEmmanuel Vadot            - description: CMU_HSI0 USBDP_DEBUG clock (from CMU_TOP)
732846c905SEmmanuel Vadot            - description: CMU_HSI0 DPGTC clock (from CMU_TOP)
742846c905SEmmanuel Vadot
752846c905SEmmanuel Vadot        clock-names:
762846c905SEmmanuel Vadot          items:
772846c905SEmmanuel Vadot            - const: oscclk
782846c905SEmmanuel Vadot            - const: bus
792846c905SEmmanuel Vadot            - const: usb31drd
802846c905SEmmanuel Vadot            - const: usbdp_debug
812846c905SEmmanuel Vadot            - const: dpgtc
822846c905SEmmanuel Vadot
832846c905SEmmanuel Vadot  - if:
842846c905SEmmanuel Vadot      properties:
852846c905SEmmanuel Vadot        compatible:
862846c905SEmmanuel Vadot          contains:
87*8ccc0d23SEmmanuel Vadot            const: samsung,exynos990-cmu-peris
88*8ccc0d23SEmmanuel Vadot
89*8ccc0d23SEmmanuel Vadot    then:
90*8ccc0d23SEmmanuel Vadot      properties:
91*8ccc0d23SEmmanuel Vadot        clocks:
92*8ccc0d23SEmmanuel Vadot          items:
93*8ccc0d23SEmmanuel Vadot            - description: External reference clock (26 MHz)
94*8ccc0d23SEmmanuel Vadot            - description: CMU_PERIS BUS clock (from CMU_TOP)
95*8ccc0d23SEmmanuel Vadot
96*8ccc0d23SEmmanuel Vadot        clock-names:
97*8ccc0d23SEmmanuel Vadot          items:
98*8ccc0d23SEmmanuel Vadot            - const: oscclk
99*8ccc0d23SEmmanuel Vadot            - const: bus
100*8ccc0d23SEmmanuel Vadot
101*8ccc0d23SEmmanuel Vadot  - if:
102*8ccc0d23SEmmanuel Vadot      properties:
103*8ccc0d23SEmmanuel Vadot        compatible:
104*8ccc0d23SEmmanuel Vadot          contains:
1052846c905SEmmanuel Vadot            const: samsung,exynos990-cmu-top
1062846c905SEmmanuel Vadot
1072846c905SEmmanuel Vadot    then:
1082846c905SEmmanuel Vadot      properties:
1092846c905SEmmanuel Vadot        clocks:
1102846c905SEmmanuel Vadot          items:
1112846c905SEmmanuel Vadot            - description: External reference clock (26 MHz)
1122846c905SEmmanuel Vadot
1132846c905SEmmanuel Vadot        clock-names:
1142846c905SEmmanuel Vadot          items:
1152846c905SEmmanuel Vadot            - const: oscclk
1162846c905SEmmanuel Vadot
1172846c905SEmmanuel VadotadditionalProperties: false
1182846c905SEmmanuel Vadot
1192846c905SEmmanuel Vadotexamples:
1202846c905SEmmanuel Vadot  - |
1212846c905SEmmanuel Vadot    #include <dt-bindings/clock/samsung,exynos990.h>
1222846c905SEmmanuel Vadot
1232846c905SEmmanuel Vadot    cmu_hsi0: clock-controller@10a00000 {
1242846c905SEmmanuel Vadot        compatible = "samsung,exynos990-cmu-hsi0";
1252846c905SEmmanuel Vadot        reg = <0x10a00000 0x8000>;
1262846c905SEmmanuel Vadot        #clock-cells = <1>;
1272846c905SEmmanuel Vadot
1282846c905SEmmanuel Vadot        clocks = <&oscclk>,
1292846c905SEmmanuel Vadot                 <&cmu_top CLK_DOUT_CMU_HSI0_BUS>,
1302846c905SEmmanuel Vadot                 <&cmu_top CLK_DOUT_CMU_HSI0_USB31DRD>,
1312846c905SEmmanuel Vadot                 <&cmu_top CLK_DOUT_CMU_HSI0_USBDP_DEBUG>,
1322846c905SEmmanuel Vadot                 <&cmu_top CLK_DOUT_CMU_HSI0_DPGTC>;
1332846c905SEmmanuel Vadot        clock-names = "oscclk",
1342846c905SEmmanuel Vadot                      "bus",
1352846c905SEmmanuel Vadot                      "usb31drd",
1362846c905SEmmanuel Vadot                      "usbdp_debug",
1372846c905SEmmanuel Vadot                      "dpgtc";
1382846c905SEmmanuel Vadot    };
1392846c905SEmmanuel Vadot
1402846c905SEmmanuel Vadot...
141