Message ID | 20220120134326.5295-1-sbinding@opensource.cirrus.com (mailing list archive) |
---|---|
Headers | show |
Series | Support Spi in i2c-multi-instantiate driver | expand |
Hi Mark, On 1/20/22 14:43, Stefan Binding wrote: > Add support for SPI bus in the i2c-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. Mark, since most of my review remarks are small(ish) I expect the next version of this (except patch 8/9) to be ready for merging. I can either merge all patches on top of 5.17-rc1 once released; and provide an immutable-branch for you to merge for the SPI bits; or you can merge patches 1-4 (the SPI patches) and then send me a pull-req for an immutable-branch with those 4, so that I can merge that and then the rest on top. Mark, please let me know how you want to proceed with merging this. Regards, Hans > > Changes since V2: > - Moved bus-multi-instantiate back into platform/x86 > > Lucas Tanure (4): > platform/x86: i2c-multi-instantiate: Rename it for a generic bus > driver name > platform/x86: bus-multi-instantiate: Reorganize I2C functions > ALSA: hda/realtek: Add support for HP Laptops > ACPI / scan: Create platform device for CS35L41 > > Stefan Binding (5): > spi: Make spi_alloc_device and spi_add_device public again > spi: Create helper API to lookup ACPI info for spi device > spi: Support selection of the index of the ACPI Spi Resource before > alloc > spi: Add API to count spi acpi resources > platform/x86: bus-multi-instantiate: Add SPI support > > MAINTAINERS | 4 +- > drivers/acpi/scan.c | 16 +- > drivers/platform/x86/Kconfig | 14 +- > drivers/platform/x86/Makefile | 2 +- > drivers/platform/x86/bus-multi-instantiate.c | 369 +++++++++++++++++++ > drivers/platform/x86/i2c-multi-instantiate.c | 174 --------- > drivers/spi/spi.c | 142 ++++++- > include/linux/spi/spi.h | 32 ++ > sound/pci/hda/patch_realtek.c | 43 ++- > 9 files changed, 588 insertions(+), 208 deletions(-) > create mode 100644 drivers/platform/x86/bus-multi-instantiate.c > delete mode 100644 drivers/platform/x86/i2c-multi-instantiate.c >