> -----Original Message----- > From: linux-omap-owner@xxxxxxxxxxxxxxx > [mailto:linux-omap-owner@xxxxxxxxxxxxxxx] On Behalf Of Enric > Balletbo i Serra > Sent: Saturday, October 02, 2010 1:16 AM > To: linux-omap@xxxxxxxxxxxxxxx > Cc: Enric Balletbo i Serra > Subject: [PATCHv2 3/6] omap3: Introduce function to detect > the IGEP v2 hardware revision. > > 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@xxxxxxxxx> > --- > arch/arm/mach-omap2/board-igep0020.c | 47 > ++++++++++++++++++++++++++++++++++ > 1 files changed, 47 insertions(+), 0 deletions(-) > > diff --git a/arch/arm/mach-omap2/board-igep0020.c > b/arch/arm/mach-omap2/board-igep0020.c > index 9f25d0d..a386425 100644 > --- a/arch/arm/mach-omap2/board-igep0020.c > +++ b/arch/arm/mach-omap2/board-igep0020.c > @@ -45,6 +45,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 (hwrev == 0) { > + pr_info("IGEP2: Hardware Revision C > (B-NON compatible)\n"); > + hwrev = IGEP2_BOARD_HWREV_C; > + } else if (hwrev == 1) { > + pr_info("IGEP2: Hardware Revision B/C > (B compatible)\n"); > + hwrev = IGEP2_BOARD_HWREV_B; > + } else { > + pr_err("IGEP2: Unknow Hardware Revision\n"); typo - Unknow > + hwrev = -1; > + } > + } else { > + pr_warning("IGEP2: Could not obtain gpio > GPIO_HW0_REV\n"); > + pr_err("IGEP2: Unknow Hardware Revision\n"); Need both the prints? > + } typo - Unknow > + > + gpio_free(IGEP2_GPIO_LED1_RED); > +} > + > #if defined(CONFIG_MTD_ONENAND_OMAP2) || \ > defined(CONFIG_MTD_ONENAND_OMAP2_MODULE) > > @@ -535,6 +578,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(); > -- > 1.7.0.4 > > -- > To unsubscribe from this list: send the line "unsubscribe > linux-omap" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html