[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20250702112130.858536-1-sakari.ailus@linux.intel.com>
Date: Wed, 2 Jul 2025 14:21:30 +0300
From: Sakari Ailus <sakari.ailus@...ux.intel.com>
To: linux-media@...r.kernel.org
Cc: platform-driver-x86@...r.kernel.org,
linux-kernel@...r.kernel.org,
hans@...erkuil.nl,
andriy.shevchenko@...ux.intel.com,
hdegoede@...hat.com,
u.kleine-koenig@...libre.com,
ricardo.ribalda@...il.com,
Ilpo Järvinen <ilpo.jarvinen@...ux.intel.com>,
bingbu.cao@...ux.intel.com,
dongcheng.yan@...ux.intel.com,
hao.yao@...el.com
Subject: [PATCH v4 1/1] platform/x86: int3472: add hpd pin support
From: Dongcheng Yan <dongcheng.yan@...el.com>
Typically HDMI to MIPI CSI-2 bridges have a pin to signal image data is
being received. On the host side this is wired to a GPIO for polling or
interrupts. This includes the Lontium HDMI to MIPI CSI-2 bridges
lt6911uxe and lt6911uxc.
The GPIO "hpd" is used already by other HDMI to CSI-2 bridges, use it
here as well.
Signed-off-by: Dongcheng Yan <dongcheng.yan@...el.com>
Reviewed-by: Sakari Ailus <sakari.ailus@...ux.intel.com>
Acked-by: Ilpo Järvinen <ilpo.jarvinen@...ux.intel.com>
Reviewed-by: Hans de Goede <hdegoede@...hat.com>
Signed-off-by: Sakari Ailus <sakari.ailus@...ux.intel.com>
---
since v3:
- Rebase due to commit 53eddae9af0c0b46f9c77a02d23c21c1aa824739
("platform/x86: int3472: Move common.h to public includes, symbols to
INTEL_INT3472"), moving the new GPIO PIN definition from common.h to
int3472.h.
The intent is to merge this via the media tree, with Ilpo's ack.
drivers/platform/x86/intel/int3472/discrete.c | 6 ++++++
include/linux/platform_data/x86/int3472.h | 1 +
2 files changed, 7 insertions(+)
diff --git a/drivers/platform/x86/intel/int3472/discrete.c b/drivers/platform/x86/intel/int3472/discrete.c
index 4c0aed6e626f..bdfb8a800c54 100644
--- a/drivers/platform/x86/intel/int3472/discrete.c
+++ b/drivers/platform/x86/intel/int3472/discrete.c
@@ -193,6 +193,10 @@ static void int3472_get_con_id_and_polarity(struct int3472_discrete_device *int3
*con_id = "privacy-led";
*gpio_flags = GPIO_ACTIVE_HIGH;
break;
+ case INT3472_GPIO_TYPE_HOTPLUG_DETECT:
+ *con_id = "hpd";
+ *gpio_flags = GPIO_ACTIVE_HIGH;
+ break;
case INT3472_GPIO_TYPE_POWER_ENABLE:
*con_id = "avdd";
*gpio_flags = GPIO_ACTIVE_HIGH;
@@ -223,6 +227,7 @@ static void int3472_get_con_id_and_polarity(struct int3472_discrete_device *int3
* 0x0b Power enable
* 0x0c Clock enable
* 0x0d Privacy LED
+ * 0x13 Hotplug detect
*
* There are some known platform specific quirks where that does not quite
* hold up; for example where a pin with type 0x01 (Power down) is mapped to
@@ -292,6 +297,7 @@ static int skl_int3472_handle_gpio_resources(struct acpi_resource *ares,
switch (type) {
case INT3472_GPIO_TYPE_RESET:
case INT3472_GPIO_TYPE_POWERDOWN:
+ case INT3472_GPIO_TYPE_HOTPLUG_DETECT:
ret = skl_int3472_map_gpio_to_sensor(int3472, agpio, con_id, gpio_flags);
if (ret)
err_msg = "Failed to map GPIO pin to sensor\n";
diff --git a/include/linux/platform_data/x86/int3472.h b/include/linux/platform_data/x86/int3472.h
index 78276a11c48d..1571e9157fa5 100644
--- a/include/linux/platform_data/x86/int3472.h
+++ b/include/linux/platform_data/x86/int3472.h
@@ -27,6 +27,7 @@
#define INT3472_GPIO_TYPE_CLK_ENABLE 0x0c
#define INT3472_GPIO_TYPE_PRIVACY_LED 0x0d
#define INT3472_GPIO_TYPE_HANDSHAKE 0x12
+#define INT3472_GPIO_TYPE_HOTPLUG_DETECT 0x13
#define INT3472_PDEV_MAX_NAME_LEN 23
#define INT3472_MAX_SENSOR_GPIOS 3
--
2.39.5
Powered by blists - more mailing lists