diff options
Diffstat (limited to 'zephyr/shim/src/temp_sensors.c')
-rw-r--r-- | zephyr/shim/src/temp_sensors.c | 40 |
1 files changed, 39 insertions, 1 deletions
diff --git a/zephyr/shim/src/temp_sensors.c b/zephyr/shim/src/temp_sensors.c index ae3a367252..439ea917f9 100644 --- a/zephyr/shim/src/temp_sensors.c +++ b/zephyr/shim/src/temp_sensors.c @@ -6,6 +6,7 @@ #include "adc.h" #include "charger/chg_rt9490.h" #include "driver/charger/rt9490.h" +#include "driver/temp_sensor/f75303.h" #include "hooks.h" #include "temp_sensor.h" #include "temp_sensor/pct2075.h" @@ -198,6 +199,42 @@ const struct tmp112_sensor_t tmp112_sensors[TMP112_COUNT] = { DT_FOREACH_STATUS_OKAY(TMP112_COMPAT, DEFINE_TMP112_DATA) }; +#if DT_HAS_COMPAT_STATUS_OKAY(F75303_COMPAT) +/* The function maybe unused because a temperature sensor can be added to dts + * without a reference in the cros_ec_temp_sensors node. + */ +__maybe_unused static int f75303_get_temp(const struct temp_sensor_t *sensor, + int *temp_ptr) +{ + return f75303_get_val_k(sensor->idx, temp_ptr); +} +#endif /* f75303_COMPAT */ + +#define DEFINE_F75303_DATA(node_id) \ + [F75303_SENSOR_ID(node_id)] = { \ + .i2c_port = I2C_PORT_BY_DEV(node_id), \ + .i2c_addr_flags = DT_REG_ADDR(node_id), \ + }, + +#define GET_ZEPHYR_TEMP_SENSOR_F75303(named_id) \ + (&(const struct zephyr_temp_sensor){ \ + .read = &f75303_get_temp, \ + .thermistor = NULL, \ + .update_temperature = f75303_update_temperature, \ + FILL_POWER_GOOD(named_id) }) + +#define TEMP_F75303(named_id, sensor_id) \ + [TEMP_SENSOR_ID(named_id)] = { \ + .name = DT_NODE_FULL_NAME(sensor_id), \ + .idx = F75303_SENSOR_ID(sensor_id), \ + .type = TEMP_SENSOR_TYPE_BOARD, \ + .zephyr_info = GET_ZEPHYR_TEMP_SENSOR_F75303(named_id), \ + } + +const struct f75303_sensor_t f75303_sensors[F75303_IDX_COUNT] = { + DT_FOREACH_STATUS_OKAY(F75303_COMPAT, DEFINE_F75303_DATA) +}; + /* There can be only one thermistor on RT9490 with current driver */ #define ADD_ONE(node_id) 1 + #if DT_FOREACH_STATUS_OKAY_VARGS(RT9490_CHG_COMPAT, TEMP_RT9490_FN, \ @@ -235,7 +272,8 @@ const struct tmp112_sensor_t tmp112_sensors[TMP112_COUNT] = { CHECK_COMPAT(PCT2075_COMPAT, named_id, sensor_id, TEMP_PCT2075) \ CHECK_COMPAT(SB_TSI_COMPAT, named_id, sensor_id, TEMP_SB_TSI) \ CHECK_COMPAT(TMP112_COMPAT, named_id, sensor_id, TEMP_TMP112) \ - CHECK_COMPAT(RT9490_CHG_COMPAT, named_id, sensor_id, TEMP_RT9490) + CHECK_COMPAT(RT9490_CHG_COMPAT, named_id, sensor_id, TEMP_RT9490) \ + CHECK_COMPAT(F75303_COMPAT, named_id, sensor_id, TEMP_F75303) #define TEMP_SENSOR_ENTRY(named_id) \ TEMP_SENSOR_FIND(named_id, DT_PHANDLE(named_id, sensor)) |