[U-Boot] [PATCH] tegra20: tamonten: Fix the early gpio init

Alban Bedel alban.bedel at avionic-design.de
Thu Oct 2 18:12:03 CEST 2014


On Thu, 02 Oct 2014 09:42:18 -0600
Stephen Warren <swarren at wwwdotorg.org> wrote:

> On 10/02/2014 09:14 AM, Alban Bedel wrote:
> > To set gpio during the early init we now need to use
> > tegra_spl_gpio_direction_output(), copied from seaboard.
> >
> > Change-Id: Id0aadb17a71b78e75e8c3f8de374102b3eab767b
> 
> That shouldn't be present on upstream patches.

Sorry about this.

> > Signed-off-by: Alban Bedel <alban.bedel at avionic-design.de>
> > ---
> >   board/avionic-design/common/tamonten.c | 4 +++-
> >   1 file changed, 3 insertions(+), 1 deletion(-)
> >
> > diff --git a/board/avionic-design/common/tamonten.c b/board/avionic-design/common/tamonten.c
> > index 9c86779..ea2425a 100644
> > --- a/board/avionic-design/common/tamonten.c
> > +++ b/board/avionic-design/common/tamonten.c
> > @@ -23,8 +23,10 @@
> >   #ifdef CONFIG_BOARD_EARLY_INIT_F
> >   void gpio_early_init(void)
> >   {
> > +#ifndef CONFIG_SPL_BUILD
> >   	gpio_request(GPIO_PI4, NULL);
> > -	gpio_direction_output(GPIO_PI4, 1);
> > +#endif
> > +	tegra_spl_gpio_direction_output(GPIO_PI4, 1);
> >   }
> 
> Surely you only want to call tegra_spl_*() from SPL, and not from 
> non-SPL code? In other words, don't you need something more like:
> 
> #ifdef CONFIG_SPL_BUILD
> 	tegra_spl_gpio_direction_output(GPIO_PI4, 1);
> #else
> 	gpio_request(GPIO_PI4, NULL);
> 	gpio_direction_output(GPIO_PI4, 1);
> #endif

Sadly not, at this point the gpio driver isn't available yet, that's
why one need to use tegra_spl_gpio_direction_output(). As mentioned in
the commit log I copied this from seaboard, assuming it would be
correct.

AFAICT the gpio_request() could be removed too, it doesn't work at this
point anyway.

> ... although perhaps the SPL and non-SPL code should simply be separated 
> into separate files, so that there's no need for ifdefs, and it's 
> obvious if SPL and non-SPL code are duplicating the same work?

Actually none of the code from tamonten.c is needed for the SPL, a
build with both function under #ifndef CONFIG_SPL_BUILD works just fine.
Any pointer on how I can get tamonten.c out of the SPL build?

Alban
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20141002/5e94bc1a/attachment.pgp>


More information about the U-Boot mailing list