xref: /freebsd/sys/contrib/device-tree/Bindings/gpio/brcm,kona-gpio.txt (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1*c66ec88fSEmmanuel VadotBroadcom Kona Family GPIO
2*c66ec88fSEmmanuel Vadot=========================
3*c66ec88fSEmmanuel Vadot
4*c66ec88fSEmmanuel VadotThis GPIO driver is used in the following Broadcom SoCs:
5*c66ec88fSEmmanuel Vadot  BCM11130, BCM11140, BCM11351, BCM28145, BCM28155
6*c66ec88fSEmmanuel Vadot
7*c66ec88fSEmmanuel VadotThe Broadcom GPIO Controller IP can be configured prior to synthesis to
8*c66ec88fSEmmanuel Vadotsupport up to 8 banks of 32 GPIOs where each bank has its own IRQ. The
9*c66ec88fSEmmanuel VadotGPIO controller only supports edge, not level, triggering of interrupts.
10*c66ec88fSEmmanuel Vadot
11*c66ec88fSEmmanuel VadotRequired properties
12*c66ec88fSEmmanuel Vadot-------------------
13*c66ec88fSEmmanuel Vadot
14*c66ec88fSEmmanuel Vadot- compatible: "brcm,bcm11351-gpio", "brcm,kona-gpio"
15*c66ec88fSEmmanuel Vadot- reg: Physical base address and length of the controller's registers.
16*c66ec88fSEmmanuel Vadot- interrupts: The interrupt outputs from the controller. There is one GPIO
17*c66ec88fSEmmanuel Vadot  interrupt per GPIO bank. The number of interrupts listed depends on the
18*c66ec88fSEmmanuel Vadot  number of GPIO banks on the SoC. The interrupts must be ordered by bank,
19*c66ec88fSEmmanuel Vadot  starting with bank 0. There is always a 1:1 mapping between banks and
20*c66ec88fSEmmanuel Vadot  IRQs.
21*c66ec88fSEmmanuel Vadot- #gpio-cells: Should be <2>. The first cell is the pin number, the second
22*c66ec88fSEmmanuel Vadot  cell is used to specify optional parameters:
23*c66ec88fSEmmanuel Vadot  - bit 0 specifies polarity (0 for normal, 1 for inverted)
24*c66ec88fSEmmanuel Vadot  See also "gpio-specifier" in .../devicetree/bindings/gpio/gpio.txt.
25*c66ec88fSEmmanuel Vadot- #interrupt-cells: Should be <2>. The first cell is the GPIO number. The
26*c66ec88fSEmmanuel Vadot  second cell is used to specify flags. The following subset of flags is
27*c66ec88fSEmmanuel Vadot  supported:
28*c66ec88fSEmmanuel Vadot  - trigger type (bits[1:0]):
29*c66ec88fSEmmanuel Vadot      1 = low-to-high edge triggered.
30*c66ec88fSEmmanuel Vadot      2 = high-to-low edge triggered.
31*c66ec88fSEmmanuel Vadot      3 = low-to-high or high-to-low edge triggered
32*c66ec88fSEmmanuel Vadot      Valid values are 1, 2, 3
33*c66ec88fSEmmanuel Vadot  See also .../devicetree/bindings/interrupt-controller/interrupts.txt.
34*c66ec88fSEmmanuel Vadot- gpio-controller: Marks the device node as a GPIO controller.
35*c66ec88fSEmmanuel Vadot- interrupt-controller: Marks the device node as an interrupt controller.
36*c66ec88fSEmmanuel Vadot
37*c66ec88fSEmmanuel VadotExample:
38*c66ec88fSEmmanuel Vadot	gpio: gpio@35003000 {
39*c66ec88fSEmmanuel Vadot		compatible = "brcm,bcm11351-gpio", "brcm,kona-gpio";
40*c66ec88fSEmmanuel Vadot		reg = <0x35003000 0x800>;
41*c66ec88fSEmmanuel Vadot		interrupts =
42*c66ec88fSEmmanuel Vadot		       <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH
43*c66ec88fSEmmanuel Vadot			GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH
44*c66ec88fSEmmanuel Vadot			GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH
45*c66ec88fSEmmanuel Vadot			GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH
46*c66ec88fSEmmanuel Vadot			GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH
47*c66ec88fSEmmanuel Vadot			GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
48*c66ec88fSEmmanuel Vadot		#gpio-cells = <2>;
49*c66ec88fSEmmanuel Vadot		#interrupt-cells = <2>;
50*c66ec88fSEmmanuel Vadot		gpio-controller;
51*c66ec88fSEmmanuel Vadot		interrupt-controller;
52*c66ec88fSEmmanuel Vadot	};
53