xref: /freebsd/sys/contrib/device-tree/Bindings/clock/google,gs101-clock.yaml (revision 95eb4b873b6a8b527c5bd78d7191975dfca38998)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/clock/google,gs101-clock.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Google GS101 SoC clock controller
8
9maintainers:
10  - Peter Griffin <peter.griffin@linaro.org>
11
12description: |
13  Google GS101 clock controller is comprised of several CMU units, generating
14  clocks for different domains. Those CMU units are modeled as separate device
15  tree nodes, and might depend on each other. The root clock in that clock tree
16  is OSCCLK (24.576 MHz). That external clock must be defined as a fixed-rate
17  clock in dts.
18
19  CMU_TOP is a top-level CMU, where all base clocks are prepared using PLLs and
20  dividers; all other leaf clocks (other CMUs) are usually derived from CMU_TOP.
21
22  Each clock is assigned an identifier and client nodes can use this identifier
23  to specify the clock which they consume. All clocks available for usage
24  in clock consumer nodes are defined as preprocessor macros in
25  'dt-bindings/clock/gs101.h' header.
26
27properties:
28  compatible:
29    enum:
30      - google,gs101-cmu-top
31      - google,gs101-cmu-apm
32      - google,gs101-cmu-misc
33
34  clocks:
35    minItems: 1
36    maxItems: 2
37
38  clock-names:
39    minItems: 1
40    maxItems: 2
41
42  "#clock-cells":
43    const: 1
44
45  reg:
46    maxItems: 1
47
48required:
49  - compatible
50  - "#clock-cells"
51  - clocks
52  - clock-names
53  - reg
54
55allOf:
56  - if:
57      properties:
58        compatible:
59          contains:
60            enum:
61              - google,gs101-cmu-top
62              - google,gs101-cmu-apm
63    then:
64      properties:
65        clocks:
66          items:
67            - description: External reference clock (24.576 MHz)
68
69        clock-names:
70          items:
71            - const: oscclk
72
73  - if:
74      properties:
75        compatible:
76          contains:
77            const: google,gs101-cmu-misc
78
79    then:
80      properties:
81        clocks:
82          items:
83            - description: Misc bus clock (from CMU_TOP)
84            - description: Misc sss clock (from CMU_TOP)
85
86        clock-names:
87          items:
88            - const: bus
89            - const: sss
90
91additionalProperties: false
92
93examples:
94  # Clock controller node for CMU_TOP
95  - |
96    #include <dt-bindings/clock/google,gs101.h>
97
98    cmu_top: clock-controller@1e080000 {
99        compatible = "google,gs101-cmu-top";
100        reg = <0x1e080000 0x8000>;
101        #clock-cells = <1>;
102        clocks = <&ext_24_5m>;
103        clock-names = "oscclk";
104    };
105
106...
107