Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/Documentation/devicetree/bindings/firmware/xilinx/xlnx,zynqmp-firmware.yaml
54945 views
1
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2
%YAML 1.2
3
---
4
$id: http://devicetree.org/schemas/firmware/xilinx/xlnx,zynqmp-firmware.yaml#
5
$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7
title: Xilinx firmware driver
8
9
maintainers:
10
- Nava kishore Manne <nava.kishore.manne@amd.com>
11
12
description: The zynqmp-firmware node describes the interface to platform
13
firmware. ZynqMP has an interface to communicate with secure firmware.
14
Firmware driver provides an interface to firmware APIs. Interface APIs
15
can be used by any driver to communicate to PMUFW(Platform Management Unit).
16
These requests include clock management, pin control, device control,
17
power management service, FPGA service and other platform management
18
services.
19
20
properties:
21
compatible:
22
oneOf:
23
- description: For implementations complying for Zynq Ultrascale+ MPSoC.
24
const: xlnx,zynqmp-firmware
25
26
- description: For implementations complying for Versal.
27
const: xlnx,versal-firmware
28
29
- description: For implementations complying for Versal NET.
30
items:
31
- enum:
32
- xlnx,versal-net-firmware
33
- const: xlnx,versal-firmware
34
35
method:
36
description: |
37
The method of calling the PM-API firmware layer.
38
Permitted values are.
39
- "smc" : SMC #0, following the SMCCC
40
- "hvc" : HVC #0, following the SMCCC
41
42
$ref: /schemas/types.yaml#/definitions/string-array
43
enum:
44
- smc
45
- hvc
46
47
"#power-domain-cells":
48
const: 1
49
50
clock-controller:
51
$ref: /schemas/clock/xlnx,versal-clk.yaml#
52
description: The clock controller is a hardware block of Xilinx versal
53
clock tree. It reads required input clock frequencies from the devicetree
54
and acts as clock provider for all clock consumers of PS clocks.list of
55
clock specifiers which are external input clocks to the given clock
56
controller.
57
type: object
58
59
gpio:
60
$ref: /schemas/gpio/xlnx,zynqmp-gpio-modepin.yaml#
61
description: The gpio node describes connect to PS_MODE pins via firmware
62
interface.
63
type: object
64
65
soc-nvmem:
66
$ref: /schemas/nvmem/xlnx,zynqmp-nvmem.yaml#
67
description: The ZynqMP MPSoC provides access to the hardware related data
68
like SOC revision, IDCODE and specific purpose efuses.
69
type: object
70
71
pcap:
72
$ref: /schemas/fpga/xlnx,zynqmp-pcap-fpga.yaml
73
description: The ZynqMP SoC uses the PCAP (Processor Configuration Port) to
74
configure the Programmable Logic (PL). The configuration uses the
75
firmware interface.
76
type: object
77
78
pinctrl:
79
description: The pinctrl node provides access to pinconfig and pincontrol
80
functionality available in firmware.
81
type: object
82
83
power-management:
84
$ref: /schemas/power/reset/xlnx,zynqmp-power.yaml#
85
description: The zynqmp-power node describes the power management
86
configurations. It will control remote suspend/shutdown interfaces.
87
type: object
88
89
reset-controller:
90
$ref: /schemas/reset/xlnx,zynqmp-reset.yaml#
91
description: The reset-controller node describes connection to the reset
92
functionality via firmware interface.
93
type: object
94
95
versal-fpga:
96
$ref: /schemas/fpga/xlnx,versal-fpga.yaml#
97
description: Compatible of the FPGA device.
98
type: object
99
100
zynqmp-aes:
101
$ref: /schemas/crypto/xlnx,zynqmp-aes.yaml#
102
description: The ZynqMP AES-GCM hardened cryptographic accelerator is
103
used to encrypt or decrypt the data with provided key and initialization
104
vector.
105
type: object
106
deprecated: true
107
108
allOf:
109
- if:
110
properties:
111
compatible:
112
contains:
113
const: xlnx,zynqmp-firmware
114
then:
115
properties:
116
pinctrl:
117
$ref: /schemas/pinctrl/xlnx,zynqmp-pinctrl.yaml#
118
else:
119
properties:
120
pinctrl:
121
$ref: /schemas/pinctrl/xlnx,versal-pinctrl.yaml#
122
123
required:
124
- compatible
125
126
additionalProperties: false
127
128
examples:
129
- |
130
#include <dt-bindings/power/xlnx-zynqmp-power.h>
131
firmware {
132
zynqmp_firmware: zynqmp-firmware {
133
compatible = "xlnx,zynqmp-firmware";
134
#power-domain-cells = <1>;
135
soc-nvmem {
136
compatible = "xlnx,zynqmp-nvmem-fw";
137
nvmem-layout {
138
compatible = "fixed-layout";
139
#address-cells = <1>;
140
#size-cells = <1>;
141
142
soc_revision: soc-revision@0 {
143
reg = <0x0 0x4>;
144
};
145
};
146
};
147
gpio {
148
compatible = "xlnx,zynqmp-gpio-modepin";
149
gpio-controller;
150
#gpio-cells = <2>;
151
};
152
pcap {
153
compatible = "xlnx,zynqmp-pcap-fpga";
154
};
155
pinctrl {
156
compatible = "xlnx,zynqmp-pinctrl";
157
};
158
power-management {
159
compatible = "xlnx,zynqmp-power";
160
interrupts = <0 35 4>;
161
};
162
reset-controller {
163
compatible = "xlnx,zynqmp-reset";
164
#reset-cells = <1>;
165
};
166
};
167
};
168
169
sata {
170
power-domains = <&zynqmp_firmware PD_SATA>;
171
};
172
173
versal-firmware {
174
compatible = "xlnx,versal-firmware";
175
method = "smc";
176
177
versal_fpga: versal-fpga {
178
compatible = "xlnx,versal-fpga";
179
};
180
181
pinctrl {
182
compatible = "xlnx,versal-pinctrl";
183
};
184
185
xlnx_aes: zynqmp-aes {
186
compatible = "xlnx,zynqmp-aes";
187
};
188
189
versal_clk: clock-controller {
190
#clock-cells = <1>;
191
compatible = "xlnx,versal-clk";
192
clocks = <&ref>, <&pl_alt_ref>;
193
clock-names = "ref", "pl_alt_ref";
194
};
195
};
196
197
...
198
199