All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michael Walle" <mwalle@kernel.org>
To: "Linus Walleij" <linus.walleij@linaro.org>,
	"Andrew Lunn" <andrew@lunn.ch>
Cc: "Ioana Ciornei" <ioana.ciornei@nxp.com>,
	<devicetree@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<linux-gpio@vger.kernel.org>,
	<linux-arm-kernel@lists.infradead.org>,
	"Rob Herring" <robh@kernel.org>,
	"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
	"Conor Dooley" <conor+dt@kernel.org>,
	"Bartosz Golaszewski" <brgl@bgdev.pl>,
	"Shawn Guo" <shawnguo@kernel.org>, "Lee Jones" <lee@kernel.org>,
	"Frank Li" <Frank.Li@nxp.com>
Subject: Re: [PATCH 4/9] gpio: regmap: add the .get_direction() callback
Date: Mon, 14 Jul 2025 08:36:03 +0200	[thread overview]
Message-ID: <DBBKJ05VNSDG.30MNWDWT9JAEC@kernel.org> (raw)
In-Reply-To: <CACRpkda+=A5R4vZZQZKmF3LnGd6xMYbNomahgTW+j9aX9swBFA@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 2261 bytes --]

On Fri Jul 11, 2025 at 8:06 PM CEST, Linus Walleij wrote:
> On Fri, Jul 11, 2025 at 7:45 PM Andrew Lunn <andrew@lunn.ch> wrote:
> > On Fri, Jul 11, 2025 at 07:43:13PM +0200, Linus Walleij wrote:
> > > On Wed, Jul 9, 2025 at 5:09 PM Andrew Lunn <andrew@lunn.ch> wrote:
> > >
> > > > This is not my area, so i will deffer to the GPIO
> > > > Maintainers. However, it is not clear to me what get_direction()
> > > > should return.
> > >
> > > This callback should return the current direction as set up
> > > in the hardware.
> > >
> > > A major usecase is that this is called when the gpiochip is
> > > registered to read out all the current directions of the GPIO
> > > lines, so the kernel has a clear idea of the state of the
> > > hardware.
> > >
> > > Calling this should ideally result in a read of the status from
> > > a hardware register.
> >
> > O.K, so completely different to what is proposed in this patch.
> >
> > Maybe you can suggest a better name.
>
> If the hardware only supports one direction, then .get_direction()
> should return that direction.
>
> What the patch does is to
> read the direction from the hardware and use that in the
> set_direction() callback, as if all regmapped hardware in the
> world had fixed direction, that's wrong.
>
> I'd just add something custom in gpio-regmap if this is
> something reoccuring in regmapped GPIO drivers.
>
> bool is_fixed_direction(struct gpio_regmap *gpio, unsigned int offset)
>
> or so?
>
> Then the core can use is_fixed_direction() together
> with gpio_get_direction() to check if it can do
> a certain set_direction().
>
> Pseudocode:
>
> mydir = get_direction(line)
> if (is_fixed_direction(line) && (mydir != requested_dir)
>   return -ERROR;

You don't need a .is_fixed_direction(). You can deduce that if only
.get_direction() is set in the gpio-regmap config.

mydir = get_direction(line)
if (!config->set_direction && mydir != requested_dir)
  return -ERROR;

That or either Andrew's idea of setting a bitmap within the
gpio-regmap config which already tells the gpio-regmap core and then
amend gpio_regmap_get_direction() to return that fixed direction if
that bitmap is not NULL.

I'm fine with both.

-michael

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 297 bytes --]

  reply	other threads:[~2025-07-14  7:18 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-07-09 11:26 [PATCH 0/9] drivers: gpio: and the QIXIS FPGA GPIO controller Ioana Ciornei
2025-07-09 11:26 ` [PATCH 1/9] dt-bindings: gpio: add bindings for the QIXIS FPGA based " Ioana Ciornei
2025-07-09 12:14   ` Krzysztof Kozlowski
2025-07-09 13:55     ` Ioana Ciornei
2025-07-09 14:11       ` Krzysztof Kozlowski
2025-07-10 22:01   ` Rob Herring
2025-07-15 12:19     ` Ioana Ciornei
2025-07-09 11:26 ` [PATCH 2/9] dt-bindings: fsl,fpga-qixis-i2c: extend support to also cover the LX2160ARDB FPGA Ioana Ciornei
2025-07-09 12:17   ` Krzysztof Kozlowski
2025-07-09 14:31     ` Ioana Ciornei
2025-07-10 22:04     ` Rob Herring
2025-07-09 11:26 ` [PATCH 3/9] mfd: simple-mfd-i2c: add compatible string for LX2160ARDB Ioana Ciornei
2025-07-09 11:26 ` [PATCH 4/9] gpio: regmap: add the .get_direction() callback Ioana Ciornei
2025-07-09 15:01   ` Michael Walle
2025-07-14 13:17     ` Ioana Ciornei
2025-07-09 15:09   ` Andrew Lunn
2025-07-09 15:36     ` Michael Walle
2025-07-10  9:23     ` Ioana Ciornei
2025-07-11 17:43     ` Linus Walleij
2025-07-11 17:45       ` Andrew Lunn
2025-07-11 18:06         ` Linus Walleij
2025-07-14  6:36           ` Michael Walle [this message]
2025-07-15 11:38             ` Ioana Ciornei
2025-07-15 12:51               ` Michael Walle
2025-07-09 11:26 ` [PATCH 5/9] drivers: gpio: add QIXIS FPGA GPIO controller Ioana Ciornei
2025-07-09 15:17   ` Andrew Lunn
2025-07-10 10:01     ` Ioana Ciornei
2025-07-10 14:12       ` Andrew Lunn
2025-07-09 11:26 ` [PATCH 6/9] arm64: dts: lx2160a-rdb: describe the QIXIS FPGA and two child GPIO controllers Ioana Ciornei
2025-07-09 11:26 ` [PATCH 7/9] arm64: dts: ls1046a-qds: describe the FPGA based GPIO controller Ioana Ciornei
2025-07-09 11:26 ` [PATCH 8/9] arm64: dts: lx2160a-rdb: fully describe the two SFP+ cages Ioana Ciornei
2025-07-09 11:26 ` [PATCH 9/9] arm64: dts: ls1046a-qds: describe the two on-board " Ioana Ciornei

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=DBBKJ05VNSDG.30MNWDWT9JAEC@kernel.org \
    --to=mwalle@kernel.org \
    --cc=Frank.Li@nxp.com \
    --cc=andrew@lunn.ch \
    --cc=brgl@bgdev.pl \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=ioana.ciornei@nxp.com \
    --cc=krzk+dt@kernel.org \
    --cc=lee@kernel.org \
    --cc=linus.walleij@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=robh@kernel.org \
    --cc=shawnguo@kernel.org \
    /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.