[PATCH v2 3/6] mtd: nand: pxa3xx: Add support for the Marvell AC5 SoC
Michael Nazzareno Trimarchi
michael at amarulasolutions.com
Thu Jul 13 10:18:44 CEST 2023
Hi
On Thu, Jul 13, 2023 at 10:17 AM Stefan Roese <sr at denx.de> wrote:
>
> On 7/10/23 00:47, Chris Packham wrote:
> > The NAND flash controller (NFC) on the AC5/AC5X SoC is the same as
> > the NFC used on other Marvell SoCs. It does have the additional
> > restriction of only supporting SDR timing modes up to 3.
> >
> > Signed-off-by: Chris Packham <judge.packham at gmail.com>
>
> Reviewed-by: Stefan Roese <sr at denx.de>
>
Reviewed-by: Michael Trimarchi <michael at amarulasolutions.com>
Michael
> Thanks,
> Stefan
>
> > ---
> > drivers/mtd/nand/raw/pxa3xx_nand.c | 17 ++++++++++++++---
> > 1 file changed, 14 insertions(+), 3 deletions(-)
> >
> > diff --git a/drivers/mtd/nand/raw/pxa3xx_nand.c b/drivers/mtd/nand/raw/pxa3xx_nand.c
> > index fcd1b9c63614..9dee580ab9c2 100644
> > --- a/drivers/mtd/nand/raw/pxa3xx_nand.c
> > +++ b/drivers/mtd/nand/raw/pxa3xx_nand.c
> > @@ -167,6 +167,7 @@ enum pxa3xx_nand_variant {
> > PXA3XX_NAND_VARIANT_PXA,
> > PXA3XX_NAND_VARIANT_ARMADA370,
> > PXA3XX_NAND_VARIANT_ARMADA_8K,
> > + PXA3XX_NAND_VARIANT_AC5,
> > };
> >
> > struct pxa3xx_nand_host {
> > @@ -391,6 +392,10 @@ static const struct udevice_id pxa3xx_nand_dt_ids[] = {
> > .compatible = "marvell,armada-8k-nand-controller",
> > .data = PXA3XX_NAND_VARIANT_ARMADA_8K,
> > },
> > + {
> > + .compatible = "marvell,mvebu-ac5-pxa3xx-nand",
> > + .data = PXA3XX_NAND_VARIANT_AC5,
> > + },
> > {}
> > };
> >
> > @@ -505,6 +510,9 @@ static int pxa3xx_nand_init_timings(struct pxa3xx_nand_host *host)
> > if (mode < 0)
> > mode = 0;
> >
> > + if (info->variant == PXA3XX_NAND_VARIANT_AC5)
> > + mode = min(mode, 3);
> > +
> > timings = onfi_async_timing_mode_to_sdr_timings(mode);
> > if (IS_ERR(timings))
> > return PTR_ERR(timings);
> > @@ -730,7 +738,8 @@ static irqreturn_t pxa3xx_nand_irq(struct pxa3xx_nand_info *info)
> >
> > /* NDCB3 register is available in NFCv2 (Armada 370/XP SoC) */
> > if (info->variant == PXA3XX_NAND_VARIANT_ARMADA370 ||
> > - info->variant == PXA3XX_NAND_VARIANT_ARMADA_8K)
> > + info->variant == PXA3XX_NAND_VARIANT_ARMADA_8K ||
> > + info->variant == PXA3XX_NAND_VARIANT_AC5)
> > nand_writel(info, NDCB0, info->ndcb3);
> > }
> >
> > @@ -1579,7 +1588,8 @@ static int pxa3xx_nand_scan(struct mtd_info *mtd)
> >
> > /* Device detection must be done with ECC disabled */
> > if (info->variant == PXA3XX_NAND_VARIANT_ARMADA370 ||
> > - info->variant == PXA3XX_NAND_VARIANT_ARMADA_8K)
> > + info->variant == PXA3XX_NAND_VARIANT_ARMADA_8K ||
> > + info->variant == PXA3XX_NAND_VARIANT_AC5)
> > nand_writel(info, NDECCCTRL, 0x0);
> >
> > if (nand_scan_ident(mtd, 1, NULL))
> > @@ -1630,7 +1640,8 @@ static int pxa3xx_nand_scan(struct mtd_info *mtd)
> > */
> > if (mtd->writesize > info->chunk_size) {
> > if (info->variant == PXA3XX_NAND_VARIANT_ARMADA370 ||
> > - info->variant == PXA3XX_NAND_VARIANT_ARMADA_8K) {
> > + info->variant == PXA3XX_NAND_VARIANT_ARMADA_8K ||
> > + info->variant == PXA3XX_NAND_VARIANT_AC5) {
> > chip->cmdfunc = nand_cmdfunc_extended;
> > } else {
> > dev_err(mtd->dev,
>
> Viele Grüße,
> Stefan Roese
>
> --
> DENX Software Engineering GmbH, Managing Director: Erika Unter
> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
> Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: sr at denx.de
--
Michael Nazzareno Trimarchi
Co-Founder & Chief Executive Officer
M. +39 347 913 2170
michael at amarulasolutions.com
__________________________________
Amarula Solutions BV
Joop Geesinkweg 125, 1114 AB, Amsterdam, NL
T. +31 (0)85 111 9172
info at amarulasolutions.com
www.amarulasolutions.com
More information about the U-Boot
mailing list