public inbox for linux-gpio@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] pinctrl: intel: platform: Add INTC10B5 ACPI ID for Lunar Lake
@ 2026-04-04 19:02 Vasu
  2026-04-04 19:02 ` [PATCH 2/2] platform/x86: int3472: Handle GPIO types 0x02 and 0x12 " Vasu
  2026-04-04 19:52 ` [PATCH 1/2] pinctrl: intel: platform: Add INTC10B5 ACPI ID " Andy Shevchenko
  0 siblings, 2 replies; 14+ messages in thread
From: Vasu @ 2026-04-04 19:02 UTC (permalink / raw)
  To: platform-driver-x86
  Cc: linux-kernel, linux-gpio, andriy.shevchenko, djrscally,
	mika.westerberg, Vasu Hansalia

From: Vasu Hansalia <vasuhansalia05@gmail.com>

Intel Lunar Lake platforms (Core Ultra 200V series) use INTC10B5 as
the ACPI hardware ID for the GPIO controller that manages power to
the integrated MIPI camera sensor.

Without this entry, the pinctrl-intel-platform driver does not bind
to the GPIO controller, causing int3472-discrete to report:

  int3472-discrete INT3472:00: cannot find GPIO chip INTC10B5:00, deferring

This prevents the camera sensor from being powered on entirely.

Tested on: Dell Pro 14 Premium PA14250, Intel Core Ultra 7 266V
           (Lunar Lake), Ubuntu 24.04, kernel 6.11.0-1016-oem

Signed-off-by: Vasu Hansalia <vasuhansalia05@gmail.com>
---
--- a/drivers/pinctrl/intel/pinctrl-intel-platform.c
+++ b/drivers/pinctrl/intel/pinctrl-intel-platform.c
@@ -204,6 +204,7 @@
 
 static const struct acpi_device_id intel_platform_pinctrl_acpi_match[] = {
 	{ "INTC105F" },
+	{ "INTC10B5" },
 	{ }
 };
 MODULE_DEVICE_TABLE(acpi, intel_platform_pinctrl_acpi_match);

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [PATCH 2/2] platform/x86: int3472: Handle GPIO types 0x02 and 0x12 for Lunar Lake
  2026-04-04 19:02 [PATCH 1/2] pinctrl: intel: platform: Add INTC10B5 ACPI ID for Lunar Lake Vasu
@ 2026-04-04 19:02 ` Vasu
  2026-04-04 19:55   ` Andy Shevchenko
  2026-04-04 19:52 ` [PATCH 1/2] pinctrl: intel: platform: Add INTC10B5 ACPI ID " Andy Shevchenko
  1 sibling, 1 reply; 14+ messages in thread
From: Vasu @ 2026-04-04 19:02 UTC (permalink / raw)
  To: platform-driver-x86
  Cc: linux-kernel, linux-gpio, andriy.shevchenko, djrscally,
	mika.westerberg, Vasu Hansalia

From: Vasu Hansalia <vasuhansalia05@gmail.com>

Intel Lunar Lake platforms (Core Ultra 200V series) use two GPIO types
in their INT3472 ACPI tables that are not handled by the discrete driver:

  - Type 0x02: Strobe GPIO, used for IR LED/flash control. Map to sensor.
  - Type 0x12: AVDD/sensor-supply GPIO, used on Lunar Lake to control
    sensor power. Treat like RESET/POWERDOWN and map to sensor.

Without these handlers the driver logs:

  int3472-discrete INT3472:00: GPIO type 0x02 unknown; the sensor may not work
  int3472-discrete INT3472:00: GPIO type 0x12 unknown; the sensor may not work

Type 0x12 handling was confirmed by inspecting the OEM kernel module for
Ubuntu 24.04 (6.11.0-1016-oem) which handles this type by mapping it
directly to the sensor via skl_int3472_fill_gpiod_lookup().

Tested on: Dell Pro 14 Premium PA14250, Intel Core Ultra 7 266V
           (Lunar Lake), Ubuntu 24.04, kernel 6.11.0-1016-oem
           Camera confirmed working at 1280x720 30fps after fix.

Signed-off-by: Vasu Hansalia <vasuhansalia05@gmail.com>
---
--- a/drivers/platform/x86/intel/int3472/discrete.c
+++ b/drivers/platform/x86/intel/int3472/discrete.c
@@ -239,6 +239,7 @@
 	switch (type) {
 	case INT3472_GPIO_TYPE_RESET:
 	case INT3472_GPIO_TYPE_POWERDOWN:
+	case 0x12: /* Lunar Lake AVDD/sensor-supply GPIO */
 		ret = skl_int3472_map_gpio_to_sensor(int3472, agpio, func, polarity);
 		if (ret)
 			err_msg = "Failed to map GPIO pin to sensor\n";
@@ -278,6 +279,12 @@
 			break;
 		}
 		break;
+	case 0x02:
+		/* Strobe GPIO - used for IR LED/flash, map to sensor */
+		ret = skl_int3472_map_gpio_to_sensor(int3472, agpio, func, polarity);
+		if (ret)
+			err_msg = "Failed to map strobe GPIO to sensor\n";
+		break;
 	default:
 		dev_warn(int3472->dev,
 			 "GPIO type 0x%02x unknown; the sensor may not work\n",

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 1/2] pinctrl: intel: platform: Add INTC10B5 ACPI ID for Lunar Lake
  2026-04-04 19:02 [PATCH 1/2] pinctrl: intel: platform: Add INTC10B5 ACPI ID for Lunar Lake Vasu
  2026-04-04 19:02 ` [PATCH 2/2] platform/x86: int3472: Handle GPIO types 0x02 and 0x12 " Vasu
