[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