[PATCH 1/2] nand: Add Marvell Orion NAND driver
Alexander Aring
alex.aring at gmail.com
Tue Aug 26 07:28:13 PDT 2014
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.
> + 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.
- Alex
More information about the barebox
mailing list