Re: [PATCH v6 4/4] platform/x86: Add ACPI i2c-multi-instantiate pseudo driver

From: Hans de Goede
Date: Thu Aug 09 2018 - 08:08:47 EST


Hi,

On 09-08-18 13:55, Rafael J. Wysocki wrote:
On Thu, Aug 9, 2018 at 1:40 PM, Hans de Goede <hdegoede@xxxxxxxxxx> wrote:
On systems with ACPI instantiated i2c-clients, normally there is 1 fw_node
per i2c-device and that fw-node contains 1 I2cSerialBus resource for that 1
i2c-device.

But in some rare cases the manufacturer has decided to describe multiple
i2c-devices in a single ACPI fwnode with multiple I2cSerialBus resources.

An earlier attempt to fix this in the i2c-core resulted in a lot of extra
code to support this corner-case.

This commit introduces a new i2c-multi-instantiate driver which fixes this
in a different way. This new driver can be built as a module which will
only loaded on affected systems.

This driver will instantiate a new i2c-client per I2cSerialBus resource,
using the driver_data from the acpi_device_id it is binding to to tell it
which chip-type (and optional irq-resource) to use when instantiating.

Note this driver depends on a platform device being instantiated for the
ACPI fwnode, see the i2c_multi_instantiate_ids list of ACPI device-ids in
drivers/acpi/scan.c: acpi_device_enumeration_by_parent().

Acked-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
Acked-by: Wolfram Sang <wsa@xxxxxxxxxxxxx>
Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx>
---
Changes in v2:
-Rebase on top of 4.18-rc2

Changes in v3:
-Change from an i2c-driver using a hack to allow having multiple i2c clients
at the same address to a platform-driver

Changes in v4:
-Tweak MAINTAINERS entry a bit

Changes in v5:
-s/no_clients/num_clients/
-Change patch Subject prefix to platform/x86

Changes in v6:
-s/irq_idx/gpio_irq_idx/

And this is the only patch that has changed in v6, right?

Correct.

Anyway, if you have further updates on top of this series, please send
them as incremental patches.

Ok, will do.

Thanks & Regards,

Hans