[PATCH v2 1/2] driver: spi: add brcm iproc qspi support.
Jagan Teki
jagan at amarulasolutions.com
Mon Jul 20 19:28:36 CEST 2020
On Sun, May 17, 2020 at 12:54 PM Rayagonda Kokatanur
<rayagonda.kokatanur at broadcom.com> wrote:
>
> Add brcm iproc qspi support.
>
> Signed-off-by: Rayagonda Kokatanur <rayagonda.kokatanur at broadcom.com>
> ---
> Changes from v1:
> -Address review comments from Jagan Teki,
> Remove flash opcode from driver and use include/linux/mtd/spi-nor.h,
> Remove CONFIG_BCM_IPROC_USE_BSPI, handle via driver data
>
> -Address self review comments,
> Remove REG_WR, REG_RD, REG_SET, REG_CLR and use writel, readl,
> setbits_le32 and clrbits_le32 respectively,
> Rename priv data struct variables mspi_hw. bspi_hw, bspi_hw_raf to
> mspi, bspi, baspi_raf respectively,
> Remove struct bcmspi_platdata.
>
> drivers/spi/Kconfig | 6 +
> drivers/spi/Makefile | 1 +
> drivers/spi/iproc_qspi.c | 808 +++++++++++++++++++++++++++++++++++++++
> drivers/spi/iproc_qspi.h | 18 +
> drivers/spi/iproc_spi.c | 71 ++++
> 5 files changed, 904 insertions(+)
> create mode 100644 drivers/spi/iproc_qspi.c
> create mode 100644 drivers/spi/iproc_qspi.h
> create mode 100644 drivers/spi/iproc_spi.c
>
> diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig
> index 4166c6104e..3b827b3346 100644
> --- a/drivers/spi/Kconfig
> +++ b/drivers/spi/Kconfig
> @@ -148,6 +148,12 @@ config ICH_SPI
> access the SPI NOR flash on platforms embedding this Intel
> ICH IP core.
>
> +config IPROC_QSPI
> + bool "QSPI driver for BCM iProc QSPI Controller"
> + help
> + This selects the BCM iProc QSPI controller.
> + This driver support spi flash single, quad and memory reads.
> +
> config MESON_SPIFC
> bool "Amlogic Meson SPI Flash Controller driver"
> depends on ARCH_MESON
> diff --git a/drivers/spi/Makefile b/drivers/spi/Makefile
> index 52462e19a3..359f6a87cb 100644
> --- a/drivers/spi/Makefile
> +++ b/drivers/spi/Makefile
> @@ -32,6 +32,7 @@ obj-$(CONFIG_FSL_DSPI) += fsl_dspi.o
> obj-$(CONFIG_FSL_ESPI) += fsl_espi.o
> obj-$(CONFIG_FSL_QSPI) += fsl_qspi.o
> obj-$(CONFIG_ICH_SPI) += ich.o
> +obj-$(CONFIG_IPROC_QSPI) += iproc_qspi.o
> obj-$(CONFIG_KIRKWOOD_SPI) += kirkwood_spi.o
> obj-$(CONFIG_LPC32XX_SSP) += lpc32xx_ssp.o
> obj-$(CONFIG_MESON_SPIFC) += meson_spifc.o
> diff --git a/drivers/spi/iproc_qspi.c b/drivers/spi/iproc_qspi.c
> new file mode 100644
> index 0000000000..037f5be315
> --- /dev/null
> +++ b/drivers/spi/iproc_qspi.c
> @@ -0,0 +1,808 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * Copyright 2020 Broadcom
> + */
> +
> +#include <common.h>
> +#include <dm.h>
> +#include <errno.h>
> +#include <malloc.h>
> +#include <spi.h>
> +#include <asm/io.h>
> +#include <linux/err.h>
> +#include <linux/mtd/spi-nor.h>
Please note that this is SPI driver not flash specifically. We cannot
use flash side attributes or logic in spi master driver. If this
driver truly spi-nor flash specific driver then write it on MTD side
using UCLASS_SPI_FLASH.
Jagan.
More information about the U-Boot
mailing list