[U-Boot-Users] [PATCH 6/7 v3] NAND: add NAND driver for s3c64xx

Scott Wood scottwood at freescale.com
Tue Aug 5 00:38:11 CEST 2008


On Mon, Aug 04, 2008 at 02:46:15PM +0200, Guennadi Liakhovetski wrote:
> +#ifdef CONFIG_NAND_SPL
> +static u_char nand_read_byte(struct mtd_info *mtd)
> +{
> +	struct nand_chip *this = mtd->priv;
> +	return readb(this->IO_ADDR_R);
> +}
> +
> +static void nand_write_byte(struct mtd_info *mtd, u_char byte)
> +{
> +	struct nand_chip *this = mtd->priv;
> +	writeb(byte, this->IO_ADDR_W);
> +}
> +
> +static void nand_read_buf(struct mtd_info *mtd, u_char *buf, int len)
> +{
> +	int i;
> +	struct nand_chip *this = mtd->priv;
> +
> +	for (i = 0; i < len; i++)
> +		buf[i] = readb(this->IO_ADDR_R);
> +}
> +#endif

We should probably move this under nand_spl/, and let boards select it
if they need it.

> +/*
> + * Hardware specific access to control-lines function
> + * Written by jsgood
> + */
> +static void s3c_nand_hwcontrol(struct mtd_info *mtd, int cmd)
> +{
> +	struct nand_chip *this = mtd->priv;
> +
> +	switch (cmd) {
> +	case NAND_CTL_SETCLE:
> +		this->IO_ADDR_W = (void __iomem *)NFCMMD;
> +		break;
> +	case NAND_CTL_CLRCLE:
> +		this->IO_ADDR_W = (void __iomem *)NFDATA;
> +		break;
> +	case NAND_CTL_SETALE:
> +		this->IO_ADDR_W = (void __iomem *)NFADDR;
> +		break;
> +	case NAND_CTL_CLRALE:
> +		this->IO_ADDR_W = (void __iomem *)NFDATA;
> +		break;
> +	case NAND_CTL_SETNCE:
> +		s3c_nand_select_chip(mtd, 0);
> +		break;
> +	case NAND_CTL_CLRNCE:
> +		s3c_nand_select_chip(mtd, -1);
> +		break;
> +	}
> +}

This interface has changed in u-boot-nand-flash/testing.  Can you rebase
against it?

-Scott




More information about the U-Boot mailing list