[PATCH 1/4] spi: imx: GPIO based chip selects should not be required

Oleksij Rempel ore at pengutronix.de
Thu Oct 19 03:17:16 PDT 2017


On Fri, Oct 13, 2017 at 06:22:01PM +0000, Trent Piepho wrote:
> The driver will fail to load if no gpio chip selects are specified,
> this patch changes this so that it no longer fails.
> 
> It's possible to use all native chip selects, in which case there is
> no reason to have a gpio chip select array.  This is what happens if
> the *optional* device tree property "cs-gpios" is omitted.
> 
> The spi core already checks for the absence of gpio chip selects in
> the master and assigns any slaves the gpio_cs value of -ENOENT.
> 
> Signed-off-by: Trent Piepho <tpiepho at impinj.com>
> ---
>  drivers/spi/spi-imx.c | 29 +++++++++++++----------------
>  1 file changed, 13 insertions(+), 16 deletions(-)
> 
> diff --git a/drivers/spi/spi-imx.c b/drivers/spi/spi-imx.c
> index babb15f07995..07e6250f2dad 100644
> --- a/drivers/spi/spi-imx.c
> +++ b/drivers/spi/spi-imx.c
> @@ -1457,22 +1457,19 @@ static int spi_imx_probe(struct platform_device *pdev)
>  		goto out_clk_put;
>  	}
>  
> -	if (!master->cs_gpios) {
> -		dev_err(&pdev->dev, "No CS GPIOs available\n");
> -		ret = -EINVAL;
> -		goto out_clk_put;
> -	}
> -
> -	for (i = 0; i < master->num_chipselect; i++) {
> -		if (!gpio_is_valid(master->cs_gpios[i]))
> -			continue;
> -
> -		ret = devm_gpio_request(&pdev->dev, master->cs_gpios[i],
> -					DRIVER_NAME);
> -		if (ret) {
> -			dev_err(&pdev->dev, "Can't get CS GPIO %i\n",
> -				master->cs_gpios[i]);
> -			goto out_clk_put;
> +	/* Request GPIO CS lines, if any */
> +	if (master->cs_gpios) {
> +		for (i = 0; i < master->num_chipselect; i++) {
> +			if (!gpio_is_valid(master->cs_gpios[i]))
> +				continue;
> +
> +			ret = devm_gpio_request(&pdev->dev, master->cs_gpios[i],
> +						DRIVER_NAME);
> +			if (ret) {
> +				dev_err(&pdev->dev, "Can't get CS GPIO %i\n",
> +					master->cs_gpios[i]);
> +				goto out_clk_put;
> +			}
>  		}
>  	}
>  
> -- 
> 2.13.6

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

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



More information about the linux-arm-kernel mailing list