mirror of
https://github.com/torvalds/linux.git
synced 2024-11-28 23:21:31 +00:00
spi: fsl: Handle the single hardwired chipselect case
The Freescale MPC8xxx had a special quirk for handling a
single hardwired chipselect, the case when we're using neither
GPIO nor native chip select: when inspecting the device tree
and finding zero "cs-gpios" on the device node the code would
assume we have a single hardwired chipselect that leaves the
device always selected.
This quirk is not handled by the new core code, so we need
to check the "cs-gpios" explicitly in the driver and set
pdata->max_chipselect = 1 which will later fall through to
the SPI master ->num_chipselect.
Make sure not to assign the chip select handler in this
case: there is no handling needed since the chip is always
selected, and this is what the old code did as well.
Cc: Christophe Leroy <christophe.leroy@c-s.fr>
Reported-by: Christophe Leroy <christophe.leroy@c-s.fr>
Fixes: 0f0581b24b
("spi: fsl: Convert to use CS GPIO descriptors")
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Tested-by: Christophe Leroy <christophe.leroy@c-s.fr> (No tested the
Link: https://lore.kernel.org/r/20191128083718.39177-3-linus.walleij@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
71b8f600b0
commit
7251953d78
@ -728,8 +728,18 @@ static int of_fsl_spi_probe(struct platform_device *ofdev)
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
pdata->cs_control = fsl_spi_cs_control;
|
||||
/*
|
||||
* Handle the case where we have one hardwired (always selected)
|
||||
* device on the first "chipselect". Else we let the core code
|
||||
* handle any GPIOs or native chip selects and assign the
|
||||
* appropriate callback for dealing with the CS lines. This isn't
|
||||
* supported on the GRLIB variant.
|
||||
*/
|
||||
ret = gpiod_count(dev, "cs");
|
||||
if (ret <= 0)
|
||||
pdata->max_chipselect = 1;
|
||||
else
|
||||
pdata->cs_control = fsl_spi_cs_control;
|
||||
}
|
||||
|
||||
ret = of_address_to_resource(np, 0, &mem);
|
||||
|
Loading…
Reference in New Issue
Block a user