All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andy Shevchenko <andy.shevchenko@gmail.com>
To: Sergio Paracuellos <sergio.paracuellos@gmail.com>
Cc: "open list:GPIO SUBSYSTEM" <linux-gpio@vger.kernel.org>,
	"Bartosz Golaszewski" <bgolaszewski@baylibre.com>,
	"Matthias Brugger" <matthias.bgg@gmail.com>,
	"Linus Walleij" <linus.walleij@linaro.org>,
	"John Thomson" <git@johnthomson.fastmail.com.au>,
	"Linux Kernel Mailing List" <linux-kernel@vger.kernel.org>,
	NeilBrown <neil@brown.name>,
	"René van Dorst" <opensource@vdorst.com>,
	"Nicholas Mc Guire" <hofrat@osadl.org>
Subject: Re: [PATCH v2] gpio: mt7621: support gpio-line-names property
Date: Fri, 2 Jul 2021 12:26:24 +0300	[thread overview]
Message-ID: <CAHp75VccSCWa=EH8i01_b_HLZRumUZ48oRjeuaV5Dp1BQAoz2w@mail.gmail.com> (raw)
In-Reply-To: <CAMhs-H9gw63j98vVo3y0ymW4_6rFNL8u5cYNM2hzyrmkPB3h3w@mail.gmail.com>

On Sun, Jun 27, 2021 at 4:13 PM Sergio Paracuellos
<sergio.paracuellos@gmail.com> wrote:
> On Sun, Jun 27, 2021 at 3:01 PM Andy Shevchenko
> <andy.shevchenko@gmail.com> wrote:
> > On Sun, Jun 27, 2021 at 1:56 PM Sergio Paracuellos
> > <sergio.paracuellos@gmail.com> wrote:
> > > On Sun, Jun 27, 2021 at 12:51 PM Andy Shevchenko
> > > <andy.shevchenko@gmail.com> wrote:
> > > > On Sun, Jun 27, 2021 at 12:47 PM Sergio Paracuellos
> > > > <sergio.paracuellos@gmail.com> wrote:
> > > > > On Sun, Jun 27, 2021 at 11:33 AM Andy Shevchenko
> > > > > <andy.shevchenko@gmail.com> wrote:
> > > > > > On Sat, Jun 26, 2021 at 7:18 PM Sergio Paracuellos
> > > > > > <sergio.paracuellos@gmail.com> wrote:
> > > > > > >
> > > > > > > The default handling of the gpio-line-names property by the
> > > > > > > gpiolib-of implementation does not work with the multiple
> > > > > > > gpiochip banks per device structure used by the gpio-mt7621
> > > > > > > driver.
> > > > > > >
> > > > > > > This commit adds driver level support for the device tree
> > > > > > > property so that GPIO lines can be assigned friendly names.
> > > >
> > > > > > > This driver has three gpiochips with 32 gpios each. Core implementation
> > > > > >
> > > > > > implementation
> > > > > >
> > > > > >
> > > > > > > got gpio's repeated along each gpio chip if chip.names is not assigned.
> > > > > > > To avoid this behaviour driver will set this names as empty or
> > > > > >
> > > > > > the driver
> > > > > > these names
> > > > > >
> > > > > > > with desired friendly line names. Consider the following sample with
> > > > > > > minimal entries for the first chip with this patch changes applied:
> > > > > >
> > > > > > The same comment as per v1:
> > > > > >
> > > > > > Any idea why it's not a duplicate of
> > > > > > https://elixir.bootlin.com/linux/v5.13-rc7/C/ident/devprop_gpiochip_set_names,
> > > > > > and why the latter is not called in your case?
> > > > >
> > > > > The core properly calls this function but not in the way expected.
> > > > > This driver implements three banks of 32 gpios each internally using
> > > > > one gpiochip per bank, all of them in the same device. So the core
> > > > > code you are pointing out here duplicates the same names along the
> > > > > three gpiochips which is not the expected behaviour. So implementing
> > > > > in this way and setting names at least reserved avoids the core code
> > > > > to be run and also avoids the duplication getting expected behaviour
> > > > > for all the banks and each line friendly name.
> > > >
> > > > Isn't it the problem of how we supply fwnode in that case?
> > > > Another possibility is to fix DT (although I'm not sure it's now possible).
> > >
> > > Since the fwnode is the same for all banks of the same device, each bank
> > > repeats the first MTK_BANK_WIDTH label names in each bank.
> >
> > Can you point out the DT in question?
>
> https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git/tree/drivers/staging/mt7621-dts/mt7621.dtsi?h=staging-next
>
> Gpio node:
>
>  gpio: gpio@600 {
>               #gpio-cells = <2>;
>               #interrupt-cells = <2>;
>               compatible = "mediatek,mt7621-gpio";
>               gpio-controller;
>               gpio-ranges = <&pinctrl 0 0 95>;
>               interrupt-controller;
>               reg = <0x600 0x100>;
>               interrupt-parent = <&gic>;
>               interrupts = <GIC_SHARED 12 IRQ_TYPE_LEVEL_HIGH>;
>    };
>
> My overlay:
>
> &gpio {
>     gpio-line-names = "", "", "", "",
>                       "", "", "SFP LOS", "extcon port5 PoE compat",
>                       "SFP module def0", "LED blue SFP", "SFP tx disable", "",
>                       "switch USB power", "mode", "", "buzzer",
>                       "LED blue pwr", "switch port5 PoE out", "reset";
> };
>
>
>
> >
> > > This commit populates the gc.names member of each bank from the
> > > device-tree node within the driver. This overrides the default behavior
> > > since devprop_gpiochip_set_names() will only be called if names is NULL.
> >
> > I believe this commit is not needed in the proposed (i.e. duplication) shape.
> > The fwnode supports primary and secondary ones. Thus, we may create a
> > pair of fwnodes when they will unify properties per device with
> > properties per child together (child is primary and device, i.e.
> > parent, is secondary).
>
> There are no child nodes, all the stuff is in the same parent node
> and, as I said, belongs to the same device but internally uses three
> gpiochips.

