]> git.kernelconcepts.de Git - karo-tx-uboot.git/blob - board/freescale/common/cds_eeprom.c
5034e0ca2e13298afafa25c2059547f1fbc5be55
[karo-tx-uboot.git] / board / freescale / common / cds_eeprom.c
1 /*
2  * Copyright 2004 Freescale Semiconductor.
3  *
4  * See file CREDITS for list of people who contributed to this
5  * project.
6  *
7  * This program is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License as
9  * published by the Free Software Foundation; either version 2 of
10  * the License, or (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, write to the Free Software
19  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
20  * MA 02111-1307 USA
21  */
22
23
24 #include <common.h>
25 #include <i2c.h>
26
27 #include "eeprom.h"
28
29
30 typedef struct {
31         char idee_pcbid[4];             /* "CCID" for CDC v1.X */
32         u8 idee_major;
33         u8 idee_minor;
34         char idee_serial[10];
35         char idee_errata[2];
36         char idee_date[8];              /* yyyymmdd */
37         /* The rest of the EEPROM space is reserved */
38 } id_eeprom_t;
39
40
41 unsigned int
42 get_cpu_board_revision(void)
43 {
44         uint major = 0;
45         uint minor = 0;
46
47         id_eeprom_t id_eeprom;
48
49         i2c_read(CFG_I2C_EEPROM_ADDR, 0, 2,
50                  (uchar *) &id_eeprom, sizeof(id_eeprom));
51
52         major = id_eeprom.idee_major;
53         minor = id_eeprom.idee_minor;
54
55         if (major == 0xff && minor == 0xff) {
56                 major = minor = 0;
57         }
58
59         return MPC85XX_CPU_BOARD_REV(major,minor);
60 }