Sandeep, On Tue, Jan 5, 2010 at 9:41 PM, Khasim Syed Mohammed <kha...@beagleboard.org> wrote: > From 3a540c9746d080d3e45e820081684da4f14d28a2 Mon Sep 17 00:00:00 2001 > From: Dirk Behme <dirk.be...@googlemail.com> > Date: Tue, 5 Jan 2010 20:04:27 +0530 > Subject: [PATCH] OMAP3: Beagle: Update revision detection > > New BeagleBoard revision C4 uses a new ID. Update revision detection. > > Signed-off-by: Dirk Behme <dirk.be...@googlemail.com> > --- > board/ti/beagle/beagle.c | 64 ++++++++++++++++++++++++++++----------------- > board/ti/beagle/beagle.h | 8 ++++- > 2 files changed, 46 insertions(+), 26 deletions(-) > > diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c > index 32d501e..17840cf 100644 > --- a/board/ti/beagle/beagle.c > +++ b/board/ti/beagle/beagle.c > @@ -38,7 +38,7 @@ > #include <asm/mach-types.h> > #include "beagle.h" > > -static int beagle_revision_c; > +static int beagle_revision; > > /* > * Routine: board_init > @@ -60,41 +60,57 @@ int board_init(void) > /* > * Routine: beagle_get_revision > * 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. > */ > int beagle_get_revision(void) > { > - return beagle_revision_c; > + return beagle_revision; > } > > /* > * Routine: beagle_identify > - * Description: Detect if we are running on a Beagle revision Ax/Bx or > - * Cx. This can be done by GPIO_171. If this is low, we are > - * running on a revision C board. > + * Description: Detect if we are running on a Beagle revision Ax/Bx, > + * C1/2/3, C4 or D. This can be done by reading > + * the level of GPIO173, GPIO172 and GPIO171. This should > + * result in > + * GPIO173, GPIO172, GPIO171: 1 1 1 => Ax/Bx > + * GPIO173, GPIO172, GPIO171: 1 1 0 => C1/2/3 > + * GPIO173, GPIO172, GPIO171: 1 0 1 => C4 > + * GPIO173, GPIO172, GPIO171: 0 0 0 => D > */ > void beagle_identify(void) > { > - 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; > - } > + omap_request_gpio(171); > + omap_request_gpio(172); > + omap_request_gpio(173); > + omap_set_gpio_direction(171, 1); > + omap_set_gpio_direction(172, 1); > + omap_set_gpio_direction(173, 1); > + > + beagle_revision = omap_get_gpio_datain(173) << 2 | > + omap_get_gpio_datain(172) << 1 | > + omap_get_gpio_datain(171); > + omap_free_gpio(171); > + omap_free_gpio(172); > + omap_free_gpio(173); > > printf("Board revision "); > - if (beagle_revision_c) > - printf("C\n"); > - else > + > + switch (beagle_revision) { > + case REVISION_AXBX: > printf("Ax/Bx\n"); > + break; > + case REVISION_CX: > + printf("C1/C2/C3\n"); > + break; > + case REVISION_C4: > + printf("C4\n"); > + break; > + case REVISION_D: > + printf("D\n"); > + break; > + default: > + printf("unknown 0x%02x\n", beagle_revision); > + } > } > > /* > @@ -137,7 +153,7 @@ void set_muxconf_regs(void) > { > MUX_BEAGLE(); > > - if (beagle_revision_c) { > + if (beagle_revision != REVISION_AXBX) { > MUX_BEAGLE_C(); > } > } > diff --git a/board/ti/beagle/beagle.h b/board/ti/beagle/beagle.h > index 7fe6275..b1720c9 100644 > --- a/board/ti/beagle/beagle.h > +++ b/board/ti/beagle/beagle.h > @@ -33,7 +33,11 @@ const omap3_sysinfo sysinfo = { > #endif > }; > > -#define BOARD_REVISION_MASK (0x1 << 11) > +/* BeagleBoard revisions */ > +#define REVISION_AXBX 0x7 > +#define REVISION_CX 0x6 > +#define REVISION_C4 0x5 > +#define REVISION_D 0x0 > > /* > * IEN - Input Enable > @@ -264,7 +268,7 @@ const omap3_sysinfo sysinfo = { > MUX_VAL(CP(HDQ_SIO), (IDIS | PTU | EN | M4)) /*GPIO_170*/\ > MUX_VAL(CP(MCSPI1_CLK), (IEN | PTU | EN | M4)) /*GPIO_171*/\ > MUX_VAL(CP(MCSPI1_SIMO), (IEN | PTU | EN | M4)) /*GPIO_172*/\ > - MUX_VAL(CP(MCSPI1_SOMI), (IEN | PTD | DIS | M0)) > /*McSPI1_SOMI*/\ > + MUX_VAL(CP(MCSPI1_SOMI), (IEN | PTU | EN | M4)) /*GPIO_173*/\ > MUX_VAL(CP(MCSPI1_CS0), (IEN | PTD | EN | M0)) > /*McSPI1_CS0*/\ > MUX_VAL(CP(MCSPI1_CS1), (IDIS | PTD | EN | M0)) > /*McSPI1_CS1*/\ > MUX_VAL(CP(MCSPI1_CS2), (IDIS | PTD | DIS | M4)) /*GPIO_176*/\ > -- > 1.5.6.3 > Since there are no comments for this patch, can you please consider merging this ?
Regards, Khasim _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot