[PATCH 1/2] port ndfc driver to of platform
Arnd Bergmann
arnd at arndb.de
Fri Aug 15 06:16:45 EST 2008
On Thursday 14 August 2008, Sean MacLennan wrote:
> On Thu, 14 Aug 2008 11:53:07 +0200
> "Arnd Bergmann" <arnd at arndb.de> wrote:
>
> > > + ndfc->ndfcbase = ioremap(reg[1], reg[2]);
> >
> > This could be better expressed as of_iomap().
>
> I tried of_iomap(), but it doesn't seem to like the 3 value reg. i.e.
> It doesn't skip the chip select. And since I need to read the reg
> property to get the chip select any way, I just used the value directly.
If of_iomap and of_address_to_resource don't work properly, there
is probably something wrong in your device tree, maybe an incorrect
#size-cells or #address-cells or ranges property in one of
the parents. You need to fix this anyway.
> > > - platform_set_drvdata(pdev, ndfc);
> > > + __raw_writel(ccr, ndfc->ndfcbase + NDFC_CCR);
> > >
> > > - printk("NDFC NAND Driver initialized. Chip-Rev: 0x%08x\n",
> > > - __raw_readl(ndfc->ndfcbase + NDFC_REVID));
> > > + /* Set the bank settings */
> > > + reg = of_get_property(ofdev->node, "bank_settings", NULL);
> > > + bank_settings = reg ? *reg : 0x80002222;
> >
> > Your device tree does have a bank_setting, so why not assume that
> > all others will have it as well? I would remove the default.
>
> I am thinking of making the bank settings an optional value. I assume
> most people with 44x chips with NAND will be using u-boot. If you
> enable NAND in u-boot, it should configure the bank settings for you.
>
> I put the bank setting in my dts just to show a "complete"
> configuration.
Ok, I guess that in the absence of the property, you should not do anything
with this value then, rather than assuming a default.
Arnd <><
More information about the Linuxppc-dev
mailing list