GNU Linux-libre 6.1.90-gnu
[releases.git] / Documentation / devicetree / bindings / gpio / gpio-vf610.yaml
1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/gpio/gpio-vf610.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Freescale VF610 PORT/GPIO module
8
9 maintainers:
10   - Stefan Agner <stefan@agner.ch>
11
12 description: |
13   The Freescale PORT/GPIO modules are two adjacent modules providing GPIO
14   functionality. Each pair serves 32 GPIOs. The VF610 has 5 instances of
15   each, and each PORT module has its own interrupt.
16
17   Note: Each GPIO port should have an alias correctly numbered in "aliases"
18   node.
19
20 properties:
21   compatible:
22     oneOf:
23       - const: fsl,vf610-gpio
24       - items:
25           - const: fsl,imx7ulp-gpio
26           - const: fsl,vf610-gpio
27       - items:
28           - enum:
29               - fsl,imx93-gpio
30               - fsl,imx8ulp-gpio
31           - const: fsl,imx7ulp-gpio
32
33   reg:
34     description: The first reg tuple represents the PORT module, the second tuple
35       represents the GPIO module.
36     maxItems: 2
37
38   interrupts:
39     maxItems: 1
40
41   interrupt-controller: true
42
43   "#interrupt-cells":
44     const: 2
45
46   "#gpio-cells":
47     const: 2
48
49   gpio-controller: true
50
51   clocks:
52     items:
53       - description: SoC GPIO clock
54       - description: SoC PORT clock
55
56   clock-names:
57     items:
58       - const: gpio
59       - const: port
60
61   gpio-ranges:
62     maxItems: 1
63
64 required:
65   - compatible
66   - reg
67   - interrupts
68   - interrupt-controller
69   - "#interrupt-cells"
70   - "#gpio-cells"
71   - gpio-controller
72
73 additionalProperties: false
74
75 examples:
76   - |
77     #include <dt-bindings/interrupt-controller/arm-gic.h>
78
79     gpio1: gpio@40049000 {
80         compatible = "fsl,vf610-gpio";
81         reg = <0x40049000 0x1000>, <0x400ff000 0x40>;
82         interrupts = <0 107 IRQ_TYPE_LEVEL_HIGH>;
83         gpio-controller;
84         #gpio-cells = <2>;
85         interrupt-controller;
86         #interrupt-cells = <2>;
87         gpio-ranges = <&iomuxc 0 0 32>;
88     };