Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / gpio / nxp,pcf8575.yaml
1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/gpio/nxp,pcf8575.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: PCF857x-compatible I/O expanders
8
9 maintainers:
10   - Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
11
12 description:
13   The PCF857x-compatible chips have "quasi-bidirectional" I/O lines that can be
14   driven high by a pull-up current source or driven low to ground. This
15   combines the direction and output level into a single bit per line, which
16   can't be read back. We can't actually know at initialization time whether a
17   line is configured (a) as output and driving the signal low/high, or (b) as
18   input and reporting a low/high value, without knowing the last value written
19   since the chip came out of reset (if any). The only reliable solution for
20   setting up line direction is thus to do it explicitly.
21
22 properties:
23   compatible:
24     enum:
25       - maxim,max7328
26       - maxim,max7329
27       - nxp,pca8574
28       - nxp,pca8575
29       - nxp,pca9670
30       - nxp,pca9671
31       - nxp,pca9672
32       - nxp,pca9673
33       - nxp,pca9674
34       - nxp,pca9675
35       - nxp,pcf8574
36       - nxp,pcf8574a
37       - nxp,pcf8575
38
39   reg:
40     maxItems: 1
41
42   gpio-controller: true
43
44   '#gpio-cells':
45     const: 2
46     description:
47       The first cell is the GPIO number and the second cell specifies GPIO
48       flags, as defined in <dt-bindings/gpio/gpio.h>. Only the GPIO_ACTIVE_HIGH
49       and GPIO_ACTIVE_LOW flags are supported.
50
51   lines-initial-states:
52     $ref: /schemas/types.yaml#/definitions/uint32
53     description:
54       Bitmask that specifies the initial state of each line.
55       When a bit is set to zero, the corresponding line will be initialized to
56       the input (pulled-up) state.
57       When the  bit is set to one, the line will be initialized to the
58       low-level output state.
59       If the property is not specified all lines will be initialized to the
60       input state.
61
62   interrupts:
63     maxItems: 1
64
65   interrupt-controller: true
66
67   '#interrupt-cells':
68     const: 2
69
70   wakeup-source: true
71
72 patternProperties:
73   "^(.+-hog(-[0-9]+)?)$":
74     type: object
75
76     required:
77       - gpio-hog
78
79 required:
80   - compatible
81   - reg
82   - gpio-controller
83   - '#gpio-cells'
84
85 additionalProperties: false
86
87 examples:
88   - |
89     i2c {
90             #address-cells = <1>;
91             #size-cells = <0>;
92
93             pcf8575: gpio@20 {
94                     compatible = "nxp,pcf8575";
95                     reg = <0x20>;
96                     interrupt-parent = <&irqpin2>;
97                     interrupts = <3 0>;
98                     gpio-controller;
99                     #gpio-cells = <2>;
100                     interrupt-controller;
101                     #interrupt-cells = <2>;
102             };
103     };