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