Commit 799d3379 authored by Andy Shevchenko's avatar Andy Shevchenko

platform/x86: i2c-multi-instantiate: Introduce IOAPIC IRQ support

If ACPI table provides an Interrupt() resource we may consider to use it
instead of GpioInt() one.

Here we leave an error condition, when getting IRQ resource, to the driver
to decide how to proceed, because some drivers may consider IRQ resource
optional.
Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: default avatarHeikki Krogerus <heikki.krogerus@linux.intel.com>
Reviewed-by: default avatarHans de Goede <hdegoede@redhat.com>
parent 870ab9a3
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
#define IRQ_RESOURCE_TYPE GENMASK(1, 0) #define IRQ_RESOURCE_TYPE GENMASK(1, 0)
#define IRQ_RESOURCE_NONE 0 #define IRQ_RESOURCE_NONE 0
#define IRQ_RESOURCE_GPIO 1 #define IRQ_RESOURCE_GPIO 1
#define IRQ_RESOURCE_APIC 2
struct i2c_inst_data { struct i2c_inst_data {
const char *type; const char *type;
...@@ -104,6 +105,14 @@ static int i2c_multi_inst_probe(struct platform_device *pdev) ...@@ -104,6 +105,14 @@ static int i2c_multi_inst_probe(struct platform_device *pdev)
} }
board_info.irq = ret; board_info.irq = ret;
break; break;
case IRQ_RESOURCE_APIC:
ret = platform_get_irq(pdev, inst_data[i].irq_idx);
if (ret < 0) {
dev_dbg(dev, "Error requesting irq at index %d: %d\n",
inst_data[i].irq_idx, ret);
}
board_info.irq = ret;
break;
default: default:
board_info.irq = 0; board_info.irq = 0;
break; break;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment