162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 262306a36Sopenharmony_ci%YAML 1.2 362306a36Sopenharmony_ci--- 462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/firmware/xilinx/xlnx,zynqmp-firmware.yaml# 562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 662306a36Sopenharmony_ci 762306a36Sopenharmony_cititle: Xilinx firmware driver 862306a36Sopenharmony_ci 962306a36Sopenharmony_cimaintainers: 1062306a36Sopenharmony_ci - Nava kishore Manne <nava.kishore.manne@amd.com> 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_cidescription: The zynqmp-firmware node describes the interface to platform 1362306a36Sopenharmony_ci firmware. ZynqMP has an interface to communicate with secure firmware. 1462306a36Sopenharmony_ci Firmware driver provides an interface to firmware APIs. Interface APIs 1562306a36Sopenharmony_ci can be used by any driver to communicate to PMUFW(Platform Management Unit). 1662306a36Sopenharmony_ci These requests include clock management, pin control, device control, 1762306a36Sopenharmony_ci power management service, FPGA service and other platform management 1862306a36Sopenharmony_ci services. 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ciproperties: 2162306a36Sopenharmony_ci compatible: 2262306a36Sopenharmony_ci oneOf: 2362306a36Sopenharmony_ci - description: For implementations complying for Zynq Ultrascale+ MPSoC. 2462306a36Sopenharmony_ci const: xlnx,zynqmp-firmware 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_ci - description: For implementations complying for Versal. 2762306a36Sopenharmony_ci const: xlnx,versal-firmware 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_ci method: 3062306a36Sopenharmony_ci description: | 3162306a36Sopenharmony_ci The method of calling the PM-API firmware layer. 3262306a36Sopenharmony_ci Permitted values are. 3362306a36Sopenharmony_ci - "smc" : SMC #0, following the SMCCC 3462306a36Sopenharmony_ci - "hvc" : HVC #0, following the SMCCC 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/string-array 3762306a36Sopenharmony_ci enum: 3862306a36Sopenharmony_ci - smc 3962306a36Sopenharmony_ci - hvc 4062306a36Sopenharmony_ci 4162306a36Sopenharmony_ci "#power-domain-cells": 4262306a36Sopenharmony_ci const: 1 4362306a36Sopenharmony_ci 4462306a36Sopenharmony_ci versal_fpga: 4562306a36Sopenharmony_ci $ref: /schemas/fpga/xlnx,versal-fpga.yaml# 4662306a36Sopenharmony_ci description: Compatible of the FPGA device. 4762306a36Sopenharmony_ci type: object 4862306a36Sopenharmony_ci 4962306a36Sopenharmony_ci zynqmp-aes: 5062306a36Sopenharmony_ci $ref: /schemas/crypto/xlnx,zynqmp-aes.yaml# 5162306a36Sopenharmony_ci description: The ZynqMP AES-GCM hardened cryptographic accelerator is 5262306a36Sopenharmony_ci used to encrypt or decrypt the data with provided key and initialization 5362306a36Sopenharmony_ci vector. 5462306a36Sopenharmony_ci type: object 5562306a36Sopenharmony_ci 5662306a36Sopenharmony_ci clock-controller: 5762306a36Sopenharmony_ci $ref: /schemas/clock/xlnx,versal-clk.yaml# 5862306a36Sopenharmony_ci description: The clock controller is a hardware block of Xilinx versal 5962306a36Sopenharmony_ci clock tree. It reads required input clock frequencies from the devicetree 6062306a36Sopenharmony_ci and acts as clock provider for all clock consumers of PS clocks.list of 6162306a36Sopenharmony_ci clock specifiers which are external input clocks to the given clock 6262306a36Sopenharmony_ci controller. 6362306a36Sopenharmony_ci type: object 6462306a36Sopenharmony_ci 6562306a36Sopenharmony_cirequired: 6662306a36Sopenharmony_ci - compatible 6762306a36Sopenharmony_ci 6862306a36Sopenharmony_ciadditionalProperties: false 6962306a36Sopenharmony_ci 7062306a36Sopenharmony_ciexamples: 7162306a36Sopenharmony_ci - | 7262306a36Sopenharmony_ci #include <dt-bindings/power/xlnx-zynqmp-power.h> 7362306a36Sopenharmony_ci firmware { 7462306a36Sopenharmony_ci zynqmp_firmware: zynqmp-firmware { 7562306a36Sopenharmony_ci #power-domain-cells = <1>; 7662306a36Sopenharmony_ci }; 7762306a36Sopenharmony_ci }; 7862306a36Sopenharmony_ci 7962306a36Sopenharmony_ci sata { 8062306a36Sopenharmony_ci power-domains = <&zynqmp_firmware PD_SATA>; 8162306a36Sopenharmony_ci }; 8262306a36Sopenharmony_ci 8362306a36Sopenharmony_ci versal-firmware { 8462306a36Sopenharmony_ci compatible = "xlnx,versal-firmware"; 8562306a36Sopenharmony_ci method = "smc"; 8662306a36Sopenharmony_ci 8762306a36Sopenharmony_ci versal_fpga: versal_fpga { 8862306a36Sopenharmony_ci compatible = "xlnx,versal-fpga"; 8962306a36Sopenharmony_ci }; 9062306a36Sopenharmony_ci 9162306a36Sopenharmony_ci xlnx_aes: zynqmp-aes { 9262306a36Sopenharmony_ci compatible = "xlnx,zynqmp-aes"; 9362306a36Sopenharmony_ci }; 9462306a36Sopenharmony_ci 9562306a36Sopenharmony_ci versal_clk: clock-controller { 9662306a36Sopenharmony_ci #clock-cells = <1>; 9762306a36Sopenharmony_ci compatible = "xlnx,versal-clk"; 9862306a36Sopenharmony_ci clocks = <&ref>, <&alt_ref>, <&pl_alt_ref>; 9962306a36Sopenharmony_ci clock-names = "ref", "alt_ref", "pl_alt_ref"; 10062306a36Sopenharmony_ci }; 10162306a36Sopenharmony_ci }; 10262306a36Sopenharmony_ci 10362306a36Sopenharmony_ci... 104