]> www.infradead.org Git - users/griffoul/linux.git/commitdiff
platform/x86: int3472: add hpd pin support
authorDongcheng Yan <dongcheng.yan@intel.com>
Fri, 25 Apr 2025 10:43:30 +0000 (18:43 +0800)
committerHans Verkuil <hverkuil+cisco@kernel.org>
Mon, 18 Aug 2025 07:55:05 +0000 (09:55 +0200)
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@intel.com>
Reviewed-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Acked-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Fixes: 20244cbafbd6 ("media: i2c: change lt6911uxe irq_gpio name to "hpd"")
Cc: stable@vger.kernel.org
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
drivers/platform/x86/intel/int3472/discrete.c
include/linux/platform_data/x86/int3472.h

index 4c0aed6e626f6bb3c213e67aea67765d507cad5d..bdfb8a800c548921cade05f9f913d8cd2ae86b1a 100644 (file)
@@ -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";
index 78276a11c48d6c0de0bfaf165c40042d314e58c6..1571e9157fa50b45bd54b904eaff70fd562a0aa7 100644 (file)
@@ -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