Merge branch 'work.iov_iter' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / clock / brcm,iproc-clocks.yaml
1 # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/clock/brcm,iproc-clocks.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Broadcom iProc Family Clocks
8
9 maintainers:
10   - Ray Jui <rjui@broadcom.com>
11   - Scott Branden <sbranden@broadcom.com>
12
13 description: |
14   The iProc clock controller manages clocks that are common to the iProc family.
15   An SoC from the iProc family may have several PLLs, e.g., ARMPLL, GENPLL,
16   LCPLL0, MIPIPLL, and etc., all derived from an onboard crystal. Each PLL
17   comprises of several leaf clocks
18
19   ASIU clocks are a special case. These clocks are derived directly from the
20   reference clock of the onboard crystal.
21
22 properties:
23   compatible:
24     enum:
25       - brcm,bcm63138-armpll
26       - brcm,cygnus-armpll
27       - brcm,cygnus-genpll
28       - brcm,cygnus-lcpll0
29       - brcm,cygnus-mipipll
30       - brcm,cygnus-asiu-clk
31       - brcm,cygnus-audiopll
32       - brcm,hr2-armpll
33       - brcm,nsp-armpll
34       - brcm,nsp-genpll
35       - brcm,nsp-lcpll0
36       - brcm,ns2-genpll-scr
37       - brcm,ns2-genpll-sw
38       - brcm,ns2-lcpll-ddr
39       - brcm,ns2-lcpll-ports
40       - brcm,sr-genpll0
41       - brcm,sr-genpll1
42       - brcm,sr-genpll2
43       - brcm,sr-genpll3
44       - brcm,sr-genpll4
45       - brcm,sr-genpll5
46       - brcm,sr-genpll6
47       - brcm,sr-lcpll0
48       - brcm,sr-lcpll1
49       - brcm,sr-lcpll-pcie
50
51   reg:
52     minItems: 1
53     items:
54       - description: base register
55       - description: power register
56       - description: ASIU or split status register
57
58   clocks:
59     description: The input parent clock phandle for the PLL / ASIU clock. For
60       most iProc PLLs, this is an onboard crystal with a fixed rate.
61     maxItems: 1
62
63   '#clock-cells':
64     true
65
66   clock-output-names:
67     minItems: 1
68     maxItems: 45
69
70 allOf:
71   - if:
72       properties:
73         compatible:
74           contains:
75             enum:
76               - brcm,cygnus-armpll
77               - brcm,nsp-armpll
78     then:
79       properties:
80         '#clock-cells':
81           const: 0
82     else:
83       properties:
84         '#clock-cells':
85           const: 1
86       required:
87         - clock-output-names
88   - if:
89       properties:
90         compatible:
91           contains:
92             enum:
93               - brcm,cygnus-armpll
94               - brcm,cygnus-genpll
95               - brcm,cygnus-lcpll0
96               - brcm,cygnus-mipipll
97               - brcm,cygnus-asiu-clk
98               - brcm,cygnus-audiopll
99     then:
100       properties:
101         clock-output-names:
102           description: |
103             The following table defines the set of PLL/clock index and ID for Cygnus.
104             These clock IDs are defined in:
105                 "include/dt-bindings/clock/bcm-cygnus.h"
106
107             Clock       Source (Parent) Index   ID
108             -----       --------------- -----   --
109             crystal     N/A             N/A     N/A
110
111             armpll      crystal         N/A     N/A
112
113             keypad      crystal (ASIU)  0       BCM_CYGNUS_ASIU_KEYPAD_CLK
114             adc/tsc     crystal (ASIU)  1       BCM_CYGNUS_ASIU_ADC_CLK
115             pwm crystal (ASIU)          2       BCM_CYGNUS_ASIU_PWM_CLK
116
117             genpll      crystal         0       BCM_CYGNUS_GENPLL
118             axi21       genpll          1       BCM_CYGNUS_GENPLL_AXI21_CLK
119             250mhz      genpll          2       BCM_CYGNUS_GENPLL_250MHZ_CLK
120             ihost_sys   genpll          3       BCM_CYGNUS_GENPLL_IHOST_SYS_CLK
121             enet_sw     genpll          4       BCM_CYGNUS_GENPLL_ENET_SW_CLK
122             audio_125   genpll          5       BCM_CYGNUS_GENPLL_AUDIO_125_CLK
123             can         genpll          6       BCM_CYGNUS_GENPLL_CAN_CLK
124
125             lcpll0      crystal         0       BCM_CYGNUS_LCPLL0
126             pcie_phy    lcpll0          1       BCM_CYGNUS_LCPLL0_PCIE_PHY_REF_CLK
127             ddr_phy     lcpll0          2       BCM_CYGNUS_LCPLL0_DDR_PHY_CLK
128             sdio        lcpll0          3       BCM_CYGNUS_LCPLL0_SDIO_CLK
129             usb_phy     lcpll0          4       BCM_CYGNUS_LCPLL0_USB_PHY_REF_CLK
130             smart_card  lcpll0          5       BCM_CYGNUS_LCPLL0_SMART_CARD_CLK
131             ch5_unused  lcpll0          6       BCM_CYGNUS_LCPLL0_CH5_UNUSED
132
133             mipipll     crystal         0       BCM_CYGNUS_MIPIPLL
134             ch0_unused  mipipll         1       BCM_CYGNUS_MIPIPLL_CH0_UNUSED
135             ch1_lcd     mipipll         2       BCM_CYGNUS_MIPIPLL_CH1_LCD
136             ch2_v3d     mipipll         3       BCM_CYGNUS_MIPIPLL_CH2_V3D
137             ch3_unused  mipipll         4       BCM_CYGNUS_MIPIPLL_CH3_UNUSED
138             ch4_unused  mipipll         5       BCM_CYGNUS_MIPIPLL_CH4_UNUSED
139             ch5_unused  mipipll         6       BCM_CYGNUS_MIPIPLL_CH5_UNUSED
140
141             audiopll    crystal         0       BCM_CYGNUS_AUDIOPLL
142             ch0_audio   audiopll        1       BCM_CYGNUS_AUDIOPLL_CH0
143             ch1_audio   audiopll        2       BCM_CYGNUS_AUDIOPLL_CH1
144             ch2_audio   audiopll        3       BCM_CYGNUS_AUDIOPLL_CH2
145   - if:
146       properties:
147         compatible:
148           contains:
149             enum:
150               - brcm,hr2-armpll
151     then:
152       properties:
153         clock-output-names:
154           description: |
155             The following table defines the set of PLL/clock for Hurricane 2:
156
157             Clock       Source          Index   ID
158             -----       ------          -----   --
159             crystal     N/A             N/A     N/A
160
161             armpll      crystal         N/A     N/A
162   - if:
163       properties:
164         compatible:
165           contains:
166             enum:
167               - brcm,nsp-armpll
168               - brcm,nsp-genpll
169               - brcm,nsp-lcpll0
170     then:
171       properties:
172         clock-output-names:
173           description: |
174             The following table defines the set of PLL/clock index and ID for Northstar and
175             Northstar Plus.  These clock IDs are defined in:
176                 "include/dt-bindings/clock/bcm-nsp.h"
177
178             Clock       Source          Index   ID
179             -----       ------          -----   --
180             crystal     N/A             N/A     N/A
181
182             armpll      crystal         N/A     N/A
183
184             genpll      crystal         0       BCM_NSP_GENPLL
185             phy         genpll          1       BCM_NSP_GENPLL_PHY_CLK
186             ethernetclk genpll          2       BCM_NSP_GENPLL_ENET_SW_CLK
187             usbclk      genpll          3       BCM_NSP_GENPLL_USB_PHY_REF_CLK
188             iprocfast   genpll          4       BCM_NSP_GENPLL_IPROCFAST_CLK
189             sata1       genpll          5       BCM_NSP_GENPLL_SATA1_CLK
190             sata2       genpll          6       BCM_NSP_GENPLL_SATA2_CLK
191
192             lcpll0      crystal         0       BCM_NSP_LCPLL0
193             pcie_phy    lcpll0          1       BCM_NSP_LCPLL0_PCIE_PHY_REF_CLK
194             sdio        lcpll0          2       BCM_NSP_LCPLL0_SDIO_CLK
195             ddr_phy     lcpll0          3       BCM_NSP_LCPLL0_DDR_PHY_CLK
196   - if:
197       properties:
198         compatible:
199           contains:
200             enum:
201               - brcm,ns2-genpll-scr
202               - brcm,ns2-genpll-sw
203               - brcm,ns2-lcpll-ddr
204               - brcm,ns2-lcpll-ports
205     then:
206       properties:
207         clock-output-names:
208           description: |
209             The following table defines the set of PLL/clock index and ID for Northstar 2.
210             These clock IDs are defined in:
211                 "include/dt-bindings/clock/bcm-ns2.h"
212
213             Clock       Source          Index   ID
214             -----       ------          -----   --
215             crystal     N/A             N/A     N/A
216
217             genpll_scr  crystal         0       BCM_NS2_GENPLL_SCR
218             scr         genpll_scr      1       BCM_NS2_GENPLL_SCR_SCR_CLK
219             fs          genpll_scr      2       BCM_NS2_GENPLL_SCR_FS_CLK
220             audio_ref   genpll_scr      3       BCM_NS2_GENPLL_SCR_AUDIO_CLK
221             ch3_unused  genpll_scr      4       BCM_NS2_GENPLL_SCR_CH3_UNUSED
222             ch4_unused  genpll_scr      5       BCM_NS2_GENPLL_SCR_CH4_UNUSED
223             ch5_unused  genpll_scr      6       BCM_NS2_GENPLL_SCR_CH5_UNUSED
224
225             genpll_sw   crystal         0       BCM_NS2_GENPLL_SW
226             rpe         genpll_sw       1       BCM_NS2_GENPLL_SW_RPE_CLK
227             250         genpll_sw       2       BCM_NS2_GENPLL_SW_250_CLK
228             nic         genpll_sw       3       BCM_NS2_GENPLL_SW_NIC_CLK
229             chimp       genpll_sw       4       BCM_NS2_GENPLL_SW_CHIMP_CLK
230             port        genpll_sw       5       BCM_NS2_GENPLL_SW_PORT_CLK
231             sdio        genpll_sw       6       BCM_NS2_GENPLL_SW_SDIO_CLK
232
233             lcpll_ddr   crystal         0       BCM_NS2_LCPLL_DDR
234             pcie_sata_usb lcpll_ddr     1       BCM_NS2_LCPLL_DDR_PCIE_SATA_USB_CLK
235             ddr         lcpll_ddr       2       BCM_NS2_LCPLL_DDR_DDR_CLK
236             ch2_unused  lcpll_ddr       3       BCM_NS2_LCPLL_DDR_CH2_UNUSED
237             ch3_unused  lcpll_ddr       4       BCM_NS2_LCPLL_DDR_CH3_UNUSED
238             ch4_unused  lcpll_ddr       5       BCM_NS2_LCPLL_DDR_CH4_UNUSED
239             ch5_unused  lcpll_ddr       6       BCM_NS2_LCPLL_DDR_CH5_UNUSED
240
241             lcpll_ports crystal         0       BCM_NS2_LCPLL_PORTS
242             wan         lcpll_ports     1       BCM_NS2_LCPLL_PORTS_WAN_CLK
243             rgmii       lcpll_ports     2       BCM_NS2_LCPLL_PORTS_RGMII_CLK
244             ch2_unused  lcpll_ports     3       BCM_NS2_LCPLL_PORTS_CH2_UNUSED
245             ch3_unused  lcpll_ports     4       BCM_NS2_LCPLL_PORTS_CH3_UNUSED
246             ch4_unused  lcpll_ports     5       BCM_NS2_LCPLL_PORTS_CH4_UNUSED
247             ch5_unused  lcpll_ports     6       BCM_NS2_LCPLL_PORTS_CH5_UNUSED
248   - if:
249       properties:
250         compatible:
251           contains:
252             enum:
253               - brcm,sr-genpll0
254               - brcm,sr-genpll1
255               - brcm,sr-genpll2
256               - brcm,sr-genpll3
257               - brcm,sr-genpll4
258               - brcm,sr-genpll5
259               - brcm,sr-genpll6
260               - brcm,sr-lcpll0
261               - brcm,sr-lcpll1
262               - brcm,sr-lcpll-pcie
263     then:
264       properties:
265         clock-output-names:
266           description: |
267             The following table defines the set of PLL/clock index and ID for Stingray.
268             These clock IDs are defined in:
269                 "include/dt-bindings/clock/bcm-sr.h"
270
271             Clock               Source          Index   ID
272             -----               ------          -----   --
273             crystal             N/A             N/A     N/A
274             crmu_ref25m         crystal         N/A     N/A
275
276             genpll0             crystal         0       BCM_SR_GENPLL0
277             clk_125m            genpll0         1       BCM_SR_GENPLL0_125M_CLK
278             clk_scr             genpll0         2       BCM_SR_GENPLL0_SCR_CLK
279             clk_250             genpll0         3       BCM_SR_GENPLL0_250M_CLK
280             clk_pcie_axi        genpll0         4       BCM_SR_GENPLL0_PCIE_AXI_CLK
281             clk_paxc_axi_x2     genpll0         5       BCM_SR_GENPLL0_PAXC_AXI_X2_CLK
282             clk_paxc_axi        genpll0         6       BCM_SR_GENPLL0_PAXC_AXI_CLK
283
284             genpll1             crystal         0       BCM_SR_GENPLL1
285             clk_pcie_tl         genpll1         1       BCM_SR_GENPLL1_PCIE_TL_CLK
286             clk_mhb_apb         genpll1         2       BCM_SR_GENPLL1_MHB_APB_CLK
287
288             genpll2             crystal         0       BCM_SR_GENPLL2
289             clk_nic             genpll2         1       BCM_SR_GENPLL2_NIC_CLK
290             clk_ts_500_ref      genpll2         2       BCM_SR_GENPLL2_TS_500_REF_CLK
291             clk_125_nitro       genpll2         3       BCM_SR_GENPLL2_125_NITRO_CLK
292             clk_chimp           genpll2         4       BCM_SR_GENPLL2_CHIMP_CLK
293             clk_nic_flash       genpll2         5       BCM_SR_GENPLL2_NIC_FLASH_CLK
294             clk_fs              genpll2         6       BCM_SR_GENPLL2_FS_CLK
295
296             genpll3             crystal         0       BCM_SR_GENPLL3
297             clk_hsls            genpll3         1       BCM_SR_GENPLL3_HSLS_CLK
298             clk_sdio            genpll3         2       BCM_SR_GENPLL3_SDIO_CLK
299
300             genpll4             crystal         0       BCM_SR_GENPLL4
301             clk_ccn             genpll4         1       BCM_SR_GENPLL4_CCN_CLK
302             clk_tpiu_pll        genpll4         2       BCM_SR_GENPLL4_TPIU_PLL_CLK
303             clk_noc             genpll4         3       BCM_SR_GENPLL4_NOC_CLK
304             clk_chclk_fs4       genpll4         4       BCM_SR_GENPLL4_CHCLK_FS4_CLK
305             clk_bridge_fscpu    genpll4         5       BCM_SR_GENPLL4_BRIDGE_FSCPU_CLK
306
307             genpll5             crystal         0       BCM_SR_GENPLL5
308             clk_fs4_hf          genpll5         1       BCM_SR_GENPLL5_FS4_HF_CLK
309             clk_crypto_ae       genpll5         2       BCM_SR_GENPLL5_CRYPTO_AE_CLK
310             clk_raid_ae         genpll5         3       BCM_SR_GENPLL5_RAID_AE_CLK
311
312             genpll6             crystal         0       BCM_SR_GENPLL6
313             clk_48_usb          genpll6         1       BCM_SR_GENPLL6_48_USB_CLK
314
315             lcpll0              crystal         0       BCM_SR_LCPLL0
316             clk_sata_refp       lcpll0          1       BCM_SR_LCPLL0_SATA_REFP_CLK
317             clk_sata_refn       lcpll0          2       BCM_SR_LCPLL0_SATA_REFN_CLK
318             clk_sata_350        lcpll0          3       BCM_SR_LCPLL0_SATA_350_CLK
319             clk_sata_500        lcpll0          4       BCM_SR_LCPLL0_SATA_500_CLK
320
321             lcpll1              crystal         0       BCM_SR_LCPLL1
322             clk_wan             lcpll1          1       BCM_SR_LCPLL1_WAN_CLK
323             clk_usb_ref         lcpll1          2       BCM_SR_LCPLL1_USB_REF_CLK
324             clk_crmu_ts         lcpll1          3       BCM_SR_LCPLL1_CRMU_TS_CLK
325
326             lcpll_pcie          crystal         0       BCM_SR_LCPLL_PCIE
327             clk_pcie_phy_ref    lcpll1          1       BCM_SR_LCPLL_PCIE_PHY_REF_CLK
328   - if:
329       properties:
330         compatible:
331           contains:
332             const: brcm,cygnus-genpll
333     then:
334       properties:
335         clock-output-names:
336           items:
337             - const: genpll
338             - const: axi21
339             - const: 250mhz
340             - const: ihost_sys
341             - const: enet_sw
342             - const: audio_125
343             - const: can
344   - if:
345       properties:
346         compatible:
347           contains:
348             const: brcm,nsp-lcpll0
349     then:
350       properties:
351         clock-output-names:
352           items:
353             - const: lcpll0
354             - const: pcie_phy
355             - const: sdio
356             - const: ddr_phy
357   - if:
358       properties:
359         compatible:
360           contains:
361             const: brcm,nsp-genpll
362     then:
363       properties:
364         clock-output-names:
365           items:
366             - const: genpll
367             - const: phy
368             - const: ethernetclk
369             - const: usbclk
370             - const: iprocfast
371             - const: sata1
372             - const: sata2
373
374 required:
375   - reg
376   - clocks
377   - '#clock-cells'
378
379 additionalProperties: false
380
381 examples:
382   - |
383     osc1: oscillator {
384         #clock-cells = <0>;
385         compatible = "fixed-clock";
386         clock-frequency = <25000000>;
387     };
388
389     genpll@301d000 {
390         #clock-cells = <1>;
391         compatible = "brcm,cygnus-genpll";
392         reg = <0x301d000 0x2c>, <0x301c020 0x4>;
393         clocks = <&os1c>;
394         clock-output-names = "genpll", "axi21", "250mhz", "ihost_sys",
395                      "enet_sw", "audio_125", "can";
396     };
397   - |
398     osc2: oscillator {
399         #clock-cells = <0>;
400         compatible = "fixed-clock";
401         clock-frequency = <25000000>;
402     };
403
404     asiu_clks@301d048 {
405         #clock-cells = <1>;
406         compatible = "brcm,cygnus-asiu-clk";
407         reg = <0x301d048 0xc>, <0x180aa024 0x4>;
408         clocks = <&osc2>;
409         clock-output-names = "keypad", "adc/touch", "pwm";
410     };
411   - |
412     arm_clk@0 {
413         #clock-cells = <0>;
414         compatible = "brcm,nsp-armpll";
415         clocks = <&osc>;
416         reg = <0x0 0x1000>;
417     };