[U-Boot] OMAP3 Beagle Pin Mux initialization issue

Wolfgang Denk
2011-02-22T07:28:13Z

Dear Bob Feretich,

In message <4D6316A8.4090900@prodigy.net> you wrote:
> The BeagleBoard beagle.c file contains:
> 242 /* Configure GPIOs to output */
> 243 writel(~(GPIO23 | GPIO10 | GPIO8 | GPIO2 | GPIO1),
> &gpio6_base->oe);
> 244 writel(~(GPIO31 | GPIO30 | GPIO29 | GPIO28 | GPIO22 | GPIO21 |
> 245 GPIO15 | GPIO14 | GPIO13 | GPIO12), &gpio5_base->oe);
> 246
> 247 /* Set GPIOs */
> 248 writel(GPIO23 | GPIO10 | GPIO8 | GPIO2 | GPIO1,
> 249 &gpio6_base->setdataout);
> 250 writel(GPIO31 | GPIO30 | GPIO29 | GPIO28 | GPIO22 | GPIO21 |
> 251 GPIO15 | GPIO14 | GPIO13 | GPIO12,
> &gpio5_base->setdataout);
>
> It first sets some pins as outputs and then initializes their values.
> This can cause narrow glitches on the output pins.
>
> To prevent the glitches the order should be reversed. First Set the
> GPIOs, then Configure them as outputs.

You are right. Can you please submit a patch? For instructions
please see http://www.denx.de/wiki/U-Boot/Patches

> Also, I have observed the discussion regarding moving Pin Mux control to
> the kernel. This is fine except for pins that need to be configured ASAP
> after power-on. (The system could sit at the u-boot command prompt
> indefinitely, so the kernel pin mux configuration can be significantly
> delayed.). Please leave the hook so that u-boot customizers can
> configure their critical pins muxes.

Which pins would that be, for example?

Best regards,

Wolfgang Denk

--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
But the only way of discovering the limits of the possible is to
venture a little way past them into the impossible.
- _Profiles of the Future_ (1962; rev. 1973)
``Hazards of Prophecy: The Failure of Imagination''