From: Boris Brezillon <boris.brezillon@free-electrons.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 3/6] mtd: nand: Add the sunxi NAND controller driver
Date: Tue, 7 Jun 2016 07:41:55 +0200 [thread overview]
Message-ID: <20160607074155.0020e237@bbrezillon> (raw)
In-Reply-To: <1465257243.22191.97.camel@buserror.net>
On Mon, 06 Jun 2016 18:54:03 -0500
Scott Wood <oss@buserror.net> wrote:
> On Mon, 2016-06-06 at 20:31 +0200, Boris Brezillon wrote:
> > On Mon, 06 Jun 2016 12:56:48 -0500
> > Scott Wood <oss@buserror.net> wrote:
> >
> > > On Mon, 2016-06-06 at 18:22 +0200, Boris Brezillon wrote:
> > > > On Mon, 6 Jun 2016 17:36:10 +0200
> > > > Hans de Goede <hdegoede@redhat.com> wrote:
> > > >
> > > > > > +#ifndef CONFIG_SPL_BUILD
> > > > > > +void sunxi_nand_init(void);
> > > > > > +#endif
> > > > > > +
> > > > >
> > > > > Can we have this in a header somewhere please, and without
> > > > > the #ifdef around it, that is not necessary for prototypes.
> > > >
> > > > Hehe, I was expecting this one :-). Do you know where I should put this
> > > > prototype definition? A board.h file in board/sunxi/?
> > >
> > > It's defined in drivers/mtd/nand and called from board/sunxi so the
> > > prototype
> > > needs to go somewhere under include/. It can go in include/configs/sunxi
> > > -common.h with #ifndef __ASSEMBLY__ around it -- or as long as it's
> > > limited to
> > > one init func per driver, maybe we could just put it in include/nand.h.
> >
> > Hm, none of these solutions seem ideal.
> >
> > Maybe we could define a generic void nand_controller_init(void)
> > prototype so that we don't need to add new xxx_nand_init() functions for
> > platforms needing this 2 steps initialization (platform specific pinmux
> > + clocks config before NAND controller initialization).
> >
> > Otherwise, I think I'll go for the 2nd solution (defining
> > sunxi_nand_init() in include/nand.h).
>
> I'd prefer not having a generic nand_controller_init() because some platforms
> may want to pass arguments, plus I don't want to rule out the possibility of
> two different NAND controller types being supported at once.
>
> include/nand.h is fine with me, as long as any driver than wants more than an
> initfunc moves its stuff into a dedicated header.
Sure.
> Of course the driver model
> is probably the long-term solution.
Definitely, and talking about things that need to be reworked, do you
know why u-boot is using its own MTD partition infrastructure instead
of relying on mtdpart.c?
That's really a pain when one wants to add a new feature (like
definitions of partitions in the DT, or SLC mode on MLC NANDs) because
he has to do it twice.
And that's not the only inconsistent part in the MTD/NAND layer IMO.
MTD is providing a generic abstraction for all flashes, but nand_util
is still directly accessing the NAND layer instead of going through the
MTD abstraction.
By using the MTD abstraction everywhere (I mean for all flash devices),
we could provide generic utils (flash erase, flash write), even if
specific tools might be needed in a few cases.
Anyway, good to hear that you plan to switch to the driver model.
Regards,
Boris
--
Boris Brezillon, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
next prev parent reply other threads:[~2016-06-07 5:41 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-06 15:21 [U-Boot] [PATCH 0/6] sunxi: Add NAND controller driver Boris Brezillon
2016-06-06 15:21 ` [U-Boot] [PATCH 1/6] sunxi: Add missing macros to configure the NAND controller clk Boris Brezillon
2016-06-06 15:21 ` [U-Boot] [PATCH 2/6] mtd: nand: add common DT init code Boris Brezillon
2016-06-06 15:21 ` [U-Boot] [PATCH 3/6] mtd: nand: Add the sunxi NAND controller driver Boris Brezillon
2016-06-06 15:36 ` Hans de Goede
2016-06-06 16:22 ` Boris Brezillon
2016-06-06 17:56 ` Scott Wood
2016-06-06 18:31 ` Boris Brezillon
2016-06-06 23:54 ` Scott Wood
2016-06-07 5:41 ` Boris Brezillon [this message]
2016-06-09 0:44 ` Scott Wood
2016-06-06 15:21 ` [U-Boot] [PATCH 4/6] sun5i: Add NAND controller to the sun5i DTSI Boris Brezillon
2016-06-06 15:21 ` [U-Boot] [PATCH 5/6] mtd: nand: Add a full-id entry for the H27QCG8T2E5R‐BCF NAND Boris Brezillon
2016-06-06 15:21 ` [U-Boot] [PATCH 6/6] sunxi: Enable NAND controller on the CHIP Boris Brezillon
2016-06-06 15:37 ` [U-Boot] [linux-sunxi] [PATCH 0/6] sunxi: Add NAND controller driver Hans de Goede
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160607074155.0020e237@bbrezillon \
--to=boris.brezillon@free-electrons.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox