devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Michael Walle <michael@walle.cc>
To: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Cc: linux-gpio <linux-gpio@vger.kernel.org>,
	linux-devicetree <devicetree@vger.kernel.org>,
	LKML <linux-kernel@vger.kernel.org>,
	linux-hwmon@vger.kernel.org, linux-pwm@vger.kernel.org,
	LINUXWATCHDOG <linux-watchdog@vger.kernel.org>,
	arm-soc <linux-arm-kernel@lists.infradead.org>,
	"Linus Walleij" <linus.walleij@linaro.org>,
	"Rob Herring" <robh+dt@kernel.org>,
	"Jean Delvare" <jdelvare@suse.com>,
	"Guenter Roeck" <linux@roeck-us.net>,
	"Lee Jones" <lee.jones@linaro.org>,
	"Thierry Reding" <thierry.reding@gmail.com>,
	"Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>,
	"Wim Van Sebroeck" <wim@linux-watchdog.org>,
	"Shawn Guo" <shawnguo@kernel.org>, "Li Yang" <leoyang.li@nxp.com>,
	"Thomas Gleixner" <tglx@linutronix.de>,
	"Jason Cooper" <jason@lakedaemon.net>,
	"Marc Zyngier" <maz@kernel.org>,
	"Mark Brown" <broonie@kernel.org>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>
Subject: Re: [PATCH v2 10/16] gpio: add a reusable generic gpio_chip using regmap
Date: Tue, 14 Apr 2020 21:57:15 +0200	[thread overview]
Message-ID: <eab972adf53bbac20b5a9e613fcfb5b0@walle.cc> (raw)
In-Reply-To: <62d157198a75a59ada15c496deeab49b@walle.cc>

Hi Mark, Hi Bartosz, Hi Linus,

Am 2020-04-14 20:41, schrieb Michael Walle:
> Am 2020-04-14 19:00, schrieb Bartosz Golaszewski:
>> wt., 14 kwi 2020 o 12:07 Michael Walle <michael@walle.cc> napisał(a):
>>> >>
>>> >> So the best from a user perspective I've could come up with was:
>>> >>
>>> >>    ->base_reg = GPIO_REGMAP_ADDR(addr);
>>> >>
>>> >> I'm open for suggestions.
>>> >>
>>> >
>>> > Maybe setting the pointer to ERR_PTR(-ENOENT) which will result in
>>> > IS_ERR() returning true?
>>> 
>>> Unfortunatly, its not a pointer, but only a regular unsigned int (ie
>>> the type the regmap API has for its "reg" property). It could be a
>>> pointer of course but then the user would have to allocate additional
>>> memory.
>>> 
>>> -michael
>>> 
>> 
>> Eek, of course it's not a pointer. If possible I'd like to avoid this
>> GPIO_REGMAP_ADDR() macro, so how about having some separate field for
>> invalid offsets making every offset 'valid' by default?
> 
> IMHO this has the same problems as mentioned in the response to Mark's
> idea. Normally, the user sets only some addresses, thus he has to mark
> all other as invalid. And if you add another address, you have to touch
> all the drivers to mark it as invalid.
> 
> We could add some force bits like the "use_ack" flag in the bgpio 
> driver,
> where you can force the use of the value 0. But I'd really like to find
> a better way..

So what about the following:

#define GPIO_REGMAP_ADDR_ZERO (unsigned int)(-1)

So this way the user might assign the base addresses the normal way
except when he wants to use zero, in that case he has to use

   ->base_adr = GPIO_REGMAP_ADDR_ZERO;

gpio-regmap.c could use then:

if (base_addr)
   something_useful(gpio_regmap_addr(base_addr));

unsigned int gpio_regmap_addr(unsigned int addr)
{
   return (addr == GPIO_REGMAP_ADDR_ZERO) ? 0 : addr;
}

