Re: [PATCH v2 0/6] Support Spi in i2c-multi-instantiate driver

Hans de Goede
2021-12-21T18:16:34Z

Hi Stefan,

On 12/10/21 16:40, Stefan Binding wrote:
> Add support for SPI bus in the ic2-multi-instantiate driver as
> upcoming laptops will need to multi instantiate SPI devices from
> a single device node, which has multiple SpiSerialBus entries at
> the ACPI table.
>
> With the new SPI support, i2c-multi-instantiate becomes
> bus-multi-instantiate and is moved to the ACPI folder.
>
> The intention is to support the SPI bus by re-using the current
> I2C multi instantiate, instead of creating a new SPI multi
> instantiate, to make it possible for peripherals that can be
> controlled by I2C or SPI to have the same HID at the ACPI table.
>
> The new driver (Bus multi instantiate, bmi) checks for the
> hard-coded bus type and returns -ENODEV in case of zero devices
> found for that bus. In the case of automatic bus detection,
> the driver will give preference to I2C.
>
> The expectation is for a device node in the ACPI table to have
> multiple I2cSerialBus only or multiple SpiSerialBus only, not
> a mix of both; and for the case where there are both entries in
> one device node, only the I2C ones would be probed.
>
> This new bus multi instantiate will be used in CS35L41 HDA new
> driver, being upstreamed:
> https://lkml.org/lkml/2021/11/23/723

Patches 1-5 look good to me and are:

Reviewed-by: Hans de Goede <hdegoede@redhat.com>

Rafael, you may also consider this as my ack for merging this
series through the ACPI subsys branches.

But I do have some remarks on patch 6 which should be
addressed first.

Regards,

Hans

>
> Changes since V1:
> - Added Cover Letter
> - Split SPI patch into move, rename, reorganize and add
> SPI support
> - Hard coded BUS type for better decison making at bmi_probe
> - Driver moved to acpi folder
> - Change to use acpi_spi_find_controller_by_adev
> - New shared function bmi_get_irq for I2C and SPI
>
>
> Lucas Tanure (3):
> platform/x86: i2c-multi-instantiate: Move it to drivers/acpi folder
> ACPI: i2c-multi-instantiate: Rename it for a generic bus driver name
> ACPI: bus-multi-instantiate: Reorganize I2C functions
>
> Stefan Binding (3):
> spi: Export acpi_spi_find_controller_by_adev to be used externally
> spi: Make spi_alloc_device and spi_add_device public again
> ACPI: bus-multi-instantiate: Add SPI support
>
> MAINTAINERS | 4 +-
> drivers/acpi/Kconfig | 11 +
> drivers/acpi/Makefile | 1 +
> drivers/acpi/bus-multi-instantiate.c | 500 +++++++++++++++++++
> drivers/acpi/scan.c | 19 +-
> drivers/platform/x86/Kconfig | 11 -
> drivers/platform/x86/Makefile | 1 -
> drivers/platform/x86/i2c-multi-instantiate.c | 174 -------
> drivers/spi/spi.c | 9 +-
> include/linux/spi/spi.h | 22 +
> 10 files changed, 552 insertions(+), 200 deletions(-)
> create mode 100644 drivers/acpi/bus-multi-instantiate.c
> delete mode 100644 drivers/platform/x86/i2c-multi-instantiate.c
>