xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/gpio/gpio_oxnas.txt (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun* Oxford Semiconductor OXNAS SoC GPIO Controller
2*4882a593Smuzhiyun
3*4882a593SmuzhiyunPlease refer to gpio.txt for generic information regarding GPIO bindings.
4*4882a593Smuzhiyun
5*4882a593SmuzhiyunRequired properties:
6*4882a593Smuzhiyun - compatible: "oxsemi,ox810se-gpio" or "oxsemi,ox820-gpio"
7*4882a593Smuzhiyun - reg: Base address and length for the device.
8*4882a593Smuzhiyun - interrupts: The port interrupt shared by all pins.
9*4882a593Smuzhiyun - gpio-controller: Marks the port as GPIO controller.
10*4882a593Smuzhiyun - #gpio-cells: Two. The first cell is the pin number and
11*4882a593Smuzhiyun   the second cell is used to specify the gpio polarity as defined in
12*4882a593Smuzhiyun   defined in <dt-bindings/gpio/gpio.h>:
13*4882a593Smuzhiyun      0 = GPIO_ACTIVE_HIGH
14*4882a593Smuzhiyun      1 = GPIO_ACTIVE_LOW
15*4882a593Smuzhiyun - interrupt-controller: Marks the device node as an interrupt controller.
16*4882a593Smuzhiyun - #interrupt-cells: Two. The first cell is the GPIO number and second cell
17*4882a593Smuzhiyun   is used to specify the trigger type as defined in
18*4882a593Smuzhiyun   <dt-bindings/interrupt-controller/irq.h>:
19*4882a593Smuzhiyun      IRQ_TYPE_EDGE_RISING
20*4882a593Smuzhiyun      IRQ_TYPE_EDGE_FALLING
21*4882a593Smuzhiyun      IRQ_TYPE_EDGE_BOTH
22*4882a593Smuzhiyun - gpio-ranges: Interaction with the PINCTRL subsystem, it also specifies the
23*4882a593Smuzhiyun   gpio base and count, should be in the format of numeric-gpio-range as
24*4882a593Smuzhiyun   specified in the gpio.txt file.
25*4882a593Smuzhiyun
26*4882a593SmuzhiyunExample:
27*4882a593Smuzhiyun
28*4882a593Smuzhiyungpio0: gpio@0 {
29*4882a593Smuzhiyun	compatible = "oxsemi,ox810se-gpio";
30*4882a593Smuzhiyun	reg = <0x000000 0x100000>;
31*4882a593Smuzhiyun	interrupts = <21>;
32*4882a593Smuzhiyun	#gpio-cells = <2>;
33*4882a593Smuzhiyun	gpio-controller;
34*4882a593Smuzhiyun	interrupt-controller;
35*4882a593Smuzhiyun	#interrupt-cells = <2>;
36*4882a593Smuzhiyun	gpio-ranges = <&pinctrl 0 0 32>;
37*4882a593Smuzhiyun};
38*4882a593Smuzhiyun
39*4882a593Smuzhiyunkeys {
40*4882a593Smuzhiyun	...
41*4882a593Smuzhiyun
42*4882a593Smuzhiyun	button-esc {
43*4882a593Smuzhiyun		label = "ESC";
44*4882a593Smuzhiyun		linux,code = <1>;
45*4882a593Smuzhiyun		gpios = <&gpio0 12 0>;
46*4882a593Smuzhiyun	};
47*4882a593Smuzhiyun};
48