-michael

  reply	other threads:[~2020-04-14 19:58 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-02 20:36 [PATCH v2 00/16] Add support for Kontron sl28cpld Michael Walle
2020-04-02 20:36 ` [PATCH v2 01/16] include/linux/ioport.h: add helper to define REG resource constructs Michael Walle
2020-04-02 20:36 ` [PATCH v2 02/16] mfd: mfd-core: Don't overwrite the dma_mask of the child device Michael Walle
2020-04-02 20:36 ` [PATCH v2 03/16] mfd: mfd-core: match device tree node against reg property Michael Walle
2020-04-02 20:36 ` [PATCH v2 04/16] regmap-irq: make it possible to add irq_chip do a specific device node Michael Walle
2020-04-14 15:37   ` Applied "regmap-irq: make it possible to add irq_chip do a specific device node" to the regmap tree Mark Brown
2020-04-14 17:12   ` [PATCH v2 04/16] regmap-irq: make it possible to add irq_chip do a specific device node Mark Brown
2020-04-02 20:36 ` [PATCH v2 05/16] dt-bindings: mfd: Add bindings for sl28cpld Michael Walle
2020-04-02 20:36 ` [PATCH v2 06/16] mfd: Add support for Kontron sl28cpld management controller Michael Walle
2020-04-02 20:36 ` [PATCH v2 07/16] irqchip: add sl28cpld interrupt controller support Michael Walle
2020-04-02 20:36 ` [PATCH v2 08/16] watchdog: add support for sl28cpld watchdog Michael Walle
2020-04-03  6:25   ` Guenter Roeck
2020-04-02 20:36 ` [PATCH v2 09/16] pwm: add support for sl28cpld PWM controller Michael Walle
2020-04-02 20:36 ` [PATCH v2 10/16] gpio: add a reusable generic gpio_chip using regmap Michael Walle
2020-04-06  7:47   ` Bartosz Golaszewski
2020-04-06 10:10     ` Michael Walle
2020-04-14  9:50       ` Bartosz Golaszewski
2020-04-14 10:07         ` Michael Walle
2020-04-14 17:00           ` Bartosz Golaszewski
2020-04-14 18:41             ` Michael Walle
2020-04-14 19:57               ` Michael Walle [this message]
2020-04-16  9:20                 ` Linus Walleij
2020-04-16  9:34                   ` Michael Walle
2020-04-14 17:21           ` Mark Brown
2020-04-14 18:36             ` Michael Walle
2020-04-14 18:39               ` Mark Brown
2020-04-16  9:27   ` Linus Walleij
2020-04-17  6:34     ` Michael Walle
2020-04-21 10:50       ` Michael Walle
2020-04-02 20:36 ` [PATCH v2 11/16] gpio: add support for the sl28cpld GPIO controller Michael Walle
2020-04-16  8:34   ` Linus Walleij
2020-04-16  8:55     ` Michael Walle
2020-04-02 20:36 ` [PATCH v2 12/16] hwmon: add support for the sl28cpld hardware monitoring controller Michael Walle
2020-04-02 21:30   ` Guenter Roeck
2020-04-02 20:36 ` [PATCH v2 13/16] arm64: dts: freescale: sl28: enable sl28cpld Michael Walle
2020-04-02 20:36 ` [PATCH v2 14/16] arm64: dts: freescale: sl28: map GPIOs to input events Michael Walle
2020-04-02 20:36 ` [PATCH v2 15/16] arm64: dts: freescale: sl28: enable LED support Michael Walle
2020-04-02 20:36 ` [PATCH v2 16/16] arm64: dts: freescale: sl28: enable fan support Michael Walle

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=eab972adf53bbac20b5a9e613fcfb5b0@walle.cc \
    --to=michael@walle.cc \
    --cc=bgolaszewski@baylibre.com \
    --cc=broonie@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=jason@lakedaemon.net \
    --cc=jdelvare@suse.com \
    --cc=lee.jones@linaro.org \
    --cc=leoyang.li@nxp.com \
    --cc=linus.walleij@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-hwmon@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pwm@vger.kernel.org \
    --cc=linux-watchdog@vger.kernel.org \
    --cc=linux@roeck-us.net \
    --cc=maz@kernel.org \
    --cc=robh+dt@kernel.org \
    --cc=shawnguo@kernel.org \
    --cc=tglx@linutronix.de \
    --cc=thierry.reding@gmail.com \
    --cc=u.kleine-koenig@pengutronix.de \
    --cc=wim@linux-watchdog.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).