Message ID | 20241223-mdb-max7360-support-v2-1-37a8d22c36ed@bootlin.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | Add support for MAX7360 | expand |
Hello, just a nitpick I noticed, not a full review: On Mon, Dec 23, 2024 at 05:42:33PM +0100, Mathieu Dubois-Briand wrote: > +examples: > + - | > + gpio { > + compatible = "maxim,max7360-gpio"; > + > + gpio-controller; > + #gpio-cells = <0x2>; > + ngpios = <8>; > + maxim,constant-current-disable = <0x06>; > + > + interrupt-controller; > + #interrupt-cells = <0x2>; > + }; I think s/ // in the line with the closing curly brace. Best regards Uwe
On 23/12/2024 17:42, 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 | 80 +++++++++++++++ > .../devicetree/bindings/mfd/maxim,max7360.yaml | 107 +++++++++++++++++++++ > 2 files changed, 187 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..6e6133ce6e68 > --- /dev/null > +++ b/Documentation/devicetree/bindings/gpio/maxim,max7360-gpio.yaml > @@ -0,0 +1,80 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/gpio/maxim,max7360-gpio.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Maxim MAX7360 GPIO controller > + > +maintainers: > + - Kamel Bouhara <kamel.bouhara@bootlin.com> > + - Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> > + > +description: | > + Maxim MAX7360 GPIO controller, in MAX7360 chipset > + https://www.analog.com/en/products/max7360.html Don't send new versions so fast, especially for larger patchsets, so we can finish previous discussion. You gave me yesterday around 1 hour to respond to your last email and then you sent v2. Please implement my last comments on v1. > + > +properties: > + compatible: > + enum: > + - maxim,max7360-gpio > + - maxim,max7360-gpo ... > +additionalProperties: false > + > +examples: > + - | > + gpio { > + compatible = "maxim,max7360-gpio"; > + > + gpio-controller; > + #gpio-cells = <0x2>; Not a hex, <2> > + ngpios = <8>; > + maxim,constant-current-disable = <0x06>; > + > + interrupt-controller; > + #interrupt-cells = <0x2>; Not a hex, <2> > + }; > diff --git a/Documentation/devicetree/bindings/mfd/maxim,max7360.yaml b/Documentation/devicetree/bindings/mfd/maxim,max7360.yaml > new file mode 100644 > index 000000000000..1f761707070a > --- /dev/null > +++ b/Documentation/devicetree/bindings/mfd/maxim,max7360.yaml > @@ -0,0 +1,107 @@ > +# 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: > + minItems: 2 You can drop minItems. > + 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 > + > + autorepeat: true > + > + 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. > + > + "#pwm-cells": > + const: 3 > + > +required: > + - compatible > + - reg > + - interrupts > + - interrupt-names > + - linux,keymap > + - linux,axis > + - "#pwm-cells" > + > +unevaluatedProperties: false > + Well, I still see it incomplete... and to prove it, please post your DTS for entire max7360 and validate it against bindings. There is no way this works, unless GPIO is not part of this device but then it is obviously incorrect design. Best regards, Krzysztof
On Tue Dec 24, 2024 at 10:12 AM CET, Krzysztof Kozlowski wrote: > On 23/12/2024 17:42, 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 | 80 +++++++++++++++ > > .../devicetree/bindings/mfd/maxim,max7360.yaml | 107 +++++++++++++++++++++ > > 2 files changed, 187 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..6e6133ce6e68 > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/gpio/maxim,max7360-gpio.yaml > > @@ -0,0 +1,80 @@ > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/gpio/maxim,max7360-gpio.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: Maxim MAX7360 GPIO controller > > + > > +maintainers: > > + - Kamel Bouhara <kamel.bouhara@bootlin.com> > > + - Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> > > + > > +description: | > > + Maxim MAX7360 GPIO controller, in MAX7360 chipset > > + https://www.analog.com/en/products/max7360.html > > Don't send new versions so fast, especially for larger patchsets, so we > can finish previous discussion. > > You gave me yesterday around 1 hour to respond to your last email and > then you sent v2. > Soddy, I didn't mean to. I thought having a v2 would be easier to show how I addressed the previous comments, but I definitely was too fast. I will make sure to wait more next time. > Please implement my last comments on v1. > > > + > > +properties: > > + compatible: > > + enum: > > + - maxim,max7360-gpio > > + - maxim,max7360-gpo > > > ... > > > +additionalProperties: false > > + > > +examples: > > + - | > > + gpio { > > + compatible = "maxim,max7360-gpio"; > > + > > + gpio-controller; > > + #gpio-cells = <0x2>; > > Not a hex, <2> > > > + ngpios = <8>; > > + maxim,constant-current-disable = <0x06>; > > + > > + interrupt-controller; > > + #interrupt-cells = <0x2>; > > Not a hex, <2> > Ok, I will fix both values. > > + }; > > diff --git a/Documentation/devicetree/bindings/mfd/maxim,max7360.yaml b/Documentation/devicetree/bindings/mfd/maxim,max7360.yaml > > new file mode 100644 > > index 000000000000..1f761707070a > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/mfd/maxim,max7360.yaml > > @@ -0,0 +1,107 @@ > > +# 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: > > + minItems: 2 > > You can drop minItems. > Ok, fixed. > > + 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 > > + > > + autorepeat: true > > + > > + 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. > > + > > + "#pwm-cells": > > + const: 3 > > + > > +required: > > + - compatible > > + - reg > > + - interrupts > > + - interrupt-names > > + - linux,keymap > > + - linux,axis > > + - "#pwm-cells" > > + > > +unevaluatedProperties: false > > + > > Well, I still see it incomplete... and to prove it, please post your DTS > for entire max7360 and validate it against bindings. > > There is no way this works, unless GPIO is not part of this device but > then it is obviously incorrect design. > Ok, it looks like I completely missed how it was supposed to be described. So, if I got it right, I need to: - Add two properties, gpio and gpo, with $ref: /schemas/gpio/maxim,max7360-gpio.yaml# - Add the two gpio and gpo child nodes in the example. > > Best regards, > Krzysztof Thanks for your review, Mathieu
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..6e6133ce6e68 --- /dev/null +++ b/Documentation/devicetree/bindings/gpio/maxim,max7360-gpio.yaml @@ -0,0 +1,80 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/gpio/maxim,max7360-gpio.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Maxim MAX7360 GPIO controller + +maintainers: + - Kamel Bouhara <kamel.bouhara@bootlin.com> + - Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> + +description: | + Maxim MAX7360 GPIO controller, in MAX7360 chipset + https://www.analog.com/en/products/max7360.html + +properties: + compatible: + enum: + - maxim,max7360-gpio + - maxim,max7360-gpo + + gpio-controller: true + + "#gpio-cells": + const: 2 + + ngpios: + minimum: 0 + maximum: 8 + + interrupt-controller: true + + "#interrupt-cells": + const: 2 + + maxim,constant-current-disable: + $ref: /schemas/types.yaml#/definitions/uint32 + description: | + Bit field, each bit disables constant-current output of the associated + GPIO, starting from the least significant bit for the first GPIO. + + +required: + - compatible + - gpio-controller + - ngpios + +if: + properties: + compatible: + contains: + enum: + - maxim,max7360-gpio +then: + required: + - interrupt-controller +else: + properties: + interrupt-controller: false + maxim,constant-current-disable: false + + ngpios: + maximum: 6 + +additionalProperties: false + +examples: + - | + gpio { + compatible = "maxim,max7360-gpio"; + + gpio-controller; + #gpio-cells = <0x2>; + ngpios = <8>; + maxim,constant-current-disable = <0x06>; + + interrupt-controller; + #interrupt-cells = <0x2>; + }; diff --git a/Documentation/devicetree/bindings/mfd/maxim,max7360.yaml b/Documentation/devicetree/bindings/mfd/maxim,max7360.yaml new file mode 100644 index 000000000000..1f761707070a --- /dev/null +++ b/Documentation/devicetree/bindings/mfd/maxim,max7360.yaml @@ -0,0 +1,107 @@ +# 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: + minItems: 2 + 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 + + autorepeat: true + + 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. + + "#pwm-cells": + const: 3 + +required: + - compatible + - reg + - interrupts + - interrupt-names + - linux,keymap + - linux,axis + - "#pwm-cells" + +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 */ + + #pwm-cells = <3>; + }; + };
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 | 80 +++++++++++++++ .../devicetree/bindings/mfd/maxim,max7360.yaml | 107 +++++++++++++++++++++ 2 files changed, 187 insertions(+)