[PATCH 0/6] platform/x86: x86-android-tablets: fix Arizona and Crystal Cove GPIO lookups

Dmitry Torokhov posted 6 patches 3 weeks, 6 days ago
drivers/platform/x86/x86-android-tablets/core.c    | 35 +++++++++++++++-----
drivers/platform/x86/x86-android-tablets/lenovo.c  | 37 +++++++---------------
.../x86/x86-android-tablets/x86-android-tablets.h  |  2 ++
3 files changed, 40 insertions(+), 34 deletions(-)
[PATCH 0/6] platform/x86: x86-android-tablets: fix Arizona and Crystal Cove GPIO lookups
Posted by Dmitry Torokhov 3 weeks, 6 days ago
When gpiolib dropped name-against-label matching in favor of firmware node
identity mapping, lookups referencing unattached software nodes (such as
arizona and gpio_crystalcove in x86-android-tablets) stopped working.

This series fixes the lookups and cleans up redundant software node
registrations on Lenovo tablets:
- Point Arizona GPIO property entries directly to the codec device software
  node, which is attached to the parent device.
- Hold a device reference in gpio_secondary_fwnode_init() to ensure safety
  during devres action teardown.
- Generalize gpio_secondary_fwnode_init() to accept a node group argument
  and use it to attach crystalcove_gpiochip_node as a secondary firmware
  node to INT33FD:00 on Lenovo Yoga Tab 2 models.
- Drop redundant swnode group registrations on Lenovo Yoga Tab 3 and
  Yoga Tab 2 models where codec software nodes are already registered when
  attached to their respective devices.

Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
---
Dmitry Torokhov (6):
      platform/x86: x86-android-tablets: fix Arizona GPIO swnode references
      platform/x86: x86-android-tablets: hold device reference for secondary fwnode teardown
      platform/x86: x86-android-tablets: pass node group to gpio_secondary_fwnode_init()
      platform/x86: x86-android-tablets: add Crystal Cove GPIO swnode support
      platform/x86: x86-android-tablets: drop redundant swnode group on YT3
      platform/x86: x86-android-tablets: use shared battery swnode group on Yoga Tab 2

 drivers/platform/x86/x86-android-tablets/core.c    | 35 +++++++++++++++-----
 drivers/platform/x86/x86-android-tablets/lenovo.c  | 37 +++++++---------------
 .../x86/x86-android-tablets/x86-android-tablets.h  |  2 ++
 3 files changed, 40 insertions(+), 34 deletions(-)
---
base-commit: f82a5da2f04960df9fb57489992d03dd5e64ec6f
change-id: 20260829-x86-android-lenovo-swnode-785f4e165eb2

Thanks.

-- 
Dmitry
Re: [PATCH 0/6] platform/x86: x86-android-tablets: fix Arizona and Crystal Cove GPIO lookups
Posted by Ilpo Järvinen 3 weeks, 3 days ago
On Sun, 30 Aug 2026 04:15:04 -0700, Dmitry Torokhov wrote:

> When gpiolib dropped name-against-label matching in favor of firmware node
> identity mapping, lookups referencing unattached software nodes (such as
> arizona and gpio_crystalcove in x86-android-tablets) stopped working.
> 
> This series fixes the lookups and cleans up redundant software node
> registrations on Lenovo tablets:
> - Point Arizona GPIO property entries directly to the codec device software
>   node, which is attached to the parent device.
> - Hold a device reference in gpio_secondary_fwnode_init() to ensure safety
>   during devres action teardown.
> - Generalize gpio_secondary_fwnode_init() to accept a node group argument
>   and use it to attach crystalcove_gpiochip_node as a secondary firmware
>   node to INT33FD:00 on Lenovo Yoga Tab 2 models.
> - Drop redundant swnode group registrations on Lenovo Yoga Tab 3 and
>   Yoga Tab 2 models where codec software nodes are already registered when
>   attached to their respective devices.
> 
> [...]


