summaryrefslogtreecommitdiff
path: root/src/drivers/i2c
diff options
context:
space:
mode:
Diffstat (limited to 'src/drivers/i2c')
-rw-r--r--src/drivers/i2c/nct7802y/nct7802y.c15
-rw-r--r--src/drivers/i2c/nct7802y/nct7802y_fan.c7
2 files changed, 15 insertions, 7 deletions
diff --git a/src/drivers/i2c/nct7802y/nct7802y.c b/src/drivers/i2c/nct7802y/nct7802y.c
index 5057890c6b..bb52a3fd0b 100644
--- a/src/drivers/i2c/nct7802y/nct7802y.c
+++ b/src/drivers/i2c/nct7802y/nct7802y.c
@@ -2,10 +2,24 @@
#include <console/console.h>
#include <device/device.h>
+#include <types.h>
#include "nct7802y.h"
#include "chip.h"
+static void nct7802y_init_sensors(struct device *const dev)
+{
+ const struct drivers_i2c_nct7802y_config *const config = dev->chip_info;
+ unsigned int i;
+ u8 value = 0;
+
+ for (i = 0; i < NCT7802Y_RTD_CNT; ++i)
+ value |= MODE_SELECTION_RTDx(i, config->sensors.rtd[i]);
+ if (config->sensors.local_enable)
+ value |= MODE_SELECTION_LTD_EN;
+ nct7802y_write(dev, MODE_SELECTION, value);
+}
+
static void nct7802y_init(struct device *const dev)
{
if (!dev->chip_info) {
@@ -15,6 +29,7 @@ static void nct7802y_init(struct device *const dev)
}
nct7802y_init_peci(dev);
+ nct7802y_init_sensors(dev);
nct7802y_init_fan(dev);
}
diff --git a/src/drivers/i2c/nct7802y/nct7802y_fan.c b/src/drivers/i2c/nct7802y/nct7802y_fan.c
index a608802c7b..bfe3a91a30 100644
--- a/src/drivers/i2c/nct7802y/nct7802y_fan.c
+++ b/src/drivers/i2c/nct7802y/nct7802y_fan.c
@@ -78,13 +78,6 @@ void nct7802y_init_fan(struct device *const dev)
init_fan(dev, &config->fan[i], i);
}
- value = 0;
- for (i = 0; i < NCT7802Y_RTD_CNT; ++i)
- value |= MODE_SELECTION_RTDx(i, config->sensors.rtd[i]);
- if (config->sensors.local_enable)
- value |= MODE_SELECTION_LTD_EN;
- nct7802y_write(dev, MODE_SELECTION, value);
-
switch (config->on_pecierror) {
case PECI_ERROR_KEEP:
value = CLOSE_LOOP_FAN_PECI_ERR_CURR;