| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191 |
- # 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";
- };
- };
- };
|