@ 2026-04-04 19:52 ` Andy Shevchenko
  2026-04-05  1:34   ` Vasu
  1 sibling, 1 reply; 14+ messages in thread
From: Andy Shevchenko @ 2026-04-04 19:52 UTC (permalink / raw)
  To: Vasu
  Cc: platform-driver-x86, linux-kernel, linux-gpio, djrscally,
	mika.westerberg

On Sun, Apr 05, 2026 at 12:32:35AM +0530, Vasu wrote:

> Intel Lunar Lake platforms (Core Ultra 200V series) use INTC10B5 as
> the ACPI hardware ID for the GPIO controller that manages power to
> the integrated MIPI camera sensor.
> 
> Without this entry, the pinctrl-intel-platform driver does not bind
> to the GPIO controller, causing int3472-discrete to report:
> 
>   int3472-discrete INT3472:00: cannot find GPIO chip INTC10B5:00, deferring
> 
> This prevents the camera sensor from being powered on entirely.
> 
> Tested on: Dell Pro 14 Premium PA14250, Intel Core Ultra 7 266V
>            (Lunar Lake), Ubuntu 24.04, kernel 6.11.0-1016-oem

Huh?!

The currently mentioned ID is CID in the driver, the BIOS has to set _CID
properly. Can you file the bug against BIOS and make OEM aware of this?

-- 
With Best Regards,
Andy Shevchenko



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 2/2] platform/x86: int3472: Handle GPIO types 0x02 and 0x12 for Lunar Lake
  2026-04-04 19:02 ` [PATCH 2/2] platform/x86: int3472: Handle GPIO types 0x02 and 0x12 " Vasu
@ 2026-04-04 19:55   ` Andy Shevchenko
  2026-04-05  1:34     ` Vasu
  0 siblings, 1 reply; 14+ messages in thread
From: Andy Shevchenko @ 2026-04-04 19:55 UTC (permalink / raw)
  To: Vasu
  Cc: platform-driver-x86, linux-kernel, linux-gpio, djrscally,
	mika.westerberg

On Sun, Apr 05, 2026 at 12:32:36AM +0530, Vasu wrote:

> Intel Lunar Lake platforms (Core Ultra 200V series) use two GPIO types
> in their INT3472 ACPI tables that are not handled by the discrete driver:
> 
>   - Type 0x02: Strobe GPIO, used for IR LED/flash control. Map to sensor.
>   - Type 0x12: AVDD/sensor-supply GPIO, used on Lunar Lake to control
>     sensor power. Treat like RESET/POWERDOWN and map to sensor.
> 
> Without these handlers the driver logs:
> 
>   int3472-discrete INT3472:00: GPIO type 0x02 unknown; the sensor may not work
>   int3472-discrete INT3472:00: GPIO type 0x12 unknown; the sensor may not work
> 
> Type 0x12 handling was confirmed by inspecting the OEM kernel module for
> Ubuntu 24.04 (6.11.0-1016-oem) which handles this type by mapping it
> directly to the sensor via skl_int3472_fill_gpiod_lookup().
> 
> Tested on: Dell Pro 14 Premium PA14250, Intel Core Ultra 7 266V
>            (Lunar Lake), Ubuntu 24.04, kernel 6.11.0-1016-oem
>            Camera confirmed working at 1280x720 30fps after fix.

STROBE is about to be added by another series. The 0x12 needs a proper define.

-- 
With Best Regards,
Andy Shevchenko



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 1/2] pinctrl: intel: platform: Add INTC10B5 ACPI ID for Lunar Lake
  2026-04-04 19:52 ` [PATCH 1/2] pinctrl: intel: platform: Add INTC10B5 ACPI ID " Andy Shevchenko
