• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/mtd/nand/

Lines Matching defs:ndfc

2  *  drivers/mtd/ndfc.c
30 #include <linux/mtd/ndfc.h>
54 struct ndfc_controller *ndfc = &ndfc_ctrl;
56 ccr = in_be32(ndfc->ndfcbase + NDFC_CCR);
59 ccr |= NDFC_CCR_BS(chip + ndfc->chip_select);
62 out_be32(ndfc->ndfcbase + NDFC_CCR, ccr);
67 struct ndfc_controller *ndfc = &ndfc_ctrl;
73 writel(cmd & 0xFF, ndfc->ndfcbase + NDFC_CMD);
75 writel(cmd & 0xFF, ndfc->ndfcbase + NDFC_ALE);
80 struct ndfc_controller *ndfc = &ndfc_ctrl;
82 return in_be32(ndfc->ndfcbase + NDFC_STAT) & NDFC_STAT_IS_READY;
88 struct ndfc_controller *ndfc = &ndfc_ctrl;
90 ccr = in_be32(ndfc->ndfcbase + NDFC_CCR);
92 out_be32(ndfc->ndfcbase + NDFC_CCR, ccr);
99 struct ndfc_controller *ndfc = &ndfc_ctrl;
104 ecc = in_be32(ndfc->ndfcbase + NDFC_ECC);
122 struct ndfc_controller *ndfc = &ndfc_ctrl;
126 *p++ = in_be32(ndfc->ndfcbase + NDFC_DATA);
131 struct ndfc_controller *ndfc = &ndfc_ctrl;
135 out_be32(ndfc->ndfcbase + NDFC_DATA, *p++);
140 struct ndfc_controller *ndfc = &ndfc_ctrl;
144 if (*p++ != in_be32(ndfc->ndfcbase + NDFC_DATA))
152 static int ndfc_chip_init(struct ndfc_controller *ndfc,
163 struct nand_chip *chip = &ndfc->chip;
166 chip->IO_ADDR_R = ndfc->ndfcbase + NDFC_DATA;
167 chip->IO_ADDR_W = ndfc->ndfcbase + NDFC_DATA;
172 chip->controller = &ndfc->ndfc_control;
183 ndfc->mtd.priv = chip;
184 ndfc->mtd.owner = THIS_MODULE;
190 ndfc->mtd.name = kasprintf(GFP_KERNEL, "%s.%s",
191 dev_name(&ndfc->ofdev->dev), flash_np->name);
192 if (!ndfc->mtd.name) {
197 ret = nand_scan(&ndfc->mtd, 1);
202 ret = parse_mtd_partitions(&ndfc->mtd, part_types, &ndfc->parts, 0);
208 ret = of_mtd_parse_partitions(&ndfc->ofdev->dev, flash_np,
209 &ndfc->parts);
216 ret = add_mtd_partitions(&ndfc->mtd, ndfc->parts, ret);
219 ret = add_mtd_device(&ndfc->mtd);
224 kfree(ndfc->mtd.name);
231 struct ndfc_controller *ndfc = &ndfc_ctrl;
236 spin_lock_init(&ndfc->ndfc_control.lock);
237 init_waitqueue_head(&ndfc->ndfc_control.wq);
238 ndfc->ofdev = ofdev;
239 dev_set_drvdata(&ofdev->dev, ndfc);
247 ndfc->chip_select = reg[0];
249 ndfc->ndfcbase = of_iomap(ofdev->dev.of_node, 0);
250 if (!ndfc->ndfcbase) {
255 ccr = NDFC_CCR_BS(ndfc->chip_select);
262 out_be32(ndfc->ndfcbase + NDFC_CCR, ccr);
267 int offset = NDFC_BCFG0 + (ndfc->chip_select << 2);
268 out_be32(ndfc->ndfcbase + offset, *reg);
271 err = ndfc_chip_init(ndfc, ofdev->dev.of_node);
273 iounmap(ndfc->ndfcbase);
282 struct ndfc_controller *ndfc = dev_get_drvdata(&ofdev->dev);
284 nand_release(&ndfc->mtd);
290 { .compatible = "ibm,ndfc", },
297 .name = "ndfc",