Lines Matching +full:1 +full:- +full:512
1 // SPDX-License-Identifier: GPL-2.0
30 SPINAND_PAGE_READ_FROM_CACHE_X4_OP(0, 1, NULL, 0),
33 SPINAND_PAGE_READ_FROM_CACHE_DUALIO_OP(0, 1, NULL, 0),
34 SPINAND_PAGE_READ_FROM_CACHE_X2_OP(0, 1, NULL, 0),
36 SPINAND_PAGE_READ_FROM_CACHE_FAST_OP(0, 1, NULL, 0),
37 SPINAND_PAGE_READ_FROM_CACHE_OP(0, 1, NULL, 0, 54 * HZ_PER_MHZ));
41 SPINAND_PAGE_READ_FROM_CACHE_X4_OP(0, 1, NULL, 0),
42 SPINAND_PAGE_READ_FROM_CACHE_DUALIO_OP(0, 1, NULL, 0),
43 SPINAND_PAGE_READ_FROM_CACHE_X2_OP(0, 1, NULL, 0),
44 SPINAND_PAGE_READ_FROM_CACHE_FAST_OP(0, 1, NULL, 0),
45 SPINAND_PAGE_READ_FROM_CACHE_OP(0, 1, NULL, 0));
59 return -ERANGE; in w25m02gv_ooblayout_ecc()
61 region->offset = (16 * section) + 8; in w25m02gv_ooblayout_ecc()
62 region->length = 8; in w25m02gv_ooblayout_ecc()
71 return -ERANGE; in w25m02gv_ooblayout_free()
73 region->offset = (16 * section) + 2; in w25m02gv_ooblayout_free()
74 region->length = 6; in w25m02gv_ooblayout_free()
87 struct spi_mem_op op = SPI_MEM_OP(SPI_MEM_OP_CMD(0xc2, 1), in w25m02gv_select_target()
90 SPI_MEM_OP_DATA_OUT(1, in w25m02gv_select_target()
91 spinand->scratchbuf, in w25m02gv_select_target()
92 1)); in w25m02gv_select_target()
94 *spinand->scratchbuf = target; in w25m02gv_select_target()
95 return spi_mem_exec_op(spinand->spimem, &op); in w25m02gv_select_target()
102 return -ERANGE; in w25n01kv_ooblayout_ecc()
104 region->offset = 64 + (8 * section); in w25n01kv_ooblayout_ecc()
105 region->length = 7; in w25n01kv_ooblayout_ecc()
114 return -ERANGE; in w25n02kv_ooblayout_ecc()
116 region->offset = 64 + (16 * section); in w25n02kv_ooblayout_ecc()
117 region->length = 13; in w25n02kv_ooblayout_ecc()
126 return -ERANGE; in w25n02kv_ooblayout_free()
128 region->offset = (16 * section) + 2; in w25n02kv_ooblayout_free()
129 region->length = 14; in w25n02kv_ooblayout_free()
149 struct spi_mem_op op = SPINAND_GET_FEATURE_OP(0x30, spinand->scratchbuf); in w25n02kv_ecc_get_status()
156 return -EBADMSG; in w25n02kv_ecc_get_status()
162 * in order to avoid forcing the wear-leveling layer to move in w25n02kv_ecc_get_status()
165 if (spi_mem_exec_op(spinand->spimem, &op)) in w25n02kv_ecc_get_status()
166 return nanddev_get_ecc_conf(nand)->strength; in w25n02kv_ecc_get_status()
168 mbf = *(spinand->scratchbuf) >> 4; in w25n02kv_ecc_get_status()
170 if (WARN_ON(mbf > nanddev_get_ecc_conf(nand)->strength || !mbf)) in w25n02kv_ecc_get_status()
171 return nanddev_get_ecc_conf(nand)->strength; in w25n02kv_ecc_get_status()
179 return -EINVAL; in w25n02kv_ecc_get_status()
183 /* 512M-bit densities */
186 NAND_MEMORG(1, 2048, 64, 64, 512, 10, 1, 1, 1),
187 NAND_ECCREQ(1, 512),
193 /* 1G-bit densities */
196 NAND_MEMORG(1, 2048, 64, 64, 1024, 20, 1, 1, 1),
197 NAND_ECCREQ(1, 512),
205 NAND_MEMORG(1, 2048, 64, 64, 1024, 20, 1, 1, 1),
206 NAND_ECCREQ(1, 512),
212 SPINAND_INFO("W25N01JW", /* high-speed 1.8V */
214 NAND_MEMORG(1, 2048, 64, 64, 1024, 20, 1, 1, 1),
215 NAND_ECCREQ(1, 512),
223 NAND_MEMORG(1, 2048, 96, 64, 1024, 20, 1, 1, 1),
224 NAND_ECCREQ(4, 512),
230 /* 2G-bit densities */
231 SPINAND_INFO("W25M02GV", /* 2x1G-bit 3.3V */
233 NAND_MEMORG(1, 2048, 64, 64, 1024, 20, 1, 1, 2),
234 NAND_ECCREQ(1, 512),
241 SPINAND_INFO("W25N02JW", /* high-speed 1.8V */
243 NAND_MEMORG(1, 2048, 64, 64, 1024, 20, 1, 2, 1),
244 NAND_ECCREQ(1, 512),
252 NAND_MEMORG(1, 2048, 128, 64, 2048, 40, 1, 1, 1),
253 NAND_ECCREQ(8, 512),
261 NAND_MEMORG(1, 2048, 128, 64, 2048, 40, 1, 1, 1),
262 NAND_ECCREQ(8, 512),
268 /* 4G-bit densities */
271 NAND_MEMORG(1, 2048, 128, 64, 4096, 40, 2, 1, 1),
272 NAND_ECCREQ(8, 512),
280 NAND_MEMORG(1, 2048, 128, 64, 4096, 40, 1, 1, 1),
281 NAND_ECCREQ(8, 512),
298 for (i = 0; i < nand->memorg.ntargets; i++) { in winbond_spinand_init()