[U-Boot] [PATCH v2 1/3] spi: spi_flash: Dont set quad enable for micron in all cases

Siva Durga Prasad Paladugu siva.durga.paladugu at xilinx.com
Tue Jun 21 13:52:19 CEST 2016


Hi Tom,

> -----Original Message-----
> From: Siva Durga Prasad Paladugu
> Sent: Tuesday, June 14, 2016 2:48 PM
> To: jagannadh.teki at gmail.com; 'Siva Durga Prasad Paladugu'
> <siva.durga.paladugu at xilinx.com>; u-boot at lists.denx.de
> Cc: Michal Simek <michals at xilinx.com>
> Subject: RE: [PATCH v2 1/3] spi: spi_flash: Dont set quad enable for micron in all
> cases
> 
> -----Original Message-----
> From: Siva Durga Prasad Paladugu [mailto:siva.durga.paladugu at xilinx.com]
> Sent: Thursday, May 26, 2016 12:28 PM
> To: u-boot at lists.denx.de
> Cc: Michal Simek <michals at xilinx.com>; jagannadh.teki at gmail.com; Siva Durga
> Prasad Paladugu <sivadur at xilinx.com>
> Subject: [PATCH v2 1/3] spi: spi_flash: Dont set quad enable for micron in all
> cases
> 
> Dont set quad enable for micron devices in all cases Setting the quad enable bit
> in micron expects all other commands like register reads on quad lines which
> may not be supported by some controllers. Hence, dont set the quad enable if
> controller driver sets the no_all_quad.
> 
> Hi Jagan,
> 
> Any comments on this series. If not, Please take this series.
> 
> Regards,
> Siva

If Jagan is busy, Is it possible to get it acked/reviewed from some other person and can go through your tree/Michal tree.

Regards,
Siva
> 
> Signed-off-by: Siva Durga Prasad Paladugu <sivadur at xilinx.com>
> ---
> Changes for v2:
> - Newly added in series.
> ---
>  drivers/mtd/spi/spi_flash.c |   13 ++++++++++++-
>  include/spi.h               |    2 +-
>  2 files changed, 13 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/mtd/spi/spi_flash.c b/drivers/mtd/spi/spi_flash.c index
> 5451725..5b22ae2 100644
> --- a/drivers/mtd/spi/spi_flash.c
> +++ b/drivers/mtd/spi/spi_flash.c
> @@ -926,6 +926,8 @@ static int micron_quad_enable(struct spi_flash *flash)
> 
>  static int set_quad_mode(struct spi_flash *flash, u8 idcode0)  {
> +	struct spi_slave *spi = flash->spi;
> +
>  	switch (idcode0) {
>  #ifdef CONFIG_SPI_FLASH_MACRONIX
>  	case SPI_FLASH_CFI_MFR_MACRONIX:
> @@ -938,7 +940,16 @@ static int set_quad_mode(struct spi_flash *flash, u8
> idcode0)  #endif  #ifdef CONFIG_SPI_FLASH_STMICRO
>  	case SPI_FLASH_CFI_MFR_STMICRO:
> -		return micron_quad_enable(flash);
> +		/*
> +		 * Set quad enable for micron only
> +		 * if controller supports sending of
> +		 * all commands on quad lines, otherwise
> +		 * dont enable it
> +		 */
> +		if (spi->no_all_quad)
> +			return 0;
> +		else
> +			return micron_quad_enable(flash);
>  #endif
>  	default:
>  		printf("SF: Need set QEB func for %02x flash\n", idcode0); diff --
> git a/include/spi.h b/include/spi.h index 4b88d39..17c6e4d 100644
> --- a/include/spi.h
> +++ b/include/spi.h
> @@ -117,7 +117,7 @@ struct spi_slave {
>  	unsigned int max_write_size;
>  	void *memory_map;
>  	u8 option;
> -
> +	u8 no_all_quad;
>  	u8 flags;
>  #define SPI_XFER_BEGIN		BIT(0)	/* Assert CS before transfer */
>  #define SPI_XFER_END		BIT(1)	/* Deassert CS after transfer */
> --
> 1.7.1



More information about the U-Boot mailing list