-----Original Message-----
From: Siva Durga Prasad Paladugu [mailto:siva.durga.palad...@xilinx.com] 
Sent: Thursday, May 26, 2016 12:28 PM
To: u-boot@lists.denx.de
Cc: Michal Simek <mich...@xilinx.com>; jagannadh.t...@gmail.com; Siva Durga 
Prasad Paladugu <siva...@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

Signed-off-by: Siva Durga Prasad Paladugu <siva...@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

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to