[PATCH v4 2/3] spi: imx: Don't require platform data chipselect array

Oleksij Rempel o.rempel at pengutronix.de
Mon Nov 6 22:58:15 PST 2017


On 06.11.2017 20:46, Trent Piepho wrote:
> If the array is not present, assume all chip selects are native.  This
> is the standard behavior for SPI masters configured via the device
> tree and the behavior of this driver as well when it is configured via
> device tree.
> 
> This reduces platform data vs DT differences and allows most of the
> platform data based boards to remove their chip select arrays.
> 
> CC: Shawn Guo <shawnguo at kernel.org>
> CC: Sascha Hauer <kernel at pengutronix.de>
> CC: Fabio Estevam <fabio.estevam at nxp.com>
> CC: Mark Brown <broonie at kernel.org>
> Signed-off-by: Trent Piepho <tpiepho at impinj.com>

Reviewed-by: Oleksij Rempel <o.rempel at pengutronix.de>

> ---
>  drivers/spi/spi-imx.c | 16 +++++++++-------
>  1 file changed, 9 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/spi/spi-imx.c b/drivers/spi/spi-imx.c
> index ad54f8258513..5caa6c9524fa 100644
> --- a/drivers/spi/spi-imx.c
> +++ b/drivers/spi/spi-imx.c
> @@ -1526,13 +1526,15 @@ static int spi_imx_probe(struct platform_device *pdev)
>  	/* Get number of chip selects, either platform data or OF */
>  	if (mxc_platform_info) {
>  		master->num_chipselect = mxc_platform_info->num_chipselect;
> -		master->cs_gpios = devm_kzalloc(&master->dev,
> -			sizeof(int) * master->num_chipselect, GFP_KERNEL);
> -		if (!master->cs_gpios)
> -			return -ENOMEM;
> -
> -		for (i = 0; i < master->num_chipselect; i++)
> -			master->cs_gpios[i] = mxc_platform_info->chipselect[i];
> +		if (mxc_platform_info->chipselect) {
> +			master->cs_gpios = devm_kzalloc(&master->dev,
> +				sizeof(int) * master->num_chipselect, GFP_KERNEL);
> +			if (!master->cs_gpios)
> +				return -ENOMEM;
> +
> +			for (i = 0; i < master->num_chipselect; i++)
> +				master->cs_gpios[i] = mxc_platform_info->chipselect[i];
> +		}
>  	} else {
>  		u32 num_cs;
>  
> 



More information about the linux-arm-kernel mailing list