And it can't be split into three children in the overlay?
Let's assume it can't, then the GPIO library function should be
refactored in a way that it takes parameters like base index for the
names and tries to satisfy the caller.

> This case is pretty much the same as the following already
> added commit for gpio-brcmstb:
>
> https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git/commit/drivers/gpio/gpio-brcmstb.c?id=5eefcaed501dd9e3933dbff58720244bd75ed90f

This should be fixed accordingly.

-- 
With Best Regards,
Andy Shevchenko

  reply	other threads:[~2021-07-02  9:27 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-26 16:18 [PATCH v2] gpio: mt7621: support gpio-line-names property Sergio Paracuellos
2021-06-27  9:33 ` Andy Shevchenko
2021-06-27  9:47   ` Sergio Paracuellos
2021-06-27 10:51     ` Andy Shevchenko
2021-06-27 10:56       ` Sergio Paracuellos
2021-06-27 13:00         ` Andy Shevchenko
2021-06-27 13:12           ` Sergio Paracuellos
2021-07-02  9:26             ` Andy Shevchenko [this message]
2021-07-02  9:40               ` Sergio Paracuellos
2021-07-02  9:56                 ` Andy Shevchenko
2021-07-02 10:18                 ` Linus Walleij
2021-07-02 11:30                   ` Sergio Paracuellos
2021-07-03 11:06                     ` Sergio Paracuellos
2021-07-03 11:32                       ` Andy Shevchenko
2021-07-03 12:05                         ` Sergio Paracuellos
2021-07-03 12:51                           ` Sergio Paracuellos
2021-07-03 19:36                             ` Andy Shevchenko
2021-07-04  5:57                               ` Sergio Paracuellos
2021-07-04  8:06                                 ` Sergio Paracuellos
2021-07-04 10:04                                   ` Andy Shevchenko
2021-07-04 11:25                                     ` Sergio Paracuellos
2021-07-04 11:35                                       ` Andy Shevchenko
2021-07-04 20:07                                         ` Sergio Paracuellos
2021-07-04 20:15                                           ` Sergio Paracuellos

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='CAHp75VccSCWa=EH8i01_b_HLZRumUZ48oRjeuaV5Dp1BQAoz2w@mail.gmail.com' \
    --to=andy.shevchenko@gmail.com \
    --cc=bgolaszewski@baylibre.com \
    --cc=git@johnthomson.fastmail.com.au \
    --cc=hofrat@osadl.org \
    --cc=linus.walleij@linaro.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=matthias.bgg@gmail.com \
    --cc=neil@brown.name \
    --cc=opensource@vdorst.com \
    --cc=sergio.paracuellos@gmail.com \
    /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.