[PATCH 1/2] nand: Add Marvell Orion NAND driver

Sascha Hauer s.hauer at pengutronix.de
Mon Sep 1 02:33:42 PDT 2014


On Tue, Aug 26, 2014 at 04:28:13PM +0200, Alexander Aring wrote:
> Hi,
> 
> On Sat, Aug 23, 2014 at 05:19:22PM -0300, Ezequiel Garcia wrote:
> > This commit adds NAND support for the controller present in Kirkwood SoCs.
> > 
> 
> cool! I will test it on my DNS-325 platform, if I find some free time.
> 
> Thanks for doing this.
> 
> > Signed-off-by: Ezequiel Garcia <ezequiel.garcia at free-electrons.com>
> > ---
> >  drivers/mtd/nand/Kconfig      |   7 ++
> >  drivers/mtd/nand/Makefile     |   1 +
> >  drivers/mtd/nand/nand_orion.c | 162 ++++++++++++++++++++++++++++++++++++++++++
> >  3 files changed, 170 insertions(+)
> >  create mode 100644 drivers/mtd/nand/nand_orion.c
> > 
> > diff --git a/drivers/mtd/nand/Kconfig b/drivers/mtd/nand/Kconfig
> > index 04fe3c8..ccf1f9c 100644
> > --- a/drivers/mtd/nand/Kconfig
> > +++ b/drivers/mtd/nand/Kconfig
> > @@ -90,6 +90,13 @@ config NAND_OMAP_GPMC
> >  	  Support for NAND flash using GPMC. GPMC is a common memory
> >  	  interface found on Texas Instrument's OMAP platforms
> >  
> > +config NAND_ORION
> > +	bool
> > +	prompt "Orion NAND driver"
> > +	depends on ARCH_MVEBU
> > +	help
> > +	  Support for the Orion NAND controller, present in Kirkwood SoCs.
> > +
> >  config NAND_ATMEL
> >  	bool
> >  	prompt "Atmel (AT91SAM9xxx) NAND driver"
> ...
> > +
> > +static int orion_nand_probe(struct device_d *dev)
> > +{
> > +	struct device_node *dev_node = dev->device_node;
> > +	struct orion_nand *priv;
> > +	struct mtd_info *mtd;
> > +	struct nand_chip *chip;
> > +	struct clk *clk;
> > +	void __iomem *io_base;
> > +	int width, ret;
> > +	u32 val = 0;
> > +
> > +	priv = xzalloc(sizeof(struct orion_nand));
> > +	if (!priv) {
> > +		ret = -ENOMEM;
> > +		goto no_res;
> > +	}
> 
> checking on null with xzalloc isn't needed, if fails we run into panic.

removed the check while applying.

> 
> > +	mtd = &priv->mtd;
> > +	chip = &priv->chip;
> > +
> > +	io_base = dev_request_mem_region(dev, 0);
> > +
> 
> here we should check the return value. I don't know what's now the
> behaviour on dev_request_mem_region if fail returns NULL or ERR_PTR.
> There was some discussion on the list.

It still returns NULL. I have a series converting it to return ERR_PTR,
but this isn't mainlined yet. I'll have to rebase it on current master.

Sascha


-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



More information about the barebox mailing list