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
7title: Freescale VF610 PORT/GPIO module
8
9maintainers:
10  - Stefan Agner <stefan@agner.ch>
11
12description: |
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
20properties:
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
64required:
65  - compatible
66  - reg
67  - interrupts
68  - interrupt-controller
69  - "#interrupt-cells"
70  - "#gpio-cells"
71  - gpio-controller
72
73additionalProperties: false
74
75examples:
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    };
89