[U-Boot] OMAP3 Beagle Pin Mux initialization glitch fix

Submitted by Bob Feretich on Feb. 24, 2011, 11:16 p.m.

Details

Message ID 4D66E6DC.8070604@rafresearch.com
State Accepted
Delegated to: Tom Rini
Headers show

Commit Message

Bob Feretich Feb. 24, 2011, 11:16 p.m.
The below patch reverses the order of two segments in the board file.
Output pins need to have their values initialized, before they are
exposed to the logic outside the chip.

Signed-off-by: Bob Feretich <bob.feretich@rafresearch.com>
Cc: Wolfgang Denk <wd@denx.de>
---

--

Comments

Jason Kridner March 1, 2011, 11:06 p.m.
On Thu, Feb 24, 2011 at 6:16 PM, Bob Feretich
<bob.feretich@rafresearch.com> wrote:
> The below patch reverses the order of two segments in the board file.
> Output pins need to have their values initialized, before they are
> exposed to the logic outside the chip.
>
> Signed-off-by: Bob Feretich <bob.feretich@rafresearch.com>
> Cc: Wolfgang Denk <wd@denx.de>

Looks good to me.  Thanks Bob!  We'll try to pick this up in the
default u-boot that ships with the board.

> ---
>
> diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c
> --- a/board/ti/beagle/beagle.c  2011-02-23 17:26:27.000000000 -0800
> +++ b/board/ti/beagle/beagle.c  2011-02-23 17:47:44.000000000 -0800
> @@ -239,17 +239,17 @@ int misc_init_r(void)
>        twl4030_power_init();
>        twl4030_led_init(TWL4030_LED_LEDEN_LEDAON | TWL4030_LED_LEDEN_LEDBON);
>
> -       /* Configure GPIOs to output */
> -       writel(~(GPIO23 | GPIO10 | GPIO8 | GPIO2 | GPIO1), &gpio6_base->oe);
> -       writel(~(GPIO31 | GPIO30 | GPIO29 | GPIO28 | GPIO22 | GPIO21 |
> -               GPIO15 | GPIO14 | GPIO13 | GPIO12), &gpio5_base->oe);
> -
> -       /* Set GPIOs */
> +       /* Set GPIO states before they are made outputs */
>        writel(GPIO23 | GPIO10 | GPIO8 | GPIO2 | GPIO1,
>                &gpio6_base->setdataout);
>        writel(GPIO31 | GPIO30 | GPIO29 | GPIO28 | GPIO22 | GPIO21 |
>                GPIO15 | GPIO14 | GPIO13 | GPIO12, &gpio5_base->setdataout);
>
> +       /* Configure GPIOs to output */
> +       writel(~(GPIO23 | GPIO10 | GPIO8 | GPIO2 | GPIO1), &gpio6_base->oe);
> +       writel(~(GPIO31 | GPIO30 | GPIO29 | GPIO28 | GPIO22 | GPIO21 |
> +               GPIO15 | GPIO14 | GPIO13 | GPIO12), &gpio5_base->oe);
> +
>        dieid_num_r();
>
>        return 0;
> --
> _______________________________________________
> U-Boot mailing list
> U-Boot@lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
>

Patch hide | download patch | download mbox

diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c
--- a/board/ti/beagle/beagle.c	2011-02-23 17:26:27.000000000 -0800
+++ b/board/ti/beagle/beagle.c	2011-02-23 17:47:44.000000000 -0800
@@ -239,17 +239,17 @@  int misc_init_r(void)
  	twl4030_power_init();
  	twl4030_led_init(TWL4030_LED_LEDEN_LEDAON | TWL4030_LED_LEDEN_LEDBON);

-	/* Configure GPIOs to output */
-	writel(~(GPIO23 | GPIO10 | GPIO8 | GPIO2 | GPIO1), &gpio6_base->oe);
-	writel(~(GPIO31 | GPIO30 | GPIO29 | GPIO28 | GPIO22 | GPIO21 |
-		GPIO15 | GPIO14 | GPIO13 | GPIO12), &gpio5_base->oe);
-
-	/* Set GPIOs */
+	/* Set GPIO states before they are made outputs */
  	writel(GPIO23 | GPIO10 | GPIO8 | GPIO2 | GPIO1,
  		&gpio6_base->setdataout);
  	writel(GPIO31 | GPIO30 | GPIO29 | GPIO28 | GPIO22 | GPIO21 |
  		GPIO15 | GPIO14 | GPIO13 | GPIO12, &gpio5_base->setdataout);

+	/* Configure GPIOs to output */
+	writel(~(GPIO23 | GPIO10 | GPIO8 | GPIO2 | GPIO1), &gpio6_base->oe);
+	writel(~(GPIO31 | GPIO30 | GPIO29 | GPIO28 | GPIO22 | GPIO21 |
+		GPIO15 | GPIO14 | GPIO13 | GPIO12), &gpio5_base->oe);
+
  	dieid_num_r();

  	return 0;