From: Michael Walle <michael@walle.cc>
To: "Sahin, Okan" <Okan.Sahin@analog.com>
Cc: andy.shevchenko@gmail.com,
Linus Walleij <linus.walleij@linaro.org>,
Bartosz Golaszewski <brgl@bgdev.pl>,
Rob Herring <robh+dt@kernel.org>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
linux-gpio@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v1 2/2] gpio: ds4520: Add ADI DS4520 Regulator Support
Date: Tue, 11 Apr 2023 15:42:39 +0200 [thread overview]
Message-ID: <a3ca3e705b5b8668cd511fc15681c75f@walle.cc> (raw)
In-Reply-To: <MN2PR03MB516879DCD6600827AEE2BDC9E7949@MN2PR03MB5168.namprd03.prod.outlook.com>
Am 2023-04-09 16:25, schrieb Sahin, Okan:
>> Fri, Apr 07, 2023 at 03:48:25PM +0200, Linus Walleij kirjoitti:
>>> On Wed, Apr 5, 2023 at 3:57 PM Michael Walle <michael@walle.cc>
>>> wrote:
>>>
>>> > OTOH I'm not sure the driver is doing it correctly, because it also
>>> > seems to switch the pullup resisters together with the direction.
>>> > I'm not sure that is correct. So there might be just one register
>>> > involved after all and the GPIO_REGMAP should work again.
>>>
>>> I'm pretty sure that should be in the .set_config() callback.
>>>
>>> > Also, according to the datasheet this has some nv memory (to set the
>>> > initial state of the GPIOs [?]). So it should really be a
>>> > multi-function device. I'm not sure if this has to be considered
>>> > right from the beginning or if the device support can start with
>>> > GPIO only and later be transitioned to a full featured MFD (probably with nvmem
>> support).
>>>
>>> That's a bit of a soft definition.
>>>
>>> If the chip is *only* doing GPIO and nvram it can be a GPIO-only
>>> device I think.
>>>
>>> The precedent is a ton of ethernet drivers with nvram for storing
>>> e.g.
>>> the MAC address. We don't make all of those into MFDs, as the nvram
>>> is
>>> closely tied to the one and only function of the block.
>>
>> I agree with Linus. This should be part of the actual (main) driver
>> for the chip as many
>> do (like USB to serial adapters that have GPIO capability).
You mean the gpio driver is calling nvmem_register()? Yeah I agree, that
should work.
> I think gpio_regmap is not suitable for this driver as Michael stated.
> https://www.analog.com/media/en/technical-documentation/data-sheets/ds4520.pdf
> Please check block diagram. There are two input registers that control
> gpio state
> so gpio_regmap does not look ok for this. Am I missing something?
You mean F8/F9? That will work as they are for different GPIOs. What
doesn't work with gpio-regmap is when you need to modify two different
registers for one GPIO. Have a look at gpio_regmap_get() and
gpio_regmap_set(). If the default gpio_regmap_simple_xlate() doesn't
work
you can use your own .xlate() op.
> Also, at this point I am not planning to add nvmem support.
That is a pity, because that is the whole use case for this gpio
expander,
no? "Programmable Replacement for Mechanical Jumpers and Switches"
-michael
next prev parent reply other threads:[~2023-04-11 13:42 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-27 13:00 [PATCH v1 0/2] Add DS4520 GPIO Expander Support Okan Sahin
2023-03-27 13:00 ` [PATCH v1 1/2] dt-bindings: gpio: ds4520: Add ADI DS4520 Okan Sahin
2023-03-27 15:37 ` Rob Herring
2023-03-27 19:05 ` Krzysztof Kozlowski
2023-03-27 13:00 ` [PATCH v1 2/2] gpio: ds4520: Add ADI DS4520 Regulator Support Okan Sahin
2023-03-31 9:41 ` Linus Walleij
2023-04-04 14:35 ` Sahin, Okan
2023-04-05 13:20 ` Linus Walleij
2023-04-05 13:57 ` Michael Walle
2023-04-07 13:48 ` Linus Walleij
2023-04-07 18:36 ` andy.shevchenko
2023-04-09 14:25 ` Sahin, Okan
2023-04-11 13:42 ` Michael Walle [this message]
2023-04-24 15:39 ` Sahin, Okan
2023-04-25 7:05 ` Michael Walle
2023-04-26 11:28 ` Sahin, Okan
2023-04-26 11:53 ` Michael Walle
2023-04-26 13:39 ` Sahin, Okan
2023-04-11 14:11 ` Andy Shevchenko
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=a3ca3e705b5b8668cd511fc15681c75f@walle.cc \
--to=michael@walle.cc \
--cc=Okan.Sahin@analog.com \
--cc=andy.shevchenko@gmail.com \
--cc=brgl@bgdev.pl \
--cc=devicetree@vger.kernel.org \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=linus.walleij@linaro.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=robh+dt@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.