Skip to content

Commit

Permalink
mtd: nand: samsung: Disable subpage writes on E-die NAND
Browse files Browse the repository at this point in the history
Samsung E-die SLC NAND manufactured using 21nm process (K9F1G08U0E)
does not support partial page programming, so disable subpage writes
for it. Manufacturing process is stored in lowest two bits of 5th ID
byte.

Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
  • Loading branch information
3x380V authored and Boris Brezillon committed Jan 10, 2018
1 parent 6cbefbd commit 09ec417
Showing 1 changed file with 17 additions and 4 deletions.
21 changes: 17 additions & 4 deletions drivers/mtd/nand/nand_samsung.c
Expand Up @@ -92,10 +92,23 @@ static void samsung_nand_decode_id(struct nand_chip *chip)
} else {
nand_decode_ext_id(chip);

/* Datasheet values for SLC Samsung K9F4G08U0D-S[I|C]B0(T00) */
if (nand_is_slc(chip) && chip->id.data[1] == 0xDC) {
chip->ecc_step_ds = 512;
chip->ecc_strength_ds = 1;
if (nand_is_slc(chip)) {
switch (chip->id.data[1]) {
/* K9F4G08U0D-S[I|C]B0(T00) */
case 0xDC:
chip->ecc_step_ds = 512;
chip->ecc_strength_ds = 1;
break;

/* K9F1G08U0E 21nm chips do not support subpage write */
case 0xF1:
if (chip->id.len > 4 &&
(chip->id.data[4] & GENMASK(1, 0)) == 0x1)
chip->options |= NAND_NO_SUBPAGE_WRITE;
break;
default:
break;
}
}
}
}
Expand Down

0 comments on commit 09ec417

Please sign in to comment.