@ 2026-04-05  1:34   ` Vasu
  2026-04-05  8:59     ` Andy Shevchenko
  0 siblings, 1 reply; 14+ messages in thread
From: Vasu @ 2026-04-05  1:34 UTC (permalink / raw)
  To: andriy.shevchenko
  Cc: platform-driver-x86, linux-kernel, linux-gpio, djrscally,
	mika.westerberg, Vasu Hansalia

From: Vasu Hansalia <vasuhansalia05@gmail.com>

Thank you for the feedback Andy.

Understood - this is a BIOS bug where the firmware is not setting _CID
properly for INTC10B5. I will file a bug with Dell to get their BIOS
fixed.

Should I drop this patch entirely, or would a kernel workaround still
be acceptable with a comment noting the BIOS bug?

Regards,
Vasu Hansalia

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 2/2] platform/x86: int3472: Handle GPIO types 0x02 and 0x12 for Lunar Lake
  2026-04-04 19:55   ` Andy Shevchenko
@ 2026-04-05  1:34     ` Vasu
  2026-04-05  9:01       ` Andy Shevchenko
  0 siblings, 1 reply; 14+ messages in thread
From: Vasu @ 2026-04-05  1:34 UTC (permalink / raw)
  To: andriy.shevchenko
  Cc: platform-driver-x86, linux-kernel, linux-gpio, djrscally,
	mika.westerberg, Vasu Hansalia

From: Vasu Hansalia <vasuhansalia05@gmail.com>

Thank you for the feedback Andy.

Could you point me to the series that is adding STROBE support so I
can avoid duplicating that work?

For 0x12, I will add a proper define. Based on the OEM kernel module
behaviour, would INT3472_GPIO_TYPE_AVDD be an appropriate name, or do
you have a preferred name for this type?

Regards,
Vasu Hansalia

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 1/2] pinctrl: intel: platform: Add INTC10B5 ACPI ID for Lunar Lake
  2026-04-05  1:34   ` Vasu
@ 2026-04-05  8:59     ` Andy Shevchenko
  2026-04-05  9:15       ` Vasu
  0 siblings, 1 reply; 14+ messages in thread
From: Andy Shevchenko @ 2026-04-05  8:59 UTC (permalink / raw)
  To: Vasu
  Cc: platform-driver-x86, linux-kernel, linux-gpio, djrscally,
	mika.westerberg

On Sun, Apr 05, 2026 at 07:04:12AM +0530, Vasu wrote:

> Thank you for the feedback Andy.
> 
> Understood - this is a BIOS bug where the firmware is not setting _CID
> properly for INTC10B5. I will file a bug with Dell to get their BIOS
> fixed.
> 
> Should I drop this patch entirely, or would a kernel workaround still
> be acceptable with a comment noting the BIOS bug?

Is this machine already on the market?

-- 
With Best Regards,
Andy Shevchenko



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 2/2] platform/x86: int3472: Handle GPIO types 0x02 and 0x12 for Lunar Lake
  2026-04-05  1:34     ` Vasu
@ 2026-04-05  9:01       ` Andy Shevchenko
  2026-04-05  9:15         ` Vasu
  2026-04-05  9:27         ` Vasu
  0 siblings, 2 replies; 14+ messages in thread
From: Andy Shevchenko @ 2026-04-05  9:01 UTC (permalink / raw)
  To: Vasu
  Cc: platform-driver-x86, linux-kernel, linux-gpio, djrscally,
	mika.westerberg

On Sun, Apr 05, 2026 at 07:04:13AM +0530, Vasu wrote:

> Thank you for the feedback Andy.
> 
> Could you point me to the series that is adding STROBE support so I
> can avoid duplicating that work?

Sure, you can find it on lore archive:
https://lore.kernel.org/platform-driver-x86/20260401203638.1601661-1-mnencia@kcore.it/
(It took less than a minute to find :-)

