xref: /freebsd/sys/contrib/device-tree/Bindings/gpio/intel,ixp4xx-gpio.txt (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1*c66ec88fSEmmanuel VadotIntel IXP4xx XScale Networking Processors GPIO
2*c66ec88fSEmmanuel Vadot
3*c66ec88fSEmmanuel VadotThis GPIO controller is found in the Intel IXP4xx processors.
4*c66ec88fSEmmanuel VadotIt supports 16 GPIO lines.
5*c66ec88fSEmmanuel Vadot
6*c66ec88fSEmmanuel VadotThe interrupt portions of the GPIO controller is hierarchical:
7*c66ec88fSEmmanuel Vadotthe synchronous edge detector is part of the GPIO block, but the
8*c66ec88fSEmmanuel Vadotactual enabling/disabling of the interrupt line is done in the
9*c66ec88fSEmmanuel Vadotmain IXP4xx interrupt controller which has a 1:1 mapping for
10*c66ec88fSEmmanuel Vadotthe first 12 GPIO lines to 12 system interrupts.
11*c66ec88fSEmmanuel Vadot
12*c66ec88fSEmmanuel VadotThe remaining 4 GPIO lines can not be used for receiving
13*c66ec88fSEmmanuel Vadotinterrupts.
14*c66ec88fSEmmanuel Vadot
15*c66ec88fSEmmanuel VadotThe interrupt parent of this GPIO controller must be the
16*c66ec88fSEmmanuel VadotIXP4xx interrupt controller.
17*c66ec88fSEmmanuel Vadot
18*c66ec88fSEmmanuel VadotRequired properties:
19*c66ec88fSEmmanuel Vadot
20*c66ec88fSEmmanuel Vadot- compatible : Should be
21*c66ec88fSEmmanuel Vadot  "intel,ixp4xx-gpio"
22*c66ec88fSEmmanuel Vadot- reg : Should contain registers location and length
23*c66ec88fSEmmanuel Vadot- gpio-controller : marks this as a GPIO controller
24*c66ec88fSEmmanuel Vadot- #gpio-cells : Should be 2, see gpio/gpio.txt
25*c66ec88fSEmmanuel Vadot- interrupt-controller : marks this as an interrupt controller
26*c66ec88fSEmmanuel Vadot- #interrupt-cells : a standard two-cell interrupt, see
27*c66ec88fSEmmanuel Vadot  interrupt-controller/interrupts.txt
28*c66ec88fSEmmanuel Vadot
29*c66ec88fSEmmanuel VadotExample:
30*c66ec88fSEmmanuel Vadot
31*c66ec88fSEmmanuel Vadotgpio0: gpio@c8004000 {
32*c66ec88fSEmmanuel Vadot	compatible = "intel,ixp4xx-gpio";
33*c66ec88fSEmmanuel Vadot	reg = <0xc8004000 0x1000>;
34*c66ec88fSEmmanuel Vadot	gpio-controller;
35*c66ec88fSEmmanuel Vadot	#gpio-cells = <2>;
36*c66ec88fSEmmanuel Vadot	interrupt-controller;
37*c66ec88fSEmmanuel Vadot	#interrupt-cells = <2>;
38*c66ec88fSEmmanuel Vadot};
39