DTT: Issue one-shot command on AD7414 (LM75 code) to read temp
authorStefan Roese <sr@denx.de>
Fri, 16 May 2008 09:06:06 +0000 (11:06 +0200)
committerWolfgang Denk <wd@denx.de>
Tue, 3 Jun 2008 19:00:00 +0000 (21:00 +0200)
On AD7414 the first value upon bootup is not read correctly.
This is most likely because of the 800ms update time of the
temp register in normal update mode. To get current values
each time we issue the "dtt" command including upon powerup
we switch into one-short mode.

This patch fixes the problem on AD7414 equipped boards (Sequoia,
Canyonlands etc), that temp value printed in the bootup log was
incorrect.

Signed-off-by: Stefan Roese <sr@denx.de>
drivers/hwmon/lm75.c

index e29b29440f237aa537321bc388abce9c86014822..c34851725ef75095bee305298124c3ecaf5f5eb3 100644 (file)
@@ -47,6 +47,19 @@ int dtt_read(int sensor, int reg)
     int dlen;
     uchar data[2];
 
+#ifdef CONFIG_DTT_AD7414
+    /*
+     * On AD7414 the first value upon bootup is not read correctly.
+     * This is most likely because of the 800ms update time of the
+     * temp register in normal update mode. To get current values
+     * each time we issue the "dtt" command including upon powerup
+     * we switch into one-short mode.
+     *
+     * Issue one-shot mode command
+     */
+    dtt_write(sensor, DTT_CONFIG, 0x64);
+#endif
+
     /*
      * Validate 'reg' param
      */