Lines Matching refs:cfi
24 #include <linux/mtd/cfi.h>
41 struct map_info *map, struct cfi_private *cfi)
44 unsigned interleave = cfi_interleave(cfi);
45 unsigned type = cfi->device_type;
67 map_word cfi_build_cmd(u_long cmd, struct map_info *map, struct cfi_private *cfi)
86 chip_mode = map_bankwidth(map) / cfi_interleave(cfi);
87 chips_per_word = wordwidth * cfi_interleave(cfi) / map_bankwidth(map);
134 struct cfi_private *cfi)
152 chip_mode = map_bankwidth(map) / cfi_interleave(cfi);
153 chips_per_word = wordwidth * cfi_interleave(cfi) / map_bankwidth(map);
204 struct map_info *map, struct cfi_private *cfi,
208 uint32_t addr = base + cfi_build_cmd_addr(cmd_addr, map, cfi);
209 val = cfi_build_cmd(cmd, map, cfi);
221 struct cfi_private *cfi)
223 int osf = cfi->interleave * cfi->device_type; /* scale factor */
227 qry[0] = cfi_build_cmd('Q', map, cfi);
228 qry[1] = cfi_build_cmd('R', map, cfi);
229 qry[2] = cfi_build_cmd('Y', map, cfi);
249 struct cfi_private *cfi)
251 cfi_send_gen_cmd(0xF0, 0, base, map, cfi, cfi->device_type, NULL);
252 cfi_send_gen_cmd(0x98, 0x55, base, map, cfi, cfi->device_type, NULL);
253 if (cfi_qry_present(map, base, cfi))
257 cfi_send_gen_cmd(0xF0, 0, base, map, cfi, cfi->device_type, NULL);
258 cfi_send_gen_cmd(0xFF, 0, base, map, cfi, cfi->device_type, NULL);
259 cfi_send_gen_cmd(0x98, 0x55, base, map, cfi, cfi->device_type, NULL);
260 if (cfi_qry_present(map, base, cfi))
263 cfi_send_gen_cmd(0xF0, 0, base, map, cfi, cfi->device_type, NULL);
264 cfi_send_gen_cmd(0x98, 0x555, base, map, cfi, cfi->device_type, NULL);
265 if (cfi_qry_present(map, base, cfi))
268 cfi_send_gen_cmd(0xF0, 0, base, map, cfi, cfi->device_type, NULL);
269 cfi_send_gen_cmd(0xAA, 0x5555, base, map, cfi, cfi->device_type, NULL);
270 cfi_send_gen_cmd(0x55, 0x2AAA, base, map, cfi, cfi->device_type, NULL);
271 cfi_send_gen_cmd(0x98, 0x5555, base, map, cfi, cfi->device_type, NULL);
272 if (cfi_qry_present(map, base, cfi))
275 cfi_send_gen_cmd(0xF0, 0, base, map, cfi, cfi->device_type, NULL);
276 cfi_send_gen_cmd(0xAA, 0x555, base, map, cfi, cfi->device_type, NULL);
277 cfi_send_gen_cmd(0x55, 0x2AA, base, map, cfi, cfi->device_type, NULL);
278 cfi_send_gen_cmd(0x98, 0x555, base, map, cfi, cfi->device_type, NULL);
279 if (cfi_qry_present(map, base, cfi))
287 struct cfi_private *cfi)
289 cfi_send_gen_cmd(0xF0, 0, base, map, cfi, cfi->device_type, NULL);
290 cfi_send_gen_cmd(0xFF, 0, base, map, cfi, cfi->device_type, NULL);
293 if ((cfi->mfr == CFI_MFR_ST) && (cfi->id == 0x227E || cfi->id == 0x7E))
294 cfi_send_gen_cmd(0xF0, 0, base, map, cfi, cfi->device_type, NULL);
301 struct cfi_private *cfi = map->fldrv_priv;
302 __u32 base = 0; // cfi->chips[0].start;
303 int ofs_factor = cfi->interleave * cfi->device_type;
321 cfi_qry_mode_on(base, map, cfi);
329 cfi_qry_mode_off(base, map, cfi);
345 struct cfi_private *cfi = map->fldrv_priv;
349 if (((f->mfr == CFI_MFR_ANY) || (f->mfr == cfi->mfr)) &&
350 ((f->id == CFI_ID_ANY) || (f->id == cfi->id))) {
362 struct cfi_private *cfi = map->fldrv_priv;
411 chipnum = ofs >> cfi->chipshift;
412 adr = ofs - (chipnum << cfi->chipshift);
419 ret = (*frob)(map, &cfi->chips[chipnum], adr, size, thunk);
431 if (adr >> cfi->chipshift) {
435 if (chipnum >= cfi->numchips)