Thank you for your contribution, it has been applied to my local
review-ilpo-fixes branch. Note it will show up in the public
platform-drivers-x86/review-ilpo-fixes branch only once I've pushed my
local branch there, which might take a while.

The list of commits applied:
[1/6] platform/x86: x86-android-tablets: fix Arizona GPIO swnode references
      commit: 355b6558dd7be049aff4f0d438b0128f91a982eb
[2/6] platform/x86: x86-android-tablets: hold device reference for secondary fwnode teardown
      commit: 144113b0a70fa18033a747ee5db6803308f7688c
[3/6] platform/x86: x86-android-tablets: pass node group to gpio_secondary_fwnode_init()
      commit: aab060ec969c3859b81f80f3444fd5a2edfc3cf5
[4/6] platform/x86: x86-android-tablets: add Crystal Cove GPIO swnode support
      commit: 7872c625cd83a0247821cedd6c6f63938d4bddbc
[5/6] platform/x86: x86-android-tablets: drop redundant swnode group on YT3
      commit: 74884436a53df0bbaf6d92d2922f643a4581b247
[6/6] platform/x86: x86-android-tablets: use shared battery swnode group on Yoga Tab 2
      commit: 312fd3f3a85b89aa0d4fb5417043d640daa3732c

--
 i.
Re: [PATCH 0/6] platform/x86: x86-android-tablets: fix Arizona and Crystal Cove GPIO lookups
Posted by Hans de Goede 3 weeks, 5 days ago
Hi,

On 30-Aug-26 13:15, Dmitry Torokhov wrote:
> When gpiolib dropped name-against-label matching in favor of firmware node
> identity mapping, lookups referencing unattached software nodes (such as
> arizona and gpio_crystalcove in x86-android-tablets) stopped working.
> 
> This series fixes the lookups and cleans up redundant software node
> registrations on Lenovo tablets:
> - Point Arizona GPIO property entries directly to the codec device software
>   node, which is attached to the parent device.
> - Hold a device reference in gpio_secondary_fwnode_init() to ensure safety
>   during devres action teardown.
> - Generalize gpio_secondary_fwnode_init() to accept a node group argument
>   and use it to attach crystalcove_gpiochip_node as a secondary firmware
>   node to INT33FD:00 on Lenovo Yoga Tab 2 models.
> - Drop redundant swnode group registrations on Lenovo Yoga Tab 3 and
>   Yoga Tab 2 models where codec software nodes are already registered when
>   attached to their respective devices.
> 
> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>

My initial testing report of success on the Yoga Tab 3 was a false negative
caused by me still running the older kernel.

There was a generic bug in the new gpio_secondary_fwnode_init() helper
which was causing all GPIO lookups for PROPERTY_ENTRY_GPIO() properties
in the x86-android-tablets code to fail.

I've send out a patch fixing this:

https://lore.kernel.org/platform-driver-x86/20260831201157.36397-1-johannes.goede@oss.qualcomm.com/

Note that patch applies *on top of* this series.

With that patch everything works fine on both a "Yoga Tablet 2 1380" as
well as on a "Yoga Tab 3" which covers all types of GPIOS (BYT SoC,
CHT SoC, CrystalCove PMIC, Arizona codec) used in the x86-android-tablets
code.

And the changes from this series look good to me too:

Tested-by: Hans de Goede <johannes.goede@oss.qualcomm.com> # Yoga tab 2 1380, yt3
Reviewed-by: Hans de Goede <johannes.goede@oss.qualcomm.com>

Regards,

Hans




