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 298e312baaSJay Buddhabhatti - description: For implementations complying for Versal NET. 308e312baaSJay Buddhabhatti items: 318e312baaSJay Buddhabhatti - enum: 328e312baaSJay Buddhabhatti - xlnx,versal-net-firmware 338e312baaSJay Buddhabhatti - const: xlnx,versal-firmware 348e312baaSJay Buddhabhatti 35f8cc6d71SNava kishore Manne method: 36f8cc6d71SNava kishore Manne description: | 37f8cc6d71SNava kishore Manne The method of calling the PM-API firmware layer. 38f8cc6d71SNava kishore Manne Permitted values are. 39f8cc6d71SNava kishore Manne - "smc" : SMC #0, following the SMCCC 40f8cc6d71SNava kishore Manne - "hvc" : HVC #0, following the SMCCC 41f8cc6d71SNava kishore Manne 42f8cc6d71SNava kishore Manne $ref: /schemas/types.yaml#/definitions/string-array 43f8cc6d71SNava kishore Manne enum: 44f8cc6d71SNava kishore Manne - smc 45f8cc6d71SNava kishore Manne - hvc 46f8cc6d71SNava kishore Manne 47de259b7bSNaman Trivedi Manojbhai "#power-domain-cells": 48de259b7bSNaman Trivedi Manojbhai const: 1 49de259b7bSNaman Trivedi Manojbhai 50e83e3c55SMichal Simek clock-controller: 51e83e3c55SMichal Simek $ref: /schemas/clock/xlnx,versal-clk.yaml# 52e83e3c55SMichal Simek description: The clock controller is a hardware block of Xilinx versal 53e83e3c55SMichal Simek clock tree. It reads required input clock frequencies from the devicetree 54e83e3c55SMichal Simek and acts as clock provider for all clock consumers of PS clocks.list of 55e83e3c55SMichal Simek clock specifiers which are external input clocks to the given clock 56e83e3c55SMichal Simek controller. 57e83e3c55SMichal Simek type: object 58e83e3c55SMichal Simek 596f9c4e69SMichal Simek gpio: 606f9c4e69SMichal Simek $ref: /schemas/gpio/xlnx,zynqmp-gpio-modepin.yaml# 616f9c4e69SMichal Simek description: The gpio node describes connect to PS_MODE pins via firmware 626f9c4e69SMichal Simek interface. 636f9c4e69SMichal Simek type: object 646f9c4e69SMichal Simek 65*d8764d34SMichal Simek soc-nvmem: 66*d8764d34SMichal Simek $ref: /schemas/nvmem/xlnx,zynqmp-nvmem.yaml# 67*d8764d34SMichal Simek description: The ZynqMP MPSoC provides access to the hardware related data 68*d8764d34SMichal Simek like SOC revision, IDCODE and specific purpose efuses. 69*d8764d34SMichal Simek type: object 70*d8764d34SMichal Simek 716f9c4e69SMichal Simek pcap: 726f9c4e69SMichal Simek $ref: /schemas/fpga/xlnx,zynqmp-pcap-fpga.yaml 736f9c4e69SMichal Simek description: The ZynqMP SoC uses the PCAP (Processor Configuration Port) to 746f9c4e69SMichal Simek configure the Programmable Logic (PL). The configuration uses the 756f9c4e69SMichal Simek firmware interface. 766f9c4e69SMichal Simek type: object 776f9c4e69SMichal Simek 786f9c4e69SMichal Simek pinctrl: 796f9c4e69SMichal Simek $ref: /schemas/pinctrl/xlnx,zynqmp-pinctrl.yaml# 806f9c4e69SMichal Simek description: The pinctrl node provides access to pinconfig and pincontrol 816f9c4e69SMichal Simek functionality available in firmware. 826f9c4e69SMichal Simek type: object 836f9c4e69SMichal Simek 846f9c4e69SMichal Simek power-management: 856f9c4e69SMichal Simek $ref: /schemas/power/reset/xlnx,zynqmp-power.yaml# 866f9c4e69SMichal Simek description: The zynqmp-power node describes the power management 876f9c4e69SMichal Simek configurations. It will control remote suspend/shutdown interfaces. 886f9c4e69SMichal Simek type: object 896f9c4e69SMichal Simek 906f9c4e69SMichal Simek reset-controller: 916f9c4e69SMichal Simek $ref: /schemas/reset/xlnx,zynqmp-reset.yaml# 926f9c4e69SMichal Simek description: The reset-controller node describes connection to the reset 936f9c4e69SMichal Simek functionality via firmware interface. 946f9c4e69SMichal Simek type: object 956f9c4e69SMichal Simek 9693b7a95fSMichal Simek versal-fpga: 97f8cc6d71SNava kishore Manne $ref: /schemas/fpga/xlnx,versal-fpga.yaml# 98f8cc6d71SNava kishore Manne description: Compatible of the FPGA device. 99f8cc6d71SNava kishore Manne type: object 100f8cc6d71SNava kishore Manne 101f8cc6d71SNava kishore Manne zynqmp-aes: 102f8cc6d71SNava kishore Manne $ref: /schemas/crypto/xlnx,zynqmp-aes.yaml# 103f8cc6d71SNava kishore Manne description: The ZynqMP AES-GCM hardened cryptographic accelerator is 104f8cc6d71SNava kishore Manne used to encrypt or decrypt the data with provided key and initialization 105f8cc6d71SNava kishore Manne vector. 106f8cc6d71SNava kishore Manne type: object 107f8cc6d71SNava kishore Manne 108f8cc6d71SNava kishore Mannerequired: 109f8cc6d71SNava kishore Manne - compatible 110f8cc6d71SNava kishore Manne 111f8cc6d71SNava kishore ManneadditionalProperties: false 112f8cc6d71SNava kishore Manne 113f8cc6d71SNava kishore Manneexamples: 114f8cc6d71SNava kishore Manne - | 115de259b7bSNaman Trivedi Manojbhai #include <dt-bindings/power/xlnx-zynqmp-power.h> 116de259b7bSNaman Trivedi Manojbhai firmware { 117de259b7bSNaman Trivedi Manojbhai zynqmp_firmware: zynqmp-firmware { 118de259b7bSNaman Trivedi Manojbhai #power-domain-cells = <1>; 119*d8764d34SMichal Simek soc-nvmem { 120*d8764d34SMichal Simek compatible = "xlnx,zynqmp-nvmem-fw"; 121*d8764d34SMichal Simek nvmem-layout { 122*d8764d34SMichal Simek compatible = "fixed-layout"; 123*d8764d34SMichal Simek #address-cells = <1>; 124*d8764d34SMichal Simek #size-cells = <1>; 125*d8764d34SMichal Simek 126*d8764d34SMichal Simek soc_revision: soc-revision@0 { 127*d8764d34SMichal Simek reg = <0x0 0x4>; 128*d8764d34SMichal Simek }; 129*d8764d34SMichal Simek }; 130*d8764d34SMichal Simek }; 1316f9c4e69SMichal Simek gpio { 1326f9c4e69SMichal Simek compatible = "xlnx,zynqmp-gpio-modepin"; 1336f9c4e69SMichal Simek gpio-controller; 1346f9c4e69SMichal Simek #gpio-cells = <2>; 1356f9c4e69SMichal Simek }; 1366f9c4e69SMichal Simek pcap { 1376f9c4e69SMichal Simek compatible = "xlnx,zynqmp-pcap-fpga"; 1386f9c4e69SMichal Simek }; 1396f9c4e69SMichal Simek pinctrl { 1406f9c4e69SMichal Simek compatible = "xlnx,zynqmp-pinctrl"; 1416f9c4e69SMichal Simek }; 1426f9c4e69SMichal Simek power-management { 1436f9c4e69SMichal Simek compatible = "xlnx,zynqmp-power"; 1446f9c4e69SMichal Simek interrupts = <0 35 4>; 1456f9c4e69SMichal Simek }; 1466f9c4e69SMichal Simek reset-controller { 1476f9c4e69SMichal Simek compatible = "xlnx,zynqmp-reset"; 1486f9c4e69SMichal Simek #reset-cells = <1>; 1496f9c4e69SMichal Simek }; 150de259b7bSNaman Trivedi Manojbhai }; 151de259b7bSNaman Trivedi Manojbhai }; 152de259b7bSNaman Trivedi Manojbhai 153de259b7bSNaman Trivedi Manojbhai sata { 154de259b7bSNaman Trivedi Manojbhai power-domains = <&zynqmp_firmware PD_SATA>; 155de259b7bSNaman Trivedi Manojbhai }; 156de259b7bSNaman Trivedi Manojbhai 157f8cc6d71SNava kishore Manne versal-firmware { 158f8cc6d71SNava kishore Manne compatible = "xlnx,versal-firmware"; 159f8cc6d71SNava kishore Manne method = "smc"; 160f8cc6d71SNava kishore Manne 16193b7a95fSMichal Simek versal_fpga: versal-fpga { 162f8cc6d71SNava kishore Manne compatible = "xlnx,versal-fpga"; 163f8cc6d71SNava kishore Manne }; 164f8cc6d71SNava kishore Manne 165f8cc6d71SNava kishore Manne xlnx_aes: zynqmp-aes { 166f8cc6d71SNava kishore Manne compatible = "xlnx,zynqmp-aes"; 167f8cc6d71SNava kishore Manne }; 168f8cc6d71SNava kishore Manne 169f8cc6d71SNava kishore Manne versal_clk: clock-controller { 170f8cc6d71SNava kishore Manne #clock-cells = <1>; 171f8cc6d71SNava kishore Manne compatible = "xlnx,versal-clk"; 17239118392SShubhrajyoti Datta clocks = <&ref>, <&pl_alt_ref>; 17339118392SShubhrajyoti Datta clock-names = "ref", "pl_alt_ref"; 174f8cc6d71SNava kishore Manne }; 175f8cc6d71SNava kishore Manne }; 176f8cc6d71SNava kishore Manne 177f8cc6d71SNava kishore Manne... 178