[PATCH v5 19/39] mtd: rawnand: add support for ts72xx

Miquel Raynal miquel.raynal at bootlin.com
Fri Dec 8 03:33:38 PST 2023


Hi Nikita,

> > > +               for (i = 0; i < instr->ctx.addr.naddrs; i++)
> > > +                       iowrite8(instr->ctx.addr.addrs[i], data-  
> > > >base);  
> > 
> > iowrite8_rep() ?
> >   
> > > +       case NAND_OP_DATA_IN_INSTR:
> > > +               ioread8_rep(data->base, instr->ctx.data.buf.in,
> > > instr->ctx.data.len);  
> > 
> > Hehe, you are even using it...
> > 
> > ...
> >   
> > > +       if (instr->delay_ns)  
> > 
> > What will happen if you drop this check?
> >   
> > > +               ndelay(instr->delay_ns);  
> 
> No idea! I was asked to keep it by Miquel:

Your controller is very simple and just queues whatever command you
ask, precisely when you ask it to do so. But the NAND bus is a bit more
complex and there are minimum delays between certain instructions. This
delay is meant to respect that. Sometimes it will be 0, and sometimes
not. It depends what NAND op you do. You can check the value of these
delays in the core.

Thanks,
Miquèl



More information about the linux-mtd mailing list