@ -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 " ) ;
}
/*