Hi Alban, On 2 October 2014 10:12, Alban Bedel <alban.be...@avionic-design.de> wrote: > > On Thu, 02 Oct 2014 09:42:18 -0600 > Stephen Warren <swar...@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.
If you use patman it will take these out for you automatically without you having to think about it. > > > > > Signed-off-by: Alban Bedel <alban.be...@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. This is a temporary measure until the SPL series is applied to dm/next at least (I expect sometime this month). While driver model is available before relocation, the Tegra GPIO driver is not marked in the device tree with "u-boot,dm-pre-reloc", so is not available this early. Device tree additions give Stephen a headache, and I decided it was better for it not to work for now, and just use the SPL function. There are three stages to consider: 1. SPL 2. U-Boot, before relocation 3. U-Boot, after relocation At present, driver model does not support 1 (see dm/spl-working for patches if you want to see this). It supports 2 but only for drivers marked pre-relocation (except serial, for which a hack forces the console to be bound and used in the device tree case without the u-boot,dm-pre-reloc marker). It supports 3 fully. There is a bit of an update on current status here: http://www.denx.de/wiki/U-Boot/DriverModel My approach with driver model is incremental, since that's the only way to make any progress. > > > ... 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? This should work: ifndef CONFIG_SPL_BUILD obj-y += tamonten.o endif But it seems odd to me. At least on seaboard I didn't get the SPL message unless this code was executed. Regards, Simon _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot