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