]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
mtd: spinand: add support for Dosilicon DS35Q1GA/DS35M1GA
authorAhmed Naseef <naseefkm@gmail.com>
Tue, 9 Dec 2025 07:16:02 +0000 (11:16 +0400)
committerMiquel Raynal <miquel.raynal@bootlin.com>
Tue, 16 Dec 2025 08:13:46 +0000 (09:13 +0100)
commita75a1dec037ff3de863375fa3a74569619667184
treec1ec15888db61b030c80c28241d566e6d9332529
parent8f0b4cce4481fb22653697cced8d0d04027cb1e8
mtd: spinand: add support for Dosilicon DS35Q1GA/DS35M1GA

Add support for Dosilicon DS35Q1GA (3.3V) and DS35M1GA (1.8V) SPI NAND.

These are 1Gbit (128MB) devices with:
  - 2048 byte pages + 64 byte OOB
  - 64 pages per block, 1024 blocks
  - On-die 4-bit ECC per 512 byte sector

The 64-byte OOB area is divided into 4 segments of 16 bytes, with each
segment containing 8 bytes of user data (M2+M1) and 8 bytes of ECC
parity (R1). This provides 30 bytes of usable OOB space after reserving
2 bytes for the bad block marker.

Tested on Genexis Platinum 4410 (EcoNet EN751221) by writing known
patterns to OOB and verifying ECC parity placement in R1 regions.

Datasheet:
  https://www.dosilicon.com/resources/SPI%20NAND/DS35X1GAXXX_rev08.pdf

Signed-off-by: Ahmed Naseef <naseefkm@gmail.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
drivers/mtd/nand/spi/Makefile
drivers/mtd/nand/spi/core.c
drivers/mtd/nand/spi/dosilicon.c [new file with mode: 0644]
include/linux/mtd/spinand.h