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

From: Hans de Goede

Date: Mon Aug 31 2026 - 16:38:54 EST


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@xxxxxxxxx>

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@xxxxxxxxxxxxxxxx/

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@xxxxxxxxxxxxxxxx> # Yoga tab 2 1380, yt3
Reviewed-by: Hans de Goede <johannes.goede@xxxxxxxxxxxxxxxx>

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.
>