diff options
Diffstat (limited to 'drivers/spi/spi-imx.c')
| -rw-r--r-- | drivers/spi/spi-imx.c | 12 | 
1 files changed, 8 insertions, 4 deletions
diff --git a/drivers/spi/spi-imx.c b/drivers/spi/spi-imx.c index 31054e3de4c..570f22053be 100644 --- a/drivers/spi/spi-imx.c +++ b/drivers/spi/spi-imx.c @@ -83,7 +83,7 @@ struct spi_imx_data {  	struct spi_bitbang bitbang;  	struct completion xfer_done; -	void *base; +	void __iomem *base;  	int irq;  	struct clk *clk;  	unsigned long spi_clk; @@ -766,8 +766,12 @@ static int __devinit spi_imx_probe(struct platform_device *pdev)  	}  	ret = of_property_read_u32(np, "fsl,spi-num-chipselects", &num_cs); -	if (ret < 0) -		num_cs = mxc_platform_info->num_chipselect; +	if (ret < 0) { +		if (mxc_platform_info) +			num_cs = mxc_platform_info->num_chipselect; +		else +			return ret; +	}  	master = spi_alloc_master(&pdev->dev,  			sizeof(struct spi_imx_data) + sizeof(int) * num_cs); @@ -784,7 +788,7 @@ static int __devinit spi_imx_probe(struct platform_device *pdev)  	for (i = 0; i < master->num_chipselect; i++) {  		int cs_gpio = of_get_named_gpio(np, "cs-gpios", i); -		if (cs_gpio < 0) +		if (cs_gpio < 0 && mxc_platform_info)  			cs_gpio = mxc_platform_info->chipselect[i];  		spi_imx->chipselect[i] = cs_gpio;  |