|
@@ -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;
|