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
28  reg:
29    description: The first reg tuple represents the PORT module, the second tuple
30      represents the GPIO module.
31    maxItems: 2
32
33  interrupts:
34    maxItems: 1
35
36  interrupt-controller: true
37
38  "#interrupt-cells":
39    const: 2
40
41  "#gpio-cells":
42    const: 2
43
44  gpio-controller: true
45
46  clocks:
47    items:
48      - description: SoC GPIO clock
49      - description: SoC PORT clock
50
51  clock-names:
52    items:
53      - const: gpio
54      - const: port
55
56  gpio-ranges:
57    maxItems: 1
58
59required:
60  - compatible
61  - reg
62  - interrupts
63  - interrupt-controller
64  - "#interrupt-cells"
65  - "#gpio-cells"
66  - gpio-controller
67
68additionalProperties: false
69
70examples:
71  - |
72    #include <dt-bindings/interrupt-controller/arm-gic.h>
73
74    gpio1: gpio@40049000 {
75        compatible = "fsl,vf610-gpio";
76        reg = <0x40049000 0x1000>, <0x400ff000 0x40>;
77        interrupts = <0 107 IRQ_TYPE_LEVEL_HIGH>;
78        gpio-controller;
79        #gpio-cells = <2>;
80        interrupt-controller;
81        #interrupt-cells = <2>;
82        gpio-ranges = <&iomuxc 0 0 32>;
83    };
84