Path: blob/master/Documentation/devicetree/bindings/firmware/xilinx/xlnx,zynqmp-firmware.yaml
26309 views
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)1%YAML 1.22---3$id: http://devicetree.org/schemas/firmware/xilinx/xlnx,zynqmp-firmware.yaml#4$schema: http://devicetree.org/meta-schemas/core.yaml#56title: Xilinx firmware driver78maintainers:9- Nava kishore Manne <nava.kishore.manne@amd.com>1011description: The zynqmp-firmware node describes the interface to platform12firmware. ZynqMP has an interface to communicate with secure firmware.13Firmware driver provides an interface to firmware APIs. Interface APIs14can be used by any driver to communicate to PMUFW(Platform Management Unit).15These requests include clock management, pin control, device control,16power management service, FPGA service and other platform management17services.1819properties:20compatible:21oneOf:22- description: For implementations complying for Zynq Ultrascale+ MPSoC.23const: xlnx,zynqmp-firmware2425- description: For implementations complying for Versal.26const: xlnx,versal-firmware2728- description: For implementations complying for Versal NET.29items:30- enum:31- xlnx,versal-net-firmware32- const: xlnx,versal-firmware3334method:35description: |36The method of calling the PM-API firmware layer.37Permitted values are.38- "smc" : SMC #0, following the SMCCC39- "hvc" : HVC #0, following the SMCCC4041$ref: /schemas/types.yaml#/definitions/string-array42enum:43- smc44- hvc4546"#power-domain-cells":47const: 14849clock-controller:50$ref: /schemas/clock/xlnx,versal-clk.yaml#51description: The clock controller is a hardware block of Xilinx versal52clock tree. It reads required input clock frequencies from the devicetree53and acts as clock provider for all clock consumers of PS clocks.list of54clock specifiers which are external input clocks to the given clock55controller.56type: object5758gpio:59$ref: /schemas/gpio/xlnx,zynqmp-gpio-modepin.yaml#60description: The gpio node describes connect to PS_MODE pins via firmware61interface.62type: object6364soc-nvmem:65$ref: /schemas/nvmem/xlnx,zynqmp-nvmem.yaml#66description: The ZynqMP MPSoC provides access to the hardware related data67like SOC revision, IDCODE and specific purpose efuses.68type: object6970pcap:71$ref: /schemas/fpga/xlnx,zynqmp-pcap-fpga.yaml72description: The ZynqMP SoC uses the PCAP (Processor Configuration Port) to73configure the Programmable Logic (PL). The configuration uses the74firmware interface.75type: object7677pinctrl:78$ref: /schemas/pinctrl/xlnx,zynqmp-pinctrl.yaml#79description: The pinctrl node provides access to pinconfig and pincontrol80functionality available in firmware.81type: object8283power-management:84$ref: /schemas/power/reset/xlnx,zynqmp-power.yaml#85description: The zynqmp-power node describes the power management86configurations. It will control remote suspend/shutdown interfaces.87type: object8889reset-controller:90$ref: /schemas/reset/xlnx,zynqmp-reset.yaml#91description: The reset-controller node describes connection to the reset92functionality via firmware interface.93type: object9495versal-fpga:96$ref: /schemas/fpga/xlnx,versal-fpga.yaml#97description: Compatible of the FPGA device.98type: object99100zynqmp-aes:101$ref: /schemas/crypto/xlnx,zynqmp-aes.yaml#102description: The ZynqMP AES-GCM hardened cryptographic accelerator is103used to encrypt or decrypt the data with provided key and initialization104vector.105type: object106107required:108- compatible109110additionalProperties: false111112examples:113- |114#include <dt-bindings/power/xlnx-zynqmp-power.h>115firmware {116zynqmp_firmware: zynqmp-firmware {117#power-domain-cells = <1>;118soc-nvmem {119compatible = "xlnx,zynqmp-nvmem-fw";120nvmem-layout {121compatible = "fixed-layout";122#address-cells = <1>;123#size-cells = <1>;124125soc_revision: soc-revision@0 {126reg = <0x0 0x4>;127};128};129};130gpio {131compatible = "xlnx,zynqmp-gpio-modepin";132gpio-controller;133#gpio-cells = <2>;134};135pcap {136compatible = "xlnx,zynqmp-pcap-fpga";137};138pinctrl {139compatible = "xlnx,zynqmp-pinctrl";140};141power-management {142compatible = "xlnx,zynqmp-power";143interrupts = <0 35 4>;144};145reset-controller {146compatible = "xlnx,zynqmp-reset";147#reset-cells = <1>;148};149};150};151152sata {153power-domains = <&zynqmp_firmware PD_SATA>;154};155156versal-firmware {157compatible = "xlnx,versal-firmware";158method = "smc";159160versal_fpga: versal-fpga {161compatible = "xlnx,versal-fpga";162};163164xlnx_aes: zynqmp-aes {165compatible = "xlnx,zynqmp-aes";166};167168versal_clk: clock-controller {169#clock-cells = <1>;170compatible = "xlnx,versal-clk";171clocks = <&ref>, <&pl_alt_ref>;172clock-names = "ref", "pl_alt_ref";173};174};175176...177178179