1*f8cc6d71SNava kishore Manne# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*f8cc6d71SNava kishore Manne%YAML 1.2 3*f8cc6d71SNava kishore Manne--- 4*f8cc6d71SNava kishore Manne$id: http://devicetree.org/schemas/firmware/xilinx/xlnx,zynqmp-firmware.yaml# 5*f8cc6d71SNava kishore Manne$schema: http://devicetree.org/meta-schemas/core.yaml# 6*f8cc6d71SNava kishore Manne 7*f8cc6d71SNava kishore Mannetitle: Xilinx firmware driver 8*f8cc6d71SNava kishore Manne 9*f8cc6d71SNava kishore Mannemaintainers: 10*f8cc6d71SNava kishore Manne - Nava kishore Manne <nava.manne@xilinx.com> 11*f8cc6d71SNava kishore Manne 12*f8cc6d71SNava kishore Mannedescription: The zynqmp-firmware node describes the interface to platform 13*f8cc6d71SNava kishore Manne firmware. ZynqMP has an interface to communicate with secure firmware. 14*f8cc6d71SNava kishore Manne Firmware driver provides an interface to firmware APIs. Interface APIs 15*f8cc6d71SNava kishore Manne can be used by any driver to communicate to PMUFW(Platform Management Unit). 16*f8cc6d71SNava kishore Manne These requests include clock management, pin control, device control, 17*f8cc6d71SNava kishore Manne power management service, FPGA service and other platform management 18*f8cc6d71SNava kishore Manne services. 19*f8cc6d71SNava kishore Manne 20*f8cc6d71SNava kishore Manneproperties: 21*f8cc6d71SNava kishore Manne compatible: 22*f8cc6d71SNava kishore Manne oneOf: 23*f8cc6d71SNava kishore Manne - description: For implementations complying for Zynq Ultrascale+ MPSoC. 24*f8cc6d71SNava kishore Manne const: xlnx,zynqmp-firmware 25*f8cc6d71SNava kishore Manne 26*f8cc6d71SNava kishore Manne - description: For implementations complying for Versal. 27*f8cc6d71SNava kishore Manne const: xlnx,versal-firmware 28*f8cc6d71SNava kishore Manne 29*f8cc6d71SNava kishore Manne method: 30*f8cc6d71SNava kishore Manne description: | 31*f8cc6d71SNava kishore Manne The method of calling the PM-API firmware layer. 32*f8cc6d71SNava kishore Manne Permitted values are. 33*f8cc6d71SNava kishore Manne - "smc" : SMC #0, following the SMCCC 34*f8cc6d71SNava kishore Manne - "hvc" : HVC #0, following the SMCCC 35*f8cc6d71SNava kishore Manne 36*f8cc6d71SNava kishore Manne $ref: /schemas/types.yaml#/definitions/string-array 37*f8cc6d71SNava kishore Manne enum: 38*f8cc6d71SNava kishore Manne - smc 39*f8cc6d71SNava kishore Manne - hvc 40*f8cc6d71SNava kishore Manne 41*f8cc6d71SNava kishore Manne versal_fpga: 42*f8cc6d71SNava kishore Manne $ref: /schemas/fpga/xlnx,versal-fpga.yaml# 43*f8cc6d71SNava kishore Manne description: Compatible of the FPGA device. 44*f8cc6d71SNava kishore Manne type: object 45*f8cc6d71SNava kishore Manne 46*f8cc6d71SNava kishore Manne zynqmp-aes: 47*f8cc6d71SNava kishore Manne $ref: /schemas/crypto/xlnx,zynqmp-aes.yaml# 48*f8cc6d71SNava kishore Manne description: The ZynqMP AES-GCM hardened cryptographic accelerator is 49*f8cc6d71SNava kishore Manne used to encrypt or decrypt the data with provided key and initialization 50*f8cc6d71SNava kishore Manne vector. 51*f8cc6d71SNava kishore Manne type: object 52*f8cc6d71SNava kishore Manne 53*f8cc6d71SNava kishore Manne clock-controller: 54*f8cc6d71SNava kishore Manne $ref: /schemas/clock/xlnx,versal-clk.yaml# 55*f8cc6d71SNava kishore Manne description: The clock controller is a hardware block of Xilinx versal 56*f8cc6d71SNava kishore Manne clock tree. It reads required input clock frequencies from the devicetree 57*f8cc6d71SNava kishore Manne and acts as clock provider for all clock consumers of PS clocks.list of 58*f8cc6d71SNava kishore Manne clock specifiers which are external input clocks to the given clock 59*f8cc6d71SNava kishore Manne controller. 60*f8cc6d71SNava kishore Manne type: object 61*f8cc6d71SNava kishore Manne 62*f8cc6d71SNava kishore Mannerequired: 63*f8cc6d71SNava kishore Manne - compatible 64*f8cc6d71SNava kishore Manne 65*f8cc6d71SNava kishore ManneadditionalProperties: false 66*f8cc6d71SNava kishore Manne 67*f8cc6d71SNava kishore Manneexamples: 68*f8cc6d71SNava kishore Manne - | 69*f8cc6d71SNava kishore Manne versal-firmware { 70*f8cc6d71SNava kishore Manne compatible = "xlnx,versal-firmware"; 71*f8cc6d71SNava kishore Manne method = "smc"; 72*f8cc6d71SNava kishore Manne 73*f8cc6d71SNava kishore Manne versal_fpga: versal_fpga { 74*f8cc6d71SNava kishore Manne compatible = "xlnx,versal-fpga"; 75*f8cc6d71SNava kishore Manne }; 76*f8cc6d71SNava kishore Manne 77*f8cc6d71SNava kishore Manne xlnx_aes: zynqmp-aes { 78*f8cc6d71SNava kishore Manne compatible = "xlnx,zynqmp-aes"; 79*f8cc6d71SNava kishore Manne }; 80*f8cc6d71SNava kishore Manne 81*f8cc6d71SNava kishore Manne versal_clk: clock-controller { 82*f8cc6d71SNava kishore Manne #clock-cells = <1>; 83*f8cc6d71SNava kishore Manne compatible = "xlnx,versal-clk"; 84*f8cc6d71SNava kishore Manne clocks = <&ref>, <&alt_ref>, <&pl_alt_ref>; 85*f8cc6d71SNava kishore Manne clock-names = "ref", "alt_ref", "pl_alt_ref"; 86*f8cc6d71SNava kishore Manne }; 87*f8cc6d71SNava kishore Manne }; 88*f8cc6d71SNava kishore Manne 89*f8cc6d71SNava kishore Manne... 90