cm-t35: print PCB revision information
authorNikita Kiryanov <nikita@compulab.co.il>
Thu, 24 May 2012 04:01:24 +0000 (04:01 +0000)
committerAlbert ARIBAUD <albert.u.boot@aribaud.net>
Sat, 7 Jul 2012 12:07:24 +0000 (14:07 +0200)
Buffer the PCB revision to avoid multiple eeprom accesses
for the same data and print it as a part of board information.

Signed-off-by: Nikita Kiryanov <nikita@compulab.co.il>
Signed-off-by: Igor Grinberg <grinberg@compulab.co.il>
Signed-off-by: Tom Rini <trini@ti.com>
board/cm_t35/cm_t35.c
board/cm_t35/eeprom.c
board/cm_t35/eeprom.h

index 89e6b08..700c184 100644 (file)
@@ -99,6 +99,39 @@ int board_init(void)
        return 0;
 }
 
+static u32 cm_t3x_rev;
+
+/*
+ * Routine: get_board_rev
+ * Description: read system revision
+ */
+u32 get_board_rev(void)
+{
+       if (!cm_t3x_rev)
+               cm_t3x_rev = cm_t3x_eeprom_get_board_rev();
+
+       return cm_t3x_rev;
+};
+
+/*
+ * Routine: misc_init_r
+ * Description: display die ID
+ */
+int misc_init_r(void)
+{
+       u32 board_rev = get_board_rev();
+       u32 rev_major = board_rev / 100;
+       u32 rev_minor = board_rev - (rev_major * 100);
+
+       if ((rev_minor / 10) * 10 == rev_minor)
+               rev_minor = rev_minor / 10;
+
+       printf("PCB:   %u.%u\n", rev_major, rev_minor);
+       dieid_num_r();
+
+       return 0;
+}
+
 /*
  * Routine: set_muxconf_regs
  * Description: Setting up the configuration Mux registers specific to the
index 4986b23..b0af103 100644 (file)
@@ -99,10 +99,10 @@ int cm_t3x_eeprom_read_mac_addr(uchar *buf)
 }
 
 /*
- * Routine: get_board_rev
- * Description: read system revision
+ * Routine: cm_t3x_eeprom_get_board_rev
+ * Description: read system revision from eeprom
  */
-u32 get_board_rev(void)
+u32 cm_t3x_eeprom_get_board_rev(void)
 {
        u32 rev = 0;
        char str[5]; /* Legacy representation can contain at most 4 digits */
index ec772c6..38824d1 100644 (file)
 
 #ifdef CONFIG_DRIVER_OMAP34XX_I2C
 int cm_t3x_eeprom_read_mac_addr(uchar *buf);
+u32 cm_t3x_eeprom_get_board_rev(void);
 #else
 static inline int cm_t3x_eeprom_read_mac_addr(uchar *buf)
 {
        return 1;
 }
+static inline u32 cm_t3x_eeprom_get_board_rev(void)
+{
+       return 0;
+}
 #endif
 
 #endif