[U-Boot] [PATCH v2 1/3] spi: spi_flash: Dont set quad enable for micron in all cases
Michal Simek
michal.simek at xilinx.com
Thu May 26 13:02:30 CEST 2016
On 26.5.2016 08:58, Siva Durga Prasad Paladugu wrote:
> 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.
>
> 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 */
>
Tested-by: Michal Simek <michal.simek at xilinx.com>
Thanks,
Michal
More information about the U-Boot
mailing list