[PATCH v4 4/9] nand: spi: add basic blocks for infrastructure

Boris Brezillon boris.brezillon at free-electrons.com
Thu Mar 30 05:51:29 PDT 2017


On Thu, 30 Mar 2017 14:38:00 +0200
Arnaud Mouiche <arnaud.mouiche at gmail.com> wrote:

> On 23/03/2017 10:43, Peter Pan wrote:
> > This is the first commit for spi nand framkework.
> > This commit is to add add basic building blocks
> > for the SPI NAND infrastructure.
> >
> > Signed-off-by: Peter Pan <peterpandong at micron.com>
> > ---
> >   drivers/mtd/nand/Kconfig            |   1 +
> >   drivers/mtd/nand/Makefile           |   1 +
> >   drivers/mtd/nand/spi/Kconfig        |   5 +
> >   drivers/mtd/nand/spi/Makefile       |   2 +
> >   drivers/mtd/nand/spi/core.c         | 464 ++++++++++++++++++++++++++++++++++++
> >   drivers/mtd/nand/spi/manufactures.c |  24 ++
> >   include/linux/mtd/spinand.h         | 270 +++++++++++++++++++++
> >   7 files changed, 767 insertions(+)
> >   create mode 100644 drivers/mtd/nand/spi/Kconfig
> >   create mode 100644 drivers/mtd/nand/spi/Makefile
> >   create mode 100644 drivers/mtd/nand/spi/core.c
> >   create mode 100644 drivers/mtd/nand/spi/manufactures.c
> >   create mode 100644 include/linux/mtd/spinand.h  
> [...]
> > diff --git a/drivers/mtd/nand/spi/manufactures.c b/drivers/mtd/nand/spi/manufactures.c
> > new file mode 100644
> > index 0000000..7e0b42d
> > --- /dev/null
> > +++ b/drivers/mtd/nand/spi/manufactures.c
> > @@ -0,0 +1,24 @@
> > +/**
> > + *
> > + * Copyright (c) 2009-2017 Micron Technology, Inc.
> > + *
> > + * This program is free software; you can redistribute it and/or
> > + * modify it under the terms of the GNU General Public License
> > + * as published by the Free Software Foundation; either version 2
> > + * of the License, or (at your option) any later version.
> > + *
> > + * This program is distributed in the hope that it will be useful,
> > + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> > + * GNU General Public License for more details.
> > + */
> > +
> > +#include <linux/module.h>
> > +#include <linux/mtd/spinand.h>
> > +
> > +struct spinand_manufacturer spinand_manufacturer_end = {0x0, "Unknown", NULL};
> > +
> > +struct spinand_manufacturer *spinand_manufacturers[] = {
> > +	&spinand_manufacturer_end,
> > +};  
> 
> *const* struct spinand_manufacturer *spinand_manufacturers[]  ?
> 
> > +EXPORT_SYMBOL(spinand_manufacturers);
> > diff --git a/include/linux/mtd/spinand.h b/include/linux/mtd/spinand.h
> > new file mode 100644
> > index 0000000..44748b4
> > --- /dev/null
> > +++ b/include/linux/mtd/spinand.h
> > @@ -0,0 +1,270 @@
> > +/**
> > + *
> > + * Copyright (c) 2009-2017 Micron Technology, Inc.
> > + *
> > + * This program is free software; you can redistribute it and/or
> > + * modify it under the terms of the GNU General Public License
> > + * as published by the Free Software Foundation; either version 2
> > + * of the License, or (at your option) any later version.
> > + *
> > + * This program is distributed in the hope that it will be useful,
> > + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> > + * GNU General Public License for more details.
> > + */
> > +#ifndef __LINUX_MTD_SPINAND_H
> > +#define __LINUX_MTD_SPINAND_H
> > +
> > +#include <linux/mutex.h>
> > +#include <linux/mtd/mtd.h>
> > +#include <linux/mtd/nand.h>
> > +  
> 
> [...]
> 
> > +
> > +enum spinand_ecc_mode {
> > +	SPINAND_ECC_ONDIE,
> > +	SPINAND_ECC_HW,
> > +};
> > +
> > +struct spinand_ecc_engine {
> > +	enum spinand_ecc_mode mode;
> > +	u32 strength;
> > +	u32 steps;
> > +	struct spinand_ecc_engine_ops *ops;  
> 
> const struct spinand_ecc_engine_ops ?
> 

Yep.



More information about the linux-mtd mailing list