summaryrefslogtreecommitdiff
path: root/Documentation/devicetree/bindings/gpio/microchip,pic32-gpio.txt
blob: dd031fc93b55c1e959df3f0709bdda2dd0f50cbf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
* Microchip PIC32 GPIO devices (PIO).

Required properties:
 - compatible: "microchip,pic32mzda-gpio"
 - reg: Base address and length for the device.
 - interrupts: The port interrupt shared by all pins.
 - gpio-controller: Marks the port as GPIO controller.
 - #gpio-cells: Two. The first cell is the pin number and
   the second cell is used to specify the gpio polarity as defined in
   defined in <dt-bindings/gpio/gpio.h>:
      0 = GPIO_ACTIVE_HIGH
      1 = GPIO_ACTIVE_LOW
      2 = GPIO_OPEN_DRAIN
 - interrupt-controller: Marks the device node as an interrupt controller.
 - #interrupt-cells: Two. The first cell is the GPIO number and second cell
   is used to specify the trigger type as defined in
   <dt-bindings/interrupt-controller/irq.h>:
      IRQ_TYPE_EDGE_RISING
      IRQ_TYPE_EDGE_FALLING
      IRQ_TYPE_EDGE_BOTH
 - clocks: Clock specifier (see clock bindings for details).
 - microchip,gpio-bank: Specifies which bank a controller owns.
 - gpio-ranges: Interaction with the PINCTRL subsystem.

Example:

/* PORTA */
gpio0: gpio0@1f860000 {
	compatible = "microchip,pic32mzda-gpio";
	reg = <0x1f860000 0x100>;
	interrupts = <118 IRQ_TYPE_LEVEL_HIGH>;
	#gpio-cells = <2>;
	gpio-controller;
	interrupt-controller;
	#interrupt-cells = <2>;
	clocks = <&rootclk PB4CLK>;
	microchip,gpio-bank = <0>;
	gpio-ranges = <&pic32_pinctrl 0 0 16>;
};

keys {
	...

	button@sw1 {
		label = "ESC";
		linux,code = <1>;
		gpios = <&gpio0 12 0>;
	};
};