0001 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/gpio/gpio-zynq.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006
0007 title: Xilinx Zynq GPIO controller Device Tree Bindings
0008
0009 maintainers:
0010 - Michal Simek <michal.simek@xilinx.com>
0011
0012 properties:
0013 compatible:
0014 enum:
0015 - xlnx,zynq-gpio-1.0
0016 - xlnx,zynqmp-gpio-1.0
0017 - xlnx,versal-gpio-1.0
0018 - xlnx,pmc-gpio-1.0
0019
0020 reg:
0021 maxItems: 1
0022
0023 "#gpio-cells":
0024 const: 2
0025
0026 interrupts:
0027 maxItems: 1
0028
0029 gpio-controller: true
0030
0031 gpio-line-names:
0032 description: strings describing the names of each gpio line
0033 minItems: 58
0034 maxItems: 174
0035
0036 interrupt-controller: true
0037
0038 "#interrupt-cells":
0039 const: 2
0040
0041 clocks:
0042 maxItems: 1
0043
0044 power-domains:
0045 maxItems: 1
0046
0047 allOf:
0048 - if:
0049 properties:
0050 compatible:
0051 enum:
0052 - xlnx,zynqmp-gpio-1.0
0053 then:
0054 properties:
0055 gpio-line-names:
0056 minItems: 174
0057 maxItems: 174
0058
0059 - if:
0060 properties:
0061 compatible:
0062 enum:
0063 - xlnx,zynq-gpio-1.0
0064 then:
0065 properties:
0066 gpio-line-names:
0067 minItems: 118
0068 maxItems: 118
0069
0070 - if:
0071 properties:
0072 compatible:
0073 enum:
0074 - xlnx,versal-gpio-1.0
0075 then:
0076 properties:
0077 gpio-line-names:
0078 minItems: 58
0079 maxItems: 58
0080
0081 - if:
0082 properties:
0083 compatible:
0084 enum:
0085 - xlnx,pmc-gpio-1.0
0086 then:
0087 properties:
0088 gpio-line-names:
0089 minItems: 116
0090 maxItems: 116
0091
0092 required:
0093 - compatible
0094 - reg
0095 - "#gpio-cells"
0096 - interrupts
0097 - gpio-controller
0098 - interrupt-controller
0099 - "#interrupt-cells"
0100 - clocks
0101
0102 additionalProperties: false
0103
0104 examples:
0105 - |
0106 gpio@e000a000 {
0107 #gpio-cells = <2>;
0108 compatible = "xlnx,zynq-gpio-1.0";
0109 clocks = <&clkc 42>;
0110 gpio-controller;
0111 interrupt-parent = <&intc>;
0112 interrupts = <0 20 4>;
0113 interrupt-controller;
0114 #interrupt-cells = <2>;
0115 reg = <0xe000a000 0x1000>;
0116 };