OMAP3 Beagle Pin Mux initialization glitch fix
authorBob Feretich <bob.feretich@rafresearch.com>
Thu, 24 Feb 2011 13:16:44 +0000 (13:16 +0000)
committerAlbert ARIBAUD <albert.u.boot@aribaud.net>
Sun, 4 Sep 2011 09:36:19 +0000 (11:36 +0200)
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>
Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>
board/ti/beagle/beagle.c

index ab50514..15d061a 100644 (file)
@@ -301,17 +301,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;