xref: /openbmc/linux/Documentation/devicetree/bindings/gpio/intel,ixp4xx-gpio.txt (revision 597473720f4dc69749542bfcfed4a927a43d935e)
1*78517428SLinus WalleijIntel IXP4xx XScale Networking Processors GPIO
2*78517428SLinus Walleij
3*78517428SLinus WalleijThis GPIO controller is found in the Intel IXP4xx processors.
4*78517428SLinus WalleijIt supports 16 GPIO lines.
5*78517428SLinus Walleij
6*78517428SLinus WalleijThe interrupt portions of the GPIO controller is hierarchical:
7*78517428SLinus Walleijthe synchronous edge detector is part of the GPIO block, but the
8*78517428SLinus Walleijactual enabling/disabling of the interrupt line is done in the
9*78517428SLinus Walleijmain IXP4xx interrupt controller which has a 1:1 mapping for
10*78517428SLinus Walleijthe first 12 GPIO lines to 12 system interrupts.
11*78517428SLinus Walleij
12*78517428SLinus WalleijThe remaining 4 GPIO lines can not be used for receiving
13*78517428SLinus Walleijinterrupts.
14*78517428SLinus Walleij
15*78517428SLinus WalleijThe interrupt parent of this GPIO controller must be the
16*78517428SLinus WalleijIXP4xx interrupt controller.
17*78517428SLinus Walleij
18*78517428SLinus WalleijRequired properties:
19*78517428SLinus Walleij
20*78517428SLinus Walleij- compatible : Should be
21*78517428SLinus Walleij  "intel,ixp4xx-gpio"
22*78517428SLinus Walleij- reg : Should contain registers location and length
23*78517428SLinus Walleij- gpio-controller : marks this as a GPIO controller
24*78517428SLinus Walleij- #gpio-cells : Should be 2, see gpio/gpio.txt
25*78517428SLinus Walleij- interrupt-controller : marks this as an interrupt controller
26*78517428SLinus Walleij- #interrupt-cells : a standard two-cell interrupt, see
27*78517428SLinus Walleij  interrupt-controller/interrupts.txt
28*78517428SLinus Walleij
29*78517428SLinus WalleijExample:
30*78517428SLinus Walleij
31*78517428SLinus Walleijgpio0: gpio@c8004000 {
32*78517428SLinus Walleij	compatible = "intel,ixp4xx-gpio";
33*78517428SLinus Walleij	reg = <0xc8004000 0x1000>;
34*78517428SLinus Walleij	gpio-controller;
35*78517428SLinus Walleij	#gpio-cells = <2>;
36*78517428SLinus Walleij	interrupt-controller;
37*78517428SLinus Walleij	#interrupt-cells = <2>;
38*78517428SLinus Walleij};
39