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