提交 718763c4 编写于 作者: T Tom Rix 提交者: Wolfgang Denk

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: NTom Rix <Tom.Rix@windriver.com>
Acked-by: NDirk Behme <dirk.behme@googlemail.com>
上级 7caa13fd
......@@ -33,6 +33,7 @@
#include <asm/io.h>
#include <asm/arch/mux.h>
#include <asm/arch/sys_proto.h>
#include <asm/arch/gpio.h>
#include <asm/mach-types.h>
#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");
}
/*
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册