> ---
> Dmitry Torokhov (6):
>       platform/x86: x86-android-tablets: fix Arizona GPIO swnode references
>       platform/x86: x86-android-tablets: hold device reference for secondary fwnode teardown
>       platform/x86: x86-android-tablets: pass node group to gpio_secondary_fwnode_init()
>       platform/x86: x86-android-tablets: add Crystal Cove GPIO swnode support
>       platform/x86: x86-android-tablets: drop redundant swnode group on YT3
>       platform/x86: x86-android-tablets: use shared battery swnode group on Yoga Tab 2
> 
>  drivers/platform/x86/x86-android-tablets/core.c    | 35 +++++++++++++++-----
>  drivers/platform/x86/x86-android-tablets/lenovo.c  | 37 +++++++---------------
>  .../x86/x86-android-tablets/x86-android-tablets.h  |  2 ++
>  3 files changed, 40 insertions(+), 34 deletions(-)
> ---
> base-commit: f82a5da2f04960df9fb57489992d03dd5e64ec6f
> change-id: 20260829-x86-android-lenovo-swnode-785f4e165eb2
> 
> Thanks.
>
Re: [PATCH 0/6] platform/x86: x86-android-tablets: fix Arizona and Crystal Cove GPIO lookups
Posted by Dmitry Torokhov 3 weeks, 4 days ago
On Mon, Aug 31, 2026 at 10:17:41PM +0200, Hans de Goede wrote:
> Hi,
> 
> On 30-Aug-26 13:15, Dmitry Torokhov wrote:
> > When gpiolib dropped name-against-label matching in favor of firmware node
> > identity mapping, lookups referencing unattached software nodes (such as
> > arizona and gpio_crystalcove in x86-android-tablets) stopped working.
> > 
> > This series fixes the lookups and cleans up redundant software node
> > registrations on Lenovo tablets:
> > - Point Arizona GPIO property entries directly to the codec device software
> >   node, which is attached to the parent device.
> > - Hold a device reference in gpio_secondary_fwnode_init() to ensure safety
> >   during devres action teardown.
> > - Generalize gpio_secondary_fwnode_init() to accept a node group argument
> >   and use it to attach crystalcove_gpiochip_node as a secondary firmware
> >   node to INT33FD:00 on Lenovo Yoga Tab 2 models.
> > - Drop redundant swnode group registrations on Lenovo Yoga Tab 3 and
> >   Yoga Tab 2 models where codec software nodes are already registered when
> >   attached to their respective devices.
> > 
> > Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
> 
> My initial testing report of success on the Yoga Tab 3 was a false negative
> caused by me still running the older kernel.
> 
> There was a generic bug in the new gpio_secondary_fwnode_init() helper
> which was causing all GPIO lookups for PROPERTY_ENTRY_GPIO() properties
> in the x86-android-tablets code to fail.
> 
> I've send out a patch fixing this:
> 
> https://lore.kernel.org/platform-driver-x86/20260831201157.36397-1-johannes.goede@oss.qualcomm.com/
> 
> Note that patch applies *on top of* this series.
> 
> With that patch everything works fine on both a "Yoga Tablet 2 1380" as
> well as on a "Yoga Tab 3" which covers all types of GPIOS (BYT SoC,
> CHT SoC, CrystalCove PMIC, Arizona codec) used in the x86-android-tablets
> code.
> 
> And the changes from this series look good to me too:
> 
> Tested-by: Hans de Goede <johannes.goede@oss.qualcomm.com> # Yoga tab 2 1380, yt3
> Reviewed-by: Hans de Goede <johannes.goede@oss.qualcomm.com>

Will you apply everything yourself or will you let Ilpo do this?

Thanks.

-- 
Dmitry
Re: [PATCH 0/6] platform/x86: x86-android-tablets: fix Arizona and Crystal Cove GPIO lookups
Posted by Hans de Goede 3 weeks, 4 days ago
Hi,

