public inbox for platform-driver-x86@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] platform/x86: int3472: Add GPIO type 0x02 (strobe) mapping
@ 2026-03-20  9:32 Marco Nenciarini
  2026-03-23 21:35 ` [PATCH v2] platform/x86: int3472: Handle GPIO type 0x02 (strobe) as IR flood LED Marco Nenciarini
                   ` (4 more replies)
  0 siblings, 5 replies; 57+ messages in thread
From: Marco Nenciarini @ 2026-03-20  9:32 UTC (permalink / raw)
  To: platform-driver-x86, linux-media; +Cc: hao.yao, hdegoede, sakari.ailus, andy

Some ACPI tables on Intel Meteor Lake and Arrow Lake platforms define
GPIO resources with type 0x02 for INT3472 camera sensor power control.
This type is not currently handled, causing a "GPIO type 0x02 unknown;
the sensor may not work" warning and preventing proper sensor power
sequencing.

Map GPIO type 0x02 (strobe) to the privacy LED handler, matching the
approach used for similar illumination-related GPIOs. This is consistent
with the original proposal by Hao Yao [1].

Tested on a Dell Pro Max 16 Premium (Arrow Lake-H) with OmniVision
OV08F4 sensor connected via Intel IPU6 and Synaptics SVP7500 USBIO
bridge. With this patch applied, the int3472-discrete driver no longer
warns about unknown GPIO type 0x02, and the sensor probes successfully.

[1] https://lore.kernel.org/all/20231007021309.9332-1-hao.yao@intel.com/

Link: https://bugs.debian.org/1130114
Link: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2138991
Cc: Hao Yao <hao.yao@intel.com>
Cc: Hans de Goede <hdegoede@redhat.com>
Cc: Sakari Ailus <sakari.ailus@linux.intel.com>
Cc: Andy Shevchenko <andy@kernel.org>
Signed-off-by: Marco Nenciarini <mnencia@kcore.it>
---
 drivers/platform/x86/intel/int3472/discrete.c | 3 +++
 include/linux/platform_data/x86/int3472.h     | 1 +
 2 files changed, 4 insertions(+)

