[PATCH 2/2] platform/x86: int3472: Handle GPIO types 0x02 and 0x12 for Lunar Lake

Vasu
2026-04-04T19:03:08Z

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",