On 31-Aug-26 22:37, Dmitry Torokhov wrote:
> On Mon, Aug 31, 2026 at 10:17:41PM +0200, Hans de Goede wrote:
>> Hi,
>>
>> On 30-Aug-26 13:15, Dmitry Torokhov wrote:
>>> When gpiolib dropped name-against-label matching in favor of firmware node
>>> identity mapping, lookups referencing unattached software nodes (such as
>>> arizona and gpio_crystalcove in x86-android-tablets) stopped working.
>>>
>>> This series fixes the lookups and cleans up redundant software node
>>> registrations on Lenovo tablets:
>>> - Point Arizona GPIO property entries directly to the codec device software
>>>   node, which is attached to the parent device.
>>> - Hold a device reference in gpio_secondary_fwnode_init() to ensure safety
>>>   during devres action teardown.
>>> - Generalize gpio_secondary_fwnode_init() to accept a node group argument
>>>   and use it to attach crystalcove_gpiochip_node as a secondary firmware
>>>   node to INT33FD:00 on Lenovo Yoga Tab 2 models.
>>> - Drop redundant swnode group registrations on Lenovo Yoga Tab 3 and
>>>   Yoga Tab 2 models where codec software nodes are already registered when
>>>   attached to their respective devices.
>>>
>>> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
>>
>> My initial testing report of success on the Yoga Tab 3 was a false negative
>> caused by me still running the older kernel.
>>
>> There was a generic bug in the new gpio_secondary_fwnode_init() helper
>> which was causing all GPIO lookups for PROPERTY_ENTRY_GPIO() properties
>> in the x86-android-tablets code to fail.
>>
>> I've send out a patch fixing this:
>>
>> https://lore.kernel.org/platform-driver-x86/20260831201157.36397-1-johannes.goede@oss.qualcomm.com/
>>
>> Note that patch applies *on top of* this series.
>>
>> With that patch everything works fine on both a "Yoga Tablet 2 1380" as
>> well as on a "Yoga Tab 3" which covers all types of GPIOS (BYT SoC,
>> CHT SoC, CrystalCove PMIC, Arizona codec) used in the x86-android-tablets
>> code.
>>
>> And the changes from this series look good to me too:
>>
>> Tested-by: Hans de Goede <johannes.goede@oss.qualcomm.com> # Yoga tab 2 1380, yt3
>> Reviewed-by: Hans de Goede <johannes.goede@oss.qualcomm.com>
> 
> Will you apply everything yourself or will you let Ilpo do this?

Ilpo is doing 99% of the pdx86 maintainer work these days, with me just
hanging around as backup.

So I think it is easier if Ilpo just applies this series himself.

Ilpo: Note these are fixes (+ related cleanups) for a regression
in 7.3-rc1 so these need to go to the fixes branch.

And fixing the regression then requires this fix to be added on top:

https://lore.kernel.org/platform-driver-x86/20260831201157.36397-1-johannes.goede@oss.qualcomm.com/

Note the order matters (to avoid conflicts) first this series,
them my fix on top.

Regards,

Hans
Re: [PATCH 0/6] platform/x86: x86-android-tablets: fix Arizona and Crystal Cove GPIO lookups
Posted by Hans de Goede 3 weeks, 5 days ago
Hi,

On 30-Aug-26 1:15 PM, Dmitry Torokhov wrote:
> When gpiolib dropped name-against-label matching in favor of firmware node
> identity mapping, lookups referencing unattached software nodes (such as
> arizona and gpio_crystalcove in x86-android-tablets) stopped working.
> 
> This series fixes the lookups and cleans up redundant software node
> registrations on Lenovo tablets:
> - Point Arizona GPIO property entries directly to the codec device software
>   node, which is attached to the parent device.
> - Hold a device reference in gpio_secondary_fwnode_init() to ensure safety
>   during devres action teardown.
> - Generalize gpio_secondary_fwnode_init() to accept a node group argument
>   and use it to attach crystalcove_gpiochip_node as a secondary firmware
>   node to INT33FD:00 on Lenovo Yoga Tab 2 models.
> - Drop redundant swnode group registrations on Lenovo Yoga Tab 3 and
>   Yoga Tab 2 models where codec software nodes are already registered when
>   attached to their respective devices.
> 
> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>

So I've given this a test on a Yoga Tablet 3 (yt3) tablet yesterday and
there everything works.

