From: Marco Nenciarini <mnencia@kcore.it>
To: "Daniel Scally" <djrscally@gmail.com>,
"Sakari Ailus" <sakari.ailus@linux.intel.com>,
"Hans de Goede" <hdegoede@redhat.com>,
"Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>
Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
platform-driver-x86@vger.kernel.org,
linux-kernel@vger.kernel.org, Marco Nenciarini <mnencia@kcore.it>
Subject: [PATCH v4 4/4] platform/x86: int3472: Add support for GPIO type 0x02 (strobe LED)
Date: Fri, 27 Mar 2026 10:07:53 +0100 [thread overview]
Message-ID: <20260327090753.1481453-5-mnencia@kcore.it> (raw)
In-Reply-To: <20260327090753.1481453-1-mnencia@kcore.it>
Some ACPI INT3472 devices include a GPIO with DSM type 0x02, used for
IR flood (strobe) illumination. This GPIO type was previously
unhandled, resulting in the following warning during probe:
int3472-discrete INT3472:00: GPIO type 0x02 unknown; the sensor
may not work
Add INT3472_GPIO_TYPE_STROBE (0x02) handling that registers the GPIO
as an LED class device via skl_int3472_register_led(). Unlike the
privacy LED, the strobe LED is not consumed by the sensor driver, so
no LED lookup is registered.
Signed-off-by: Marco Nenciarini <mnencia@kcore.it>
---
Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
drivers/platform/x86/intel/int3472/discrete.c | 13 +++++++++++++
drivers/platform/x86/intel/int3472/led.c | 2 ++
include/linux/platform_data/x86/int3472.h | 2 ++
3 files changed, 17 insertions(+)
diff --git a/drivers/platform/x86/intel/int3472/discrete.c b/drivers/platform/x86/intel/int3472/discrete.c
index 2c554a0..03f0b49 100644
--- a/drivers/platform/x86/intel/int3472/discrete.c
+++ b/drivers/platform/x86/intel/int3472/discrete.c
@@ -207,6 +207,10 @@ static void int3472_get_con_id_and_polarity(struct int3472_discrete_device *int3
*con_id = "powerdown";
*gpio_flags = GPIO_ACTIVE_LOW;
break;
+ case INT3472_GPIO_TYPE_STROBE:
+ *con_id = "strobe";
+ *gpio_flags = GPIO_ACTIVE_HIGH;
+ break;
case INT3472_GPIO_TYPE_CLK_ENABLE:
*con_id = "clk-enable";
*gpio_flags = GPIO_ACTIVE_HIGH;
@@ -248,6 +252,7 @@ static void int3472_get_con_id_and_polarity(struct int3472_discrete_device *int3
*
* 0x00 Reset
* 0x01 Power down
+ * 0x02 Strobe (IR flood LED)
* 0x0b Power enable
* 0x0c Clock enable
* 0x0d Privacy LED
@@ -329,6 +334,7 @@ static int skl_int3472_handle_gpio_resources(struct acpi_resource *ares,
err_msg = "Failed to map GPIO pin to sensor\n";
break;
+ case INT3472_GPIO_TYPE_STROBE:
case INT3472_GPIO_TYPE_CLK_ENABLE:
case INT3472_GPIO_TYPE_PRIVACY_LED:
case INT3472_GPIO_TYPE_POWER_ENABLE:
@@ -353,6 +359,13 @@ static int skl_int3472_handle_gpio_resources(struct acpi_resource *ares,
if (ret)
err_msg = "Failed to register privacy LED\n";
+ break;
+ case INT3472_GPIO_TYPE_STROBE:
+ ret = skl_int3472_register_led(int3472, gpio,
+ INT3472_LED_TYPE_STROBE);
+ if (ret)
+ err_msg = "Failed to register strobe LED\n";
+
break;
case INT3472_GPIO_TYPE_POWER_ENABLE:
second_sensor = int3472->quirks.avdd_second_sensor;
diff --git a/drivers/platform/x86/intel/int3472/led.c b/drivers/platform/x86/intel/int3472/led.c
index 33b30f3..e6faba4 100644
--- a/drivers/platform/x86/intel/int3472/led.c
+++ b/drivers/platform/x86/intel/int3472/led.c
@@ -8,10 +8,12 @@
static const char * const int3472_led_names[] = {
[INT3472_LED_TYPE_PRIVACY] = "privacy",
+ [INT3472_LED_TYPE_STROBE] = "strobe",
};
static const char * const int3472_led_con_ids[] = {
[INT3472_LED_TYPE_PRIVACY] = "privacy",
+ [INT3472_LED_TYPE_STROBE] = NULL,
};
static int int3472_led_set(struct led_classdev *led_cdev,
diff --git a/include/linux/platform_data/x86/int3472.h b/include/linux/platform_data/x86/int3472.h
index b6b5b36..9893711 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
@@ -71,6 +72,7 @@
enum int3472_led_type {
INT3472_LED_TYPE_PRIVACY,
+ INT3472_LED_TYPE_STROBE,
};
struct acpi_device;
--
2.47.3
next prev parent reply other threads:[~2026-03-27 9:08 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
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 ` Marco Nenciarini [this message]
2026-03-27 10:34 ` [PATCH v4 4/4] platform/x86: int3472: Add support for GPIO type 0x02 (strobe LED) 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
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260327090753.1481453-5-mnencia@kcore.it \
--to=mnencia@kcore.it \
--cc=andriy.shevchenko@linux.intel.com \
--cc=djrscally@gmail.com \
--cc=hdegoede@redhat.com \
--cc=ilpo.jarvinen@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=platform-driver-x86@vger.kernel.org \
--cc=sakari.ailus@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.