From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jean-Christophe PLAGNIOL-VILLARD Date: Mon, 1 Jun 2009 18:22:35 +0200 Subject: [U-Boot] [PATCH 2/3] ZOOM2 detect the version of the zoom2 board at runtime. In-Reply-To: <1243609112-11777-3-git-send-email-Tom.Rix@windriver.com> References: <1243609112-11777-1-git-send-email-Tom.Rix@windriver.com> <1243609112-11777-2-git-send-email-Tom.Rix@windriver.com> <1243609112-11777-3-git-send-email-Tom.Rix@windriver.com> Message-ID: <20090601162235.GC6399@game.jcrosoft.org> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 09:58 Fri 29 May , Tom Rix wrote: > There are currently 3 versions of the zoom2 board. > The production board, that is currently being released. > The beta board, similar in form to the production board but not released. > The alpha board, a set of PCBs with a very limited circulation. > > GPIO 94 is used to determine the version of the board. If GPIO 94 is clear, > the board is a production board, otherwise it is a beta board. > > The alpha board will likely be mistaken for a beta board. An alpha board > was unavailible for testing. > > This has been tested on the beta and production boards. > > Signed-off-by: Tom Rix > --- > board/omap3/zoom2/zoom2.c | 48 ++++++++++++++++++++++++++++++++++++++++++-- > board/omap3/zoom2/zoom2.h | 6 +++++ > 2 files changed, 51 insertions(+), 3 deletions(-) > > diff --git a/board/omap3/zoom2/zoom2.c b/board/omap3/zoom2/zoom2.c > index e5c248d..06e644f 100644 > --- a/board/omap3/zoom2/zoom2.c > +++ b/board/omap3/zoom2/zoom2.c > @@ -33,6 +33,7 @@ > #include > #endif > #include > +#include > #include > #include > #include > @@ -60,6 +61,46 @@ static u32 gpmc_serial_TL16CP754C[GPMC_MAX_REG] = { > 0x1D0904C4, 0 > }; > > +/* Used to track the revision of the board */ > +int zoom2_revision = ZOOM2_REVISION_UNKNOWN; add static and as the beagle provide a function to get the current version > + > +/* > + * Routine: zoom2_identify > + * Description: Detect which version of Zoom2 we are running on. > + */ > +void zoom2_identify(void) > +{ > + /* > + * To check for production board vs beta board, > + * check if gpio 94 is clear. > + * > + * No way yet to check for alpha board identity. > + * Alpha boards were produced in very limited quantities > + * and they are not commonly used. They are mentioned here > + * only for completeness. > + */ > + if (!omap_request_gpio(94)) { > + unsigned int val; > + > + omap_set_gpio_direction(94, 1); > + val = omap_get_gpio_datain(94); > + omap_free_gpio(94); > + > + if (val) > + zoom2_revision = ZOOM2_REVISION_BETA; > + else > + zoom2_revision = ZOOM2_REVISION_PRODUCTION; > + } > + > + printf("Board revision "); > + if (ZOOM2_REVISION_PRODUCTION == zoom2_revision) > + printf("Production\n"); > + else if (ZOOM2_REVISION_BETA == zoom2_revision) > + printf("Beta\n"); > + else > + printf("Unknown\n"); please use switch > +} > + > /* > * Routine: board_init > * Description: Early hardware init. > @@ -96,10 +137,11 @@ int board_init (void) > * Routine: misc_init_r > * Description: Configure zoom board specific configurations > */ > -int misc_init_r (void) > +int misc_init_r(void) > { > - power_init_r (); > - dieid_num_r (); > + zoom2_identify(); > + power_init_r(); > + dieid_num_r(); > return 0; > } > > diff --git a/board/omap3/zoom2/zoom2.h b/board/omap3/zoom2/zoom2.h > index cae8a7a..7f15260 100644 > --- a/board/omap3/zoom2/zoom2.h > +++ b/board/omap3/zoom2/zoom2.h > @@ -32,6 +32,12 @@ const omap3_sysinfo sysinfo = { > "NAND", > }; > > +#define ZOOM2_REVISION_UNKNOWN 0 > +#define ZOOM2_REVISION_ALPHA 1 > +#define ZOOM2_REVISION_BETA 2 > +#define ZOOM2_REVISION_PRODUCTION 3 please use an emum Best Regards, J.