Lines Matching defs:map
31 static int get_chip(struct map_info *map, struct flchip *chip, int mode);
32 static int chip_ready(struct map_info *map, struct flchip *chip, int mode);
33 static void put_chip(struct map_info *map, struct flchip *chip);
35 struct mtd_info *lpddr_cmdset(struct map_info *map)
37 struct lpddr_private *lpddr = map->fldrv_priv;
47 mtd->priv = map;
60 if (map_is_linear(map)) {
125 static int wait_for_ready(struct map_info *map, struct flchip *chip,
141 dsr = CMDVAL(map_read(map, map->pfow_base + PFOW_DSR));
146 map->name, chip_state);
188 map_write(map, CMD(~(DSR_ERR)), map->pfow_base + PFOW_DSR);
190 map->name, dsr);
198 static int get_chip(struct map_info *map, struct flchip *chip, int mode)
243 ret = chip_ready(map, contender, mode);
259 put_chip(map, contender);
287 ret = chip_ready(map, chip, mode);
294 static int chip_ready(struct map_info *map, struct flchip *chip, int mode)
296 struct lpddr_private *lpddr = map->fldrv_priv;
314 map_write(map, CMD(LPDDR_SUSPEND),
315 map->pfow_base + PFOW_PROGRAM_ERASE_SUSPEND);
318 ret = wait_for_ready(map, chip, 0);
322 put_chip(map, chip);
324 "State may be wrong \n", map->name);
348 static void put_chip(struct map_info *map, struct flchip *chip)
362 put_chip(map, loaner);
387 map_write(map, CMD(LPDDR_RESUME),
388 map->pfow_base + PFOW_COMMAND_CODE);
389 map_write(map, CMD(LPDDR_START_EXECUTION),
390 map->pfow_base + PFOW_COMMAND_EXECUTE);
398 map->name, chip->oldstate);
403 static int do_write_buffer(struct map_info *map, struct flchip *chip,
407 struct lpddr_private *lpddr = map->fldrv_priv;
417 ret = get_chip(map, chip, FL_WRITING);
423 word_gap = (-adr & (map_bankwidth(map)-1));
424 words = (len - word_gap + map_bankwidth(map) - 1) / map_bankwidth(map);
428 word_gap = map_bankwidth(map) - word_gap;
430 datum = map_word_ff(map);
434 prog_buf_ofs = map->pfow_base + CMDVAL(map_read(map,
435 map->pfow_base + PFOW_PROGRAM_BUFFER_OFFSET));
439 int n = map_bankwidth(map) - word_gap;
446 if (!word_gap && (len < map_bankwidth(map)))
447 datum = map_word_ff(map);
449 datum = map_word_load_partial(map, datum,
454 if (!len || word_gap == map_bankwidth(map)) {
455 map_write(map, datum, prog_buf_ofs);
456 prog_buf_ofs += map_bankwidth(map);
470 send_pfow_command(map, LPDDR_BUFF_PROGRAM, adr, wbufsize, NULL);
472 ret = wait_for_ready(map, chip, (1<<lpddr->qinfo->ProgBufferTime));
475 map->name, ret, adr);
479 out: put_chip(map, chip);
486 struct map_info *map = mtd->priv;
487 struct lpddr_private *lpddr = map->fldrv_priv;
493 ret = get_chip(map, chip, FL_ERASING);
498 send_pfow_command(map, LPDDR_BLOCK_ERASE, adr, 0, NULL);
500 ret = wait_for_ready(map, chip, (1<<lpddr->qinfo->BlockEraseTime)*1000);
503 map->name, ret, adr);
506 out: put_chip(map, chip);
514 struct map_info *map = mtd->priv;
515 struct lpddr_private *lpddr = map->fldrv_priv;
521 ret = get_chip(map, chip, FL_READY);
527 map_copy_from(map, buf, adr, len);
530 put_chip(map, chip);
538 struct map_info *map = mtd->priv;
539 struct lpddr_private *lpddr = map->fldrv_priv;
545 if (!map->virt)
550 *mtdbuf = (void *)map->virt + chip->start + ofs;
570 ret = get_chip(map, chip, FL_POINT);
590 struct map_info *map = mtd->priv;
591 struct lpddr_private *lpddr = map->fldrv_priv;
618 "pointed region\n", map->name);
622 put_chip(map, chip);
648 struct map_info *map = mtd->priv;
649 struct lpddr_private *lpddr = map->fldrv_priv;
674 ret = do_write_buffer(map, &lpddr->chips[chipnum],
696 struct map_info *map = mtd->priv;
697 struct lpddr_private *lpddr = map->fldrv_priv;
719 struct map_info *map = mtd->priv;
720 struct lpddr_private *lpddr = map->fldrv_priv;
725 ret = get_chip(map, chip, FL_LOCKING);
732 send_pfow_command(map, LPDDR_LOCK_BLOCK, adr, adr + len, NULL);
735 send_pfow_command(map, LPDDR_UNLOCK_BLOCK, adr, adr + len, NULL);
740 ret = wait_for_ready(map, chip, 1);
743 map->name, ret);
746 out: put_chip(map, chip);