Skip to content

Commit

Permalink
spi: fsl: Handle the single hardwired chipselect case
Browse files Browse the repository at this point in the history
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 <[email protected]>
Reported-by: Christophe Leroy <[email protected]>
Fixes: 0f0581b ("spi: fsl: Convert to use CS GPIO descriptors")
Signed-off-by: Linus Walleij <[email protected]>
Tested-by: Christophe Leroy <[email protected]> (No tested the
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Mark Brown <[email protected]>
  • Loading branch information
linusw authored and broonie committed Nov 28, 2019
1 parent 71b8f60 commit 7251953
Showing 1 changed file with 12 additions and 2 deletions.
14 changes: 12 additions & 2 deletions drivers/spi/spi-fsl-spi.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down

0 comments on commit 7251953

Please sign in to comment.