Re: [PATCH 3/5] spi: dw-mmio: add MSCC Ocelot support

From: Andy Shevchenko
Date: Tue Jul 17 2018 - 17:34:40 EST


On Tue, Jul 17, 2018 at 5:23 PM, Alexandre Belloni
<alexandre.belloni@xxxxxxxxxxx> wrote:
> Because the SPI controller deasserts the chip select when the TX fifo is
> empty (which may happen in the middle of a transfer), the CS should be
> handled by linux. Unfortunately, some or all of the first four chip
> selects are not muxable as GPIOs, depending on the SoC.
>
> There is a way to bitbang those pins by using the SPI boot controller so
> use it to set the chip selects.
>
> At init time, it is also necessary to give control of the SPI interface to
> the Designware IP.

> + ret = dw_spi_mscc_init(pdev, dwsmmio);
> + if (ret)
> + goto out;

> + { .compatible = "mscc,ocelot-spi", .data = dw_spi_mscc_init},

Looks like you were thinking about something like

init_func = device_get_match_data(...);
if (init_func) {
ret = init_func();
if (ret)
return ret;
}

?

--
With Best Regards,
Andy Shevchenko