[PATCH v4 00/15] i2c-multi-instantiate: Adapt for INT3515 and alike

From: Andy Shevchenko
Date: Wed Nov 28 2018 - 06:30:34 EST


Currently i2c-multi-instantiate driver does not support the case
of INT3515 USB PD device, where:

- Interrupt() is used instead of GpioInt()
- All slaves may be the same from IP point of view
- There can be variadic amount of slaves

This series is addressing all above.

Note, series has been smoke tested (Heikki would do BAT or more)
on Intel Coffee Lake system.

The idea is to push this either through PDx86 tree (needs Rafael's ACKs) or ACPI.
In any case it needs tags from Heikki, Hans, Mika, Wolfram and Jonathan.

Testing and comments are warmly welcome.

In v4:
- directly return -EPROBE_DEFER from i2c_acpi_new_device()
- due to above split error handling simplification to separate patches

In v3:
- revisit error codes returned by i2c_acpi_new_device() (Hans, Mika)
- add documentation to exported i2c_acpi_get_i2c_resource() (Mika)
- drop Hans' Rb tag in patch 5 due to changes
- append Mika's Ab tag to patch 6

In v2:
- drop patches to copy fwnode and to handle BOSC0200 device
- append check for amount of devices listed in the driver's mapping
- add Rb tag given by Hans

Andy Shevchenko (15):
defconfig: enable I2C_DEBUG_CORE
platform/x86: intel_cht_int33fe: Remove duplicate NULL check
platform/x86: intel_cht_int33fe: Accept errors of
i2c_acpi_new_device()
platform/x86: i2c-multi-instantiate: Accept errors of
i2c_acpi_new_device()
i2c: acpi: Return error pointers from i2c_acpi_new_device()
platform/x86: intel_cht_int33fe: Get rid of obsolete conditional
platform/x86: i2c-multi-instantiate: Get rid of obsolete conditional
i2c: acpi: Use ACPI_FAILURE instead of !ACPI_SUCCESS
i2c: acpi: Introduce i2c_acpi_get_i2c_resource() helper
platform/x86: i2c-multi-instantiate: Count I2cSerialBus() resources
platform/x86: i2c-multi-instantiate: Distinguish IRQ resource type
platform/x86: i2c-multi-instantiate: Introduce IOAPIC IRQ support
platform/x86: i2c-multi-instantiate: Allow to have same slaves
ACPI / scan: Create platform device for INT3515 ACPI nodes
iio: inv_mpu6050: Use i2c_acpi_get_i2c_resource() helper

arch/x86/configs/i386_defconfig | 1 +
arch/x86/configs/x86_64_defconfig | 1 +
drivers/acpi/scan.c | 1 +
drivers/i2c/i2c-core-acpi.c | 64 +++++++++----
drivers/iio/imu/inv_mpu6050/inv_mpu_acpi.c | 16 ++--
drivers/platform/x86/i2c-multi-instantiate.c | 97 ++++++++++++++++----
drivers/platform/x86/intel_cht_int33fe.c | 20 ++--
drivers/usb/typec/tps6598x.c | 8 +-
include/linux/acpi.h | 11 +++
9 files changed, 159 insertions(+), 60 deletions(-)

--
2.19.2