From: Chen-Yu Tsai <wenst@chromium.org>
To: "Nícolas F. R. A. Prado" <nfraprado@collabora.com>
Cc: Sean Wang <sean.wang@kernel.org>,
Linus Walleij <linus.walleij@linaro.org>,
Matthias Brugger <matthias.bgg@gmail.com>,
AngeloGioacchino Del Regno
<angelogioacchino.delregno@collabora.com>,
Bamvor Jian Zhang <bamv2005@gmail.com>,
Shuah Khan <shuah@kernel.org>,
kernel@collabora.com, linux-mediatek@lists.infradead.org,
linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-kselftest@vger.kernel.org, kernelci@lists.linux.dev
Subject: Re: [PATCH RFC v2 1/5] pinctrl: mediatek: paris: Expose more configurations to GPIO set_config
Date: Fri, 1 Nov 2024 15:41:55 +0800 [thread overview]
Message-ID: <CAGXv+5HNwk2B_01_o90nZ1smDcZoFf3O-4-+n+E7vKtLTS9-rQ@mail.gmail.com> (raw)
In-Reply-To: <20241025-kselftest-gpio-set-get-config-v2-1-040d748840bb@collabora.com>
On Sat, Oct 26, 2024 at 4:06 AM Nícolas F. R. A. Prado
<nfraprado@collabora.com> wrote:
>
> Currently the set_config callback in the gpio_chip registered by the
> pinctrl_paris driver only supports configuring a single parameter on
> specific pins (the input debounce of the EINT controller, on pins that
> support it), even though many other configurations are already
> implemented and available through the pinctrl API for configuration of
> pins by the Devicetree and other drivers.
>
> Expose all configurations currently implemented through the GPIO API so
> they can also be set from userspace, which is particularly useful to
> allow testing them from userspace.
>
> Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
Reviewed-by: Chen-Yu Tsai <wenst@chromium.org>
> ---
> drivers/pinctrl/mediatek/pinctrl-paris.c | 26 +++++++++++++-------------
> 1 file changed, 13 insertions(+), 13 deletions(-)
>
> diff --git a/drivers/pinctrl/mediatek/pinctrl-paris.c b/drivers/pinctrl/mediatek/pinctrl-paris.c
> index 87e958d827bf939aa6006794287698be4936f25e..c9455de266a447ab7f5446c1511bef0ef9c9128e 100644
> --- a/drivers/pinctrl/mediatek/pinctrl-paris.c
> +++ b/drivers/pinctrl/mediatek/pinctrl-paris.c
> @@ -255,10 +255,9 @@ static int mtk_pinconf_get(struct pinctrl_dev *pctldev,
> return err;
> }
>
> -static int mtk_pinconf_set(struct pinctrl_dev *pctldev, unsigned int pin,
> - enum pin_config_param param, u32 arg)
> +static int mtk_paris_pin_config_set(struct mtk_pinctrl *hw, unsigned int pin,
> + enum pin_config_param param, u32 arg)
> {
> - struct mtk_pinctrl *hw = pinctrl_dev_get_drvdata(pctldev);
> const struct mtk_pin_desc *desc;
> int err = -ENOTSUPP;
> u32 reg;
> @@ -795,9 +794,9 @@ static int mtk_pconf_group_set(struct pinctrl_dev *pctldev, unsigned group,
> int i, ret;
>
> for (i = 0; i < num_configs; i++) {
> - ret = mtk_pinconf_set(pctldev, grp->pin,
> - pinconf_to_config_param(configs[i]),
> - pinconf_to_config_argument(configs[i]));
> + ret = mtk_paris_pin_config_set(hw, grp->pin,
> + pinconf_to_config_param(configs[i]),
> + pinconf_to_config_argument(configs[i]));
> if (ret < 0)
> return ret;
>
> @@ -937,18 +936,19 @@ static int mtk_gpio_set_config(struct gpio_chip *chip, unsigned int offset,
> {
> struct mtk_pinctrl *hw = gpiochip_get_data(chip);
> const struct mtk_pin_desc *desc;
> - u32 debounce;
> + enum pin_config_param param = pinconf_to_config_param(config);
> + u32 arg = pinconf_to_config_argument(config);
>
> desc = (const struct mtk_pin_desc *)&hw->soc->pins[offset];
>
> - if (!hw->eint ||
> - pinconf_to_config_param(config) != PIN_CONFIG_INPUT_DEBOUNCE ||
> - desc->eint.eint_n == EINT_NA)
> - return -ENOTSUPP;
> + if (param == PIN_CONFIG_INPUT_DEBOUNCE) {
> + if (!hw->eint || desc->eint.eint_n == EINT_NA)
> + return -ENOTSUPP;
>
> - debounce = pinconf_to_config_argument(config);
> + return mtk_eint_set_debounce(hw->eint, desc->eint.eint_n, arg);
> + }
>
> - return mtk_eint_set_debounce(hw->eint, desc->eint.eint_n, debounce);
> + return mtk_paris_pin_config_set(hw, offset, param, arg);
> }
>
> static int mtk_build_gpiochip(struct mtk_pinctrl *hw)
>
> --
> 2.47.0
>
>
next prev parent reply other threads:[~2024-11-01 7:42 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-25 19:45 [PATCH RFC v2 0/5] Verify bias functionality for pinctrl_paris driver through new gpio test Nícolas F. R. A. Prado
2024-10-25 19:45 ` [PATCH RFC v2 1/5] pinctrl: mediatek: paris: Expose more configurations to GPIO set_config Nícolas F. R. A. Prado
2024-11-01 7:41 ` Chen-Yu Tsai [this message]
2024-10-25 19:45 ` [PATCH RFC v2 2/5] pinctrl: mediatek: moore: " Nícolas F. R. A. Prado
2024-11-01 7:54 ` Chen-Yu Tsai
2024-10-25 19:45 ` [PATCH RFC v2 3/5] pinctrl: mediatek: common: " Nícolas F. R. A. Prado
2024-11-01 7:54 ` Chen-Yu Tsai
2024-11-01 12:04 ` Nícolas F. R. A. Prado
2024-10-25 19:45 ` [PATCH RFC v2 4/5] selftest: gpio: Add wait flag to gpio-mockup-cdev Nícolas F. R. A. Prado
2024-10-28 14:36 ` Linus Walleij
2024-10-25 19:45 ` [PATCH RFC v2 5/5] selftest: gpio: Add a new set-get config test Nícolas F. R. A. Prado
2024-10-28 14:37 ` Linus Walleij
2024-10-28 14:02 ` [PATCH RFC v2 0/5] Verify bias functionality for pinctrl_paris driver through new gpio test Nícolas F. R. A. Prado
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=CAGXv+5HNwk2B_01_o90nZ1smDcZoFf3O-4-+n+E7vKtLTS9-rQ@mail.gmail.com \
--to=wenst@chromium.org \
--cc=angelogioacchino.delregno@collabora.com \
--cc=bamv2005@gmail.com \
--cc=kernel@collabora.com \
--cc=kernelci@lists.linux.dev \
--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=linux-kselftest@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=matthias.bgg@gmail.com \
--cc=nfraprado@collabora.com \
--cc=sean.wang@kernel.org \
--cc=shuah@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 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 read-only IMAP folder(s) and NNTP newsgroup(s).