Re: [PATCH v5 01/11] dt-bindings: mfd: gpio: Add MAX7360

Mathieu Dubois-Briand
2025-03-19T16:43:15Z

On Tue Mar 18, 2025 at 6:39 PM CET, Rob Herring wrote:
> On Tue, Mar 18, 2025 at 05:26:17PM +0100, Mathieu Dubois-Briand wrote:
> > Add device tree bindings for Maxim Integrated MAX7360 device with
> > support for keypad, rotary, gpios and pwm functionalities.
> >
> > Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
> > ---
> > .../bindings/gpio/maxim,max7360-gpio.yaml | 83 ++++++++++
> > .../devicetree/bindings/mfd/maxim,max7360.yaml | 170 +++++++++++++++++++++
> > 2 files changed, 253 insertions(+)
> >
> > diff --git a/Documentation/devicetree/bindings/gpio/maxim,max7360-gpio.yaml b/Documentation/devicetree/bindings/gpio/maxim,max7360-gpio.yaml
> > new file mode 100644
> > index 000000000000..21d603d9504c
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/gpio/maxim,max7360-gpio.yaml
> > @@ -0,0 +1,83 @@
> > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)

...

> > +
> > + keypad-debounce-delay-ms:
>
> The existing debounce-delay-ms or poll-interval properties don't work
> for you?
>

The issue is this node also describes the rotary encoder (just below),
so I feel using only debounce-delay-ms is a bit misleading.

> > + 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:
> > + description: The input subsystem axis to map to this rotary encoder.
>
> You should have a $ref to rotary-encoder.yaml too. None of the other
> properties in it are needed?

Makes sense, thanks!

And no, I believe this is the only property we need.

>
> > +
> > + "#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.
>
> Are these paragraphs? If so, add a blank line between paragraphs. If
> not, re-wrap the lines.
>

OK

> > + 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$'
>
> Don't you need ()?:
>
> ^(PORT[0-7]|ROTARY)$'
>

Yes!

Thanks for your review.
Mathieu

--
Mathieu Dubois-Briand, Bootlin
Embedded Linux and Kernel engineering