spi: pxa2xx: Allow number of chip select pins to be read from property
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Wed, 17 Apr 2024 10:54:28 +0000 (13:54 +0300)
committerMark Brown <broonie@kernel.org>
Fri, 3 May 2024 02:11:31 +0000 (11:11 +0900)
In some cases the number of the chip select pins might come from
the device property. Allow driver to use it.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Link: https://lore.kernel.org/r/20240417110334.2671228-2-andriy.shevchenko@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-pxa2xx.c

index 2f60b2fde8d5059445898d28432e117cde9eb873..ab6fd55237cd1dbf52c3ed70aa8bdc7b688b0894 100644 (file)
@@ -1357,6 +1357,7 @@ pxa2xx_spi_init_pdata(struct platform_device *pdev)
        struct ssp_device *ssp = NULL;
        const void *match;
        bool is_lpss_priv;
+       u32 num_cs = 1;
        int status;
 
        is_lpss_priv = platform_get_resource_byname(pdev, IORESOURCE_MEM, "lpss_priv");
@@ -1395,8 +1396,11 @@ pxa2xx_spi_init_pdata(struct platform_device *pdev)
                pdata->dma_filter = pxa2xx_spi_idma_filter;
        }
 
+       /* Read number of chip select pins, if provided */
+       device_property_read_u32(dev, "num-cs", &num_cs);
+
+       pdata->num_chipselect = num_cs;
        pdata->is_target = device_property_read_bool(dev, "spi-slave");
-       pdata->num_chipselect = 1;
        pdata->enable_dma = true;
        pdata->dma_burst_size = 1;