Currently the SPI PXA2xx devices on Intel platforms can be instantiated via the following paths: 1) as ACPI LPSS device on Haswell, Bay Trail and Cherry Trail 2) as ACPI LPSS device on the Sky Lake and newer 3) as PCI LPSS device on Haswell, Bay Trail and Cherry Trail 4) as PCI LPSS device on the Sky Lake and newer 5) as PCI device via ID table Each of this case provides some platform related data differently, i.e.: 1) via drivers/acpi/acpi_lpss.c and drivers/spi/spi-pxa2xx.c; 2) via drivers/mfd/intel-lpss-acpi.c; 3) via drivers/spi/spi-pxa2xx-pci.c; 4) via drivers/mfd/intel-lpss-pci.c and drivers/spi/spi-pxa2xx.c; 5) via drivers/spi/spi-pxa2xx-pci.c; This approach has two downsides: a) there is no data propagated in the case #2 because we can't have two or more drivers to match the same ACPI ID and hence some cases are still not supported (Sky Lake and Cannon Lake ACPI enabled LPSS); a) the data is duplicated over two drivers in case #4 and, besides to be a bloatware, it is error prone (e.g. Lakefield has a wrong data right now due to missed PCI entry in the spi-pxa2xx.c); This series fixes the downsides, and enables previously unsupported cases. On top of that it has a coupole of cleanups (patches 4 and 5). Changelog v2: - added cover letter (Mark) - dropped applied patch Andy Shevchenko (5): spi: pxa2xx: Respect Intel SSP type given by a property spi: pxa2xx: Remove no more needed PCI ID table spi: pxa2xx: Remove no more needed driver data spi: pxa2xx: Move OF and ACPI ID tables closer to their user spi: pxa2xx: Switch from PM ifdeffery to pm_ptr() drivers/spi/spi-pxa2xx.c | 170 +++++++------------------------------ include/linux/pxa2xx_ssp.h | 1 + 2 files changed, 30 insertions(+), 141 deletions(-) -- 2.35.1