From 718763c4745fd3d987a5576d2a67325e9444f9d4 Mon Sep 17 00:00:00 2001 From: Tom Rix Date: Wed, 3 Jun 2009 01:53:57 -0500 Subject: [PATCH] Beagle Convert the board version detection to use the OMAP3 GPIO interface. There is no new functionality in the change. This change is a conversion from the using raw register access to using the OMAP3 GPIO API described in doc/README.omap3. Signed-off-by: Tom Rix Acked-by: Dirk Behme --- board/omap3/beagle/beagle.c | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/board/omap3/beagle/beagle.c b/board/omap3/beagle/beagle.c index 7eb70ee..d268e18 100644 --- a/board/omap3/beagle/beagle.c +++ b/board/omap3/beagle/beagle.c @@ -33,6 +33,7 @@ #include #include #include +#include #include #include "beagle.h" @@ -57,7 +58,7 @@ int board_init(void) /* * Routine: beagle_get_revision - * Description: Return revision of the BeagleBoard this code is running on. + * Description: Return the revision of the BeagleBoard this code is running on. * If it is a revision Ax/Bx board, this function returns 0, * on a revision C board you will get a 1. */ @@ -74,22 +75,25 @@ int beagle_get_revision(void) */ void beagle_identify(void) { - gpio_t *gpio6_base = (gpio_t *)OMAP34XX_GPIO6_BASE; - - /* Configure GPIO 171 as input */ - writel(readl(&gpio6_base->oe) | GPIO11, &gpio6_base->oe); - - /* Get value of GPIO 171 */ - beagle_revision_c = readl(&gpio6_base->datain) & BOARD_REVISION_MASK; + beagle_revision_c = 0; + if (!omap_request_gpio(171)) { + unsigned int val; + + omap_set_gpio_direction(171, 1); + val = omap_get_gpio_datain(171); + omap_free_gpio(171); + + if (val) + beagle_revision_c = 0; + else + beagle_revision_c = 1; + } printf("Board revision "); - if (beagle_revision_c) { - printf("Ax/Bx\n"); - beagle_revision_c = 0; - } else { + if (beagle_revision_c) printf("C\n"); - beagle_revision_c = 1; - } + else + printf("Ax/Bx\n"); } /* -- 2.7.4