From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
To: Hugo Villeneuve <hugo@hugovil.com>
Cc: Andy Shevchenko <andriy.shevchenko@intel.com>,
robin@protonic.nl, andy@kernel.org, geert@linux-m68k.org,
robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org,
hvilleneuve@dimonoff.com, mkorpershoek@kernel.org,
matthias.bgg@gmail.com, angelogioacchino.delregno@collabora.com,
lee@kernel.org, alexander.sverdlin@gmail.com,
marek.vasut@gmail.com, akurz@blala.de,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-input@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-mediatek@lists.infradead.org
Subject: Re: [PATCH v3 4/4] Input: charlieplex_keypad: add GPIO charlieplex keypad
Date: Wed, 25 Feb 2026 09:12:57 -0800 [thread overview]
Message-ID: <aZ8sjwaKk5MCSDlg@google.com> (raw)
In-Reply-To: <20260225114155.3ee2efb002aa0f52a905f535@hugovil.com>
Hi Hugo,
On Wed, Feb 25, 2026 at 11:41:55AM -0500, Hugo Villeneuve wrote:
> Hi Andy,
> thank you for the review.
>
> On Wed, 25 Feb 2026 18:12:13 +0200
> Andy Shevchenko <andriy.shevchenko@intel.com> wrote:
>
> > On Wed, Feb 25, 2026 at 10:54:01AM -0500, Hugo Villeneuve wrote:
> >
> > > Add support for GPIO-based charlieplex keypad, allowing to control
> > > N^2-N keys using N GPIO lines.
> > >
> > > Reuse matrix keypad keymap to simplify, even if there is no concept
> > > of rows and columns in this type of keyboard.
> >
> > ...
> >
> > > +/*
> > > + * GPIO driven charlieplex keypad driver
> > > + *
> > > + * Copyright (c) 2025 Hugo Villeneuve <hvilleneuve@dimonoff.com>
> > > + *
> > > + * Based on matrix_keyboard.c
> >
> > A single space after asterisk is enough.
>
> Ok, leftover from copy/paste from matrix_keyboard.c :)
>
> >
> > > + */
> >
> > ...
> >
> > + bitops.h
> >
> > > +#include <linux/delay.h>
> >
> > + dev_printk.h
> > + device/devres.h
> > + err.h
> >
> > > +#include <linux/gpio/consumer.h>
> > > +#include <linux/input.h>
> > > +#include <linux/input/matrix_keypad.h>
> >
> > + math.h
>
> Ok.
>
>
> >
> > > +#include <linux/module.h>
> >
> > > +#include <linux/of.h>
> >
> > Is this in use? Or you wanted mod_devicetable.h for OF ID table?
>
> I need only OF ID table, so will replace with mod_devicetable.h.
>
>
> >
> > > +#include <linux/platform_device.h>
> > > +#include <linux/property.h>
> > > +#include <linux/types.h>
> >
> > ...
> >
> > > + for (code = 0, oline = 0; oline < keypad->nlines; oline++) {
> > > + DECLARE_BITMAP(values, MATRIX_MAX_ROWS);
> > > + int iline;
> >
> > > + int rc;
> >
> > I think Dmitry prefers 'error' name for this kind of variables.
>
> I hate using "error", can be so misleading :)
>
> I would prefer to use "rc" everywhere, but if Dmitry chimes in and
> specifies "error" or "err", then so it will be.
Yes, I prefer err or error for variables that carry error code or 0.
This allows to write
error = action(...);
if (error) {
// handle it
}
which is very clear IMO.
> > > +
> > > + err = input_register_device(keypad->input_dev);
> > > + if (err)
> > > + return err;
> >
> > > + platform_set_drvdata(pdev, keypad);
> >
> > Is this needed?
>
> No, will remove it, and replace last lines with:
>
> return input_register_device(keypad->input_dev);
Please use
err = input_register_device(...);
if (err)
return err;
return 0;
It clearly differentiates error an normal paths, shows that function
returns 0 and not anything else on success, and allows to reorder
or add additional actions easily.
Thanks.
--
Dmitry
next prev parent reply other threads:[~2026-02-25 17:13 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-25 15:53 [PATCH v3 0/4] input: add GPIO-based charlieplex keypad Hugo Villeneuve
2026-02-25 15:53 ` [PATCH v3 1/4] dt-bindings: input: add debounce-delay-ms common property Hugo Villeneuve
2026-02-25 15:53 ` [PATCH v3 2/4] dt-bindings: input: add settling-time-us " Hugo Villeneuve
2026-02-25 15:54 ` [PATCH v3 3/4] dt-bindings: input: add GPIO charlieplex keypad Hugo Villeneuve
2026-02-26 9:32 ` Geert Uytterhoeven
2026-02-26 14:48 ` Hugo Villeneuve
2026-02-26 15:35 ` Hugo Villeneuve
2026-02-25 15:54 ` [PATCH v3 4/4] Input: charlieplex_keypad: " Hugo Villeneuve
2026-02-25 16:12 ` Andy Shevchenko
2026-02-25 16:41 ` Hugo Villeneuve
2026-02-25 16:56 ` Hugo Villeneuve
2026-02-25 17:14 ` Dmitry Torokhov
2026-02-25 17:21 ` Andy Shevchenko
2026-02-25 17:36 ` Hugo Villeneuve
2026-02-25 17:12 ` Dmitry Torokhov [this message]
2026-02-25 17:27 ` Hugo Villeneuve
2026-02-26 9:20 ` [PATCH v3 0/4] input: add GPIO-based " Geert Uytterhoeven
2026-02-26 14:27 ` Hugo Villeneuve
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aZ8sjwaKk5MCSDlg@google.com \
--to=dmitry.torokhov@gmail.com \
--cc=akurz@blala.de \
--cc=alexander.sverdlin@gmail.com \
--cc=andriy.shevchenko@intel.com \
--cc=andy@kernel.org \
--cc=angelogioacchino.delregno@collabora.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=geert@linux-m68k.org \
--cc=hugo@hugovil.com \
--cc=hvilleneuve@dimonoff.com \
--cc=krzk+dt@kernel.org \
--cc=lee@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=marek.vasut@gmail.com \
--cc=matthias.bgg@gmail.com \
--cc=mkorpershoek@kernel.org \
--cc=robh@kernel.org \
--cc=robin@protonic.nl \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.