[PATCH 09/13] spi: spi-fsl-lpspi: Parameterize reading num-cs from hardware

From: James Clark
Date: Thu Aug 14 2025 - 12:10:38 EST


To avoid adding more string matching here for every new device, move
this property into devtype data.

Signed-off-by: James Clark <james.clark@xxxxxxxxxx>
---
drivers/spi/spi-fsl-lpspi.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/spi/spi-fsl-lpspi.c b/drivers/spi/spi-fsl-lpspi.c
index 1013d5c994e9..6d0138b27785 100644
--- a/drivers/spi/spi-fsl-lpspi.c
+++ b/drivers/spi/spi-fsl-lpspi.c
@@ -97,6 +97,7 @@ static const char * const pincfgs[] = {

struct fsl_lpspi_devtype_data {
bool prescale_err : 1;
+ bool query_hw_for_num_cs : 1;
};

struct lpspi_config {
@@ -150,10 +151,12 @@ struct fsl_lpspi_data {
*/
static const struct fsl_lpspi_devtype_data imx93_lpspi_devtype_data = {
.prescale_err = true,
+ .query_hw_for_num_cs = true,
};

static const struct fsl_lpspi_devtype_data imx7ulp_lpspi_devtype_data = {
.prescale_err = false,
+ .query_hw_for_num_cs = false,
};

static const struct of_device_id fsl_lpspi_dt_ids[] = {
@@ -960,7 +963,7 @@ static int fsl_lpspi_probe(struct platform_device *pdev)
fsl_lpspi->rxfifosize = 1 << ((temp >> 8) & 0x0f);
if (of_property_read_u32((&pdev->dev)->of_node, "num-cs",
&num_cs)) {
- if (of_device_is_compatible(pdev->dev.of_node, "fsl,imx93-spi"))
+ if (devtype_data->query_hw_for_num_cs)
num_cs = ((temp >> 16) & 0xf);
else
num_cs = 1;

--
2.34.1