xref: /linux/Documentation/devicetree/bindings/gpio/microchip,pic32-gpio.txt (revision f26e8817b235d8764363bffcc9cbfc61867371f2)
1ad2db351SJoshua Henderson* Microchip PIC32 GPIO devices (PIO).
2ad2db351SJoshua Henderson
3ad2db351SJoshua HendersonRequired properties:
4ad2db351SJoshua Henderson - compatible: "microchip,pic32mzda-gpio"
5ad2db351SJoshua Henderson - reg: Base address and length for the device.
6ad2db351SJoshua Henderson - interrupts: The port interrupt shared by all pins.
7ad2db351SJoshua Henderson - gpio-controller: Marks the port as GPIO controller.
8ad2db351SJoshua Henderson - #gpio-cells: Two. The first cell is the pin number and
9ad2db351SJoshua Henderson   the second cell is used to specify the gpio polarity as defined in
10ad2db351SJoshua Henderson   defined in <dt-bindings/gpio/gpio.h>:
11ad2db351SJoshua Henderson      0 = GPIO_ACTIVE_HIGH
12ad2db351SJoshua Henderson      1 = GPIO_ACTIVE_LOW
13ad2db351SJoshua Henderson      2 = GPIO_OPEN_DRAIN
14ad2db351SJoshua Henderson - interrupt-controller: Marks the device node as an interrupt controller.
15ad2db351SJoshua Henderson - #interrupt-cells: Two. The first cell is the GPIO number and second cell
16ad2db351SJoshua Henderson   is used to specify the trigger type as defined in
17ad2db351SJoshua Henderson   <dt-bindings/interrupt-controller/irq.h>:
18ad2db351SJoshua Henderson      IRQ_TYPE_EDGE_RISING
19ad2db351SJoshua Henderson      IRQ_TYPE_EDGE_FALLING
20ad2db351SJoshua Henderson      IRQ_TYPE_EDGE_BOTH
21ad2db351SJoshua Henderson - clocks: Clock specifier (see clock bindings for details).
22ad2db351SJoshua Henderson - microchip,gpio-bank: Specifies which bank a controller owns.
23ad2db351SJoshua Henderson - gpio-ranges: Interaction with the PINCTRL subsystem.
24ad2db351SJoshua Henderson
25ad2db351SJoshua HendersonExample:
26ad2db351SJoshua Henderson
27ad2db351SJoshua Henderson/* PORTA */
28ad2db351SJoshua Hendersongpio0: gpio0@1f860000 {
29ad2db351SJoshua Henderson	compatible = "microchip,pic32mzda-gpio";
30ad2db351SJoshua Henderson	reg = <0x1f860000 0x100>;
31ad2db351SJoshua Henderson	interrupts = <118 IRQ_TYPE_LEVEL_HIGH>;
32ad2db351SJoshua Henderson	#gpio-cells = <2>;
33ad2db351SJoshua Henderson	gpio-controller;
34ad2db351SJoshua Henderson	interrupt-controller;
35ad2db351SJoshua Henderson	#interrupt-cells = <2>;
36*dd317403SPurna Chandra Mandal	clocks = <&rootclk PB4CLK>;
37ad2db351SJoshua Henderson	microchip,gpio-bank = <0>;
38ad2db351SJoshua Henderson	gpio-ranges = <&pic32_pinctrl 0 0 16>;
39ad2db351SJoshua Henderson};
40ad2db351SJoshua Henderson
41ad2db351SJoshua Hendersonkeys {
42ad2db351SJoshua Henderson	...
43ad2db351SJoshua Henderson
44ad2db351SJoshua Henderson	button@sw1 {
45ad2db351SJoshua Henderson		label = "ESC";
46ad2db351SJoshua Henderson		linux,code = <1>;
47ad2db351SJoshua Henderson		gpios = <&gpio0 12 0>;
48ad2db351SJoshua Henderson	};
49ad2db351SJoshua Henderson};
50