]> git.ipfire.org Git - thirdparty/linux.git/commit
mtd: rawnand: atmel: Fix pulse read timing for certain flash chips
authorAlexander Dahl <ada@thorsis.com>
Thu, 4 Sep 2025 09:14:41 +0000 (11:14 +0200)
committerMiquel Raynal <miquel.raynal@bootlin.com>
Wed, 10 Sep 2025 08:04:57 +0000 (10:04 +0200)
commitb2d2c2b8af4321476d58f313c7893b49c30141a4
tree1eb8b0b740d629996d6958eaf0b11b3bff2699fe
parentdfea8f7183c711f2bf6af7aaef2a07e30b36a367
mtd: rawnand: atmel: Fix pulse read timing for certain flash chips

Prevent PMECC errors when reading from AMD/Spansion S34ML02G1 flash on
SAM9X60 SoC, after switching to ONFI timing mode 3.

From reading the S34ML02G1 and the SAM9X60 datasheets again, it seems
like we have to wait tREA after rising RE# before sampling the data.
Thus pulse must be at least tREA.

The previous approach to set this timing worked on sam9g20 and sama5d2
with the same flash (S34ML02G1), probably because those have a slower
mck clock rate and thus the resolution of the timings setup is not as
tight as with sam9x60.

The approach to fix the issue was carried over from u-boot, which itself
got it from at91bootstrap.  It has been successfully tested in
at91bootstrap, U-Boot and Linux on sam9x60 and sama5d2, for several
months here.

Link: https://github.com/linux4sam/at91bootstrap/issues/174
Link: https://github.com/linux4sam/at91bootstrap/commit/e2dfd8141d00613a37acee66ef5724f70f34a538
Link: https://lore.kernel.org/u-boot/20240415075755.780653-1-ada@thorsis.com/
Link: https://source.denx.de/u-boot/u-boot/-/commit/344e2f2cd4a407f847b301804f37d036e8a0a10c
Cc: Li Bin <bin.li@microchip.com>
Signed-off-by: Alexander Dahl <ada@thorsis.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
drivers/mtd/nand/raw/atmel/nand-controller.c