Lines Matching refs:map
113 struct mtd_info *cfi_cmdset_0020(struct map_info *map, int primary) in cfi_cmdset_0020() argument
115 struct cfi_private *cfi = map->fldrv_priv; in cfi_cmdset_0020()
127 extp = (struct cfi_pri_intelext*)cfi_read_pri(map, adr, sizeof(*extp), "ST Microelectronics"); in cfi_cmdset_0020()
141 extp->FeatureSupport = cfi32_to_cpu(map, extp->FeatureSupport); in cfi_cmdset_0020()
142 extp->BlkStatusRegMask = cfi32_to_cpu(map, in cfi_cmdset_0020()
162 return cfi_staa_setup(map); in cfi_cmdset_0020()
166 static struct mtd_info *cfi_staa_setup(struct map_info *map) in cfi_staa_setup() argument
168 struct cfi_private *cfi = map->fldrv_priv; in cfi_staa_setup()
182 mtd->priv = map; in cfi_staa_setup()
240 map->fldrv = &cfi_staa_chipdrv; in cfi_staa_setup()
242 mtd->name = map->name; in cfi_staa_setup()
247 static inline int do_read_onechip(struct map_info *map, struct flchip *chip, loff_t adr, size_t len… in do_read_onechip() argument
254 struct cfi_private *cfi = map->fldrv_priv; in do_read_onechip()
259 cmd_addr = adr & ~(map_bankwidth(map)-1); in do_read_onechip()
276 map_write (map, CMD(0xb0), cmd_addr); in do_read_onechip()
282 map_write(map, CMD(0x70), cmd_addr); in do_read_onechip()
287 status = map_read(map, cmd_addr); in do_read_onechip()
288 if (map_word_andequal(map, status, status_OK, status_OK)) in do_read_onechip()
293 map_write(map, CMD(0xd0), cmd_addr); in do_read_onechip()
295 map_write(map, CMD(0x70), cmd_addr); in do_read_onechip()
310 map_write(map, CMD(0xff), cmd_addr); in do_read_onechip()
324 map_write(map, CMD(0x70), cmd_addr); in do_read_onechip()
328 status = map_read(map, cmd_addr); in do_read_onechip()
329 if (map_word_andequal(map, status, status_OK, status_OK)) { in do_read_onechip()
330 map_write(map, CMD(0xff), cmd_addr); in do_read_onechip()
360 map_copy_from(map, buf, adr, len); in do_read_onechip()
373 map_write(map, CMD(0xd0), cmd_addr); in do_read_onechip()
374 map_write(map, CMD(0x70), cmd_addr); in do_read_onechip()
384 struct map_info *map = mtd->priv; in cfi_staa_read() local
385 struct cfi_private *cfi = map->fldrv_priv; in cfi_staa_read()
405 ret = do_read_onechip(map, &cfi->chips[chipnum], ofs, thislen, buf); in cfi_staa_read()
419 static inline int do_write_buffer(struct map_info *map, struct flchip *chip, in do_write_buffer() argument
422 struct cfi_private *cfi = map->fldrv_priv; in do_write_buffer()
429 if (adr & (map_bankwidth(map)-1)) in do_write_buffer()
458 map_write(map, CMD(0x70), cmd_adr); in do_write_buffer()
461 printk("%s: 1 status[%x]\n", __func__, map_read(map, cmd_adr)); in do_write_buffer()
465 status = map_read(map, cmd_adr); in do_write_buffer()
466 if (map_word_andequal(map, status, status_OK, status_OK)) in do_write_buffer()
472 status.x[0], map_read(map, cmd_adr).x[0]); in do_write_buffer()
493 ENABLE_VPP(map); in do_write_buffer()
494 map_write(map, CMD(0xe8), cmd_adr); in do_write_buffer()
499 status = map_read(map, cmd_adr); in do_write_buffer()
500 if (map_word_andequal(map, status, status_OK, status_OK)) in do_write_buffer()
509 DISABLE_VPP(map); in do_write_buffer()
510 map_write(map, CMD(0x70), cmd_adr); in do_write_buffer()
519 map_write(map, CMD(len/map_bankwidth(map)-1), cmd_adr ); in do_write_buffer()
523 z += map_bankwidth(map), buf += map_bankwidth(map)) { in do_write_buffer()
525 d = map_word_load(map, buf); in do_write_buffer()
526 map_write(map, d, adr+z); in do_write_buffer()
529 map_write(map, CMD(0xd0), cmd_adr); in do_write_buffer()
551 status = map_read(map, cmd_adr); in do_write_buffer()
552 if (map_word_andequal(map, status, status_OK, status_OK)) in do_write_buffer()
558 map_write(map, CMD(0x50), cmd_adr); in do_write_buffer()
560 map_write(map, CMD(0x70), adr); in do_write_buffer()
562 DISABLE_VPP(map); in do_write_buffer()
583 DISABLE_VPP(map); in do_write_buffer()
587 if (map_word_bitsset(map, status, CMD(0x3a))) { in do_write_buffer()
592 map_write(map, CMD(0x50), cmd_adr); in do_write_buffer()
594 map_write(map, CMD(0x70), adr); in do_write_buffer()
597 return map_word_bitsset(map, status, CMD(0x02)) ? -EROFS : -EIO; in do_write_buffer()
608 struct map_info *map = mtd->priv; in cfi_staa_write_buffers() local
609 struct cfi_private *cfi = map->fldrv_priv; in cfi_staa_write_buffers()
619 printk("%s: map_bankwidth(map)[%x]\n", __func__, map_bankwidth(map)); in cfi_staa_write_buffers()
632 ret = do_write_buffer(map, &cfi->chips[chipnum], in cfi_staa_write_buffers()
731 static inline int do_erase_oneblock(struct map_info *map, struct flchip *chip, unsigned long adr) in do_erase_oneblock() argument
733 struct cfi_private *cfi = map->fldrv_priv; in do_erase_oneblock()
754 map_write(map, CMD(0x70), adr); in do_erase_oneblock()
758 status = map_read(map, adr); in do_erase_oneblock()
759 if (map_word_andequal(map, status, status_OK, status_OK)) in do_erase_oneblock()
786 ENABLE_VPP(map); in do_erase_oneblock()
788 map_write(map, CMD(0x50), adr); in do_erase_oneblock()
791 map_write(map, CMD(0x20), adr); in do_erase_oneblock()
792 map_write(map, CMD(0xD0), adr); in do_erase_oneblock()
816 status = map_read(map, adr); in do_erase_oneblock()
817 if (map_word_andequal(map, status, status_OK, status_OK)) in do_erase_oneblock()
822 map_write(map, CMD(0x70), adr); in do_erase_oneblock()
824 …rase to complete timed out. Xstatus = %lx, status = %lx.\n", status.x[0], map_read(map, adr).x[0]); in do_erase_oneblock()
825 DISABLE_VPP(map); in do_erase_oneblock()
836 DISABLE_VPP(map); in do_erase_oneblock()
840 map_write(map, CMD(0x70), adr); in do_erase_oneblock()
842 status = map_read(map, adr); in do_erase_oneblock()
845 if (map_word_bitsset(map, status, CMD(0x3a))) { in do_erase_oneblock()
847 if (!map_word_equal(map, status, CMD(chipstatus))) { in do_erase_oneblock()
849 for (w=0; w<map_words(map); w++) { in do_erase_oneblock()
858 map_write(map, CMD(0x50), adr); in do_erase_oneblock()
859 map_write(map, CMD(0x70), adr); in do_erase_oneblock()
891 { struct map_info *map = mtd->priv; in cfi_staa_erase_varsize() local
892 struct cfi_private *cfi = map->fldrv_priv; in cfi_staa_erase_varsize()
948 ret = do_erase_oneblock(map, &cfi->chips[chipnum], adr); in cfi_staa_erase_varsize()
976 struct map_info *map = mtd->priv; in cfi_staa_sync() local
977 struct cfi_private *cfi = map->fldrv_priv; in cfi_staa_sync()
1032 static inline int do_lock_oneblock(struct map_info *map, struct flchip *chip, unsigned long adr) in do_lock_oneblock() argument
1034 struct cfi_private *cfi = map->fldrv_priv; in do_lock_oneblock()
1053 map_write(map, CMD(0x70), adr); in do_lock_oneblock()
1057 status = map_read(map, adr); in do_lock_oneblock()
1058 if (map_word_andequal(map, status, status_OK, status_OK)) in do_lock_oneblock()
1085 ENABLE_VPP(map); in do_lock_oneblock()
1086 map_write(map, CMD(0x60), adr); in do_lock_oneblock()
1087 map_write(map, CMD(0x01), adr); in do_lock_oneblock()
1100 status = map_read(map, adr); in do_lock_oneblock()
1101 if (map_word_andequal(map, status, status_OK, status_OK)) in do_lock_oneblock()
1106 map_write(map, CMD(0x70), adr); in do_lock_oneblock()
1108 …lock to complete timed out. Xstatus = %lx, status = %lx.\n", status.x[0], map_read(map, adr).x[0]); in do_lock_oneblock()
1109 DISABLE_VPP(map); in do_lock_oneblock()
1122 DISABLE_VPP(map); in do_lock_oneblock()
1129 struct map_info *map = mtd->priv; in cfi_staa_lock() local
1130 struct cfi_private *cfi = map->fldrv_priv; in cfi_staa_lock()
1149 cfi_send_gen_cmd(0x90, 0x55, 0, map, cfi, cfi->device_type, NULL); in cfi_staa_lock()
1150 printk("before lock: block status register is %x\n",cfi_read_query(map, adr+(2*ofs_factor))); in cfi_staa_lock()
1151 cfi_send_gen_cmd(0xff, 0x55, 0, map, cfi, cfi->device_type, NULL); in cfi_staa_lock()
1154 ret = do_lock_oneblock(map, &cfi->chips[chipnum], adr); in cfi_staa_lock()
1157 cfi_send_gen_cmd(0x90, 0x55, 0, map, cfi, cfi->device_type, NULL); in cfi_staa_lock()
1158 printk("after lock: block status register is %x\n",cfi_read_query(map, adr+(2*ofs_factor))); in cfi_staa_lock()
1159 cfi_send_gen_cmd(0xff, 0x55, 0, map, cfi, cfi->device_type, NULL); in cfi_staa_lock()
1178 static inline int do_unlock_oneblock(struct map_info *map, struct flchip *chip, unsigned long adr) in do_unlock_oneblock() argument
1180 struct cfi_private *cfi = map->fldrv_priv; in do_unlock_oneblock()
1199 map_write(map, CMD(0x70), adr); in do_unlock_oneblock()
1203 status = map_read(map, adr); in do_unlock_oneblock()
1204 if (map_word_andequal(map, status, status_OK, status_OK)) in do_unlock_oneblock()
1231 ENABLE_VPP(map); in do_unlock_oneblock()
1232 map_write(map, CMD(0x60), adr); in do_unlock_oneblock()
1233 map_write(map, CMD(0xD0), adr); in do_unlock_oneblock()
1246 status = map_read(map, adr); in do_unlock_oneblock()
1247 if (map_word_andequal(map, status, status_OK, status_OK)) in do_unlock_oneblock()
1252 map_write(map, CMD(0x70), adr); in do_unlock_oneblock()
1254 …lock to complete timed out. Xstatus = %lx, status = %lx.\n", status.x[0], map_read(map, adr).x[0]); in do_unlock_oneblock()
1255 DISABLE_VPP(map); in do_unlock_oneblock()
1268 DISABLE_VPP(map); in do_unlock_oneblock()
1275 struct map_info *map = mtd->priv; in cfi_staa_unlock() local
1276 struct cfi_private *cfi = map->fldrv_priv; in cfi_staa_unlock()
1291 cfi_send_gen_cmd(0x90, 0x55, 0, map, cfi, cfi->device_type, NULL); in cfi_staa_unlock()
1293 …printk("before unlock %x: block status register is %x\n",temp_adr,cfi_read_query(map, temp_adr+(2*… in cfi_staa_unlock()
1297 cfi_send_gen_cmd(0xff, 0x55, 0, map, cfi, cfi->device_type, NULL); in cfi_staa_unlock()
1301 ret = do_unlock_oneblock(map, &cfi->chips[chipnum], adr); in cfi_staa_unlock()
1304 cfi_send_gen_cmd(0x90, 0x55, 0, map, cfi, cfi->device_type, NULL); in cfi_staa_unlock()
1305 printk("after unlock: block status register is %x\n",cfi_read_query(map, adr+(2*ofs_factor))); in cfi_staa_unlock()
1306 cfi_send_gen_cmd(0xff, 0x55, 0, map, cfi, cfi->device_type, NULL); in cfi_staa_unlock()
1314 struct map_info *map = mtd->priv; in cfi_staa_suspend() local
1315 struct cfi_private *cfi = map->fldrv_priv; in cfi_staa_suspend()
1370 struct map_info *map = mtd->priv; in cfi_staa_resume() local
1371 struct cfi_private *cfi = map->fldrv_priv; in cfi_staa_resume()
1383 map_write(map, CMD(0xFF), 0); in cfi_staa_resume()
1394 struct map_info *map = mtd->priv; in cfi_staa_destroy() local
1395 struct cfi_private *cfi = map->fldrv_priv; in cfi_staa_destroy()