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

login
register
mail settings
Submitter Bob Feretich
Date Feb. 24, 2011, 11:16 p.m.
Message ID <4D66E6DC.8070604@rafresearch.com>
Download mbox | patch
Permalink /patch/84497/
State Accepted
Delegated to: Tom Rini
Headers show

Comments

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>
---

--
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

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;