xref: /freebsd-src/sys/contrib/device-tree/Bindings/gpio/intel,ixp4xx-gpio.yaml (revision 84943d6f38e936ac3b7a3947ca26eeb27a39f938)
1*84943d6fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*84943d6fSEmmanuel Vadot%YAML 1.2
3*84943d6fSEmmanuel Vadot---
4*84943d6fSEmmanuel Vadot$id: http://devicetree.org/schemas/gpio/intel,ixp4xx-gpio.yaml#
5*84943d6fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*84943d6fSEmmanuel Vadot
7*84943d6fSEmmanuel Vadottitle: Intel IXP4xx XScale Networking Processors GPIO Controller
8*84943d6fSEmmanuel Vadot
9*84943d6fSEmmanuel Vadotdescription: |
10*84943d6fSEmmanuel Vadot  This GPIO controller is found in the Intel IXP4xx
11*84943d6fSEmmanuel Vadot  processors. It supports 16 GPIO lines.
12*84943d6fSEmmanuel Vadot  The interrupt portions of the GPIO controller is hierarchical.
13*84943d6fSEmmanuel Vadot  The synchronous edge detector is part of the GPIO block, but the
14*84943d6fSEmmanuel Vadot  actual enabling/disabling of the interrupt line is done in the
15*84943d6fSEmmanuel Vadot  main IXP4xx interrupt controller which has a 1-to-1 mapping for
16*84943d6fSEmmanuel Vadot  the first 12 GPIO lines to 12 system interrupts.
17*84943d6fSEmmanuel Vadot  The remaining 4 GPIO lines can not be used for receiving
18*84943d6fSEmmanuel Vadot  interrupts.
19*84943d6fSEmmanuel Vadot  The interrupt parent of this GPIO controller must be the
20*84943d6fSEmmanuel Vadot  IXP4xx interrupt controller.
21*84943d6fSEmmanuel Vadot  GPIO 14 and 15 can be used as clock outputs rather than GPIO,
22*84943d6fSEmmanuel Vadot  and this can be enabled by a special flag.
23*84943d6fSEmmanuel Vadot
24*84943d6fSEmmanuel Vadotmaintainers:
25*84943d6fSEmmanuel Vadot  - Linus Walleij <linus.walleij@linaro.org>
26*84943d6fSEmmanuel Vadot
27*84943d6fSEmmanuel Vadotproperties:
28*84943d6fSEmmanuel Vadot  compatible:
29*84943d6fSEmmanuel Vadot    const: intel,ixp4xx-gpio
30*84943d6fSEmmanuel Vadot
31*84943d6fSEmmanuel Vadot  reg:
32*84943d6fSEmmanuel Vadot    maxItems: 1
33*84943d6fSEmmanuel Vadot
34*84943d6fSEmmanuel Vadot  gpio-controller: true
35*84943d6fSEmmanuel Vadot
36*84943d6fSEmmanuel Vadot  "#gpio-cells":
37*84943d6fSEmmanuel Vadot    const: 2
38*84943d6fSEmmanuel Vadot
39*84943d6fSEmmanuel Vadot  interrupt-controller: true
40*84943d6fSEmmanuel Vadot
41*84943d6fSEmmanuel Vadot  "#interrupt-cells":
42*84943d6fSEmmanuel Vadot    const: 2
43*84943d6fSEmmanuel Vadot
44*84943d6fSEmmanuel Vadot  intel,ixp4xx-gpio14-clkout:
45*84943d6fSEmmanuel Vadot    description: If defined, enables clock output on GPIO 14
46*84943d6fSEmmanuel Vadot      instead of GPIO.
47*84943d6fSEmmanuel Vadot    type: boolean
48*84943d6fSEmmanuel Vadot
49*84943d6fSEmmanuel Vadot  intel,ixp4xx-gpio15-clkout:
50*84943d6fSEmmanuel Vadot    description: If defined, enables clock output on GPIO 15
51*84943d6fSEmmanuel Vadot      instead of GPIO.
52*84943d6fSEmmanuel Vadot    type: boolean
53*84943d6fSEmmanuel Vadot
54*84943d6fSEmmanuel Vadotrequired:
55*84943d6fSEmmanuel Vadot  - compatible
56*84943d6fSEmmanuel Vadot  - reg
57*84943d6fSEmmanuel Vadot  - "#gpio-cells"
58*84943d6fSEmmanuel Vadot  - interrupt-controller
59*84943d6fSEmmanuel Vadot  - "#interrupt-cells"
60*84943d6fSEmmanuel Vadot
61*84943d6fSEmmanuel VadotadditionalProperties: false
62*84943d6fSEmmanuel Vadot
63*84943d6fSEmmanuel Vadotexamples:
64*84943d6fSEmmanuel Vadot  - |
65*84943d6fSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/irq.h>
66*84943d6fSEmmanuel Vadot    gpio@c8004000 {
67*84943d6fSEmmanuel Vadot        compatible = "intel,ixp4xx-gpio";
68*84943d6fSEmmanuel Vadot        reg = <0xc8004000 0x1000>;
69*84943d6fSEmmanuel Vadot        gpio-controller;
70*84943d6fSEmmanuel Vadot        #gpio-cells = <2>;
71*84943d6fSEmmanuel Vadot        interrupt-controller;
72*84943d6fSEmmanuel Vadot        #interrupt-cells = <2>;
73*84943d6fSEmmanuel Vadot    };
74