Then I also tested this on a Lenovo Yoga Tablet 2 1380 since the YT3 does
not cover the crystal_cove GPIO case and there things do not work.

It seems that trying to get the crystal_cove GPIOs indefinetely returns
-EPROBE_DEFER. I'll try to debug thus further this evening.

Regards,

Hans



> ---
> Dmitry Torokhov (6):
>       platform/x86: x86-android-tablets: fix Arizona GPIO swnode references
>       platform/x86: x86-android-tablets: hold device reference for secondary fwnode teardown
>       platform/x86: x86-android-tablets: pass node group to gpio_secondary_fwnode_init()
>       platform/x86: x86-android-tablets: add Crystal Cove GPIO swnode support
>       platform/x86: x86-android-tablets: drop redundant swnode group on YT3
>       platform/x86: x86-android-tablets: use shared battery swnode group on Yoga Tab 2
> 
>  drivers/platform/x86/x86-android-tablets/core.c    | 35 +++++++++++++++-----
>  drivers/platform/x86/x86-android-tablets/lenovo.c  | 37 +++++++---------------
>  .../x86/x86-android-tablets/x86-android-tablets.h  |  2 ++
>  3 files changed, 40 insertions(+), 34 deletions(-)
> ---
> base-commit: f82a5da2f04960df9fb57489992d03dd5e64ec6f
> change-id: 20260829-x86-android-lenovo-swnode-785f4e165eb2
> 
> Thanks.
>
Re: [PATCH 0/6] platform/x86: x86-android-tablets: fix Arizona and Crystal Cove GPIO lookups
Posted by Dmitry Torokhov 3 weeks, 5 days ago
On Mon, Aug 31, 2026 at 11:42:06AM +0200, Hans de Goede wrote:
> Hi,
> 
> On 30-Aug-26 1:15 PM, Dmitry Torokhov wrote:
> > When gpiolib dropped name-against-label matching in favor of firmware node
> > identity mapping, lookups referencing unattached software nodes (such as
> > arizona and gpio_crystalcove in x86-android-tablets) stopped working.
> > 
> > This series fixes the lookups and cleans up redundant software node
> > registrations on Lenovo tablets:
> > - Point Arizona GPIO property entries directly to the codec device software
> >   node, which is attached to the parent device.
> > - Hold a device reference in gpio_secondary_fwnode_init() to ensure safety
> >   during devres action teardown.
> > - Generalize gpio_secondary_fwnode_init() to accept a node group argument
> >   and use it to attach crystalcove_gpiochip_node as a secondary firmware
> >   node to INT33FD:00 on Lenovo Yoga Tab 2 models.
> > - Drop redundant swnode group registrations on Lenovo Yoga Tab 3 and
> >   Yoga Tab 2 models where codec software nodes are already registered when
> >   attached to their respective devices.
> > 
> > Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
> 
> So I've given this a test on a Yoga Tablet 3 (yt3) tablet yesterday and
> there everything works.
> 
> Then I also tested this on a Lenovo Yoga Tablet 2 1380 since the YT3 does
> not cover the crystal_cove GPIO case and there things do not work.
> 
> It seems that trying to get the crystal_cove GPIOs indefinetely returns
> -EPROBE_DEFER. I'll try to debug thus further this evening.

I wonder if the patch below will help.

Thanks.

-- 
Dmitry

From 9376af2b6a9c91cd6a05969b583f40d451050988 Mon Sep 17 00:00:00 2001
From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Date: Mon, 31 Aug 2026 04:59:24 -0700
Subject: [PATCH] gpio: crystalcove: add missing MODULE_ALIAS()

The crystalcove GPIO driver lacks a MODULE_ALIAS() to allow it to be
auto-loaded. This results in consumers indefinitely deferring their
probe with -EPROBE_DEFER (waiting for the GPIO controller to appear)
when it's compiled as a module, as it will never be loaded.

Fix this by adding the missing platform alias.

