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