1Broadcom BCM2835 GPIO (and pinmux) controller 2 3The BCM2835 GPIO module is a combined GPIO controller, (GPIO) interrupt 4controller, and pinmux/control device. 5 6Required properties: 7- compatible: "brcm,bcm2835-gpio" 8- compatible: should be one of: 9 "brcm,bcm2835-gpio" - BCM2835 compatible pinctrl 10 "brcm,bcm7211-gpio" - BCM7211 compatible pinctrl 11 "brcm,bcm2711-gpio" - BCM2711 compatible pinctrl 12- reg: Should contain the physical address of the GPIO module's registers. 13- gpio-controller: Marks the device node as a GPIO controller. 14- #gpio-cells : Should be two. The first cell is the pin number and the 15 second cell is used to specify optional parameters: 16 - bit 0 specifies polarity (0 for normal, 1 for inverted) 17- interrupts : The interrupt outputs from the controller. One interrupt per 18 individual bank followed by the "all banks" interrupt. 19- interrupt-controller: Marks the device node as an interrupt controller. 20- #interrupt-cells : Should be 2. 21 The first cell is the GPIO number. 22 The second cell is used to specify flags: 23 bits[3:0] trigger type and level flags: 24 1 = low-to-high edge triggered. 25 2 = high-to-low edge triggered. 26 4 = active high level-sensitive. 27 8 = active low level-sensitive. 28 Valid combinations are 1, 2, 3, 4, 8. 29 30Please refer to ../gpio/gpio.txt for a general description of GPIO bindings. 31 32Please refer to pinctrl-bindings.txt in this directory for details of the 33common pinctrl bindings used by client devices, including the meaning of the 34phrase "pin configuration node". 35 36Each pin configuration node lists the pin(s) to which it applies, and one or 37more of the mux function to select on those pin(s), and pull-up/down 38configuration. Each subnode only affects those parameters that are explicitly 39listed. In other words, a subnode that lists only a mux function implies no 40information about any pull configuration. Similarly, a subnode that lists only 41a pul parameter implies no information about the mux function. 42 43The BCM2835 pin configuration and multiplexing supports the generic bindings. 44For details on each properties, you can refer to ./pinctrl-bindings.txt. 45 46Required sub-node properties: 47 - pins 48 - function 49 50Optional sub-node properties: 51 - bias-disable 52 - bias-pull-up 53 - bias-pull-down 54 - output-high 55 - output-low 56 57Legacy pin configuration and multiplexing binding: 58*** (Its use is deprecated, use generic multiplexing and configuration 59bindings instead) 60 61Required subnode-properties: 62- brcm,pins: An array of cells. Each cell contains the ID of a pin. Valid IDs 63 are the integer GPIO IDs; 0==GPIO0, 1==GPIO1, ... 53==GPIO53. 64 65Optional subnode-properties: 66- brcm,function: Integer, containing the function to mux to the pin(s): 67 0: GPIO in 68 1: GPIO out 69 2: alt5 70 3: alt4 71 4: alt0 72 5: alt1 73 6: alt2 74 7: alt3 75- brcm,pull: Integer, representing the pull-down/up to apply to the pin(s): 76 0: none 77 1: down 78 2: up 79 80Each of brcm,function and brcm,pull may contain either a single value which 81will be applied to all pins in brcm,pins, or 1 value for each entry in 82brcm,pins. 83 84Example: 85 86 gpio: gpio { 87 compatible = "brcm,bcm2835-gpio"; 88 reg = <0x2200000 0xb4>; 89 interrupts = <2 17>, <2 19>, <2 18>, <2 20>; 90 91 gpio-controller; 92 #gpio-cells = <2>; 93 94 interrupt-controller; 95 #interrupt-cells = <2>; 96 }; 97