|
@@ -30,6 +30,36 @@
|
|
|
|
|
|
static unsigned long sensor_initialized;
|
|
|
|
|
|
+static void _initialize_dtt(void)
|
|
|
+{
|
|
|
+ int i;
|
|
|
+ unsigned char sensors[] = CONFIG_DTT_SENSORS;
|
|
|
+
|
|
|
+ for (i = 0; i < sizeof(sensors); i++) {
|
|
|
+ if ((sensor_initialized & (1 << i)) == 0) {
|
|
|
+ if (dtt_init_one(sensors[i]) != 0) {
|
|
|
+ printf("DTT%d: Failed init!\n", i);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ sensor_initialized |= (1 << i);
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+void dtt_init(void)
|
|
|
+{
|
|
|
+ int old_bus;
|
|
|
+
|
|
|
+ /* switch to correct I2C bus */
|
|
|
+ old_bus = I2C_GET_BUS();
|
|
|
+ I2C_SET_BUS(CONFIG_SYS_DTT_BUS_NUM);
|
|
|
+
|
|
|
+ _initialize_dtt();
|
|
|
+
|
|
|
+ /* switch back to original I2C bus */
|
|
|
+ I2C_SET_BUS(old_bus);
|
|
|
+}
|
|
|
+
|
|
|
int do_dtt (cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
|
|
|
{
|
|
|
int i;
|
|
@@ -42,20 +72,14 @@ int do_dtt (cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
|
|
|
old_bus = I2C_GET_BUS();
|
|
|
I2C_SET_BUS(CONFIG_SYS_DTT_BUS_NUM);
|
|
|
|
|
|
+ _initialize_dtt();
|
|
|
+
|
|
|
/*
|
|
|
* Loop through sensors, read
|
|
|
* temperature, and output it.
|
|
|
*/
|
|
|
- for (i = 0; i < sizeof(sensors); i++) {
|
|
|
- if ((sensor_initialized & (1 << i)) == 0) {
|
|
|
- if (dtt_init_one(sensors[i]) != 0) {
|
|
|
- printf("DTT%d: Failed init!\n", i);
|
|
|
- continue;
|
|
|
- }
|
|
|
- sensor_initialized |= (1 << i);
|
|
|
- }
|
|
|
+ for (i = 0; i < sizeof(sensors); i++)
|
|
|
printf("DTT%d: %i C\n", i + 1, dtt_get_temp(sensors[i]));
|
|
|
- }
|
|
|
|
|
|
/* switch back to original I2C bus */
|
|
|
I2C_SET_BUS(old_bus);
|