> For 0x12, I will add a proper define. Based on the OEM kernel module
> behaviour, would INT3472_GPIO_TYPE_AVDD be an appropriate name, or do
> you have a preferred name for this type?

Better to follow the name in accordance with the specification(s).

-- 
With Best Regards,
Andy Shevchenko



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 1/2] pinctrl: intel: platform: Add INTC10B5 ACPI ID for Lunar Lake
  2026-04-05  8:59     ` Andy Shevchenko
@ 2026-04-05  9:15       ` Vasu
  2026-04-05 16:17         ` Andy Shevchenko
  0 siblings, 1 reply; 14+ messages in thread
From: Vasu @ 2026-04-05  9:15 UTC (permalink / raw)
  To: andriy.shevchenko
  Cc: platform-driver-x86, linux-kernel, linux-gpio, djrscally,
	mika.westerberg, Vasu Hansalia

From: Vasu Hansalia <vasuhansalia05@gmail.com>

Yes, multiple PA14250 variants are already on the market and shipping.
The Core Ultra 5 variants ship with Ubuntu 24.04 and are Ubuntu-certified.
The Dell Pro 13 Plus (PB13250) with Core Ultra 7 266V is also
Ubuntu-certified. My device, the PA14250 with Core Ultra 7 266V, ships
with Windows 11.

All of these Lunar Lake Dell laptops share the same ACPI BIOS issue with
INTC10B5 not having _CID set properly.

Regards,
Vasu Hansalia

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 2/2] platform/x86: int3472: Handle GPIO types 0x02 and 0x12 for Lunar Lake
  2026-04-05  9:01       ` Andy Shevchenko
@ 2026-04-05  9:15         ` Vasu
  2026-04-05  9:27         ` Vasu
  1 sibling, 0 replies; 14+ messages in thread
From: Vasu @ 2026-04-05  9:15 UTC (permalink / raw)
  To: andriy.shevchenko
  Cc: platform-driver-x86, linux-kernel, linux-gpio, djrscally,
	mika.westerberg, Vasu Hansalia

From: Vasu Hansalia <vasuhansalia05@gmail.com>

Thank you for the pointer to the STROBE series.

Based on the specification, the correct name for type 0x12 appears to
be "handshake". I will use INT3472_GPIO_TYPE_HANDSHAKE in v2.

I will prepare v2 dropping type 0x02 (handled by the STROBE series)
and adding the proper #define for type 0x12.

Regards,
Vasu Hansalia

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 2/2] platform/x86: int3472: Handle GPIO types 0x02 and 0x12 for Lunar Lake
  2026-04-05  9:01       ` Andy Shevchenko
  2026-04-05  9:15         ` Vasu
@ 2026-04-05  9:27         ` Vasu
  2026-04-05 16:10           ` Andy Shevchenko
  1 sibling, 1 reply; 14+ messages in thread
From: Vasu @ 2026-04-05  9:27 UTC (permalink / raw)
  To: andriy.shevchenko
  Cc: platform-driver-x86, linux-kernel, linux-gpio, djrscally,
	mika.westerberg, Vasu Hansalia

From: Vasu Hansalia <vasuhansalia05@gmail.com>

After checking the mainline kernel source, I found that
INT3472_GPIO_TYPE_HANDSHAKE (0x12) is already defined and fully
handled in mainline. So no v2 patch is needed for mainline.

The fix just needs to be backported to the Ubuntu OEM kernels
(6.11-oem, 6.17-oem) where affected users are running Ubuntu 24.04.

Should I send a backport request to the Ubuntu kernel team, or is
there another process you would recommend?

Regards,
Vasu Hansalia

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 2/2] platform/x86: int3472: Handle GPIO types 0x02 and 0x12 for Lunar Lake
  2026-04-05  9:27         ` Vasu
@ 2026-04-05 16:10           ` Andy Shevchenko
  0 siblings, 0 replies; 14+ messages in thread
From: Andy Shevchenko @ 2026-04-05 16:10 UTC (permalink / raw)
  To: Vasu
  Cc: platform-driver-x86, linux-kernel, linux-gpio, djrscally,
	mika.westerberg

On Sun, Apr 05, 2026 at 02:57:14PM +0530, Vasu wrote:

