Merge tag 'v4.20' into next
[sfrench/cifs-2.6.git] / Documentation / devicetree / bindings / firmware / xilinx / xlnx,zynqmp-firmware.txt
1 -----------------------------------------------------------------
2 Device Tree Bindings for the Xilinx Zynq MPSoC Firmware Interface
3 -----------------------------------------------------------------
4
5 The zynqmp-firmware node describes the interface to platform firmware.
6 ZynqMP has an interface to communicate with secure firmware. Firmware
7 driver provides an interface to firmware APIs. Interface APIs can be
8 used by any driver to communicate to PMUFW(Platform Management Unit).
9 These requests include clock management, pin control, device control,
10 power management service, FPGA service and other platform management
11 services.
12
13 Required properties:
14  - compatible:  Must contain:   "xlnx,zynqmp-firmware"
15  - method:      The method of calling the PM-API firmware layer.
16                 Permitted values are:
17                   - "smc" : SMC #0, following the SMCCC
18                   - "hvc" : HVC #0, following the SMCCC
19
20 --------------------------------------------------------------------------
21 Device Tree Clock bindings for the Zynq Ultrascale+ MPSoC controlled using
22 Zynq MPSoC firmware interface
23 --------------------------------------------------------------------------
24 The clock controller is a h/w block of Zynq Ultrascale+ MPSoC clock
25 tree. It reads required input clock frequencies from the devicetree and acts
26 as clock provider for all clock consumers of PS clocks.
27
28 See clock_bindings.txt for more information on the generic clock bindings.
29
30 Required properties:
31  - #clock-cells:        Must be 1
32  - compatible:          Must contain:   "xlnx,zynqmp-clk"
33  - clocks:              List of clock specifiers which are external input
34                         clocks to the given clock controller. Please refer
35                         the next section to find the input clocks for a
36                         given controller.
37  - clock-names:         List of clock names which are exteral input clocks
38                         to the given clock controller. Please refer to the
39                         clock bindings for more details.
40
41 Input clocks for zynqmp Ultrascale+ clock controller:
42
43 The Zynq UltraScale+ MPSoC has one primary and four alternative reference clock
44 inputs. These required clock inputs are:
45  - pss_ref_clk (PS reference clock)
46  - video_clk (reference clock for video system )
47  - pss_alt_ref_clk (alternative PS reference clock)
48  - aux_ref_clk
49  - gt_crx_ref_clk (transceiver reference clock)
50
51 The following strings are optional parameters to the 'clock-names' property in
52 order to provide an optional (E)MIO clock source:
53  - swdt0_ext_clk
54  - swdt1_ext_clk
55  - gem0_emio_clk
56  - gem1_emio_clk
57  - gem2_emio_clk
58  - gem3_emio_clk
59  - mio_clk_XX           # with XX = 00..77
60  - mio_clk_50_or_51     #for the mux clock to gem tsu from 50 or 51
61
62
63 Output clocks are registered based on clock information received
64 from firmware. Output clocks indexes are mentioned in
65 include/dt-bindings/clock/xlnx,zynqmp-clk.h.
66
67 -------
68 Example
69 -------
70
71 firmware {
72         zynqmp_firmware: zynqmp-firmware {
73                 compatible = "xlnx,zynqmp-firmware";
74                 method = "smc";
75                 zynqmp_clk: clock-controller {
76                         #clock-cells = <1>;
77                         compatible = "xlnx,zynqmp-clk";
78                         clocks = <&pss_ref_clk>, <&video_clk>, <&pss_alt_ref_clk>, <&aux_ref_clk>, <&gt_crx_ref_clk>;
79                         clock-names = "pss_ref_clk", "video_clk", "pss_alt_ref_clk","aux_ref_clk", "gt_crx_ref_clk";
80                 };
81         };
82 };