Lines Matching refs:cfi
40 struct map_info *map, struct cfi_private *cfi) in cfi_build_cmd_addr() argument
43 unsigned interleave = cfi_interleave(cfi); in cfi_build_cmd_addr()
44 unsigned type = cfi->device_type; in cfi_build_cmd_addr()
66 map_word cfi_build_cmd(u_long cmd, struct map_info *map, struct cfi_private *cfi) in cfi_build_cmd() argument
85 chip_mode = map_bankwidth(map) / cfi_interleave(cfi); in cfi_build_cmd()
86 chips_per_word = wordwidth * cfi_interleave(cfi) / map_bankwidth(map); in cfi_build_cmd()
133 struct cfi_private *cfi) in cfi_merge_status() argument
151 chip_mode = map_bankwidth(map) / cfi_interleave(cfi); in cfi_merge_status()
152 chips_per_word = wordwidth * cfi_interleave(cfi) / map_bankwidth(map); in cfi_merge_status()
203 struct map_info *map, struct cfi_private *cfi, in cfi_send_gen_cmd() argument
207 uint32_t addr = base + cfi_build_cmd_addr(cmd_addr, map, cfi); in cfi_send_gen_cmd()
208 val = cfi_build_cmd(cmd, map, cfi); in cfi_send_gen_cmd()
220 struct cfi_private *cfi) in cfi_qry_present() argument
222 int osf = cfi->interleave * cfi->device_type; /* scale factor */ in cfi_qry_present()
226 qry[0] = cfi_build_cmd('Q', map, cfi); in cfi_qry_present()
227 qry[1] = cfi_build_cmd('R', map, cfi); in cfi_qry_present()
228 qry[2] = cfi_build_cmd('Y', map, cfi); in cfi_qry_present()
248 struct cfi_private *cfi) in cfi_qry_mode_on() argument
250 cfi_send_gen_cmd(0xF0, 0, base, map, cfi, cfi->device_type, NULL); in cfi_qry_mode_on()
251 cfi_send_gen_cmd(0x98, 0x55, base, map, cfi, cfi->device_type, NULL); in cfi_qry_mode_on()
252 if (cfi_qry_present(map, base, cfi)) in cfi_qry_mode_on()
256 cfi_send_gen_cmd(0xF0, 0, base, map, cfi, cfi->device_type, NULL); in cfi_qry_mode_on()
257 cfi_send_gen_cmd(0xFF, 0, base, map, cfi, cfi->device_type, NULL); in cfi_qry_mode_on()
258 cfi_send_gen_cmd(0x98, 0x55, base, map, cfi, cfi->device_type, NULL); in cfi_qry_mode_on()
259 if (cfi_qry_present(map, base, cfi)) in cfi_qry_mode_on()
262 cfi_send_gen_cmd(0xF0, 0, base, map, cfi, cfi->device_type, NULL); in cfi_qry_mode_on()
263 cfi_send_gen_cmd(0x98, 0x555, base, map, cfi, cfi->device_type, NULL); in cfi_qry_mode_on()
264 if (cfi_qry_present(map, base, cfi)) in cfi_qry_mode_on()
267 cfi_send_gen_cmd(0xF0, 0, base, map, cfi, cfi->device_type, NULL); in cfi_qry_mode_on()
268 cfi_send_gen_cmd(0xAA, 0x5555, base, map, cfi, cfi->device_type, NULL); in cfi_qry_mode_on()
269 cfi_send_gen_cmd(0x55, 0x2AAA, base, map, cfi, cfi->device_type, NULL); in cfi_qry_mode_on()
270 cfi_send_gen_cmd(0x98, 0x5555, base, map, cfi, cfi->device_type, NULL); in cfi_qry_mode_on()
271 if (cfi_qry_present(map, base, cfi)) in cfi_qry_mode_on()
274 cfi_send_gen_cmd(0xF0, 0, base, map, cfi, cfi->device_type, NULL); in cfi_qry_mode_on()
275 cfi_send_gen_cmd(0xAA, 0x555, base, map, cfi, cfi->device_type, NULL); in cfi_qry_mode_on()
276 cfi_send_gen_cmd(0x55, 0x2AA, base, map, cfi, cfi->device_type, NULL); in cfi_qry_mode_on()
277 cfi_send_gen_cmd(0x98, 0x555, base, map, cfi, cfi->device_type, NULL); in cfi_qry_mode_on()
278 if (cfi_qry_present(map, base, cfi)) in cfi_qry_mode_on()
286 struct cfi_private *cfi) in cfi_qry_mode_off() argument
288 cfi_send_gen_cmd(0xF0, 0, base, map, cfi, cfi->device_type, NULL); in cfi_qry_mode_off()
289 cfi_send_gen_cmd(0xFF, 0, base, map, cfi, cfi->device_type, NULL); in cfi_qry_mode_off()
292 if ((cfi->mfr == CFI_MFR_ST) && (cfi->id == 0x227E || cfi->id == 0x7E)) in cfi_qry_mode_off()
293 cfi_send_gen_cmd(0xF0, 0, base, map, cfi, cfi->device_type, NULL); in cfi_qry_mode_off()
300 struct cfi_private *cfi = map->fldrv_priv; in cfi_read_pri() local
302 int ofs_factor = cfi->interleave * cfi->device_type; in cfi_read_pri()
320 cfi_qry_mode_on(base, map, cfi); in cfi_read_pri()
328 cfi_qry_mode_off(base, map, cfi); in cfi_read_pri()
344 struct cfi_private *cfi = map->fldrv_priv; in cfi_fixup() local
348 if (((f->mfr == CFI_MFR_ANY) || (f->mfr == cfi->mfr)) && in cfi_fixup()
349 ((f->id == CFI_ID_ANY) || (f->id == cfi->id))) { in cfi_fixup()
361 struct cfi_private *cfi = map->fldrv_priv; in cfi_varsize_frob() local
410 chipnum = ofs >> cfi->chipshift; in cfi_varsize_frob()
411 adr = ofs - (chipnum << cfi->chipshift); in cfi_varsize_frob()
418 ret = (*frob)(map, &cfi->chips[chipnum], adr, size, thunk); in cfi_varsize_frob()
430 if (adr >> cfi->chipshift) { in cfi_varsize_frob()
434 if (chipnum >= cfi->numchips) in cfi_varsize_frob()