[U-Boot] TI:OMAP: [ PATCH 1/4 ] OMAP3: Beagle: Update revision detection
Paulraj, Sandeep
s-paulraj at ti.com
Wed Jan 6 10:45:57 CET 2010
>
> Sandeep,
>
> On Tue, Jan 5, 2010 at 9:41 PM, Khasim Syed Mohammed
> <khasim at beagleboard.org> wrote:
> > From 3a540c9746d080d3e45e820081684da4f14d28a2 Mon Sep 17 00:00:00 2001
> > From: Dirk Behme <dirk.behme at 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.behme at 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
More information about the U-Boot
mailing list