i.MX5 SoCs still have one old i.MX35-style SPI controller. Allow this one to work side by side with the new ECSPI controllers. Signed-off-by: Lucas Stach <l.stach@xxxxxxxxxxxxxx> --- drivers/spi/Kconfig | 2 +- drivers/spi/imx_spi.c | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig index 422693ccd5fe..b9f28da7983b 100644 --- a/drivers/spi/Kconfig +++ b/drivers/spi/Kconfig @@ -25,7 +25,7 @@ config DRIVER_SPI_IMX_0_0 config DRIVER_SPI_IMX_0_7 bool - depends on ARCH_IMX25 || ARCH_IMX35 + depends on ARCH_IMX25 || ARCH_IMX35 || ARCH_IMX51 || ARCH_IMX53 default y config DRIVER_SPI_IMX_2_3 diff --git a/drivers/spi/imx_spi.c b/drivers/spi/imx_spi.c index c0c2ed7c49df..e43712e118b3 100644 --- a/drivers/spi/imx_spi.c +++ b/drivers/spi/imx_spi.c @@ -564,6 +564,10 @@ static int imx_spi_probe(struct device_d *dev) if (cpu_is_mx51() || cpu_is_mx53() || cpu_is_mx6()) version = SPI_IMX_VER_2_3; #endif + /* oftree knows best, so use it if it's there */ + if (dev->of_id_entry) + version = dev->of_id_entry->data; + imx->chipselect = spi_imx_devtype_data[version].chipselect; imx->xchg_single = spi_imx_devtype_data[version].xchg_single; imx->init = spi_imx_devtype_data[version].init; @@ -584,10 +588,19 @@ err_free: static __maybe_unused struct of_device_id imx_spi_dt_ids[] = { { .compatible = "fsl,imx27-cspi", +#ifdef CONFIG_DRIVER_SPI_IMX_0_0 + .data = SPI_IMX_VER_0_0, +#endif }, { .compatible = "fsl,imx35-cspi", +#ifdef CONFIG_DRIVER_SPI_IMX_0_7 + .data = SPI_IMX_VER_0_7, +#endif }, { .compatible = "fsl,imx51-ecspi", +#ifdef CONFIG_DRIVER_SPI_IMX_2_3 + .data = SPI_IMX_VER_2_3, +#endif }, { /* sentinel */ } -- 1.8.5.3 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox