spi: spi-fsl-spi: support use of the SPISEL_BOOT signal on MPC8309
authorRasmus Villemoes <rasmus.villemoes@prevas.dk>
Wed, 6 Mar 2019 10:32:05 +0000 (10:32 +0000)
committerMark Brown <broonie@kernel.org>
Mon, 18 Mar 2019 14:47:24 +0000 (14:47 +0000)
commit69b921acae8a5b7feef03921d9b42c3634f3b9d1
treee58070328b6fbd2601d2f300fa3315b2f75b9691
parent84d8df745b622ada89ef427541ad03e928269f09
spi: spi-fsl-spi: support use of the SPISEL_BOOT signal on MPC8309

The MPC8309 has a dedicated signal, SPISEL_BOOT, usually used as chip
select for the flash device from which the bootloader is loaded. It is
not an ordinary gpio, but is simply controlled via the SPI_CS register
in the system configuration.

To allow accessing such a spi slave, we need to teach
fsl_spi_cs_control() how to control the SPISEL_BOOT signal. To
distinguish the gpio-controlled slaves, continue to have those use
chip_select values of 0..ngpios-1, and use chip_select == ngpios for
the boot flash.

I'm not too happy with all the ifdeffery, but it seems to be necessary
for guarding the sysdev/fsl_soc.h and use of
get_immrbase() (spi-fsl-lib.c already contains similar ifdeffery).

Googling suggests that the MPC8306 is similar, with the SPI_CS
register at the same offset.

Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
Signed-off-by: Mark Brown <broonie@kernel.org>
Documentation/devicetree/bindings/spi/fsl-spi.txt
drivers/spi/spi-fsl-lib.h
drivers/spi/spi-fsl-spi.c