# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/mfd/maxim,max7360.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Maxim MAX7360 Keypad, Rotary encoder, PWM and GPIO controller

maintainers:
  - Kamel Bouhara <kamel.bouhara@bootlin.com>
  - Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>

description: |
  Maxim MAX7360 device, with following functions:
    - keypad controller
    - rotary controller
    - GPIO and GPO controller
    - PWM controller

  https://www.analog.com/en/products/max7360.html

allOf:
  - $ref: /schemas/input/matrix-keymap.yaml#
  - $ref: /schemas/input/input.yaml#

properties:
  compatible:
    enum:
      - maxim,max7360

  reg:
    maxItems: 1

  interrupts:
    maxItems: 2

  interrupt-names:
    items:
      - const: inti
      - const: intk

  keypad-debounce-delay-ms:
    description: Keypad debounce delay in ms
    minimum: 9
    maximum: 40
    default: 9

  rotary-debounce-delay-ms:
    description: Rotary encoder debounce delay in ms
    minimum: 0
    maximum: 15
    default: 0

  linux,axis:
    $ref: /schemas/input/rotary-encoder.yaml#/properties/linux,axis

  rotary-encoder,relative-axis:
    $ref: /schemas/types.yaml#/definitions/flag
    description:
      Register a relative axis rather than an absolute one.

  rotary-encoder,steps:
    $ref: /schemas/types.yaml#/definitions/uint32
    default: 24
    description:
      Number of steps in a full turnaround of the
      encoder. Only relevant for absolute axis. Defaults to 24 which is a
      typical value for such devices.

  rotary-encoder,rollover:
    $ref: /schemas/types.yaml#/definitions/flag
    description:
      Automatic rollover when the rotary value becomes
      greater than the specified steps or smaller than 0. For absolute axis only.

  "#pwm-cells":
    const: 3

  gpio:
    $ref: /schemas/gpio/maxim,max7360-gpio.yaml#
    description:
      PORT0 to PORT7 general purpose input/output pins configuration.

  gpo:
    $ref: /schemas/gpio/maxim,max7360-gpio.yaml#
    description: >
      COL2 to COL7 general purpose output pins configuration. Allows to use
      unused keypad columns as outputs.

      The MAX7360 has 8 column lines and 6 of them can be used as GPOs. GPIOs
      numbers used for this gpio-controller node do correspond to the column
      numbers: values 0 and 1 are never valid, values from 2 to 7 might be valid
      depending on the value of the keypad,num-column property.

patternProperties:
  '-pins$':
    type: object
    description:
      Pinctrl node's client devices use subnodes for desired pin configuration.
      Client device subnodes use below standard properties.
    $ref: /schemas/pinctrl/pincfg-node.yaml

    properties:
      pins:
        description:
          List of gpio pins affected by the properties specified in this
          subnode.
        items:
          pattern: '^(PORT[0-7]|ROTARY)$'
        minItems: 1
        maxItems: 8

      function:
        description:
          Specify the alternative function to be configured for the specified
          pins.
        enum: [gpio, pwm, rotary]

    additionalProperties: false

required:
  - compatible
  - reg
  - interrupts
  - interrupt-names
  - linux,keymap
  - linux,axis
  - "#pwm-cells"
  - gpio
  - gpo

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/input/input.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>

    i2c {
      #address-cells = <1>;
      #size-cells = <0>;

      io-expander@38 {
        compatible = "maxim,max7360";
        reg = <0x38>;

        interrupt-parent = <&gpio1>;
        interrupts = <23 IRQ_TYPE_LEVEL_LOW>,
                     <24 IRQ_TYPE_LEVEL_LOW>;
        interrupt-names = "inti", "intk";

        keypad,num-rows = <8>;
        keypad,num-columns = <4>;
        linux,keymap = <
          MATRIX_KEY(0x00, 0x00, KEY_F5)
          MATRIX_KEY(0x01, 0x00, KEY_F4)
          MATRIX_KEY(0x02, 0x01, KEY_F6)
          >;
        keypad-debounce-delay-ms = <10>;
        autorepeat;

        rotary-debounce-delay-ms = <2>;
        linux,axis = <0>; /* REL_X */
        rotary-encoder,relative-axis;

        #pwm-cells = <3>;

        max7360_gpio: gpio {
          compatible = "maxim,max7360-gpio";

          gpio-controller;
          #gpio-cells = <2>;
          maxim,constant-current-disable = <0x06>;

          interrupt-controller;
          #interrupt-cells = <0x2>;
        };

        max7360_gpo: gpo {
          compatible = "maxim,max7360-gpo";

          gpio-controller;
          #gpio-cells = <2>;
        };

        backlight_pins: backlight-pins {
          pins = "PORT2";
          function = "pwm";
        };
      };
    };