diff --git a/drivers/platform/x86/intel/int3472/discrete.c b/drivers/platform/x86/intel/int3472/discrete.c
index 1505fc3..39ca60b 100644
--- a/drivers/platform/x86/intel/int3472/discrete.c
+++ b/drivers/platform/x86/intel/int3472/discrete.c
@@ -211,6 +211,7 @@ static void int3472_get_con_id_and_polarity(struct int3472_discrete_device *int3
 		*con_id = "clk-enable";
 		*gpio_flags = GPIO_ACTIVE_HIGH;
 		break;
+	case INT3472_GPIO_TYPE_STROBE:
 	case INT3472_GPIO_TYPE_PRIVACY_LED:
 		*con_id = "privacy-led";
 		*gpio_flags = GPIO_ACTIVE_HIGH;
@@ -330,6 +331,7 @@ static int skl_int3472_handle_gpio_resources(struct acpi_resource *ares,
 
 		break;
 	case INT3472_GPIO_TYPE_CLK_ENABLE:
+	case INT3472_GPIO_TYPE_STROBE:
 	case INT3472_GPIO_TYPE_PRIVACY_LED:
 	case INT3472_GPIO_TYPE_POWER_ENABLE:
 	case INT3472_GPIO_TYPE_HANDSHAKE:
@@ -347,6 +349,7 @@ static int skl_int3472_handle_gpio_resources(struct acpi_resource *ares,
 				err_msg = "Failed to register clock\n";
 
 			break;
+		case INT3472_GPIO_TYPE_STROBE:
 		case INT3472_GPIO_TYPE_PRIVACY_LED:
 			ret = skl_int3472_register_pled(int3472, gpio);
 			if (ret)
diff --git a/include/linux/platform_data/x86/int3472.h b/include/linux/platform_data/x86/int3472.h
index b1b8375..85adeb0 100644
--- a/include/linux/platform_data/x86/int3472.h
+++ b/include/linux/platform_data/x86/int3472.h
@@ -23,6 +23,7 @@
 /* PMIC GPIO Types */
 #define INT3472_GPIO_TYPE_RESET					0x00
 #define INT3472_GPIO_TYPE_POWERDOWN				0x01
+#define INT3472_GPIO_TYPE_STROBE				0x02
 #define INT3472_GPIO_TYPE_POWER_ENABLE				0x0b
 #define INT3472_GPIO_TYPE_CLK_ENABLE				0x0c
 #define INT3472_GPIO_TYPE_PRIVACY_LED				0x0d
-- 
2.47.3



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

end of thread, other threads:[~2026-04-01 18:47 UTC | newest]

Thread overview: 57+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-20  9:32 [PATCH] platform/x86: int3472: Add GPIO type 0x02 (strobe) mapping Marco Nenciarini
2026-03-23 21:35 ` [PATCH v2] platform/x86: int3472: Handle GPIO type 0x02 (strobe) as IR flood LED Marco Nenciarini
2026-03-24 12:56   ` Andy Shevchenko
2026-03-24 13:00     ` Andy Shevchenko
2026-03-24 13:02     ` Andy Shevchenko
2026-03-25 22:38 ` [PATCH v3 0/2] platform/x86: int3472: Add support for strobe LED (GPIO type 0x02) Marco Nenciarini
2026-03-25 22:38   ` [PATCH v3 1/2] platform/x86: int3472: Rename pled to led in LED registration code Marco Nenciarini
2026-03-25 22:38   ` [PATCH v3 2/2] platform/x86: int3472: Add support for GPIO type 0x02 (strobe LED) Marco Nenciarini
2026-03-26 10:46     ` Ilpo Järvinen
2026-03-26 10:51       ` Andy Shevchenko
2026-03-26 10:55     ` Andy Shevchenko
2026-03-26 10:57       ` Andy Shevchenko
2026-03-26 11:05         ` Andy Shevchenko
2026-03-27  9:07 ` [PATCH v4 0/4] platform/x86: int3472: Add support for strobe LED (GPIO type 0x02) Marco Nenciarini
2026-03-27  9:07   ` [PATCH v4 1/4] platform/x86: int3472: Rename pled to led in LED registration code Marco Nenciarini
2026-03-27 10:08     ` Andy Shevchenko
2026-03-27 10:35       ` Andy Shevchenko
2026-03-27  9:07   ` [PATCH v4 2/4] platform/x86: int3472: Use local variable for LED struct access Marco Nenciarini
2026-03-27 10:15     ` Andy Shevchenko
2026-03-27  9:07   ` [PATCH v4 3/4] platform/x86: int3472: Introduce LED type enum and multi-LED support Marco Nenciarini
2026-03-27 10:30     ` Andy Shevchenko
2026-03-27  9:07   ` [PATCH v4 4/4] platform/x86: int3472: Add support for GPIO type 0x02 (strobe LED) Marco Nenciarini
2026-03-27 10:34     ` Andy Shevchenko
2026-03-27 10:37   ` [PATCH v4 0/4] platform/x86: int3472: Add support for strobe LED (GPIO type 0x02) Andy Shevchenko
2026-03-27 18:10 ` [PATCH v5 0/4] platform/x86: int3472: Add support for GPIO type 0x02 (strobe) Marco Nenciarini
2026-03-27 18:10   ` [PATCH v5 1/4] platform/x86: int3472: Use local variable for LED struct access Marco Nenciarini
2026-03-30  9:23     ` Andy Shevchenko
2026-03-27 18:10   ` [PATCH v5 2/4] platform/x86: int3472: Rename pled to led in LED registration code Marco Nenciarini
2026-03-27 18:10   ` [PATCH v5 3/4] platform/x86: int3472: Parameterize LED name in registration Marco Nenciarini
2026-03-30  9:26     ` Andy Shevchenko
2026-03-27 18:10   ` [PATCH v5 4/4] platform/x86: int3472: Add support for GPIO type 0x02 (strobe) Marco Nenciarini
2026-03-30  9:35     ` Andy Shevchenko
2026-03-30  9:36   ` [PATCH v5 0/4] " Andy Shevchenko
2026-03-30 13:23   ` johannes.goede
2026-03-30 14:55     ` Marco Nenciarini
2026-03-30 15:12       ` johannes.goede
2026-03-30 20:21         ` Sakari Ailus
2026-03-31  7:10           ` Marco Nenciarini
2026-03-31 10:15           ` johannes.goede
2026-03-31 21:28             ` Sakari Ailus
2026-04-01 13:38               ` johannes.goede
2026-04-01 17:13                 ` Marco Nenciarini
2026-04-01 18:47                   ` johannes.goede
2026-03-31  7:52 ` [PATCH v6 0/4] platform/x86: int3472: Add support for GPIO type 0x02 (IR flood LED) Marco Nenciarini
2026-03-31  7:52   ` [PATCH v6 1/4] platform/x86: int3472: Use local variable for LED struct access Marco Nenciarini
2026-03-31 10:16     ` Andy Shevchenko
2026-03-31  7:52   ` [PATCH v6 2/4] platform/x86: int3472: Rename pled to led in LED registration code Marco Nenciarini
2026-03-31 10:17     ` Andy Shevchenko
2026-03-31  7:52   ` [PATCH v6 3/4] platform/x86: int3472: Parameterize LED con_id in registration Marco Nenciarini
2026-03-31 10:20     ` Andy Shevchenko
2026-03-31  7:52   ` [PATCH v6 4/4] platform/x86: int3472: Add support for GPIO type 0x02 (IR flood LED) Marco Nenciarini
2026-03-31 10:36     ` Hans de Goede
2026-03-31 10:55       ` Andy Shevchenko
2026-04-01 13:36         ` Hans de Goede
2026-04-01 13:56           ` Andy Shevchenko
2026-03-31 10:48     ` Andy Shevchenko
2026-03-31 10:25   ` [PATCH v6 0/4] " Andy Shevchenko

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