spi: Updates for v6.4

A fairly standard release for SPI with the exception of a change to the
API for specifying chip selects done in preparation for supporting
devices with more than one chip select, this required some mechanical
changes throughout the tree which have been cooking in -next happily for
a while.  There's also a new API to allow us to TPM chips on half duplex

There's three commits in here that were mangled by a bad interaction
between the alsa-devel mailing list software and b4, I didn't notice
until there were merges on top with it being SPI not ALSA.  It seemed
clear enough to not be worth going back and fixing.

 - Refactoring in preparation for supporting multiple chip selects for a
   single device, needed by some flash devices, which required a change
   in the SPI device API visible throughout the tree.
 - Support for hardware assisted interaction with SPI TPMs on half
   duplex controllers, implemented on nVidia Tedra210 QuadSPI.
 - Optimisation for large transfers on fsl-cpm devices.
 - Cleanups around device property use which fix some sisues with
 - Use of both void remove() and devm_platform_.*ioremap_resource().
 - Support for AMD Pensando Elba, Amlogic A1, Cadence device mode,
   Intel MetorLake-S and StarFive J7110 QuadSPI.

The final commit converting to DEV_PM_OPS() was applied late to fix a
warning that was introduced by some of the earlier work.
spi: bcm63xx: use macro DEFINE_SIMPLE_DEV_PM_OPS

Using this macro makes the code more readable.
It also inits the members of dev_pm_ops in the following manner
without us explicitly needing to:

.suspend = bcm63xx_spi_suspend, \
.resume = bcm63xx_spi_resume, \
.freeze = bcm63xx_spi_suspend, \
.thaw = bcm63xx_spi_resume, \
.poweroff = bcm63xx_spi_suspend, \
.restore = bcm63xx_spi_resume

Signed-off-by: Dhruva Gole <d-gole@ti.com>
Link: https://lore.kernel.org/r/20230424102546.1604484-1-d-gole@ti.com
Signed-off-by: Mark Brown <broonie@kernel.org>
1 file changed