Based on kernel version 6.18. Page generated on 2025-12-02 09:03 EST.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 | # 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"; }; }; }; |