RE: [PATCH 2/3] ASoC: codec: wcd938x: Convert to GPIO descriptors
From: Peng Fan
Date: Mon Mar 24 2025 - 04:10:01 EST
> Subject: Re: [PATCH 2/3] ASoC: codec: wcd938x: Convert to GPIO
> descriptors
>
> On Mon, Mar 24, 2025 at 08:46:07AM +0100, Linus Walleij wrote:
> > On Mon, Mar 24, 2025 at 8:33 AM Peng Fan <peng.fan@xxxxxxx>
> wrote:
> >
> > > > 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
> > >
> > > Thanks for help testing. But per current in-tree DTS, the reset is
> > > using GPIO_ACTIVE_LOW, so it should work.
> > >
> > > I am not sure whether you are using firmware published DTS, if yes,
> > > could you please help check the codec node to dump the reset-
> gpios
> > > property under /sys/firmware/devicetree/xx ?
> >
> > I'm also a bit puzzled.
> >
> > I think maybe this device has some DTB that comes from the vendor
> with
> > the wrong polarity :/
> >
> > If this is the case we need to add a quirk to gpiolib to force this
> > GPIO into active low, something like this:
>
> I'm quite sure Steev is using the mainline devicetree with correct
> polarity so that should not be the issue here.
ok, then the only suspecting point is
wcd938x->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_ASIS);
I may need to use GPIOD_OUT_LOW to configure it
to output as set raw set value as 1.
Thanks,
Peng.
>
> Johan