mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-02-12 11:55:08 +07:00
![Rajan Vaja](/assets/img/avatar_default.png)
Add documentation to describe Xilinx ZynqMP clock driver bindings. Signed-off-by: Rajan Vaja <rajan.vaja@xilinx.com> Signed-off-by: Jolly Shah <jollys@xilinx.com> Reviewed-by: Rob Herring <robh@kernel.org> Reviewed-by: Stephen Boyd <sboyd@kernel.org> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
83 lines
3.1 KiB
Plaintext
83 lines
3.1 KiB
Plaintext
-----------------------------------------------------------------
|
|
Device Tree Bindings for the Xilinx Zynq MPSoC Firmware Interface
|
|
-----------------------------------------------------------------
|
|
|
|
The zynqmp-firmware node describes the interface to platform firmware.
|
|
ZynqMP has an interface to communicate with secure firmware. Firmware
|
|
driver provides an interface to firmware APIs. Interface APIs can be
|
|
used by any driver to communicate to PMUFW(Platform Management Unit).
|
|
These requests include clock management, pin control, device control,
|
|
power management service, FPGA service and other platform management
|
|
services.
|
|
|
|
Required properties:
|
|
- compatible: Must contain: "xlnx,zynqmp-firmware"
|
|
- method: The method of calling the PM-API firmware layer.
|
|
Permitted values are:
|
|
- "smc" : SMC #0, following the SMCCC
|
|
- "hvc" : HVC #0, following the SMCCC
|
|
|
|
--------------------------------------------------------------------------
|
|
Device Tree Clock bindings for the Zynq Ultrascale+ MPSoC controlled using
|
|
Zynq MPSoC firmware interface
|
|
--------------------------------------------------------------------------
|
|
The clock controller is a h/w block of Zynq Ultrascale+ MPSoC clock
|
|
tree. It reads required input clock frequencies from the devicetree and acts
|
|
as clock provider for all clock consumers of PS clocks.
|
|
|
|
See clock_bindings.txt for more information on the generic clock bindings.
|
|
|
|
Required properties:
|
|
- #clock-cells: Must be 1
|
|
- compatible: Must contain: "xlnx,zynqmp-clk"
|
|
- clocks: List of clock specifiers which are external input
|
|
clocks to the given clock controller. Please refer
|
|
the next section to find the input clocks for a
|
|
given controller.
|
|
- clock-names: List of clock names which are exteral input clocks
|
|
to the given clock controller. Please refer to the
|
|
clock bindings for more details.
|
|
|
|
Input clocks for zynqmp Ultrascale+ clock controller:
|
|
|
|
The Zynq UltraScale+ MPSoC has one primary and four alternative reference clock
|
|
inputs. These required clock inputs are:
|
|
- pss_ref_clk (PS reference clock)
|
|
- video_clk (reference clock for video system )
|
|
- pss_alt_ref_clk (alternative PS reference clock)
|
|
- aux_ref_clk
|
|
- gt_crx_ref_clk (transceiver reference clock)
|
|
|
|
The following strings are optional parameters to the 'clock-names' property in
|
|
order to provide an optional (E)MIO clock source:
|
|
- swdt0_ext_clk
|
|
- swdt1_ext_clk
|
|
- gem0_emio_clk
|
|
- gem1_emio_clk
|
|
- gem2_emio_clk
|
|
- gem3_emio_clk
|
|
- mio_clk_XX # with XX = 00..77
|
|
- mio_clk_50_or_51 #for the mux clock to gem tsu from 50 or 51
|
|
|
|
|
|
Output clocks are registered based on clock information received
|
|
from firmware. Output clocks indexes are mentioned in
|
|
include/dt-bindings/clock/xlnx,zynqmp-clk.h.
|
|
|
|
-------
|
|
Example
|
|
-------
|
|
|
|
firmware {
|
|
zynqmp_firmware: zynqmp-firmware {
|
|
compatible = "xlnx,zynqmp-firmware";
|
|
method = "smc";
|
|
zynqmp_clk: clock-controller {
|
|
#clock-cells = <1>;
|
|
compatible = "xlnx,zynqmp-clk";
|
|
clocks = <&pss_ref_clk>, <&video_clk>, <&pss_alt_ref_clk>, <&aux_ref_clk>, <>_crx_ref_clk>;
|
|
clock-names = "pss_ref_clk", "video_clk", "pss_alt_ref_clk","aux_ref_clk", "gt_crx_ref_clk";
|
|
};
|
|
};
|
|
};
|