xref: /freebsd/sys/contrib/device-tree/Bindings/clock/img,pistachio-clk.yaml (revision 833e5d42ab135b0238e61c5b3c19b8619677cbfa)
1*833e5d42SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*833e5d42SEmmanuel Vadot%YAML 1.2
3*833e5d42SEmmanuel Vadot---
4*833e5d42SEmmanuel Vadot$id: http://devicetree.org/schemas/clock/img,pistachio-clk.yaml#
5*833e5d42SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*833e5d42SEmmanuel Vadot
7*833e5d42SEmmanuel Vadottitle: Imagination Technologies Pistachio SoC clock controllers
8*833e5d42SEmmanuel Vadot
9*833e5d42SEmmanuel Vadotmaintainers:
10*833e5d42SEmmanuel Vadot  - Andrew Bresticker <abrestic@chromium.org>
11*833e5d42SEmmanuel Vadot
12*833e5d42SEmmanuel Vadotdescription: |
13*833e5d42SEmmanuel Vadot  Pistachio has four clock controllers (core clock, peripheral clock, peripheral
14*833e5d42SEmmanuel Vadot  general control, and top general control) which are instantiated individually
15*833e5d42SEmmanuel Vadot  from the device-tree.
16*833e5d42SEmmanuel Vadot
17*833e5d42SEmmanuel Vadot  Core clock controller:
18*833e5d42SEmmanuel Vadot
19*833e5d42SEmmanuel Vadot  The core clock controller generates clocks for the CPU, RPU (WiFi + BT
20*833e5d42SEmmanuel Vadot  co-processor), audio, and several peripherals.
21*833e5d42SEmmanuel Vadot
22*833e5d42SEmmanuel Vadot  Peripheral clock controller:
23*833e5d42SEmmanuel Vadot
24*833e5d42SEmmanuel Vadot  The peripheral clock controller generates clocks for the DDR, ROM, and other
25*833e5d42SEmmanuel Vadot  peripherals. The peripheral system clock ("periph_sys") generated by the core
26*833e5d42SEmmanuel Vadot  clock controller is the input clock to the peripheral clock controller.
27*833e5d42SEmmanuel Vadot
28*833e5d42SEmmanuel Vadot  Peripheral general control:
29*833e5d42SEmmanuel Vadot
30*833e5d42SEmmanuel Vadot  The peripheral general control block generates system interface clocks and
31*833e5d42SEmmanuel Vadot  resets for various peripherals. It also contains miscellaneous peripheral
32*833e5d42SEmmanuel Vadot  control registers.
33*833e5d42SEmmanuel Vadot
34*833e5d42SEmmanuel Vadot  Top-level general control:
35*833e5d42SEmmanuel Vadot
36*833e5d42SEmmanuel Vadot  The top-level general control block contains miscellaneous control registers
37*833e5d42SEmmanuel Vadot  and gates for the external clocks "audio_clk_in" and "enet_clk_in".
38*833e5d42SEmmanuel Vadot
39*833e5d42SEmmanuel Vadotproperties:
40*833e5d42SEmmanuel Vadot  compatible:
41*833e5d42SEmmanuel Vadot    items:
42*833e5d42SEmmanuel Vadot      - enum:
43*833e5d42SEmmanuel Vadot          - img,pistachio-clk
44*833e5d42SEmmanuel Vadot          - img,pistachio-clk-periph
45*833e5d42SEmmanuel Vadot          - img,pistachio-cr-periph
46*833e5d42SEmmanuel Vadot          - img,pistachio-cr-top
47*833e5d42SEmmanuel Vadot
48*833e5d42SEmmanuel Vadot  reg:
49*833e5d42SEmmanuel Vadot    maxItems: 1
50*833e5d42SEmmanuel Vadot
51*833e5d42SEmmanuel Vadot  '#clock-cells':
52*833e5d42SEmmanuel Vadot    const: 1
53*833e5d42SEmmanuel Vadot
54*833e5d42SEmmanuel Vadot  clocks:
55*833e5d42SEmmanuel Vadot    minItems: 1
56*833e5d42SEmmanuel Vadot    maxItems: 3
57*833e5d42SEmmanuel Vadot
58*833e5d42SEmmanuel Vadot  clock-names:
59*833e5d42SEmmanuel Vadot    minItems: 1
60*833e5d42SEmmanuel Vadot    maxItems: 3
61*833e5d42SEmmanuel Vadot
62*833e5d42SEmmanuel Vadotrequired:
63*833e5d42SEmmanuel Vadot  - compatible
64*833e5d42SEmmanuel Vadot  - reg
65*833e5d42SEmmanuel Vadot  - '#clock-cells'
66*833e5d42SEmmanuel Vadot  - clocks
67*833e5d42SEmmanuel Vadot  - clock-names
68*833e5d42SEmmanuel Vadot
69*833e5d42SEmmanuel VadotallOf:
70*833e5d42SEmmanuel Vadot  - if:
71*833e5d42SEmmanuel Vadot      properties:
72*833e5d42SEmmanuel Vadot        compatible:
73*833e5d42SEmmanuel Vadot          contains:
74*833e5d42SEmmanuel Vadot            const: img,pistachio-clk
75*833e5d42SEmmanuel Vadot    then:
76*833e5d42SEmmanuel Vadot      properties:
77*833e5d42SEmmanuel Vadot        clocks:
78*833e5d42SEmmanuel Vadot          items:
79*833e5d42SEmmanuel Vadot            - description: External 52Mhz oscillator
80*833e5d42SEmmanuel Vadot            - description: Alternate audio reference clock
81*833e5d42SEmmanuel Vadot            - description: Alternate ethernet PHY clock
82*833e5d42SEmmanuel Vadot
83*833e5d42SEmmanuel Vadot        clock-names:
84*833e5d42SEmmanuel Vadot          items:
85*833e5d42SEmmanuel Vadot            - const: xtal
86*833e5d42SEmmanuel Vadot            - const: audio_refclk_ext_gate
87*833e5d42SEmmanuel Vadot            - const: ext_enet_in_gate
88*833e5d42SEmmanuel Vadot
89*833e5d42SEmmanuel Vadot  - if:
90*833e5d42SEmmanuel Vadot      properties:
91*833e5d42SEmmanuel Vadot        compatible:
92*833e5d42SEmmanuel Vadot          contains:
93*833e5d42SEmmanuel Vadot            const: img,pistachio-clk-periph
94*833e5d42SEmmanuel Vadot    then:
95*833e5d42SEmmanuel Vadot      properties:
96*833e5d42SEmmanuel Vadot        clocks:
97*833e5d42SEmmanuel Vadot          items:
98*833e5d42SEmmanuel Vadot            - description: Peripheral system clock
99*833e5d42SEmmanuel Vadot
100*833e5d42SEmmanuel Vadot        clock-names:
101*833e5d42SEmmanuel Vadot          items:
102*833e5d42SEmmanuel Vadot            - const: periph_sys_core
103*833e5d42SEmmanuel Vadot
104*833e5d42SEmmanuel Vadot  - if:
105*833e5d42SEmmanuel Vadot      properties:
106*833e5d42SEmmanuel Vadot        compatible:
107*833e5d42SEmmanuel Vadot          contains:
108*833e5d42SEmmanuel Vadot            const: img,pistachio-cr-periph
109*833e5d42SEmmanuel Vadot    then:
110*833e5d42SEmmanuel Vadot      properties:
111*833e5d42SEmmanuel Vadot        clocks:
112*833e5d42SEmmanuel Vadot          items:
113*833e5d42SEmmanuel Vadot            - description: System interface clock
114*833e5d42SEmmanuel Vadot
115*833e5d42SEmmanuel Vadot        clock-names:
116*833e5d42SEmmanuel Vadot          items:
117*833e5d42SEmmanuel Vadot            - const: sys
118*833e5d42SEmmanuel Vadot
119*833e5d42SEmmanuel Vadot  - if:
120*833e5d42SEmmanuel Vadot      properties:
121*833e5d42SEmmanuel Vadot        compatible:
122*833e5d42SEmmanuel Vadot          contains:
123*833e5d42SEmmanuel Vadot            const: img,pistachio-cr-top
124*833e5d42SEmmanuel Vadot    then:
125*833e5d42SEmmanuel Vadot      properties:
126*833e5d42SEmmanuel Vadot        clocks:
127*833e5d42SEmmanuel Vadot          items:
128*833e5d42SEmmanuel Vadot            - description: External audio reference clock
129*833e5d42SEmmanuel Vadot            - description: External ethernet PHY clock
130*833e5d42SEmmanuel Vadot
131*833e5d42SEmmanuel Vadot        clock-names:
132*833e5d42SEmmanuel Vadot          items:
133*833e5d42SEmmanuel Vadot            - const: audio_clk_in
134*833e5d42SEmmanuel Vadot            - const: enet_clk_in
135*833e5d42SEmmanuel Vadot
136*833e5d42SEmmanuel VadotadditionalProperties: false
137