summaryrefslogtreecommitdiffstats
path: root/package/boot/uboot-lantiq/patches/0013-sf-macronix-add-support-for-4-byte-address-mode.patch
diff options
context:
space:
mode:
authorluka <luka@3c298f89-4303-0410-b956-a3cf2f4a3e73>2013-01-22 12:55:01 +0000
committerluka <luka@3c298f89-4303-0410-b956-a3cf2f4a3e73>2013-01-22 12:55:01 +0000
commitf4446e8f9e1be2d0b78ef493740b8871e20c8e57 (patch)
tree44bd3fae7a20040579a8baa390863bafe433a99f /package/boot/uboot-lantiq/patches/0013-sf-macronix-add-support-for-4-byte-address-mode.patch
parent1e8c389c62b26ad61d7bbecf18e7686ad12a648c (diff)
uboot-lantiq: upgrade to 2013.01
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35292 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/boot/uboot-lantiq/patches/0013-sf-macronix-add-support-for-4-byte-address-mode.patch')
-rw-r--r--package/boot/uboot-lantiq/patches/0013-sf-macronix-add-support-for-4-byte-address-mode.patch44
1 files changed, 44 insertions, 0 deletions
diff --git a/package/boot/uboot-lantiq/patches/0013-sf-macronix-add-support-for-4-byte-address-mode.patch b/package/boot/uboot-lantiq/patches/0013-sf-macronix-add-support-for-4-byte-address-mode.patch
new file mode 100644
index 000000000..70015c913
--- /dev/null
+++ b/package/boot/uboot-lantiq/patches/0013-sf-macronix-add-support-for-4-byte-address-mode.patch
@@ -0,0 +1,44 @@
+From 207662a9270cc542709fbab0d25fbc361b39748c Mon Sep 17 00:00:00 2001
+From: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
+Date: Wed, 7 Nov 2012 15:13:49 +0100
+Subject: sf: macronix: add support for 4-byte address mode
+
+Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
+
+--- a/drivers/mtd/spi/macronix.c
++++ b/drivers/mtd/spi/macronix.c
+@@ -35,6 +35,8 @@
+
+ #include "spi_flash_internal.h"
+
++#define MX25XX_EN4B 0xb7 /* Enter 4-byte mode */
++
+ struct macronix_spi_flash_params {
+ u16 idcode;
+ u16 nr_blocks;
+@@ -79,6 +81,13 @@ static const struct macronix_spi_flash_p
+ },
+ };
+
++static __maybe_unused int macronix_set_4byte_mode(struct spi_flash *flash)
++{
++ struct spi_slave *spi = flash->spi;
++
++ return spi_flash_cmd(spi, MX25XX_EN4B, NULL, 0);
++}
++
+ int spi_flash_probe_macronix(struct spi_flash *flash, u8 *idcode)
+ {
+ const struct macronix_spi_flash_params *params;
+@@ -106,6 +115,11 @@ int spi_flash_probe_macronix(struct spi_
+ flash->sector_size = 256 * 16 * 16;
+ flash->size = flash->sector_size * params->nr_blocks;
+
++#ifdef CONFIG_SPI_FLASH_4BYTE_MODE
++ if (flash->size > (1 << 24))
++ flash->set_4byte_mode = macronix_set_4byte_mode;
++#endif
++
+ /* Clear BP# bits for read-only flash */
+ spi_flash_cmd_write_status(flash, 0);
+