diff options
Diffstat (limited to 'board/freescale/mx7dsabresd/mx7dsabresd.c')
-rw-r--r-- | board/freescale/mx7dsabresd/mx7dsabresd.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/board/freescale/mx7dsabresd/mx7dsabresd.c b/board/freescale/mx7dsabresd/mx7dsabresd.c index 42ca8c5..57a388e 100644 --- a/board/freescale/mx7dsabresd/mx7dsabresd.c +++ b/board/freescale/mx7dsabresd/mx7dsabresd.c @@ -277,6 +277,7 @@ void iox74lv_set(int index) gpio_direction_output(IOX_STCP, 1); }; +#define BOARD_REV_C 0x300 #define BOARD_REV_B 0x200 #define BOARD_REV_A 0x100 @@ -294,6 +295,9 @@ static int mx7sabre_rev(void) if (reg != 0) { switch (reg >> 8 & 0x0F) { + case 0x3: + ret = BOARD_REV_C; + break; case 0x02: ret = BOARD_REV_B; break; @@ -306,8 +310,10 @@ static int mx7sabre_rev(void) /* If the gp1 fuse is not burn, we have to use TO rev for the board rev */ if (0 == is_soc_rev(CHIP_REV_1_0)) ret = BOARD_REV_A; - else + else if (0 == is_soc_rev(CHIP_REV_1_1)) ret = BOARD_REV_B; + else + ret = BOARD_REV_C; } return ret; @@ -683,7 +689,7 @@ static void setup_iomux_fec(void) if (0 == CONFIG_FEC_ENET_DEV) { imx_iomux_v3_setup_multiple_pads(fec1_pads, ARRAY_SIZE(fec1_pads)); } else { - if (mx7sabre_rev() == BOARD_REV_B) { + if (mx7sabre_rev() >= BOARD_REV_B) { /* On RevB, GPIO1_IO04 is used for ENET2 EN, * so set its output to low to enable ENET2 signals */ @@ -990,7 +996,7 @@ int board_init(void) #endif #ifdef CONFIG_MXC_EPDC - if (mx7sabre_rev() == BOARD_REV_B) { + if (mx7sabre_rev() >= BOARD_REV_B) { /* On RevB, GPIO1_IO04 is used for ENET2 EN, * so set its output to high to isolate the ENET2 signals for EPDC */ @@ -1087,6 +1093,9 @@ int checkboard(void) char *revname; switch (rev) { + case BOARD_REV_C: + revname = "C"; + break; case BOARD_REV_B: revname = "B"; break; @@ -1123,7 +1132,7 @@ int board_ehci_hcd_init(int port) ARRAY_SIZE(usb_otg1_pads)); break; case 1: - if (mx7sabre_rev() == BOARD_REV_B) + if (mx7sabre_rev() >= BOARD_REV_B) imx_iomux_v3_setup_multiple_pads(usb_otg2_revB_pads, ARRAY_SIZE(usb_otg2_revB_pads)); else |