Fixes: 104fb1d5153c ("gpio: Add support for Intel Crystal Cove PMIC")
Assisted-by: LLM
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
---
 drivers/gpio/gpio-crystalcove.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/gpio/gpio-crystalcove.c b/drivers/gpio/gpio-crystalcove.c
index 0fb5c06d0886..ab7fab5b9754 100644
--- a/drivers/gpio/gpio-crystalcove.c
+++ b/drivers/gpio/gpio-crystalcove.c
@@ -396,3 +396,4 @@ module_platform_driver(crystalcove_gpio_driver);
 MODULE_AUTHOR("Yang, Bin <bin.yang@intel.com>");
 MODULE_DESCRIPTION("Intel Crystal Cove GPIO Driver");
 MODULE_LICENSE("GPL v2");
+MODULE_ALIAS("platform:crystal_cove_gpio");
-- 
2.55.0.897.gb25b4bd76c-goog
Re: [PATCH 0/6] platform/x86: x86-android-tablets: fix Arizona and Crystal Cove GPIO lookups
Posted by Hans de Goede 3 weeks, 5 days ago
Hi Dmitry.

On 31-Aug-26 14:47, Dmitry Torokhov wrote:
> On Mon, Aug 31, 2026 at 11:42:06AM +0200, Hans de Goede wrote:
>> Hi,
>>
>> On 30-Aug-26 1:15 PM, Dmitry Torokhov wrote:
>>> When gpiolib dropped name-against-label matching in favor of firmware node
>>> identity mapping, lookups referencing unattached software nodes (such as
>>> arizona and gpio_crystalcove in x86-android-tablets) stopped working.
>>>
>>> This series fixes the lookups and cleans up redundant software node
>>> registrations on Lenovo tablets:
>>> - Point Arizona GPIO property entries directly to the codec device software
>>>   node, which is attached to the parent device.
>>> - Hold a device reference in gpio_secondary_fwnode_init() to ensure safety
>>>   during devres action teardown.
>>> - Generalize gpio_secondary_fwnode_init() to accept a node group argument
>>>   and use it to attach crystalcove_gpiochip_node as a secondary firmware
>>>   node to INT33FD:00 on Lenovo Yoga Tab 2 models.
>>> - Drop redundant swnode group registrations on Lenovo Yoga Tab 3 and
>>>   Yoga Tab 2 models where codec software nodes are already registered when
>>>   attached to their respective devices.
>>>
>>> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
>>
>> So I've given this a test on a Yoga Tablet 3 (yt3) tablet yesterday and
>> there everything works.
>>
>> Then I also tested this on a Lenovo Yoga Tablet 2 1380 since the YT3 does
>> not cover the crystal_cove GPIO case and there things do not work.
>>
>> It seems that trying to get the crystal_cove GPIOs indefinetely returns
>> -EPROBE_DEFER. I'll try to debug thus further this evening.
> 
> I wonder if the patch below will help.

No that does not fix things since I've crystalcove_gpio builtin (1).

Still a good catch though and worthwhile to send out as a standalone
patch.

Regards,

Hans

