* [U-Boot] [PATCH 2/3] ZOOM2 detect the version of the zoom2 @ 2009-06-03 1:53 Tom Rix 2009-06-03 1:53 ` [U-Boot] [PATCH 1/3] Fix a typo in the instructions on using omap3's gpio interface Tom Rix 0 siblings, 1 reply; 9+ messages in thread From: Tom Rix @ 2009-06-03 1:53 UTC (permalink / raw) To: u-boot Jean-Christophe, Based on your review I have made the changes you asked for. Tom > @@ -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 > + Tom : Ok added See +/* Used to track the revision of the board */ +static ZOOM2_REVISION zoom2_revision = ZOOM2_REVISION_UNKNOWN; + +/* + * Routine: zoom2_get_revision + * Description: Return the revision of the Zoom2 this code is running on. + */ +ZOOM2_REVISION zoom2_get_revision(void) +{ + return zoom2_revision; +} ------------------------------------------------------------------- > + 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 > +} Tom : Ok done. See + switch (zoom2_revision) { + case (ZOOM2_REVISION_PRODUCTION): + printf("Production\n"); + break; + case (ZOOM2_REVISION_BETA): + printf("Beta\n"); + break; + default: + printf("Unknown\n"); + break; + } +} ------------------------------------------------------- > +#define ZOOM2_REVISION_UNKNOWN 0 > +#define ZOOM2_REVISION_ALPHA 1 > +#define ZOOM2_REVISION_BETA 2 > +#define ZOOM2_REVISION_PRODUCTION 3 please use an emum Tom : Ok See +typedef enum { + ZOOM2_REVISION_UNKNOWN = 0, + ZOOM2_REVISION_ALPHA, + ZOOM2_REVISION_BETA, + ZOOM2_REVISION_PRODUCTION +} ZOOM2_REVISION; ---------------------------------------------------------- Also changed this comment in beagle.c /* * Routine: beagle_get_revision - * Description: Return revision of the BeagleBoard this code is running on. + * Description: Return the revision of the BeagleBoard this code is running on. ^ permalink raw reply [flat|nested] 9+ messages in thread
* [U-Boot] [PATCH 1/3] Fix a typo in the instructions on using omap3's gpio interface. 2009-06-03 1:53 [U-Boot] [PATCH 2/3] ZOOM2 detect the version of the zoom2 Tom Rix @ 2009-06-03 1:53 ` Tom Rix 2009-06-03 1:53 ` [U-Boot] [PATCH 2/3] ZOOM2 detect the version of the zoom2 board at runtime Tom Rix 2009-06-03 18:21 ` [U-Boot] [PATCH 1/3] Fix a typo in the instructions on using omap3's gpio interface Jean-Christophe PLAGNIOL-VILLARD 0 siblings, 2 replies; 9+ messages in thread From: Tom Rix @ 2009-06-03 1:53 UTC (permalink / raw) To: u-boot Using the example for reading a gpio, shows the problem. NULL should be the gpio number. Signed-off-by: Tom Rix <Tom.Rix@windriver.com> --- doc/README.omap3 | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/doc/README.omap3 b/doc/README.omap3 index e05e816..66e781d 100644 --- a/doc/README.omap3 +++ b/doc/README.omap3 @@ -106,7 +106,7 @@ To clear a bit : To read a bit : if (!omap_request_gpio(N)) { - omap_set_gpio_direction(NULL, 1); + omap_set_gpio_direction(N, 1); val = omap_get_gpio_datain(N); omap_free_gpio(N); } -- 1.6.0.5 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [U-Boot] [PATCH 2/3] ZOOM2 detect the version of the zoom2 board at runtime. 2009-06-03 1:53 ` [U-Boot] [PATCH 1/3] Fix a typo in the instructions on using omap3's gpio interface Tom Rix @ 2009-06-03 1:53 ` Tom Rix 2009-06-03 1:53 ` [U-Boot] [PATCH 3/3] Beagle Convert the board version detection to use the OMAP3 GPIO interface Tom Rix 2009-06-03 18:44 ` [U-Boot] [PATCH 2/3 V3] ZOOM2 detect the version of the zoom2 board at runtime Jean-Christophe PLAGNIOL-VILLARD 2009-06-03 18:21 ` [U-Boot] [PATCH 1/3] Fix a typo in the instructions on using omap3's gpio interface Jean-Christophe PLAGNIOL-VILLARD 1 sibling, 2 replies; 9+ messages in thread From: Tom Rix @ 2009-06-03 1:53 UTC (permalink / raw) To: u-boot 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 <Tom.Rix@windriver.com> --- board/omap3/zoom2/zoom2.c | 62 ++++++++++++++++++++++++++++++++++++++++++-- board/omap3/zoom2/zoom2.h | 9 ++++++ 2 files changed, 68 insertions(+), 3 deletions(-) diff --git a/board/omap3/zoom2/zoom2.c b/board/omap3/zoom2/zoom2.c index e5c248d..94231da 100644 --- a/board/omap3/zoom2/zoom2.c +++ b/board/omap3/zoom2/zoom2.c @@ -33,6 +33,7 @@ #include <status_led.h> #endif #include <asm/io.h> +#include <asm/arch/gpio.h> #include <asm/arch/mem.h> #include <asm/arch/mux.h> #include <asm/arch/sys_proto.h> @@ -60,6 +61,60 @@ static u32 gpmc_serial_TL16CP754C[GPMC_MAX_REG] = { 0x1D0904C4, 0 }; +/* Used to track the revision of the board */ +static ZOOM2_REVISION zoom2_revision = ZOOM2_REVISION_UNKNOWN; + +/* + * Routine: zoom2_get_revision + * Description: Return the revision of the Zoom2 this code is running on. + */ +ZOOM2_REVISION zoom2_get_revision(void) +{ + return zoom2_revision; +} + +/* + * 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 "); + switch (zoom2_revision) { + case (ZOOM2_REVISION_PRODUCTION): + printf("Production\n"); + break; + case (ZOOM2_REVISION_BETA): + printf("Beta\n"); + break; + default: + printf("Unknown\n"); + break; + } +} + /* * Routine: board_init * Description: Early hardware init. @@ -96,10 +151,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..b12b0fa 100644 --- a/board/omap3/zoom2/zoom2.h +++ b/board/omap3/zoom2/zoom2.h @@ -32,6 +32,15 @@ const omap3_sysinfo sysinfo = { "NAND", }; +typedef enum { + ZOOM2_REVISION_UNKNOWN = 0, + ZOOM2_REVISION_ALPHA, + ZOOM2_REVISION_BETA, + ZOOM2_REVISION_PRODUCTION +} ZOOM2_REVISION; + +extern ZOOM2_REVISION zoom2_get_revision(void); + /* * IEN - Input Enable * IDIS - Input Disable -- 1.6.0.5 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [U-Boot] [PATCH 3/3] Beagle Convert the board version detection to use the OMAP3 GPIO interface. 2009-06-03 1:53 ` [U-Boot] [PATCH 2/3] ZOOM2 detect the version of the zoom2 board at runtime Tom Rix @ 2009-06-03 1:53 ` Tom Rix 2009-06-03 18:30 ` Jean-Christophe PLAGNIOL-VILLARD 2009-06-03 18:44 ` [U-Boot] [PATCH 2/3 V3] ZOOM2 detect the version of the zoom2 board at runtime Jean-Christophe PLAGNIOL-VILLARD 1 sibling, 1 reply; 9+ messages in thread From: Tom Rix @ 2009-06-03 1:53 UTC (permalink / raw) To: u-boot There is no new functionality in the change. This change is a conversion from the using raw register access to using the OMAP3 GPIO API described in doc/README.omap3. Signed-off-by: Tom Rix <Tom.Rix@windriver.com> --- board/omap3/beagle/beagle.c | 32 ++++++++++++++++++-------------- 1 files changed, 18 insertions(+), 14 deletions(-) diff --git a/board/omap3/beagle/beagle.c b/board/omap3/beagle/beagle.c index 7eb70ee..d268e18 100644 --- a/board/omap3/beagle/beagle.c +++ b/board/omap3/beagle/beagle.c @@ -33,6 +33,7 @@ #include <asm/io.h> #include <asm/arch/mux.h> #include <asm/arch/sys_proto.h> +#include <asm/arch/gpio.h> #include <asm/mach-types.h> #include "beagle.h" @@ -57,7 +58,7 @@ int board_init(void) /* * Routine: beagle_get_revision - * Description: Return revision of the BeagleBoard this code is running on. + * 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. */ @@ -74,22 +75,25 @@ int beagle_get_revision(void) */ void beagle_identify(void) { - gpio_t *gpio6_base = (gpio_t *)OMAP34XX_GPIO6_BASE; - - /* Configure GPIO 171 as input */ - writel(readl(&gpio6_base->oe) | GPIO11, &gpio6_base->oe); - - /* Get value of GPIO 171 */ - beagle_revision_c = readl(&gpio6_base->datain) & BOARD_REVISION_MASK; + 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; + } printf("Board revision "); - if (beagle_revision_c) { - printf("Ax/Bx\n"); - beagle_revision_c = 0; - } else { + if (beagle_revision_c) printf("C\n"); - beagle_revision_c = 1; - } + else + printf("Ax/Bx\n"); } /* -- 1.6.0.5 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [U-Boot] [PATCH 3/3] Beagle Convert the board version detection to use the OMAP3 GPIO interface. 2009-06-03 1:53 ` [U-Boot] [PATCH 3/3] Beagle Convert the board version detection to use the OMAP3 GPIO interface Tom Rix @ 2009-06-03 18:30 ` Jean-Christophe PLAGNIOL-VILLARD 0 siblings, 0 replies; 9+ messages in thread From: Jean-Christophe PLAGNIOL-VILLARD @ 2009-06-03 18:30 UTC (permalink / raw) To: u-boot On 20:53 Tue 02 Jun , Tom Rix wrote: > There is no new functionality in the change. > > This change is a conversion from the using raw register access to using > the OMAP3 GPIO API described in doc/README.omap3. > > Signed-off-by: Tom Rix <Tom.Rix@windriver.com> > --- applied to arm/next Best Regards, J. ^ permalink raw reply [flat|nested] 9+ messages in thread
* [U-Boot] [PATCH 2/3 V3] ZOOM2 detect the version of the zoom2 board at runtime. 2009-06-03 1:53 ` [U-Boot] [PATCH 2/3] ZOOM2 detect the version of the zoom2 board at runtime Tom Rix 2009-06-03 1:53 ` [U-Boot] [PATCH 3/3] Beagle Convert the board version detection to use the OMAP3 GPIO interface Tom Rix @ 2009-06-03 18:44 ` Jean-Christophe PLAGNIOL-VILLARD 2009-06-03 19:05 ` Tom 1 sibling, 1 reply; 9+ messages in thread From: Jean-Christophe PLAGNIOL-VILLARD @ 2009-06-03 18:44 UTC (permalink / raw) To: u-boot From: Tom Rix <Tom.Rix@windriver.com> 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 <Tom.Rix@windriver.com> Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> --- board/omap3/zoom2/zoom2.c | 62 ++++++++++++++++++++++++++++++++++++++++++-- board/omap3/zoom2/zoom2.h | 9 ++++++ 2 files changed, 68 insertions(+), 3 deletions(-) diff --git a/board/omap3/zoom2/zoom2.c b/board/omap3/zoom2/zoom2.c index e5c248d..08fdafb 100644 --- a/board/omap3/zoom2/zoom2.c +++ b/board/omap3/zoom2/zoom2.c @@ -33,6 +33,7 @@ #include <status_led.h> #endif #include <asm/io.h> +#include <asm/arch/gpio.h> #include <asm/arch/mem.h> #include <asm/arch/mux.h> #include <asm/arch/sys_proto.h> @@ -60,6 +61,60 @@ static u32 gpmc_serial_TL16CP754C[GPMC_MAX_REG] = { 0x1D0904C4, 0 }; +/* Used to track the revision of the board */ +static zoom2_revision revision = ZOOM2_REVISION_UNKNOWN; + +/* + * Routine: zoom2_get_revision + * Description: Return the revision of the Zoom2 this code is running on. + */ +zoom2_revision zoom2_get_revision(void) +{ + return revision; +} + +/* + * 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) + revision = ZOOM2_REVISION_BETA; + else + revision = ZOOM2_REVISION_PRODUCTION; + } + + printf("Board revision "); + switch (revision) { + case ZOOM2_REVISION_PRODUCTION: + printf("Production\n"); + break; + case ZOOM2_REVISION_BETA: + printf("Beta\n"); + break; + default: + printf("Unknown\n"); + break; + } +} + /* * Routine: board_init * Description: Early hardware init. @@ -96,10 +151,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..a21d1d6 100644 --- a/board/omap3/zoom2/zoom2.h +++ b/board/omap3/zoom2/zoom2.h @@ -32,6 +32,15 @@ const omap3_sysinfo sysinfo = { "NAND", }; +typedef enum { + ZOOM2_REVISION_UNKNOWN = 0, + ZOOM2_REVISION_ALPHA, + ZOOM2_REVISION_BETA, + ZOOM2_REVISION_PRODUCTION +} zoom2_revision; + +zoom2_revision zoom2_get_revision(void); + /* * IEN - Input Enable * IDIS - Input Disable -- 1.6.2.4 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [U-Boot] [PATCH 2/3 V3] ZOOM2 detect the version of the zoom2 board at runtime. 2009-06-03 18:44 ` [U-Boot] [PATCH 2/3 V3] ZOOM2 detect the version of the zoom2 board at runtime Jean-Christophe PLAGNIOL-VILLARD @ 2009-06-03 19:05 ` Tom 0 siblings, 0 replies; 9+ messages in thread From: Tom @ 2009-06-03 19:05 UTC (permalink / raw) To: u-boot Jean-Christophe PLAGNIOL-VILLARD wrote: > From: Tom Rix <Tom.Rix@windriver.com> > > <snip> > This has been tested on the beta and production boards. > > Signed-off-by: Tom Rix <Tom.Rix@windriver.com> > Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> > --- > <snip> > > +typedef enum { > + ZOOM2_REVISION_UNKNOWN = 0, > + ZOOM2_REVISION_ALPHA, > + ZOOM2_REVISION_BETA, > + ZOOM2_REVISION_PRODUCTION > +} zoom2_revision; > + > +zoom2_revision zoom2_get_revision(void); > + > Looks fine. Thanks! Tom > /* > * IEN - Input Enable > * IDIS - Input Disable > ^ permalink raw reply [flat|nested] 9+ messages in thread
* [U-Boot] [PATCH 1/3] Fix a typo in the instructions on using omap3's gpio interface. 2009-06-03 1:53 ` [U-Boot] [PATCH 1/3] Fix a typo in the instructions on using omap3's gpio interface Tom Rix 2009-06-03 1:53 ` [U-Boot] [PATCH 2/3] ZOOM2 detect the version of the zoom2 board at runtime Tom Rix @ 2009-06-03 18:21 ` Jean-Christophe PLAGNIOL-VILLARD 2009-06-03 18:43 ` Tom 1 sibling, 1 reply; 9+ messages in thread From: Jean-Christophe PLAGNIOL-VILLARD @ 2009-06-03 18:21 UTC (permalink / raw) To: u-boot On 20:53 Tue 02 Jun , Tom Rix wrote: > Using the example for reading a gpio, shows the problem. > NULL should be the gpio number. > > Signed-off-by: Tom Rix <Tom.Rix@windriver.com> > --- > doc/README.omap3 | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/doc/README.omap3 b/doc/README.omap3 > index e05e816..66e781d 100644 > --- a/doc/README.omap3 > +++ b/doc/README.omap3 > @@ -106,7 +106,7 @@ To clear a bit : > To read a bit : > > if (!omap_request_gpio(N)) { > - omap_set_gpio_direction(NULL, 1); > + omap_set_gpio_direction(N, 1); > val = omap_get_gpio_datain(N); > omap_free_gpio(N); > } > -- > 1.6.0.5 On 20:53 Tue 02 Jun , 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 <Tom.Rix@windriver.com> > --- > board/omap3/zoom2/zoom2.c | 62 ++++++++++++++++++++++++++++++++++++++++++-- > board/omap3/zoom2/zoom2.h | 9 ++++++ > 2 files changed, 68 insertions(+), 3 deletions(-) > > diff --git a/board/omap3/zoom2/zoom2.c b/board/omap3/zoom2/zoom2.c > index e5c248d..94231da 100644 > --- a/board/omap3/zoom2/zoom2.c > +++ b/board/omap3/zoom2/zoom2.c > @@ -33,6 +33,7 @@ > #include <status_led.h> > #endif > #include <asm/io.h> > +#include <asm/arch/gpio.h> > #include <asm/arch/mem.h> > #include <asm/arch/mux.h> > #include <asm/arch/sys_proto.h> > @@ -60,6 +61,60 @@ static u32 gpmc_serial_TL16CP754C[GPMC_MAX_REG] = { > 0x1D0904C4, 0 > }; > > +/* Used to track the revision of the board */ > +static ZOOM2_REVISION zoom2_revision = ZOOM2_REVISION_UNKNOWN; no uppercase please if you are ok I'll remane it before apply static zoom2_revision revision = ZOOM2_REVISION_UNKNOWN; Best Regards, J. ^ permalink raw reply [flat|nested] 9+ messages in thread
* [U-Boot] [PATCH 1/3] Fix a typo in the instructions on using omap3's gpio interface. 2009-06-03 18:21 ` [U-Boot] [PATCH 1/3] Fix a typo in the instructions on using omap3's gpio interface Jean-Christophe PLAGNIOL-VILLARD @ 2009-06-03 18:43 ` Tom 0 siblings, 0 replies; 9+ messages in thread From: Tom @ 2009-06-03 18:43 UTC (permalink / raw) To: u-boot Jean-Christophe PLAGNIOL-VILLARD wrote: > On 20:53 Tue 02 Jun , Tom Rix wrote: > >> Using the example for reading a gpio, shows the problem. >> NULL should be the gpio number. >> <snip> >> >> +/* Used to track the revision of the board */ >> +static ZOOM2_REVISION zoom2_revision = ZOOM2_REVISION_UNKNOWN; >> > no uppercase please > if you are ok I'll remane it before apply > > static zoom2_revision revision = ZOOM2_REVISION_UNKNOWN; > > Please do. Thanks Tom > Best Regards, > J. > ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2009-06-03 19:05 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2009-06-03 1:53 [U-Boot] [PATCH 2/3] ZOOM2 detect the version of the zoom2 Tom Rix 2009-06-03 1:53 ` [U-Boot] [PATCH 1/3] Fix a typo in the instructions on using omap3's gpio interface Tom Rix 2009-06-03 1:53 ` [U-Boot] [PATCH 2/3] ZOOM2 detect the version of the zoom2 board at runtime Tom Rix 2009-06-03 1:53 ` [U-Boot] [PATCH 3/3] Beagle Convert the board version detection to use the OMAP3 GPIO interface Tom Rix 2009-06-03 18:30 ` Jean-Christophe PLAGNIOL-VILLARD 2009-06-03 18:44 ` [U-Boot] [PATCH 2/3 V3] ZOOM2 detect the version of the zoom2 board at runtime Jean-Christophe PLAGNIOL-VILLARD 2009-06-03 19:05 ` Tom 2009-06-03 18:21 ` [U-Boot] [PATCH 1/3] Fix a typo in the instructions on using omap3's gpio interface Jean-Christophe PLAGNIOL-VILLARD 2009-06-03 18:43 ` Tom
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox