]> git.sur5r.net Git - u-boot/commitdiff
ARMV7: OMAP: Add board revision detection for Overo
authorSteve Sakoman <steve@sakoman.com>
Thu, 12 Aug 2010 22:13:02 +0000 (15:13 -0700)
committerSandeep Paulraj <s-paulraj@ti.com>
Wed, 8 Sep 2010 18:50:38 +0000 (14:50 -0400)
The latest Overo COM modules encode their revision number on
GPIOs 115, 113, and 112.  All boards to date have no pullups on these pins
and hence appear as revision 0.

This patch reads and prints the revision information.

Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>
board/overo/overo.c
board/overo/overo.h

index e85be7d5e6c239c1fe093fca5ccfe869182867f5..1c7087b7ed8cfa5138446617c96e6825a1fe745a 100644 (file)
@@ -60,6 +60,37 @@ int board_init(void)
        return 0;
 }
 
+/*
+ * Routine: get_board_revision
+ * Description: Returns the board revision
+ */
+int get_board_revision(void)
+{
+       int revision;
+
+       if (!omap_request_gpio(112) &&
+           !omap_request_gpio(113) &&
+           !omap_request_gpio(115)) {
+
+               omap_set_gpio_direction(112, 1);
+               omap_set_gpio_direction(113, 1);
+               omap_set_gpio_direction(115, 1);
+
+               revision = omap_get_gpio_datain(115) << 2 |
+                          omap_get_gpio_datain(113) << 1 |
+                          omap_get_gpio_datain(112);
+
+               omap_free_gpio(112);
+               omap_free_gpio(113);
+               omap_free_gpio(115);
+       } else {
+               printf("Error: unable to acquire board revision GPIOs\n");
+               revision = -1;
+       }
+
+       return revision;
+}
+
 /*
  * Routine: misc_init_r
  * Description: Configure board specific parts
@@ -73,6 +104,7 @@ int misc_init_r(void)
        setup_net_chip();
 #endif
 
+       printf("Board revision: %d\n", get_board_revision());
        dieid_num_r();
 
        return 0;
index fff43dac9c28a029af1b5a01e88760387a3bb36a..a4e49b91a06df29b691328ea6120210e48f992c5 100644 (file)
@@ -189,11 +189,11 @@ const omap3_sysinfo sysinfo = {
        MUX_VAL(CP(CAM_XCLKB),          (IDIS | PTD | DIS | M0)) /*CAM_XCLKB*/\
        MUX_VAL(CP(CAM_WEN),            (IEN  | PTD | DIS | M0)) /*CAM_WEN*/\
        MUX_VAL(CP(CAM_STROBE),         (IDIS | PTD | DIS | M0)) /*CAM_STROBE*/\
-       MUX_VAL(CP(CSI2_DX0),           (IEN  | PTD | DIS | M0)) /*CSI2_DX0*/\
-       MUX_VAL(CP(CSI2_DY0),           (IEN  | PTD | DIS | M0)) /*CSI2_DY0*/\
+       MUX_VAL(CP(CSI2_DX0),           (IEN  | PTD | EN  | M4)) /*GPIO_112*/\
+       MUX_VAL(CP(CSI2_DY0),           (IEN  | PTD | EN  | M4)) /*GPIO_113*/\
        MUX_VAL(CP(CSI2_DX1),           (IEN  | PTD | EN  | M4)) /*GPIO_114*/\
                                                                 /* - PEN_DOWN*/\
-       MUX_VAL(CP(CSI2_DY1),           (IEN  | PTU | EN  | M4)) /*GPIO_115*/\
+       MUX_VAL(CP(CSI2_DY1),           (IEN  | PTD | EN  | M4)) /*GPIO_115*/\
  /*Audio Interface */\
        MUX_VAL(CP(MCBSP2_FSX),         (IEN  | PTD | DIS | M0)) /*McBSP2_FSX*/\
        MUX_VAL(CP(MCBSP2_CLKX),        (IEN  | PTD | DIS | M0)) /*McBSP2_CLKX*/\