xref: /freebsd/sys/contrib/device-tree/Bindings/gpio/gpio-mpc8xxx.txt (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1*c66ec88fSEmmanuel Vadot* Freescale MPC512x/MPC8xxx/QorIQ/Layerscape GPIO controller
2*c66ec88fSEmmanuel Vadot
3*c66ec88fSEmmanuel VadotRequired properties:
4*c66ec88fSEmmanuel Vadot- compatible : Should be "fsl,<soc>-gpio"
5*c66ec88fSEmmanuel Vadot  The following <soc>s are known to be supported:
6*c66ec88fSEmmanuel Vadot	mpc5121, mpc5125, mpc8349, mpc8572, mpc8610, pq3, qoriq,
7*c66ec88fSEmmanuel Vadot	ls1021a, ls1043a, ls2080a, ls1028a, ls1088a.
8*c66ec88fSEmmanuel Vadot- reg : Address and length of the register set for the device
9*c66ec88fSEmmanuel Vadot- interrupts : Should be the port interrupt shared by all 32 pins.
10*c66ec88fSEmmanuel Vadot- #gpio-cells : Should be two.  The first cell is the pin number and
11*c66ec88fSEmmanuel Vadot  the second cell is used to specify the gpio polarity:
12*c66ec88fSEmmanuel Vadot      0 = active high
13*c66ec88fSEmmanuel Vadot      1 = active low
14*c66ec88fSEmmanuel Vadot
15*c66ec88fSEmmanuel VadotOptional properties:
16*c66ec88fSEmmanuel Vadot- little-endian : GPIO registers are used as little endian. If not
17*c66ec88fSEmmanuel Vadot                  present registers are used as big endian by default.
18*c66ec88fSEmmanuel Vadot
19*c66ec88fSEmmanuel VadotExample of gpio-controller node for a mpc5125 SoC:
20*c66ec88fSEmmanuel Vadot
21*c66ec88fSEmmanuel Vadotgpio0: gpio@1100 {
22*c66ec88fSEmmanuel Vadot	compatible = "fsl,mpc5125-gpio";
23*c66ec88fSEmmanuel Vadot	#gpio-cells = <2>;
24*c66ec88fSEmmanuel Vadot	reg = <0x1100 0x080>;
25*c66ec88fSEmmanuel Vadot	interrupts = <78 0x8>;
26*c66ec88fSEmmanuel Vadot};
27*c66ec88fSEmmanuel Vadot
28*c66ec88fSEmmanuel VadotExample of gpio-controller node for a ls2080a SoC:
29*c66ec88fSEmmanuel Vadot
30*c66ec88fSEmmanuel Vadotgpio0: gpio@2300000 {
31*c66ec88fSEmmanuel Vadot	compatible = "fsl,ls2080a-gpio", "fsl,qoriq-gpio";
32*c66ec88fSEmmanuel Vadot	reg = <0x0 0x2300000 0x0 0x10000>;
33*c66ec88fSEmmanuel Vadot	interrupts = <0 36 0x4>; /* Level high type */
34*c66ec88fSEmmanuel Vadot	gpio-controller;
35*c66ec88fSEmmanuel Vadot	little-endian;
36*c66ec88fSEmmanuel Vadot	#gpio-cells = <2>;
37*c66ec88fSEmmanuel Vadot	interrupt-controller;
38*c66ec88fSEmmanuel Vadot	#interrupt-cells = <2>;
39*c66ec88fSEmmanuel Vadot};
40*c66ec88fSEmmanuel Vadot
41*c66ec88fSEmmanuel Vadot
42*c66ec88fSEmmanuel VadotExample of gpio-controller node for a ls1028a/ls1088a SoC:
43*c66ec88fSEmmanuel Vadot
44*c66ec88fSEmmanuel Vadotgpio1: gpio@2300000 {
45*c66ec88fSEmmanuel Vadot	compatible = "fsl,ls1028a-gpio", "fsl,ls1088a-gpio", "fsl,qoriq-gpio";
46*c66ec88fSEmmanuel Vadot	reg = <0x0 0x2300000 0x0 0x10000>;
47*c66ec88fSEmmanuel Vadot	interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
48*c66ec88fSEmmanuel Vadot	gpio-controller;
49*c66ec88fSEmmanuel Vadot	#gpio-cells = <2>;
50*c66ec88fSEmmanuel Vadot	interrupt-controller;
51*c66ec88fSEmmanuel Vadot	#interrupt-cells = <2>;
52*c66ec88fSEmmanuel Vadot	little-endian;
53*c66ec88fSEmmanuel Vadot};
54