> > 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 ?
Yes I will but please be a little patient. Its been on the list less than 24 hours. > > Regards, > Khasim _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot