mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 06:44:00 -04:00
Firmware node has more than fpga, aes and clock child nodes but also power, reset, gpio, pinctrl and pcap which are not described yet. All of them have binding in separate files but there is missing connection to firmware node that's why describe it. Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Link: https://lore.kernel.org/r/1d7988cfadf3554d11f0779f96a670b4fd86ce5a.1703161663.git.michal.simek@amd.com Signed-off-by: Michal Simek <michal.simek@amd.com>
160 lines
4.6 KiB
YAML
160 lines
4.6 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/firmware/xilinx/xlnx,zynqmp-firmware.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: Xilinx firmware driver
|
|
|
|
maintainers:
|
|
- Nava kishore Manne <nava.kishore.manne@amd.com>
|
|
|
|
description: The zynqmp-firmware node describes the interface to platform
|
|
firmware. ZynqMP has an interface to communicate with secure firmware.
|
|
Firmware driver provides an interface to firmware APIs. Interface APIs
|
|
can be used by any driver to communicate to PMUFW(Platform Management Unit).
|
|
These requests include clock management, pin control, device control,
|
|
power management service, FPGA service and other platform management
|
|
services.
|
|
|
|
properties:
|
|
compatible:
|
|
oneOf:
|
|
- description: For implementations complying for Zynq Ultrascale+ MPSoC.
|
|
const: xlnx,zynqmp-firmware
|
|
|
|
- description: For implementations complying for Versal.
|
|
const: xlnx,versal-firmware
|
|
|
|
- description: For implementations complying for Versal NET.
|
|
items:
|
|
- enum:
|
|
- xlnx,versal-net-firmware
|
|
- const: xlnx,versal-firmware
|
|
|
|
method:
|
|
description: |
|
|
The method of calling the PM-API firmware layer.
|
|
Permitted values are.
|
|
- "smc" : SMC #0, following the SMCCC
|
|
- "hvc" : HVC #0, following the SMCCC
|
|
|
|
$ref: /schemas/types.yaml#/definitions/string-array
|
|
enum:
|
|
- smc
|
|
- hvc
|
|
|
|
"#power-domain-cells":
|
|
const: 1
|
|
|
|
gpio:
|
|
$ref: /schemas/gpio/xlnx,zynqmp-gpio-modepin.yaml#
|
|
description: The gpio node describes connect to PS_MODE pins via firmware
|
|
interface.
|
|
type: object
|
|
|
|
pcap:
|
|
$ref: /schemas/fpga/xlnx,zynqmp-pcap-fpga.yaml
|
|
description: The ZynqMP SoC uses the PCAP (Processor Configuration Port) to
|
|
configure the Programmable Logic (PL). The configuration uses the
|
|
firmware interface.
|
|
type: object
|
|
|
|
pinctrl:
|
|
$ref: /schemas/pinctrl/xlnx,zynqmp-pinctrl.yaml#
|
|
description: The pinctrl node provides access to pinconfig and pincontrol
|
|
functionality available in firmware.
|
|
type: object
|
|
|
|
power-management:
|
|
$ref: /schemas/power/reset/xlnx,zynqmp-power.yaml#
|
|
description: The zynqmp-power node describes the power management
|
|
configurations. It will control remote suspend/shutdown interfaces.
|
|
type: object
|
|
|
|
reset-controller:
|
|
$ref: /schemas/reset/xlnx,zynqmp-reset.yaml#
|
|
description: The reset-controller node describes connection to the reset
|
|
functionality via firmware interface.
|
|
type: object
|
|
|
|
versal-fpga:
|
|
$ref: /schemas/fpga/xlnx,versal-fpga.yaml#
|
|
description: Compatible of the FPGA device.
|
|
type: object
|
|
|
|
zynqmp-aes:
|
|
$ref: /schemas/crypto/xlnx,zynqmp-aes.yaml#
|
|
description: The ZynqMP AES-GCM hardened cryptographic accelerator is
|
|
used to encrypt or decrypt the data with provided key and initialization
|
|
vector.
|
|
type: object
|
|
|
|
clock-controller:
|
|
$ref: /schemas/clock/xlnx,versal-clk.yaml#
|
|
description: The clock controller is a hardware block of Xilinx versal
|
|
clock tree. It reads required input clock frequencies from the devicetree
|
|
and acts as clock provider for all clock consumers of PS clocks.list of
|
|
clock specifiers which are external input clocks to the given clock
|
|
controller.
|
|
type: object
|
|
|
|
required:
|
|
- compatible
|
|
|
|
additionalProperties: false
|
|
|
|
examples:
|
|
- |
|
|
#include <dt-bindings/power/xlnx-zynqmp-power.h>
|
|
firmware {
|
|
zynqmp_firmware: zynqmp-firmware {
|
|
#power-domain-cells = <1>;
|
|
gpio {
|
|
compatible = "xlnx,zynqmp-gpio-modepin";
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
};
|
|
pcap {
|
|
compatible = "xlnx,zynqmp-pcap-fpga";
|
|
};
|
|
pinctrl {
|
|
compatible = "xlnx,zynqmp-pinctrl";
|
|
};
|
|
power-management {
|
|
compatible = "xlnx,zynqmp-power";
|
|
interrupts = <0 35 4>;
|
|
};
|
|
reset-controller {
|
|
compatible = "xlnx,zynqmp-reset";
|
|
#reset-cells = <1>;
|
|
};
|
|
};
|
|
};
|
|
|
|
sata {
|
|
power-domains = <&zynqmp_firmware PD_SATA>;
|
|
};
|
|
|
|
versal-firmware {
|
|
compatible = "xlnx,versal-firmware";
|
|
method = "smc";
|
|
|
|
versal_fpga: versal-fpga {
|
|
compatible = "xlnx,versal-fpga";
|
|
};
|
|
|
|
xlnx_aes: zynqmp-aes {
|
|
compatible = "xlnx,zynqmp-aes";
|
|
};
|
|
|
|
versal_clk: clock-controller {
|
|
#clock-cells = <1>;
|
|
compatible = "xlnx,versal-clk";
|
|
clocks = <&ref>, <&pl_alt_ref>;
|
|
clock-names = "ref", "pl_alt_ref";
|
|
};
|
|
};
|
|
|
|
...
|