Lines Matching defs:nand
11 * Based on drivers/mtd/nand/nomadik_nand.c (removed in v3.8)
29 #include <linux/mtd/nand-ecc-sw-hamming.h>
124 * @nand: Chip related info for a NAND flash.
146 struct nand_chip nand;
253 return container_of(chip, struct fsmc_nand_data, nand);
275 if (host->nand.options & NAND_BUSWIDTH_16)
347 static int fsmc_setup_interface(struct nand_chip *nand, int csline,
350 struct fsmc_nand_data *host = nand_to_fsmc(nand);
694 * @chip: nand chip info structure
866 struct nand_chip *nand)
872 nand->options = 0;
876 nand->options |= NAND_BUSWIDTH_16;
883 if (of_property_read_bool(np, "nand-skip-bbtscan"))
884 nand->options |= NAND_SKIP_BBTSCAN;
909 static int fsmc_nand_attach_chip(struct nand_chip *nand)
911 struct mtd_info *mtd = nand_to_mtd(nand);
912 struct fsmc_nand_data *host = nand_to_fsmc(nand);
914 if (nand->ecc.engine_type == NAND_ECC_ENGINE_TYPE_INVALID)
915 nand->ecc.engine_type = NAND_ECC_ENGINE_TYPE_ON_HOST;
917 if (!nand->ecc.size)
918 nand->ecc.size = 512;
921 nand->ecc.read_page = fsmc_read_page_hwecc;
922 nand->ecc.calculate = fsmc_read_hwecc_ecc4;
923 nand->ecc.correct = fsmc_bch8_correct_data;
924 nand->ecc.bytes = 13;
925 nand->ecc.strength = 8;
948 switch (nand->ecc.engine_type) {
951 nand->ecc.calculate = fsmc_read_hwecc_ecc1;
952 nand->ecc.correct = fsmc_correct_ecc1;
953 nand->ecc.hwctl = fsmc_enable_hwecc;
954 nand->ecc.bytes = 3;
955 nand->ecc.strength = 1;
956 nand->ecc.options |= NAND_ECC_SOFT_HAMMING_SM_ORDER;
960 if (nand->ecc.algo == NAND_ECC_ALGO_BCH) {
979 if (nand->ecc.engine_type == NAND_ECC_ENGINE_TYPE_ON_HOST) {
1025 struct nand_chip *nand;
1038 nand = &host->nand;
1040 ret = fsmc_nand_probe_config_dt(pdev, host, nand);
1096 mtd = nand_to_mtd(&host->nand);
1097 nand_set_flash_node(nand, pdev->dev.of_node);
1101 nand->badblockbits = 7;
1122 nand->options |= NAND_KEEP_TIMINGS;
1127 nand->controller = &host->base;
1132 ret = nand_scan(nand, 1);
1136 mtd->name = "nand";
1147 nand_cleanup(nand);
1168 struct nand_chip *chip = &host->nand;
1207 nand_reset(&host->nand, 0);
1217 { .compatible = "st,spear600-fsmc-nand" },
1218 { .compatible = "stericsson,fsmc-nand" },
1226 .name = "fsmc-nand",