aboutsummaryrefslogtreecommitdiff
path: root/src/drivers/i2c/nct7802y/nct7802y.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/drivers/i2c/nct7802y/nct7802y.c')
-rw-r--r--src/drivers/i2c/nct7802y/nct7802y.c15
1 files changed, 15 insertions, 0 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);
}