ar71xx: build firmware image for the WNDR3700 v4 board
[openwrt.git] / package / boot / uboot-lantiq / patches / 0013-sf-macronix-add-support-for-4-byte-address-mode.patch
1 From 207662a9270cc542709fbab0d25fbc361b39748c Mon Sep 17 00:00:00 2001
2 From: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
3 Date: Wed, 7 Nov 2012 15:13:49 +0100
4 Subject: sf: macronix: add support for 4-byte address mode
5
6 Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
7
8 --- a/drivers/mtd/spi/macronix.c
9 +++ b/drivers/mtd/spi/macronix.c
10 @@ -35,6 +35,8 @@
11  
12  #include "spi_flash_internal.h"
13  
14 +#define MX25XX_EN4B            0xb7    /* Enter 4-byte mode */
15 +
16  struct macronix_spi_flash_params {
17         u16 idcode;
18         u16 nr_blocks;
19 @@ -79,6 +81,13 @@ static const struct macronix_spi_flash_p
20         },
21  };
22  
23 +static __maybe_unused int macronix_set_4byte_mode(struct spi_flash *flash)
24 +{
25 +       struct spi_slave *spi = flash->spi;
26 +
27 +       return spi_flash_cmd(spi, MX25XX_EN4B, NULL, 0);
28 +}
29 +
30  int spi_flash_probe_macronix(struct spi_flash *flash, u8 *idcode)
31  {
32         const struct macronix_spi_flash_params *params;
33 @@ -106,6 +115,11 @@ int spi_flash_probe_macronix(struct spi_
34         flash->sector_size = 256 * 16 * 16;
35         flash->size = flash->sector_size * params->nr_blocks;
36  
37 +#ifdef CONFIG_SPI_FLASH_4BYTE_MODE
38 +       if (flash->size > (1 << 24))
39 +               flash->set_4byte_mode = macronix_set_4byte_mode;
40 +#endif
41 +
42         /* Clear BP# bits for read-only flash */
43         spi_flash_cmd_write_status(flash, 0);
44