summaryrefslogtreecommitdiff
path: root/zephyr/shim/src/temp_sensors.c
diff options
context:
space:
mode:
Diffstat (limited to 'zephyr/shim/src/temp_sensors.c')
-rw-r--r--zephyr/shim/src/temp_sensors.c31
1 files changed, 29 insertions, 2 deletions
diff --git a/zephyr/shim/src/temp_sensors.c b/zephyr/shim/src/temp_sensors.c
index 4d8be4fa42..a8533202fa 100644
--- a/zephyr/shim/src/temp_sensors.c
+++ b/zephyr/shim/src/temp_sensors.c
@@ -3,10 +3,11 @@
* found in the LICENSE file.
*/
+#include "adc.h"
#include "temp_sensor.h"
#include "temp_sensor/temp_sensor.h"
-#include "adc.h"
#include "temp_sensor/thermistor.h"
+#include "temp_sensor/tmp112.h"
#if DT_NODE_EXISTS(DT_PATH(named_temp_sensors))
static int thermistor_get_temp(const struct temp_sensor_t *sensor,
@@ -46,7 +47,33 @@ static int thermistor_get_temp(const struct temp_sensor_t *sensor,
DT_FOREACH_STATUS_OKAY(cros_ec_thermistor, DEFINE_THERMISTOR_DATA)
+#if DT_HAS_COMPAT_STATUS_OKAY(cros_ec_temp_sensor_tmp112)
+static int tmp112_get_temp(const struct temp_sensor_t *sensor, int *temp_ptr)
+{
+ return tmp112_get_val_k(sensor->idx, temp_ptr);
+}
+#endif /* cros_ec_temp_sensor_tmp112 */
+
+#define DEFINE_TMP112_DATA(node_id) \
+ [ZSHIM_TMP112_SENSOR_ID(node_id)] = { \
+ .i2c_port = I2C_PORT(DT_PHANDLE(node_id, port)), \
+ .i2c_addr_flags = DT_STRING_TOKEN(node_id, i2c_addr_flags), \
+ },
+
+#define TEMP_TMP112(node_id) \
+ [ZSHIM_TEMP_SENSOR_ID(node_id)] = { \
+ .name = DT_LABEL(node_id), \
+ .read = tmp112_get_temp, \
+ .idx = ZSHIM_TMP112_SENSOR_ID(node_id), \
+ .type = TEMP_SENSOR_TYPE_BOARD, \
+ },
+
+const struct tmp112_sensor_t tmp112_sensors[TMP112_COUNT] = {
+ DT_FOREACH_STATUS_OKAY(cros_ec_temp_sensor_tmp112, DEFINE_TMP112_DATA)
+};
+
const struct temp_sensor_t temp_sensors[] = {
- DT_FOREACH_STATUS_OKAY(cros_ec_temp_sensor, TEMP_THERMISTOR)
+ DT_FOREACH_STATUS_OKAY(cros_ec_temp_sensor_thermistor, TEMP_THERMISTOR)
+ DT_FOREACH_STATUS_OKAY(cros_ec_temp_sensor_tmp112, TEMP_TMP112)
};
#endif /* named_temp_sensors */