Lines Matching refs:onenand

68 static struct s3c_onenand *onenand;  variable
72 return readl(onenand->ahb_addr + cmd); in s3c_read_cmd()
77 writel(value, onenand->ahb_addr + cmd); in s3c_write_cmd()
102 writel(ONENAND_MEM_RESET_COLD, &onenand->reg->mem_reset); in s3c_onenand_reset()
104 stat = readl(&onenand->reg->int_err_stat); in s3c_onenand_reset()
108 stat = readl(&onenand->reg->int_err_stat); in s3c_onenand_reset()
109 writel(stat, &onenand->reg->int_err_ack); in s3c_onenand_reset()
112 writel(0x0, &onenand->reg->int_err_ack); in s3c_onenand_reset()
114 writel(0x0, &onenand->reg->ecc_err_stat); in s3c_onenand_reset()
119 struct onenand_chip *this = onenand->mtd->priv; in s3c_onenand_readw()
127 return readl(&onenand->reg->manufact_id); in s3c_onenand_readw()
129 return readl(&onenand->reg->device_id); in s3c_onenand_readw()
131 return readl(&onenand->reg->flash_ver_id); in s3c_onenand_readw()
133 return readl(&onenand->reg->data_buf_size); in s3c_onenand_readw()
135 return readl(&onenand->reg->tech); in s3c_onenand_readw()
137 return readl(&onenand->reg->mem_cfg); in s3c_onenand_readw()
151 if (reg < ONENAND_DATARAM && onenand->bootram_command) { in s3c_onenand_readw()
153 return readl(&onenand->reg->manufact_id); in s3c_onenand_readw()
155 return readl(&onenand->reg->device_id); in s3c_onenand_readw()
157 return readl(&onenand->reg->flash_ver_id); in s3c_onenand_readw()
168 struct onenand_chip *this = onenand->mtd->priv; in s3c_onenand_writew()
175 writel(value, &onenand->reg->mem_cfg); in s3c_onenand_writew()
193 onenand->bootram_command = 1; in s3c_onenand_writew()
198 &onenand->reg->mem_reset); in s3c_onenand_writew()
199 onenand->bootram_command = 0; in s3c_onenand_writew()
234 stat = readl(&onenand->reg->int_err_stat); in s3c_onenand_wait()
240 stat = readl(&onenand->reg->int_err_stat); in s3c_onenand_wait()
241 writel(stat, &onenand->reg->int_err_ack); in s3c_onenand_wait()
249 ecc = readl(&onenand->reg->ecc_err_stat); in s3c_onenand_wait()
285 mem_addr = onenand->mem_addr(fba, fpa, fsa); in s3c_onenand_command()
301 m = (unsigned int *) onenand->page_buf; in s3c_onenand_command()
302 s = (unsigned int *) onenand->oob_buf; in s3c_onenand_command()
320 writel(TSRF, &onenand->reg->trans_spare); in s3c_onenand_command()
329 writel(0, &onenand->reg->trans_spare); in s3c_onenand_command()
339 writel(TSRF, &onenand->reg->trans_spare); in s3c_onenand_command()
349 writel(0, &onenand->reg->trans_spare); in s3c_onenand_command()
382 p = (unsigned char *) onenand->page_buf; in s3c_get_bufferram()
386 p = (unsigned char *) onenand->oob_buf; in s3c_get_bufferram()
418 struct samsung_onenand *reg = (struct samsung_onenand *)onenand->base; in s3c_onenand_bbt_wait()
429 stat = readl(&onenand->reg->int_err_stat); in s3c_onenand_bbt_wait()
430 writel(stat, &onenand->reg->int_err_ack); in s3c_onenand_bbt_wait()
438 int ecc = readl(&onenand->reg->ecc_err_stat); in s3c_onenand_bbt_wait()
456 s3c_read_cmd(CMD_MAP_01(onenand->mem_addr(block, 0, 0))); in s3c_onenand_check_lock_status()
458 if (readl(&onenand->reg->int_err_stat) & LOCKED_BLK) { in s3c_onenand_check_lock_status()
460 writel(LOCKED_BLK, &onenand->reg->int_err_ack); in s3c_onenand_check_lock_status()
472 start_mem_addr = onenand->mem_addr(start, 0, 0); in s3c_onenand_do_lock_cmd()
474 end_mem_addr = onenand->mem_addr(end, 0, 0); in s3c_onenand_do_lock_cmd()
534 onenand = malloc(sizeof(struct s3c_onenand)); in s3c_onenand_init()
535 if (!onenand) in s3c_onenand_init()
538 onenand->page_buf = malloc(size * sizeof(char)); in s3c_onenand_init()
539 if (!onenand->page_buf) in s3c_onenand_init()
541 memset(onenand->page_buf, 0xff, size); in s3c_onenand_init()
543 onenand->oob_buf = malloc(128 * sizeof(char)); in s3c_onenand_init()
544 if (!onenand->oob_buf) in s3c_onenand_init()
546 memset(onenand->oob_buf, 0xff, 128); in s3c_onenand_init()
548 onenand->mtd = mtd; in s3c_onenand_init()
551 onenand->base = (void *)0xE7100000; in s3c_onenand_init()
552 onenand->ahb_addr = (void *)0xB0000000; in s3c_onenand_init()
554 onenand->mem_addr = s3c_mem_addr; in s3c_onenand_init()
555 onenand->reg = (struct samsung_onenand *)onenand->base; in s3c_onenand_init()