summaryrefslogtreecommitdiffstats
path: root/Documentation/devicetree/bindings/clock/img,pistachio-clk.yaml
blob: e70feee8e8945e326460b79fb25b05cbcd609654 (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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/clock/img,pistachio-clk.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Imagination Technologies Pistachio SoC clock controllers

maintainers:
  - Andrew Bresticker <abrestic@chromium.org>

description: |
  Pistachio has four clock controllers (core clock, peripheral clock, peripheral
  general control, and top general control) which are instantiated individually
  from the device-tree.

  Core clock controller:

  The core clock controller generates clocks for the CPU, RPU (WiFi + BT
  co-processor), audio, and several peripherals.

  Peripheral clock controller:

  The peripheral clock controller generates clocks for the DDR, ROM, and other
  peripherals. The peripheral system clock ("periph_sys") generated by the core
  clock controller is the input clock to the peripheral clock controller.

  Peripheral general control:

  The peripheral general control block generates system interface clocks and
  resets for various peripherals. It also contains miscellaneous peripheral
  control registers.

  Top-level general control:

  The top-level general control block contains miscellaneous control registers
  and gates for the external clocks "audio_clk_in" and "enet_clk_in".

properties:
  compatible:
    items:
      - enum:
          - img,pistachio-clk
          - img,pistachio-clk-periph
          - img,pistachio-cr-periph
          - img,pistachio-cr-top

  reg:
    maxItems: 1

  '#clock-cells':
    const: 1

  clocks:
    minItems: 1
    maxItems: 3

  clock-names:
    minItems: 1
    maxItems: 3

required:
  - compatible
  - reg
  - '#clock-cells'
  - clocks
  - clock-names

allOf:
  - if:
      properties:
        compatible:
          contains:
            const: img,pistachio-clk
    then:
      properties:
        clocks:
          items:
            - description: External 52Mhz oscillator
            - description: Alternate audio reference clock
            - description: Alternate ethernet PHY clock

        clock-names:
          items:
            - const: xtal
            - const: audio_refclk_ext_gate
            - const: ext_enet_in_gate

  - if:
      properties:
        compatible:
          contains:
            const: img,pistachio-clk-periph
    then:
      properties:
        clocks:
          items:
            - description: Peripheral system clock

        clock-names:
          items:
            - const: periph_sys_core

  - if:
      properties:
        compatible:
          contains:
            const: img,pistachio-cr-periph
    then:
      properties:
        clocks:
          items:
            - description: System interface clock

        clock-names:
          items:
            - const: sys

  - if:
      properties:
        compatible:
          contains:
            const: img,pistachio-cr-top
    then:
      properties:
        clocks:
          items:
            - description: External audio reference clock
            - description: External ethernet PHY clock

        clock-names:
          items:
            - const: audio_clk_in
            - const: enet_clk_in

additionalProperties: false