xref: /linux/Documentation/devicetree/bindings/gpio/maxim,max7360-gpio.yaml (revision 4f38da1f027ea2c9f01bb71daa7a299c191b6940)
1*aee81445SMathieu Dubois-Briand# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*aee81445SMathieu Dubois-Briand%YAML 1.2
3*aee81445SMathieu Dubois-Briand---
4*aee81445SMathieu Dubois-Briand$id: http://devicetree.org/schemas/gpio/maxim,max7360-gpio.yaml#
5*aee81445SMathieu Dubois-Briand$schema: http://devicetree.org/meta-schemas/core.yaml#
6*aee81445SMathieu Dubois-Briand
7*aee81445SMathieu Dubois-Briandtitle: Maxim MAX7360 GPIO controller
8*aee81445SMathieu Dubois-Briand
9*aee81445SMathieu Dubois-Briandmaintainers:
10*aee81445SMathieu Dubois-Briand  - Kamel Bouhara <kamel.bouhara@bootlin.com>
11*aee81445SMathieu Dubois-Briand  - Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
12*aee81445SMathieu Dubois-Briand
13*aee81445SMathieu Dubois-Brianddescription: |
14*aee81445SMathieu Dubois-Briand  Maxim MAX7360 GPIO controller, in MAX7360 chipset
15*aee81445SMathieu Dubois-Briand  https://www.analog.com/en/products/max7360.html
16*aee81445SMathieu Dubois-Briand
17*aee81445SMathieu Dubois-Briand  The device provides two series of GPIOs, referred here as GPIOs and GPOs.
18*aee81445SMathieu Dubois-Briand
19*aee81445SMathieu Dubois-Briand  PORT0 to PORT7 pins can be used as GPIOs, with support for interrupts and
20*aee81445SMathieu Dubois-Briand  constant-current mode. These pins will also be used by the rotary encoder and
21*aee81445SMathieu Dubois-Briand  PWM functionalities.
22*aee81445SMathieu Dubois-Briand
23*aee81445SMathieu Dubois-Briand  COL2 to COL7 pins can be used as GPOs, there is no input capability. COL pins
24*aee81445SMathieu Dubois-Briand  will be partitioned, with the first pins being affected to the keypad
25*aee81445SMathieu Dubois-Briand  functionality and the last ones as GPOs.
26*aee81445SMathieu Dubois-Briand
27*aee81445SMathieu Dubois-Briandproperties:
28*aee81445SMathieu Dubois-Briand  compatible:
29*aee81445SMathieu Dubois-Briand    enum:
30*aee81445SMathieu Dubois-Briand      - maxim,max7360-gpio
31*aee81445SMathieu Dubois-Briand      - maxim,max7360-gpo
32*aee81445SMathieu Dubois-Briand
33*aee81445SMathieu Dubois-Briand  gpio-controller: true
34*aee81445SMathieu Dubois-Briand
35*aee81445SMathieu Dubois-Briand  "#gpio-cells":
36*aee81445SMathieu Dubois-Briand    const: 2
37*aee81445SMathieu Dubois-Briand
38*aee81445SMathieu Dubois-Briand  interrupt-controller: true
39*aee81445SMathieu Dubois-Briand
40*aee81445SMathieu Dubois-Briand  "#interrupt-cells":
41*aee81445SMathieu Dubois-Briand    const: 2
42*aee81445SMathieu Dubois-Briand
43*aee81445SMathieu Dubois-Briand  maxim,constant-current-disable:
44*aee81445SMathieu Dubois-Briand    $ref: /schemas/types.yaml#/definitions/uint32
45*aee81445SMathieu Dubois-Briand    description:
46*aee81445SMathieu Dubois-Briand      Bit field, each bit disables constant-current output of the associated
47*aee81445SMathieu Dubois-Briand      GPIO, starting from the least significant bit for the first GPIO.
48*aee81445SMathieu Dubois-Briand    maximum: 0xff
49*aee81445SMathieu Dubois-Briand
50*aee81445SMathieu Dubois-Briandrequired:
51*aee81445SMathieu Dubois-Briand  - compatible
52*aee81445SMathieu Dubois-Briand  - gpio-controller
53*aee81445SMathieu Dubois-Briand
54*aee81445SMathieu Dubois-BriandallOf:
55*aee81445SMathieu Dubois-Briand  - if:
56*aee81445SMathieu Dubois-Briand      properties:
57*aee81445SMathieu Dubois-Briand        compatible:
58*aee81445SMathieu Dubois-Briand          contains:
59*aee81445SMathieu Dubois-Briand            enum:
60*aee81445SMathieu Dubois-Briand              - maxim,max7360-gpio
61*aee81445SMathieu Dubois-Briand        ngpios: false
62*aee81445SMathieu Dubois-Briand    then:
63*aee81445SMathieu Dubois-Briand      required:
64*aee81445SMathieu Dubois-Briand        - interrupt-controller
65*aee81445SMathieu Dubois-Briand    else:
66*aee81445SMathieu Dubois-Briand      properties:
67*aee81445SMathieu Dubois-Briand        interrupt-controller: false
68*aee81445SMathieu Dubois-Briand        maxim,constant-current-disable: false
69*aee81445SMathieu Dubois-Briand
70*aee81445SMathieu Dubois-BriandadditionalProperties: false
71*aee81445SMathieu Dubois-Briand
72*aee81445SMathieu Dubois-Briandexamples:
73*aee81445SMathieu Dubois-Briand  - |
74*aee81445SMathieu Dubois-Briand    gpio {
75*aee81445SMathieu Dubois-Briand      compatible = "maxim,max7360-gpio";
76*aee81445SMathieu Dubois-Briand
77*aee81445SMathieu Dubois-Briand      gpio-controller;
78*aee81445SMathieu Dubois-Briand      #gpio-cells = <2>;
79*aee81445SMathieu Dubois-Briand      maxim,constant-current-disable = <0x06>;
80*aee81445SMathieu Dubois-Briand
81*aee81445SMathieu Dubois-Briand      interrupt-controller;
82*aee81445SMathieu Dubois-Briand      #interrupt-cells = <2>;
83*aee81445SMathieu Dubois-Briand    };
84