Re: [PATCH v4] driver: spi: add bcm iproc qspi support.

Roman Bacik
2021-11-01T23:28:05Z

Hi Jagan,

On Mon, Nov 1, 2021 at 12:12 AM Jagan Teki <jagan@amarulasolutions.com> wrote:
>
> On Tue, Oct 26, 2021 at 1:07 AM Roman Bacik <roman.bacik@broadcom.com> wrote:
> >
> > From: Rayagonda Kokatanur <rayagonda.kokatanur@broadcom.com>
> >
> > IPROC qspi driver supports both BSPI and MSPI modes.
> >
> > Signed-off-by: Rayagonda Kokatanur <rayagonda.kokatanur@broadcom.com>
> > Signed-off-by: Bharat Gooty <bharat.gooty@broadcom.com>
> > Acked-by: Rayagonda Kokatanur <rayagonda.kokatanur@broadcom.com>
> >
> > Signed-off-by: Roman Bacik <roman.bacik@broadcom.com>
> > ---
> >
> > Changes in v4:
> > - move iproc_qspi.c from spi to mtd/spi
> > - remove iproc_qspi.h
> > - rename IPROC_QSPI to SPI_FLASH_IPROC
> >
> > Changes in v3:
> > - fix warning by including linux/delay.h
> > - change ofdata_to_platdata to of_to_plat
> > - change priv_auto_alloc_size to priv_auto
> >
> > Changes in v2:
> > - remove include spi-nor.h
> > - define and use named BITs for writing register values
> > - remove bspi_set_4byte_mode() method
> >
> > drivers/mtd/spi/Kconfig | 6 +
> > drivers/mtd/spi/Makefile | 1 +
> > drivers/mtd/spi/iproc_qspi.c | 718 +++++++++++++++++++++++++++++++++++
> > 3 files changed, 725 insertions(+)
> > create mode 100644 drivers/mtd/spi/iproc_qspi.c
>
> Look like you confused what I've mentioned before, your driver is
> flash specific so add a driver in UCLASS_SPI_FLASH. drivers with
> UCLASS_SPI to be in drivers/spi/
>
> Jagan.

This is a controller driver and it is currently meant to be used as follows:

qspi: spi@370000 {
compatible = "brcm,iproc-qspi";
reg = <0x00370000 0x100>,
<0x00370100 0x100>,
<0x00370200 0x200>;
reg-names = "bspi", "bspi_raf", "mspi";
flash-iomap-addr = /bits/ 64 <0x70000000>;
#address-cells = <1>;
#size-cells = <0>;
spi_nor_flash: spi_flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <12500000>;
spi-cpol;
spi-cpha;
spi-tx-bus-width = <1>;
spi-rx-bus-width = <4>;
};
};

Can you please provide more details or point us to an example we can
use as a reference when asking us to switch from UCLASS_SPI to
UCLASS_SPI_FLASH? What will the new device tree look like? Do we need
to add read/write/erase methods (likely around our existing xfer
method), which are currently not needed or is there a way around it by
reusing existing code base?
Thanks,

Roman