mirror of https://gitee.com/openkylin/linux.git
mtd: m25p80: remove M25PXX_USE_FAST_READ Kconfig
Remove the compile-time option for FAST_READ, since we have run-time support for detecting it. This refactors the logic for enabling fast-read, such that for DT-enabled devices, we honor the "m25p,fast-read" property but for non-DT devices, we default to using FAST_READ whenever the flash device supports it. Normal READ and FAST_READ differ only in the following: * FAST_READ supports SPI higher clock frequencies [1] * number of dummy cycles; FAST_READ requires 8 dummy cycles (whereas READ requires 0) to allow the flash sufficient setup time, even when running at higher clock speeds Thus, for flash chips which support FAST_READ, there is otherwise no limiting reason why we cannot use the FAST_READ opcode instead of READ. It simply allows the SPI controller to run at higher clock rates. So theoretically, nobody should be needing the compile-time option anyway. [1] I have a Spansion S25FL128S datasheet which says: "The maximum operating clock frequency for the READ command is 50 MHz." And: "The maximum operating clock frequency for FAST READ command is 133 MHz." Signed-off-by: Brian Norris <computersforpeace@gmail.com>
This commit is contained in:
parent
6e5d9bda27
commit
ddba7c5ad7
|
@ -95,13 +95,6 @@ config MTD_M25P80
|
|||
if you want to specify device partitioning or to use a device which
|
||||
doesn't support the JEDEC ID instruction.
|
||||
|
||||
config M25PXX_USE_FAST_READ
|
||||
bool "Use FAST_READ OPCode allowing SPI CLK >= 50MHz"
|
||||
depends on MTD_M25P80
|
||||
default y
|
||||
help
|
||||
This option enables FAST_READ access supported by ST M25Pxx.
|
||||
|
||||
config MTD_SPEAR_SMI
|
||||
tristate "SPEAR MTD NOR Support through SMI controller"
|
||||
depends on PLAT_SPEAR
|
||||
|
|
|
@ -1055,13 +1055,14 @@ static int m25p_probe(struct spi_device *spi)
|
|||
flash->page_size = info->page_size;
|
||||
flash->mtd.writebufsize = flash->page_size;
|
||||
|
||||
flash->fast_read = false;
|
||||
if (np && of_property_read_bool(np, "m25p,fast-read"))
|
||||
if (np)
|
||||
/* If we were instantiated by DT, use it */
|
||||
flash->fast_read = of_property_read_bool(np, "m25p,fast-read");
|
||||
else
|
||||
/* If we weren't instantiated by DT, default to fast-read */
|
||||
flash->fast_read = true;
|
||||
|
||||
#ifdef CONFIG_M25PXX_USE_FAST_READ
|
||||
flash->fast_read = true;
|
||||
#endif
|
||||
/* Some devices cannot do fast-read, no matter what DT tells us */
|
||||
if (info->flags & M25P_NO_FR)
|
||||
flash->fast_read = false;
|
||||
|
||||
|
|
Loading…
Reference in New Issue