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