mtd: nand: samsung: add ECC requirements for K9F4G08U0D
authorMiquel Raynal <miquel.raynal@free-electrons.com>
Thu, 7 Dec 2017 09:33:58 +0000 (10:33 +0100)
committerBoris Brezillon <boris.brezillon@free-electrons.com>
Thu, 14 Dec 2017 12:34:23 +0000 (13:34 +0100)
Samsung NAND chip K9F4G08U0D minimum ECC strength requirement is 1 bit
per 512 bytes. As the chip is not ONFI nor JEDEC and because of the lack
of these values, boards using it fail to probe the NAND controller
driver. Fix this by setting up the default values.

Signed-off-by: Miquel Raynal <miquel.raynal@free-electrons.com>
Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
drivers/mtd/nand/nand_samsung.c

index d348f0129ae76c87b4c768c3bf63b731b91b059c..f6b0a63a068c7413507f607727af1338fa6415bd 100644 (file)
@@ -91,6 +91,12 @@ 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;
+               }
        }
 }