summaryrefslogtreecommitdiff
path: root/board/esd/dp405/dp405.c
diff options
context:
space:
mode:
authorMatthias Fuchs <matthias.fuchs@esd-electronics.com>2009-04-29 09:51:01 +0200
committerWolfgang Denk <wd@denx.de>2009-06-12 20:39:47 +0200
commit70be6c2d40076f14062b892152649f9a62832fc9 (patch)
treeb7091f3dcf92fc6d6a8f9b7bf3170a76aedfc5d6 /board/esd/dp405/dp405.c
parentde47a34d4de1d007a8951efd072283516d580ffa (diff)
downloadu-boot-imx-70be6c2d40076f14062b892152649f9a62832fc9.zip
u-boot-imx-70be6c2d40076f14062b892152649f9a62832fc9.tar.gz
u-boot-imx-70be6c2d40076f14062b892152649f9a62832fc9.tar.bz2
4xx: Add support for DP405 hardware variants
Signed-off-by: Matthias Fuchs <matthias.fuchs@esd.eu> Signed-off-by: Stefan Roese <sr@denx.de>
Diffstat (limited to 'board/esd/dp405/dp405.c')
-rw-r--r--board/esd/dp405/dp405.c32
1 files changed, 26 insertions, 6 deletions
diff --git a/board/esd/dp405/dp405.c b/board/esd/dp405/dp405.c
index 352b877..8f4b78d 100644
--- a/board/esd/dp405/dp405.c
+++ b/board/esd/dp405/dp405.c
@@ -89,20 +89,40 @@ int checkboard (void)
int i = getenv_r ("serial#", str, sizeof(str));
unsigned char trans[16] = {0x0,0x8,0x4,0xc,0x2,0xa,0x6,0xe,
0x1,0x9,0x5,0xd,0x3,0xb,0x7,0xf};
- unsigned char id1, id2;
+ unsigned char id1, id2, rev;
puts ("Board: ");
- if (i == -1) {
+ if (i == -1)
puts ("### No HW ID - assuming DP405");
- } else {
+ else
puts(str);
- }
id1 = trans[(~(in_be32((void *)GPIO0_IR) >> 5)) & 0x0000000f];
id2 = trans[(~(in_be32((void *)GPIO0_IR) >> 9)) & 0x0000000f];
- printf(" (ID=0x%1X%1X, PLD=0x%02X)\n",
- id2, id1, in_8((void *)0xf0001000));
+
+ rev = in_8((void *)0xf0001000);
+ if (rev & 0x10) /* old DP405 compatibility */
+ rev = in_8((void *)0xf0000800);
+
+ switch (rev & 0xc0) {
+ case 0x00:
+ puts(" (HW=DP405");
+ break;
+ case 0x80:
+ puts(" (HW=DP405/CO");
+ break;
+ case 0xc0:
+ puts(" (HW=DN405");
+ break;
+ }
+ printf(", ID=0x%1X%1X, PLD=0x%02X", id2, id1, rev & 0x0f);
+
+ if ((rev & 0xc0) == 0xc0) {
+ printf(", C5V=%s",
+ in_be32((void *)GPIO0_IR) & 0x40000000 ? "off" : "on");
+ }
+ puts(")\n");
return 0;
}