diff options
Diffstat (limited to 'src/drivers/i2c')
-rw-r--r-- | src/drivers/i2c/nct7802y/nct7802y.c | 15 | ||||
-rw-r--r-- | src/drivers/i2c/nct7802y/nct7802y_fan.c | 7 |
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; |