1) The i915 driver uses CrystalCove PMIC GPIOs for panel on/off on
some drivers and it cannot handle EPROBE_DEFER gracefully at the point
where it is requesting the GPIOs. So this driver must be builtin for
the i915 driver to work correctly on relevant models.
Re: [PATCH 0/6] platform/x86: x86-android-tablets: fix Arizona and Crystal Cove GPIO lookups
Posted by Hans de Goede 3 weeks, 5 days ago
On 31-Aug-26 22:20, Hans de Goede wrote:
> Hi Dmitry.
> 
> On 31-Aug-26 14:47, Dmitry Torokhov wrote:
>> On Mon, Aug 31, 2026 at 11:42:06AM +0200, Hans de Goede wrote:
>>> Hi,
>>>
>>> On 30-Aug-26 1:15 PM, Dmitry Torokhov wrote:
>>>> When gpiolib dropped name-against-label matching in favor of firmware node
>>>> identity mapping, lookups referencing unattached software nodes (such as
>>>> arizona and gpio_crystalcove in x86-android-tablets) stopped working.
>>>>
>>>> This series fixes the lookups and cleans up redundant software node
>>>> registrations on Lenovo tablets:
>>>> - Point Arizona GPIO property entries directly to the codec device software
>>>>   node, which is attached to the parent device.
>>>> - Hold a device reference in gpio_secondary_fwnode_init() to ensure safety
>>>>   during devres action teardown.
>>>> - Generalize gpio_secondary_fwnode_init() to accept a node group argument
>>>>   and use it to attach crystalcove_gpiochip_node as a secondary firmware
>>>>   node to INT33FD:00 on Lenovo Yoga Tab 2 models.
>>>> - Drop redundant swnode group registrations on Lenovo Yoga Tab 3 and
>>>>   Yoga Tab 2 models where codec software nodes are already registered when
>>>>   attached to their respective devices.
>>>>
>>>> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
>>>
>>> So I've given this a test on a Yoga Tablet 3 (yt3) tablet yesterday and
>>> there everything works.
>>>
>>> Then I also tested this on a Lenovo Yoga Tablet 2 1380 since the YT3 does
>>> not cover the crystal_cove GPIO case and there things do not work.
>>>
>>> It seems that trying to get the crystal_cove GPIOs indefinetely returns
>>> -EPROBE_DEFER. I'll try to debug thus further this evening.
>>
>> I wonder if the patch below will help.
> 
> No that does not fix things since I've crystalcove_gpio builtin (1).

p.s. should have added:

I did find the real problem and posted a follow up patch to be applied
on top of this series fixing things:

https://lore.kernel.org/platform-driver-x86/20260831201157.36397-1-johannes.goede@oss.qualcomm.com/

Regards,

Hans
Re: [PATCH 0/6] platform/x86: x86-android-tablets: fix Arizona and Crystal Cove GPIO lookups
Posted by Andy Shevchenko 3 weeks, 5 days ago
On Sun, Aug 30, 2026 at 04:15:04AM -0700, Dmitry Torokhov wrote:
> When gpiolib dropped name-against-label matching in favor of firmware node
> identity mapping, lookups referencing unattached software nodes (such as
> arizona and gpio_crystalcove in x86-android-tablets) stopped working.
> 
> This series fixes the lookups and cleans up redundant software node
> registrations on Lenovo tablets:
> - Point Arizona GPIO property entries directly to the codec device software
>   node, which is attached to the parent device.
> - Hold a device reference in gpio_secondary_fwnode_init() to ensure safety
>   during devres action teardown.
> - Generalize gpio_secondary_fwnode_init() to accept a node group argument
>   and use it to attach crystalcove_gpiochip_node as a secondary firmware
>   node to INT33FD:00 on Lenovo Yoga Tab 2 models.
> - Drop redundant swnode group registrations on Lenovo Yoga Tab 3 and
>   Yoga Tab 2 models where codec software nodes are already registered when
>   attached to their respective devices.

Nice series, thanks!
Reviewed-by: Andy Shevchenko <andriy.shevchenko@intel.com>

-- 
With Best Regards,
Andy Shevchenko
Re: [PATCH 0/6] platform/x86: x86-android-tablets: fix Arizona and Crystal Cove GPIO lookups
Posted by Linus Walleij 3 weeks, 5 days ago
On Sun, Aug 30, 2026 at 1:15 PM Dmitry Torokhov
<dmitry.torokhov@gmail.com> wrote:

> When gpiolib dropped name-against-label matching in favor of firmware node
> identity mapping, lookups referencing unattached software nodes (such as
> arizona and gpio_crystalcove in x86-android-tablets) stopped working.

Ooops.

The series look good to me.
Reviewed-by: Linus Walleij <linusw@kernel.org>

Yours,
Linus Walleij