]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - sys/dts/bindings-gpio.txt
sys/{x86,amd64}: remove one of doubled ;s
[FreeBSD/FreeBSD.git] / sys / dts / bindings-gpio.txt
1 $FreeBSD$
2
3 GPIO configuration.
4 ===================
5
6 1. Properties for GPIO Controllers
7
8 1.1 #gpio-cells
9
10 Property:       #gpio-cells
11
12 Value type:     <u32>
13
14 Description:    The #gpio-cells property defines the number of cells required
15                 to encode a gpio specifier.
16
17
18 1.2 gpio-controller
19
20 Property:       gpio-controller
21
22 Value type:     <empty>
23
24 Description:    The presence of a gpio-controller property defines a node as a
25                 GPIO controller node.
26
27
28 1.3 pin-count
29
30 Property:       pin-count
31
32 Value type:     <u32>
33
34 Description:    The pin-count property defines the number of GPIO pins.
35
36
37 1.4 Example
38
39         GPIO: gpio@10100 {
40                 #gpio-cells = <3>;
41                 compatible = "mrvl,gpio";
42                 reg = <0x10100 0x20>;
43                 gpio-controller;
44                 interrupts = <6 7 8 9>;
45                 interrupt-parent = <&PIC>;
46                 pin-count = <50>
47         };
48
49 2. Properties for GPIO consumer nodes.
50
51 2.1 gpios
52
53 Property:       gpios
54
55 Value type:     <prop-encoded-array> encoded as arbitrary number of GPIO
56                 specifiers.
57
58 Description:    The gpios property of a device node defines the GPIO or GPIOs
59                 that are used by the device. The value of the gpios property
60                 consists of an arbitrary number of GPIO specifiers.
61                 
62                 The first cell of the GPIO specifier is phandle of the node's
63                 parent GPIO controller and remaining cells are defined by the
64                 binding describing the GPIO parent, typically include
65                 information like pin number, direction and various flags.
66
67 Example:
68                 gpios = <&GPIO 0 1              /* GPIO[0]:  FLAGS */
69                          &GPIO 1 2>;            /* GPIO[1]:  FLAGS */
70
71
72 3. GPIO controller specifier
73
74         <phandle pin dir flags>
75
76
77 pin:    0-MAX                           GPIO pin number.
78
79 flags:
80         Available flags are listed in sys/conf.h. Following combination
81         can be supported by the controller. For details please refer
82         to controller's GPIO reference manual.
83
84         GPIO_PIN_INPUT          0x0001  Input direction
85         GPIO_PIN_OUTPUT         0x0002  Output direction
86         GPIO_PIN_OPENDRAIN      0x0004  Open-drain output
87         GPIO_PIN_OPENSOURCE     0x0008  Open-source output
88         GPIO_PIN_PUSHPULL       0x0010  Push-pull output
89         GPIO_PIN_TRISTATE       0x0020  Output disabled
90         GPIO_PIN_PULLUP         0x0040  Internal pull-up enabled
91         GPIO_PIN_PULLDOWN       0x0080  Internal pull-down enabled
92         GPIO_PIN_INVIN          0x0100  Invert input
93         GPIO_PIN_INVOUT         0x0200  Invert output
94         GPIO_PIN_PULSATE        0x0400  Pulsate in hardware
95         GPIO_PIN_IRQ_POL_EDG    0x0800  IRQ active single edge
96         GPIO_PIN_IRQ_POL_DBL    0x1000  IRQ active double edge
97         GPIO_PIN_IRQ_POL_LVL    0x2000  IRQ active level
98         GPIO_PIN_IRQ_DEBOUNCE   0x4000  Debounce on IRQ pin
99
100 Example:
101         gpios = <&GPIO 0  0x00000001    /* GPIO[0]:   IN */
102                  &GPIO 1  0x00000002    /* GPIO[1]:   OUT */
103                  &GPIO 2  0x00000801    /* GPIO[2]:   IN, IRQ (edge) */
104                  &GPIO 3  0x00004001    /* GPIO[3]:   IN, IRQ (level) */
105                  ...
106                  &GPIO 10 0x00000401>;  /* GPIO[10]:  OUT, blink */