[PATCH] spi: zynqmp_gqspi: support dual and quad mode

Brandon Maier brandon.maier at collins.com
Sat Jan 16 20:48:16 CET 2021


On Sat, Jan 16, 2021 at 5:06 AM Bin Meng <bmeng.cn at gmail.com> wrote:
>
> Hi Brandon,
>
> On Sat, Jan 16, 2021 at 5:30 AM Brandon Maier
> <brandon.maier at rockwellcollins.com> wrote:
> >
> > The dm_spi_ops.xfer() API does not support dual and quad SPI modes. It
> > also doesn't allow the zynqmp_gqspi driver to calculate the correct
> > number of dummy cycles for some NOR ops (as doing so also requires the
> > buswidth).
> >
> > Port the zynqmp_gqspi driver to spi_controller_mem_ops, which gives us
> > the buswidth values to correctly support all SNOR_PROTO_X_X_X commands
> > and to properly calculate dummy cycles.
> >
> > Signed-off-by: Brandon Maier <brandon.maier at rockwellcollins.com>
> > CC: jagan at amarulasolutions.com
> > CC: michal.simek at xilinx.com
> > ---
> >  drivers/spi/zynqmp_gqspi.c | 164 ++++++++++++++++---------------------
> >  1 file changed, 70 insertions(+), 94 deletions(-)
<snip>
>
> Looks good to me! Thanks for improving this driver.
> Reviewed-by: Bin Meng <bin.meng at windriver.com>
>
> But I believe we should keep zynqmp_qspi_xfer() for non-flash type SPI devices.

I had dropped it as the Linux driver only implements mem_ops, and also
this driver doesn't look like it would work with non-flash SPI anyway.
For example the existing driver will throw an error if we try to
receive data with SPI_XFER_BEGIN set, as it is assuming SPI_XFER_BEGIN
means we are transmitting a NOR op code.

>
> Regards,
> Bin

Thanks,
Brandon


More information about the U-Boot mailing list