From: Johan Hovold <johan@kernel.org>
To: Steev Klimaszewski <steev@kali.org>
Cc: "Peng Fan (OSS)" <peng.fan@oss.nxp.com>,
Liam Girdwood <lgirdwood@gmail.com>,
Mark Brown <broonie@kernel.org>, Jaroslav Kysela <perex@perex.cz>,
Takashi Iwai <tiwai@suse.com>,
Linus Walleij <linus.walleij@linaro.org>,
Bartosz Golaszewski <brgl@bgdev.pl>,
Srinivas Kandagatla <srinivas.kandagatla@linaro.org>,
linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-gpio@vger.kernel.org, linux-arm-msm@vger.kernel.org,
Peng Fan <peng.fan@nxp.com>
Subject: Re: [PATCH 2/3] ASoC: codec: wcd938x: Convert to GPIO descriptors
Date: Mon, 24 Mar 2025 09:13:20 +0100 [thread overview]
Message-ID: <Z-EUIDHL1rL6HpmC@hovoldconsulting.com> (raw)
In-Reply-To: <CAKXuJqht5ZiFyt2uWXwPSEdszYQWKHm22+mAQCPQXn8b7AbL-w@mail.gmail.com>
On Sun, Mar 23, 2025 at 10:40:51PM -0500, Steev Klimaszewski wrote:
> On Sun, Mar 23, 2025 at 9:28 PM Peng Fan (OSS) <peng.fan@oss.nxp.com> wrote:
> >
> > From: Peng Fan <peng.fan@nxp.com>
> >
> > of_gpio.h is deprecated, update the driver to use GPIO descriptors.
> > - Use dev_gpiod_get to get GPIO descriptor.
> > - Use gpiod_set_value to configure output value.
> >
> > With legacy of_gpio API, the driver set gpio value 0 to assert reset,
> > and 1 to deassert reset. And the reset-gpios use GPIO_ACTIVE_LOW flag in
> > DTS, so set GPIOD_ASIS when get GPIO descriptors, and set value 1 means
> > output low, set value 0 means output high with gpiod API.
> >
> > Signed-off-by: Peng Fan <peng.fan@nxp.com>
> > @@ -3251,9 +3250,9 @@ static int wcd938x_populate_dt_data(struct wcd938x_priv *wcd938x, struct device
> > struct wcd_mbhc_config *cfg = &wcd938x->mbhc_cfg;
> > int ret;
> >
> > - wcd938x->reset_gpio = of_get_named_gpio(dev->of_node, "reset-gpios", 0);
> > - if (wcd938x->reset_gpio < 0)
> > - return dev_err_probe(dev, wcd938x->reset_gpio,
> > + wcd938x->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_ASIS);
> > + if (IS_ERR(wcd938x->reset_gpio))
> > + return dev_err_probe(dev, PTR_ERR(wcd938x->reset_gpio),
> > "Failed to get reset gpio\n");
> >
> > wcd938x->us_euro_gpio = devm_gpiod_get_optional(dev, "us-euro",
> > @@ -3297,10 +3296,10 @@ static int wcd938x_populate_dt_data(struct wcd938x_priv *wcd938x, struct device
> >
> > static int wcd938x_reset(struct wcd938x_priv *wcd938x)
> > {
> > - gpio_direction_output(wcd938x->reset_gpio, 0);
> > + gpiod_set_value(wcd938x->reset_gpio, 1);
This may be what is causing the regression; the driver no longer
configures the reset line as an output. From the docs:
* GPIOD_ASIS or 0 to not initialize the GPIO at all. The
direction must be set later with one of the dedicated
functions.
> > /* 20us sleep required after pulling the reset gpio to LOW */
> > usleep_range(20, 30);
> > - gpio_set_value(wcd938x->reset_gpio, 1);
> > + gpiod_set_value(wcd938x->reset_gpio, 0);
> > /* 20us sleep required after pulling the reset gpio to HIGH */
> > usleep_range(20, 30);
> With this patchset applied, the wcd938x codec used in the Thinkpad
> X13s stops working:
>
> wcd938x_codec audio-codec: soundwire device init timeout
> wcd938x_codec audio-codec: ASoC: error at snd_soc_component_probe on
> audio-codec: -110
> snd-sc8280xp sound: ASoC: failed to instantiate card -110
> snd-sc8280xp sound: probe with driver snd-sc8280xp failed with error -110
Johan
next prev parent reply other threads:[~2025-03-24 8:13 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-24 2:26 [PATCH 0/3] ASoC: codec: wcd93xx: Convert to GPIO descriptors Peng Fan (OSS)
2025-03-24 2:26 ` [PATCH 1/3] ASoC: codec: wcd939x: " Peng Fan (OSS)
2025-03-24 7:30 ` Linus Walleij
2025-03-24 2:26 ` [PATCH 2/3] ASoC: codec: wcd938x: " Peng Fan (OSS)
2025-03-24 3:40 ` Steev Klimaszewski
2025-03-24 7:33 ` Peng Fan
2025-03-24 7:46 ` Linus Walleij
2025-03-24 7:53 ` Peng Fan
2025-03-24 7:56 ` Linus Walleij
2025-03-24 8:03 ` Johan Hovold
2025-03-24 8:09 ` Peng Fan
2025-03-24 8:23 ` Linus Walleij
2025-03-24 8:34 ` Peng Fan
2025-03-24 9:57 ` Linus Walleij
2025-03-24 8:13 ` Johan Hovold [this message]
2025-03-24 7:30 ` Linus Walleij
2025-03-24 2:26 ` [PATCH 3/3] ASoC: codec: wcd9335: " Peng Fan (OSS)
2025-03-24 7:47 ` Linus Walleij
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=Z-EUIDHL1rL6HpmC@hovoldconsulting.com \
--to=johan@kernel.org \
--cc=brgl@bgdev.pl \
--cc=broonie@kernel.org \
--cc=lgirdwood@gmail.com \
--cc=linus.walleij@linaro.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-sound@vger.kernel.org \
--cc=peng.fan@nxp.com \
--cc=peng.fan@oss.nxp.com \
--cc=perex@perex.cz \
--cc=srinivas.kandagatla@linaro.org \
--cc=steev@kali.org \
--cc=tiwai@suse.com \
/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.