blob: d3d8a2e143ed25dee5634ae9539c413c4f51f865 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/gpio/xlnx,gpio-xilinx.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Xilinx AXI GPIO controller
8
9maintainers:
10 - Neeli Srinivas <srinivas.neeli@amd.com>
11
12description:
13 The AXI GPIO design provides a general purpose input/output interface
14 to an AXI4-Lite interface. The AXI GPIO can be configured as either
15 a single or a dual-channel device. The width of each channel is
16 independently configurable. The channels can be configured to
17 generate an interrupt when a transition on any of their inputs occurs.
18
19properties:
20 compatible:
21 enum:
22 - xlnx,xps-gpio-1.00.a
23
24 reg:
25 maxItems: 1
26
27 "#gpio-cells":
28 const: 2
29
30 interrupts:
31 maxItems: 1
32
33 gpio-controller: true
34
35 gpio-line-names:
36 description: strings describing the names of each gpio line
37 minItems: 1
38 maxItems: 64
39
40 interrupt-controller: true
41
42 "#interrupt-cells":
43 const: 2
44
45 clocks:
46 maxItems: 1
47
48 interrupt-names: true
49
50 xlnx,all-inputs:
51 $ref: /schemas/types.yaml#/definitions/uint32
52 description: This option sets this GPIO channel1 bits in input mode.
53
54 xlnx,all-inputs-2:
55 $ref: /schemas/types.yaml#/definitions/uint32
56 description: This option sets this GPIO channel2 bits in input mode.
57
58 xlnx,all-outputs:
59 $ref: /schemas/types.yaml#/definitions/uint32
60 description: This option sets this GPIO channel1 bits in output mode.
61
62 xlnx,all-outputs-2:
63 $ref: /schemas/types.yaml#/definitions/uint32
64 description: This option sets this GPIO channel2 bits in output mode.
65
66 xlnx,dout-default:
67 $ref: /schemas/types.yaml#/definitions/uint32
68 description: Sets the default value of all the enabled bits of
69 channel1.
70 default: 0
71
72 xlnx,dout-default-2:
73 $ref: /schemas/types.yaml#/definitions/uint32
74 description: Sets the default value of all the enabled bits of
75 channel2.
76 default: 0
77
78 xlnx,gpio-width:
79 $ref: /schemas/types.yaml#/definitions/uint32
80 description: The value defines the bit width of the GPIO channel1.
81 minimum: 1
82 maximum: 32
83 default: 32
84
85 xlnx,gpio2-width:
86 $ref: /schemas/types.yaml#/definitions/uint32
87 description: The value defines the bit width of the GPIO channel2.
88 minimum: 1
89 maximum: 32
90 default: 32
91
92 xlnx,interrupt-present:
93 $ref: /schemas/types.yaml#/definitions/uint32
94 description: This parameter enables interrupt control logic
95 and interrupt registers in GPIO module.
96 minimum: 0
97 maximum: 1
98 default: 0
99
100 xlnx,is-dual:
101 $ref: /schemas/types.yaml#/definitions/uint32
102 description: This parameter enables a second GPIO channel (GPIO2).
103 minimum: 0
104 maximum: 1
105 default: 0
106
107 xlnx,tri-default:
108 $ref: /schemas/types.yaml#/definitions/uint32
109 description: This value configures the input or output mode
110 of each bit of GPIO channel1.
111
112 xlnx,tri-default-2:
113 $ref: /schemas/types.yaml#/definitions/uint32
114 description: This value configures the input or output mode
115 of each bit of GPIO channel2.
116
117required:
118 - reg
119 - compatible
120 - gpio-controller
121 - "#gpio-cells"
122
123unevaluatedProperties: false
124
125examples:
126 - |
127 #include <dt-bindings/interrupt-controller/arm-gic.h>
128
Tom Rini93743d22024-04-01 09:08:13 -0400129 gpio@a0020000 {
Tom Rini53633a82024-02-29 12:33:36 -0500130 compatible = "xlnx,xps-gpio-1.00.a";
131 reg = <0xa0020000 0x10000>;
132 #gpio-cells = <2>;
133 #interrupt-cells = <0x2>;
134 clocks = <&zynqmp_clk 71>;
135 gpio-controller;
136 interrupt-controller;
137 interrupt-names = "ip2intc_irpt";
138 interrupt-parent = <&gic>;
139 interrupts = <0 89 4>;
140 xlnx,all-inputs = <0x0>;
141 xlnx,all-inputs-2 = <0x0>;
142 xlnx,all-outputs = <0x0>;
143 xlnx,all-outputs-2 = <0x0>;
144 xlnx,dout-default = <0x0>;
145 xlnx,dout-default-2 = <0x0>;
146 xlnx,gpio-width = <0x20>;
147 xlnx,gpio2-width = <0x20>;
148 xlnx,interrupt-present = <0x1>;
149 xlnx,is-dual = <0x1>;
150 xlnx,tri-default = <0xFFFFFFFF>;
151 xlnx,tri-default-2 = <0xFFFFFFFF>;
152 };
153
154...