----------------------------------------------------------------- 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"; }; }; };