summaryrefslogtreecommitdiff
path: root/Documentation/devicetree/bindings/clock/sprd,sc9863a-clk.yaml
blob: 4069e09cb62ded04a7ae1d782d588369e4cc4b84 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
# Copyright 2019 Unisoc Inc.
%YAML 1.2
---
$id: "http://devicetree.org/schemas/clock/sprd,sc9863a-clk.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"

title: SC9863A Clock Control Unit Device Tree Bindings

maintainers:
  - Orson Zhai <orsonzhai@gmail.com>
  - Baolin Wang <baolin.wang7@gmail.com>
  - Chunyan Zhang <zhang.lyra@gmail.com>

properties:
  "#clock-cells":
    const: 1

  compatible:
    enum:
      - sprd,sc9863a-ap-clk
      - sprd,sc9863a-aon-clk
      - sprd,sc9863a-apahb-gate
      - sprd,sc9863a-pmu-gate
      - sprd,sc9863a-aonapb-gate
      - sprd,sc9863a-pll
      - sprd,sc9863a-mpll
      - sprd,sc9863a-rpll
      - sprd,sc9863a-dpll
      - sprd,sc9863a-mm-gate
      - sprd,sc9863a-mm-clk
      - sprd,sc9863a-apapb-gate

  clocks:
    minItems: 1
    maxItems: 4
    description: |
      The input parent clock(s) phandle for this clock, only list fixed
      clocks which are declared in devicetree.

  clock-names:
    minItems: 1
    maxItems: 4
    items:
      - const: ext-26m
      - const: ext-32k
      - const: ext-4m
      - const: rco-100m

  reg:
    maxItems: 1

required:
  - compatible
  - '#clock-cells'

if:
  properties:
    compatible:
      enum:
        - sprd,sc9863a-ap-clk
        - sprd,sc9863a-aon-clk
then:
  required:
    - reg

else:
  description: |
    Other SC9863a clock nodes should be the child of a syscon node in
    which compatible string shoule be:
            "sprd,sc9863a-glbregs", "syscon", "simple-mfd"

    The 'reg' property for the clock node is also required if there is a sub
    range of registers for the clocks.

additionalProperties: false

examples:
  - |
    ap_clk: clock-controller@21500000 {
      compatible = "sprd,sc9863a-ap-clk";
      reg = <0x21500000 0x1000>;
      clocks = <&ext_26m>, <&ext_32k>;
      clock-names = "ext-26m", "ext-32k";
      #clock-cells = <1>;
    };

  - |
    syscon@20e00000 {
      compatible = "sprd,sc9863a-glbregs", "syscon", "simple-mfd";
      reg = <0x20e00000 0x4000>;
      #address-cells = <1>;
      #size-cells = <1>;
      ranges = <0 0x20e00000 0x4000>;

      apahb_gate: apahb-gate@0 {
        compatible = "sprd,sc9863a-apahb-gate";
        reg = <0x0 0x1020>;
        #clock-cells = <1>;
      };
    };

...