Lines Matching +full:manufacturer +full:- +full:id

1 // SPDX-License-Identifier: GPL-2.0
4 * 2002-2006 Thomas Gleixner (tglx@linutronix.de)
26 struct nand_device *base = &chip->base; in nand_jedec_detect()
33 char id[5]; in nand_jedec_detect() local
37 memorg = nanddev_get_memorg(&chip->base); in nand_jedec_detect()
40 ret = nand_readid_op(chip, 0x40, id, sizeof(id)); in nand_jedec_detect()
41 if (ret || strncmp(id, "JEDEC", sizeof(id))) in nand_jedec_detect()
47 return -ENOMEM; in nand_jedec_detect()
49 if (!nand_has_exec_op(chip) || chip->controller->supported_op.data_only_read) in nand_jedec_detect()
68 if (crc == le16_to_cpu(p->crc)) in nand_jedec_detect()
78 val = le16_to_cpu(p->revision); in nand_jedec_detect()
89 sanitize_string(p->manufacturer, sizeof(p->manufacturer)); in nand_jedec_detect()
90 sanitize_string(p->model, sizeof(p->model)); in nand_jedec_detect()
91 chip->parameters.model = kstrdup(p->model, GFP_KERNEL); in nand_jedec_detect()
92 if (!chip->parameters.model) { in nand_jedec_detect()
93 ret = -ENOMEM; in nand_jedec_detect()
97 if (p->opt_cmd[0] & JEDEC_OPT_CMD_READ_CACHE) in nand_jedec_detect()
98 chip->parameters.supports_read_cache = true; in nand_jedec_detect()
100 memorg->pagesize = le32_to_cpu(p->byte_per_page); in nand_jedec_detect()
101 mtd->writesize = memorg->pagesize; in nand_jedec_detect()
104 memorg->pages_per_eraseblock = in nand_jedec_detect()
105 1 << (fls(le32_to_cpu(p->pages_per_block)) - 1); in nand_jedec_detect()
106 mtd->erasesize = memorg->pages_per_eraseblock * memorg->pagesize; in nand_jedec_detect()
108 memorg->oobsize = le16_to_cpu(p->spare_bytes_per_page); in nand_jedec_detect()
109 mtd->oobsize = memorg->oobsize; in nand_jedec_detect()
111 memorg->luns_per_target = p->lun_count; in nand_jedec_detect()
112 memorg->planes_per_lun = 1 << p->multi_plane_addr; in nand_jedec_detect()
115 memorg->eraseblocks_per_lun = in nand_jedec_detect()
116 1 << (fls(le32_to_cpu(p->blocks_per_lun)) - 1); in nand_jedec_detect()
117 memorg->bits_per_cell = p->bits_per_cell; in nand_jedec_detect()
119 if (le16_to_cpu(p->features) & JEDEC_FEATURE_16_BIT_BUS) in nand_jedec_detect()
120 chip->options |= NAND_BUSWIDTH_16; in nand_jedec_detect()
123 ecc = &p->ecc_info[0]; in nand_jedec_detect()
125 if (ecc->codeword_size >= 9) { in nand_jedec_detect()
127 .strength = ecc->ecc_bits, in nand_jedec_detect()
128 .step_size = 1 << ecc->codeword_size, in nand_jedec_detect()