> After checking the mainline kernel source, I found that
> INT3472_GPIO_TYPE_HANDSHAKE (0x12) is already defined and fully
> handled in mainline. So no v2 patch is needed for mainline.
> 
> The fix just needs to be backported to the Ubuntu OEM kernels
> (6.11-oem, 6.17-oem) where affected users are running Ubuntu 24.04.
> 
> Should I send a backport request to the Ubuntu kernel team, or is
> there another process you would recommend?

It's documented:
Documentation/process/stable-kernel-rules.rst

-- 
With Best Regards,
Andy Shevchenko



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 1/2] pinctrl: intel: platform: Add INTC10B5 ACPI ID for Lunar Lake
  2026-04-05  9:15       ` Vasu
@ 2026-04-05 16:17         ` Andy Shevchenko
  2026-04-05 16:33           ` Vasu
  0 siblings, 1 reply; 14+ messages in thread
From: Andy Shevchenko @ 2026-04-05 16:17 UTC (permalink / raw)
  To: Vasu
  Cc: platform-driver-x86, linux-kernel, linux-gpio, djrscally,
	mika.westerberg

On Sun, Apr 05, 2026 at 02:45:17PM +0530, Vasu wrote:
> 
> Yes, multiple PA14250 variants are already on the market and shipping.
> The Core Ultra 5 variants ship with Ubuntu 24.04 and are Ubuntu-certified.
> The Dell Pro 13 Plus (PB13250) with Core Ultra 7 266V is also
> Ubuntu-certified. My device, the PA14250 with Core Ultra 7 266V, ships
> with Windows 11.
> 
> All of these Lunar Lake Dell laptops share the same ACPI BIOS issue with
> INTC10B5 not having _CID set properly.

Okay, you misinterpreted the SoC's GPIO with external component. The problem is
you forgot (or distro, in that case file a bug in their respective bugzilla) to
have the proper LJCA driver(s) be enabled.

Another possibility that they are using old kernel.

You can spent 5 minutes by checking yourself:

$ git grep -n -w INTC10B5
drivers/gpio/gpio-usbio.c:31:   { "INTC10B5" }, /* LNL */
drivers/usb/misc/usb-ljca.c:182:        { "INTC10B5" }, /* LNL LJCA GPIO */

Overall, your series is not needed at all.

-- 
With Best Regards,
Andy Shevchenko



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 1/2] pinctrl: intel: platform: Add INTC10B5 ACPI ID for Lunar Lake
  2026-04-05 16:17         ` Andy Shevchenko
@ 2026-04-05 16:33           ` Vasu
  0 siblings, 0 replies; 14+ messages in thread
From: Vasu @ 2026-04-05 16:33 UTC (permalink / raw)
  To: andriy.shevchenko
  Cc: platform-driver-x86, linux-kernel, linux-gpio, djrscally,
	mika.westerberg, Vasu Hansalia

From: Vasu Hansalia <vasuhansalia05@gmail.com>

Thank you for the clarification Andy.

Confirmed — the LJCA drivers (gpio-usbio and usb-ljca) are present
and loaded on the system:

  $ lsmod | grep -E "usbio|ljca"
  i2c_usbio    12288  0
  gpio_usbio   12288  2
  usbio        20480  2 gpio_usbio,i2c_usbio

You are correct, Patch 1 is not needed. I will drop it.

For Patch 2, I will follow stable-kernel-rules.rst to request the
backport of INT3472_GPIO_TYPE_HANDSHAKE to the Ubuntu OEM kernels.

Thank you for your patience and guidance throughout this process.

Regards,
Vasu Hansalia

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2026-04-05 16:34 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-04 19:02 [PATCH 1/2] pinctrl: intel: platform: Add INTC10B5 ACPI ID for Lunar Lake Vasu
2026-04-04 19:02 ` [PATCH 2/2] platform/x86: int3472: Handle GPIO types 0x02 and 0x12 " Vasu
2026-04-04 19:55   ` Andy Shevchenko
2026-04-05  1:34     ` Vasu
2026-04-05  9:01       ` Andy Shevchenko
2026-04-05  9:15         ` Vasu
2026-04-05  9:27         ` Vasu
2026-04-05 16:10           ` Andy Shevchenko
2026-04-04 19:52 ` [PATCH 1/2] pinctrl: intel: platform: Add INTC10B5 ACPI ID " Andy Shevchenko
2026-04-05  1:34   ` Vasu
2026-04-05  8:59     ` Andy Shevchenko
2026-04-05  9:15       ` Vasu
2026-04-05 16:17         ` Andy Shevchenko
2026-04-05 16:33           ` Vasu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox