Skip to content

Commit

Permalink
omap3: Introduce function to detect the IGEP v2 hardwarerevision
Browse files Browse the repository at this point in the history
There are currently two versions of IGEP v2 board, this patch introduces a
function to detect the hardware revision of IGEP board.

  --------------------------
 | Id. | Hw Rev. | GPIO 28  |
  --------------------------
 |  0  |   B/C   |   high   |
 |  1  |   C     |   low    |
  --------------------------

Signed-off-by: Enric Balletbo i Serra <eballetbo@gmail.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
  • Loading branch information
Enric Balletbo i Serra authored and Tony Lindgren committed Oct 8, 2010
1 parent bee1539 commit 3f8c48d
Showing 1 changed file with 47 additions and 0 deletions.
47 changes: 47 additions & 0 deletions arch/arm/mach-omap2/board-igep0020.c
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,49 @@
#define IGEP2_GPIO_WIFI_NPD 94
#define IGEP2_GPIO_WIFI_NRESET 95

/*
* IGEP2 Hardware Revision Table
*
* --------------------------
* | Id. | Hw Rev. | HW0 (28) |
* --------------------------
* | 0 | B/C | high |
* | 1 | C | low |
* --------------------------
*/

#define IGEP2_BOARD_HWREV_B 0
#define IGEP2_BOARD_HWREV_C 1

static u8 hwrev;

static void __init igep2_get_revision(void)
{
u8 ret;

omap_mux_init_gpio(IGEP2_GPIO_LED1_RED, OMAP_PIN_INPUT);

if ((gpio_request(IGEP2_GPIO_LED1_RED, "GPIO_HW0_REV") == 0) &&
(gpio_direction_input(IGEP2_GPIO_LED1_RED) == 0)) {
ret = gpio_get_value(IGEP2_GPIO_LED1_RED);
if (ret == 0) {
pr_info("IGEP2: Hardware Revision C (B-NON compatible)\n");
hwrev = IGEP2_BOARD_HWREV_C;
} else if (ret == 1) {
pr_info("IGEP2: Hardware Revision B/C (B compatible)\n");
hwrev = IGEP2_BOARD_HWREV_B;
} else {
pr_err("IGEP2: Unknown Hardware Revision\n");
hwrev = -1;
}
} else {
pr_warning("IGEP2: Could not obtain gpio GPIO_HW0_REV\n");
pr_err("IGEP2: Unknown Hardware Revision\n");
}

gpio_free(IGEP2_GPIO_LED1_RED);
}

#if defined(CONFIG_MTD_ONENAND_OMAP2) || \
defined(CONFIG_MTD_ONENAND_OMAP2_MODULE)

Expand Down Expand Up @@ -538,6 +581,10 @@ static struct omap_board_mux board_mux[] __initdata = {
static void __init igep2_init(void)
{
omap3_mux_init(board_mux, OMAP_PACKAGE_CBB);

/* Get IGEP2 hardware revision */
igep2_get_revision();

igep2_i2c_init();
platform_add_devices(igep2_devices, ARRAY_SIZE(igep2_devices));
omap_serial_init();
Expand Down

0 comments on commit 3f8c48d

Please sign in to comment.