Lines Matching refs:onenand

19 #include <linux/mtd/onenand.h>
143 static struct s3c_onenand *onenand;
147 return readl(onenand->base + offset);
152 writel(value, onenand->base + offset);
157 return readl(onenand->ahb_addr + cmd);
162 writel(value, onenand->ahb_addr + cmd);
172 (unsigned int) onenand->base + i,
218 struct onenand_chip *this = onenand->mtd->priv;
219 struct device *dev = &onenand->pdev->dev;
251 if ((unsigned long)addr < ONENAND_DATARAM && onenand->bootram_command) {
260 value = s3c_read_cmd(CMD_MAP_11(onenand, word_addr)) & 0xffff;
268 struct onenand_chip *this = onenand->mtd->priv;
269 struct device *dev = &onenand->pdev->dev;
294 onenand->bootram_command = 1;
299 onenand->bootram_command = 0;
307 s3c_write_cmd(value, CMD_MAP_11(onenand, word_addr));
312 struct device *dev = &onenand->pdev->dev;
390 mem_addr = onenand->mem_addr(fba, fpa, fsa);
391 cmd_map_01 = CMD_MAP_01(onenand, mem_addr);
392 cmd_map_10 = CMD_MAP_10(onenand, mem_addr);
409 m = onenand->page_buf;
410 s = onenand->oob_buf;
482 p = onenand->page_buf;
486 p = onenand->oob_buf;
520 void __iomem *base = onenand->dma_addr;
564 void __iomem *base = onenand->dma_addr;
578 if (!onenand->complete.done)
579 complete(&onenand->complete);
586 void __iomem *base = onenand->dma_addr;
611 wait_for_completion_timeout(&onenand->complete, msecs_to_jiffies(20));
624 struct device *dev = &onenand->pdev->dev;
635 !onenand->dma_addr || count != mtd->writesize)
654 dma_src = onenand->phys_base + (p - this->base);
658 dma_src = onenand->phys_base + (p - this->base);
730 struct device *dev = &onenand->pdev->dev;
736 unsigned int mem_addr = onenand->mem_addr(block, 0, 0);
737 s3c_read_cmd(CMD_MAP_01(onenand, mem_addr));
753 start_mem_addr = onenand->mem_addr(start, 0, 0);
755 end_mem_addr = onenand->mem_addr(end, 0, 0);
758 s3c_write_cmd(ONENAND_LOCK_START, CMD_MAP_10(onenand,
760 s3c_write_cmd(ONENAND_LOCK_END, CMD_MAP_10(onenand,
763 s3c_write_cmd(ONENAND_UNLOCK_START, CMD_MAP_10(onenand,
765 s3c_write_cmd(ONENAND_UNLOCK_END, CMD_MAP_10(onenand,
805 onenand->mtd = mtd;
807 if (onenand->type == TYPE_S3C6400) {
808 onenand->mem_addr = s3c6400_mem_addr;
809 onenand->cmd_map = s3c64xx_cmd_map;
810 } else if (onenand->type == TYPE_S3C6410) {
811 onenand->mem_addr = s3c6410_mem_addr;
812 onenand->cmd_map = s3c64xx_cmd_map;
813 } else if (onenand->type == TYPE_S5PC110) {
814 /* Use generic onenand functions */
850 onenand = devm_kzalloc(&pdev->dev, sizeof(struct s3c_onenand),
852 if (!onenand)
858 onenand->pdev = pdev;
859 onenand->type = platform_get_device_id(pdev)->driver_data;
863 onenand->base = devm_platform_get_and_ioremap_resource(pdev, 0, &r);
864 if (IS_ERR(onenand->base))
865 return PTR_ERR(onenand->base);
867 onenand->phys_base = r->start;
870 this->base = onenand->base;
875 if (onenand->type != TYPE_S5PC110) {
876 onenand->ahb_addr = devm_platform_ioremap_resource(pdev, 1);
877 if (IS_ERR(onenand->ahb_addr))
878 return PTR_ERR(onenand->ahb_addr);
881 onenand->page_buf = devm_kzalloc(&pdev->dev, SZ_4K,
883 if (!onenand->page_buf)
887 onenand->oob_buf = devm_kzalloc(&pdev->dev, 128, GFP_KERNEL);
888 if (!onenand->oob_buf)
896 onenand->dma_addr = devm_platform_ioremap_resource(pdev, 1);
897 if (IS_ERR(onenand->dma_addr))
898 return PTR_ERR(onenand->dma_addr);
904 init_completion(&onenand->complete);
908 IRQF_SHARED, "onenand",
909 &onenand);
921 if (onenand->type != TYPE_S5PC110) {
928 dev_info(&onenand->pdev->dev, "OneNAND Sync. Burst Read enabled\n");
975 .name = "s3c6400-onenand",
978 .name = "s3c6410-onenand",
981 .name = "s5pc110-onenand",
989 .name = "samsung-onenand",