[U-Boot] [PATCH] spi: cadence_qspi: Enable quad mode for read and programming

Marek Vasut marex at denx.de
Wed Aug 26 08:57:11 CEST 2015


On Wednesday, August 26, 2015 at 02:09:55 AM, Chin Liang See wrote:
> Enable the quad output fast read and quad input fast program
> support. Quad mode is supported by Cadence QSPI controller.
> 
> Signed-off-by: Chin Liang See <clsee at altera.com>
> Cc: Dinh Nguyen <dinguyen at opensource.altera.com>
> Cc: Stefan Roese <sr at denx.de>
> Cc: Vikas Manocha <vikas.manocha at st.com>
> Cc: Jagannadh Teki <jteki at openedev.com>
> Cc: Pavel Machek <pavel at denx.de>
> Cc: Marek Vasut <marex at denx.de>
> ---
>  drivers/spi/cadence_qspi.c     |   11 +++++++++++
>  drivers/spi/cadence_qspi_apb.c |   16 ++++++++++++----
>  2 files changed, 23 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/spi/cadence_qspi.c b/drivers/spi/cadence_qspi.c
> index 34a0f46..c6b69c4 100644
> --- a/drivers/spi/cadence_qspi.c
> +++ b/drivers/spi/cadence_qspi.c
> @@ -318,6 +318,16 @@ static int cadence_spi_ofdata_to_platdata(struct
> udevice *bus) return 0;
>  }
> 
> +static int cadence_spi_child_pre_probe(struct udevice *dev)
> +{
> +	struct spi_slave *slave = dev_get_parentdata(dev);
> +
> +	/* Cadence QSPI controller can support quad read and program */
> +	slave->op_mode_rx = SPI_OPM_RX_QOF;
> +	slave->op_mode_tx = SPI_OPM_TX_QPP;
> +	return 0;
> +}
> +
>  static const struct dm_spi_ops cadence_spi_ops = {
>  	.xfer		= cadence_spi_xfer,
>  	.set_speed	= cadence_spi_set_speed,
> @@ -341,5 +351,6 @@ U_BOOT_DRIVER(cadence_spi) = {
>  	.ofdata_to_platdata = cadence_spi_ofdata_to_platdata,
>  	.platdata_auto_alloc_size = sizeof(struct cadence_spi_platdata),
>  	.priv_auto_alloc_size = sizeof(struct cadence_spi_priv),
> +	.child_pre_probe = cadence_spi_child_pre_probe,
>  	.probe = cadence_spi_probe,
>  };

Simon, can you please check if this DM bit is correct ?

> diff --git a/drivers/spi/cadence_qspi_apb.c
> b/drivers/spi/cadence_qspi_apb.c index d053407..deffb6b 100644
> --- a/drivers/spi/cadence_qspi_apb.c
> +++ b/drivers/spi/cadence_qspi_apb.c
> @@ -29,6 +29,9 @@
>  #include <asm/io.h>
>  #include <asm/errno.h>
>  #include "cadence_qspi.h"
> +#include <spi.h>
> +#include <spi_flash.h>
> +#include "../mtd/spi/sf_internal.h"

Why do you need this include ?

[...]


More information about the U-Boot mailing list