From: Aidan MacDonald <aidanmacdonald.0x0@gmail.com>
To: Andy Shevchenko <andy.shevchenko@gmail.com>
Cc: Linus Walleij <linus.walleij@linaro.org>,
Bartosz Golaszewski <brgl@bgdev.pl>,
Rob Herring <robh+dt@kernel.org>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
Chen-Yu Tsai <wens@csie.org>, Jonathan Cameron <jic23@kernel.org>,
Sebastian Reichel <sre@kernel.org>,
Lee Jones <lee.jones@linaro.org>,
Liam Girdwood <lgirdwood@gmail.com>,
Mark Brown <broonie@kernel.org>,
Lars-Peter Clausen <lars@metafoo.de>,
quic_gurus@quicinc.com,
Sebastian Reichel <sebastian.reichel@collabora.com>,
Michael Walle <michael@walle.cc>,
Randy Dunlap <rdunlap@infradead.org>,
"open list:GPIO SUBSYSTEM" <linux-gpio@vger.kernel.org>,
devicetree <devicetree@vger.kernel.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
linux-iio <linux-iio@vger.kernel.org>,
Linux PM <linux-pm@vger.kernel.org>
Subject: Re: [PATCH v4 12/15] pinctrl: Add AXP192 pin control driver
Date: Fri, 01 Jul 2022 16:37:45 +0100 [thread overview]
Message-ID: <oMIjFujkw4ZeuMGoTkWq64BbfEejJF12@localhost> (raw)
In-Reply-To: <CAHp75Vduv_fN=2DKbOwReRoPeAYjGqSANT7UhDaRifUJ4zf5XQ@mail.gmail.com>
Andy Shevchenko <andy.shevchenko@gmail.com> writes:
> On Wed, Jun 29, 2022 at 4:30 PM Aidan MacDonald
> <aidanmacdonald.0x0@gmail.com> wrote:
>>
>> The AXP192 PMIC's GPIO registers are much different from the GPIO
>> registers of the AXP20x and AXP813 PMICs supported by the existing
>> pinctrl-axp209 driver. It makes more sense to add a new driver for
>> the AXP192, rather than add support in the existing axp20x driver.
>>
>> The pinctrl-axp192 driver is considerably more flexible in terms of
>> register layout and should be able to support other X-Powers PMICs.
>> Interrupts and pull down resistor configuration are supported too.
>
> ...
>
>> +config PINCTRL_AXP192
>> + tristate "X-Powers AXP192 PMIC pinctrl and GPIO Support"
>> + depends on MFD_AXP20X
>> + select PINMUX
>> + select GENERIC_PINCONF
>> + select GPIOLIB
>> + help
>> + AXP PMICs provide multiple GPIOs that can be muxed for different
>> + functions. This driver bundles a pinctrl driver to select the function
>> + muxing and a GPIO driver to handle the GPIO when the GPIO function is
>> + selected.
>> + Say Y to enable pinctrl and GPIO support for the AXP192 PMIC.
>
> What will be the module name if compiled as a module?
>
> ...
>
>> +/**
>> + * struct axp192_pctl_function - describes a function that GPIOs may have
>> + *
>> + * @name: Function name
>> + * @muxvals: Mux values used for selecting this function, one per GPIO.
>> + * The i'th element corresponds to the i'th GPIO and is written
>> + * to the GPIO's control register field to select this function.
>> + * U8_MAX indicates that the pin does not support this function.
>> + * @groups: Array of @ngroups groups listing pins supporting this function.
>> + * @ngroups: Number of pin groups.
>> + */
>> +struct axp192_pctl_function {
>> + const char *name;
>> + /* Mux value written to the control register to select the function (-1 if unsupported) */
>> + const u8 *muxvals;
>> + const char * const *groups;
>> + unsigned int ngroups;
>> +};
>
> Can it be replaced by struct function_desc?
> https://elixir.bootlin.com/linux/latest/source/drivers/pinctrl/pinmux.h#L130
That'd work, but using the generic infrastructure doesn't allow me to
simplify anything -- I can eliminate three trivial functions, but the
generic code is higher overhead (extra allocations, radix trees, ...)
so I'd prefer to stick with the current approach.
>> + ret = devm_gpiochip_add_data(dev, &pctl->chip, pctl);
>> + if (ret)
>> + dev_err_probe(dev, ret, "Failed to register GPIO chip\n");
>
> Missed return.
Thanks for catching this, that was pretty silly of me...
next prev parent reply other threads:[~2022-07-01 15:36 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-29 14:30 [PATCH v4 00/15] Add support for AXP192 PMIC Aidan MacDonald
2022-06-29 14:30 ` [PATCH v4 01/15] dt-bindings: mfd: add bindings for AXP192 MFD device Aidan MacDonald
2022-06-29 14:30 ` [PATCH v4 02/15] dt-bindings: iio: adc: axp209: Add AXP192 compatible Aidan MacDonald
2022-06-29 14:30 ` [PATCH v4 03/15] dt-bindings: power: supply: axp20x: " Aidan MacDonald
2022-06-29 14:30 ` [PATCH v4 04/15] dt-bindings: gpio: Add AXP192 GPIO bindings Aidan MacDonald
2022-06-29 18:17 ` Krzysztof Kozlowski
2022-07-02 15:16 ` Samuel Holland
2022-07-03 11:31 ` Aidan MacDonald
2022-06-29 14:30 ` [PATCH v4 05/15] dt-bindings: power: axp20x-battery: Add AXP192 compatible Aidan MacDonald
2022-06-29 14:30 ` [PATCH v4 06/15] mfd: axp20x: Add support for AXP192 Aidan MacDonald
2022-06-30 7:57 ` Andy Shevchenko
2022-07-05 12:35 ` Lee Jones
2022-07-05 14:26 ` Aidan MacDonald
2022-07-05 14:38 ` Lee Jones
2022-07-05 19:42 ` Aidan MacDonald
2022-06-29 14:30 ` [PATCH v4 07/15] regulator: " Aidan MacDonald
2022-06-30 7:58 ` Andy Shevchenko
2022-06-29 14:30 ` [PATCH v4 08/15] iio: adc: axp20x_adc: Minor code cleanups Aidan MacDonald
2022-06-30 7:58 ` Andy Shevchenko
2022-06-29 14:30 ` [PATCH v4 09/15] iio: adc: axp20x_adc: Replace adc_en2 flag with adc_en2_mask field Aidan MacDonald
2022-06-30 7:58 ` Andy Shevchenko
2022-07-01 16:56 ` Jonathan Cameron
2022-06-29 14:30 ` [PATCH v4 10/15] iio: adc: axp20x_adc: Add support for AXP192 Aidan MacDonald
2022-06-30 7:58 ` Andy Shevchenko
2022-06-29 14:30 ` [PATCH v4 11/15] power: supply: axp20x_usb_power: " Aidan MacDonald
2022-06-30 7:59 ` Andy Shevchenko
2022-06-29 14:30 ` [PATCH v4 12/15] pinctrl: Add AXP192 pin control driver Aidan MacDonald
2022-06-29 21:13 ` Andy Shevchenko
2022-07-01 15:37 ` Aidan MacDonald [this message]
2022-07-01 20:06 ` Andy Shevchenko
2022-07-02 19:22 ` Aidan MacDonald
2022-07-02 15:11 ` Samuel Holland
2022-07-03 11:27 ` Aidan MacDonald
2022-06-29 14:30 ` [PATCH v4 13/15] power: axp20x_battery: Add constant charge current table Aidan MacDonald
2022-06-30 7:59 ` Andy Shevchenko
2022-06-29 14:30 ` [PATCH v4 14/15] power: axp20x_battery: Support battery status without fuel gauge Aidan MacDonald
2022-06-30 8:00 ` Andy Shevchenko
2022-06-29 14:30 ` [PATCH v4 15/15] power: axp20x_battery: Add support for AXP192 Aidan MacDonald
2022-06-30 8:00 ` Andy Shevchenko
2022-06-29 21:14 ` [PATCH v4 00/15] Add support for AXP192 PMIC Andy Shevchenko
2022-06-29 21:16 ` Andy Shevchenko
2022-06-30 7:55 ` Lee Jones
2022-06-30 8:02 ` Andy Shevchenko
2022-06-30 8:46 ` Lee Jones
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=oMIjFujkw4ZeuMGoTkWq64BbfEejJF12@localhost \
--to=aidanmacdonald.0x0@gmail.com \
--cc=andy.shevchenko@gmail.com \
--cc=brgl@bgdev.pl \
--cc=broonie@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=jic23@kernel.org \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=lars@metafoo.de \
--cc=lee.jones@linaro.org \
--cc=lgirdwood@gmail.com \
--cc=linus.walleij@linaro.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=michael@walle.cc \
--cc=quic_gurus@quicinc.com \
--cc=rdunlap@infradead.org \
--cc=robh+dt@kernel.org \
--cc=sebastian.reichel@collabora.com \
--cc=sre@kernel.org \
--cc=wens@csie.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.