summaryrefslogtreecommitdiff
path: root/zephyr/shim
diff options
context:
space:
mode:
authorLogan_Liao <Logan_Liao@compal.corp-partner.google.com>2023-02-24 11:19:23 +0800
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2023-03-15 02:55:30 +0000
commit141fa4916511ee3162c8067041f4ee21b00f194e (patch)
treeb4de84b2689ac24f82e5075ad99b1ab5fd4fdb84 /zephyr/shim
parentb68720a8a6492445555253308fbcae7ab53ecea1 (diff)
downloadchrome-ec-141fa4916511ee3162c8067041f4ee21b00f194e.tar.gz
Zephyr: Correct Temp sensor F75303 read methond.
This patch correct F75303 read fail on zephyr. BUG=b:269786658 BRANCH=none TEST=test markarth console that temps show right value. Change-Id: I315d80e2166d0b5f4d69f4e671846abe52fccbba Signed-off-by: Logan_Liao <Logan_Liao@compal.corp-partner.google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4290094 Reviewed-by: Logan Liao <logan_liao@compal.corp-partner.google.com> Tested-by: Logan Liao <logan_liao@compal.corp-partner.google.com> Reviewed-by: Chao Gui <chaogui@google.com> Commit-Queue: Logan Liao <logan_liao@compal.corp-partner.google.com>
Diffstat (limited to 'zephyr/shim')
-rw-r--r--zephyr/shim/include/temp_sensor/temp_sensor.h18
-rw-r--r--zephyr/shim/src/temp_sensors.c25
2 files changed, 19 insertions, 24 deletions
diff --git a/zephyr/shim/include/temp_sensor/temp_sensor.h b/zephyr/shim/include/temp_sensor/temp_sensor.h
index d35a283a41..5159c0b325 100644
--- a/zephyr/shim/include/temp_sensor/temp_sensor.h
+++ b/zephyr/shim/include/temp_sensor/temp_sensor.h
@@ -149,21 +149,15 @@ enum tmp112_sensor {
/* F75303 access array */
/*
- * Get the F75303 sensor ID from a hardware device node.
+ * Get the F75303 sensor ID.
+ *
+ * The F75303 driver only supports a single device instance on the board. Each
+ * device supports 3 temperature sensor types: local, remote1, and remote2.
+ * Use the temperature sensor type as the sensor ID.
*
* @param node_id: node id of a hardware F75303 sensor node
*/
-#define F75303_SENSOR_ID(node_id) DT_CAT(F75303_, node_id)
-#define F75303_SENSOR_ID_WITH_COMMA(node_id) F75303_SENSOR_ID(node_id),
-
-/* clang-format off */
-enum f75303_sensor {
- DT_FOREACH_STATUS_OKAY(F75303_COMPAT, F75303_SENSOR_ID_WITH_COMMA)
- F75303_IDX_COUNT,
-};
-/* clang-format on */
-
-#undef F75303_SENSOR_ID_WITH_COMMA
+#define F75303_SENSOR_ID(node_id) DT_STRING_TOKEN(node_id, temperature_type)
struct zephyr_temp_sensor {
/* Read sensor value in K into temp_ptr; return non-zero if error. */
diff --git a/zephyr/shim/src/temp_sensors.c b/zephyr/shim/src/temp_sensors.c
index 439ea917f9..b0913a3835 100644
--- a/zephyr/shim/src/temp_sensors.c
+++ b/zephyr/shim/src/temp_sensors.c
@@ -6,9 +6,9 @@
#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/f75303.h"
#include "temp_sensor/pct2075.h"
#include "temp_sensor/sb_tsi.h"
#include "temp_sensor/temp_sensor.h"
@@ -210,25 +210,26 @@ __maybe_unused static int f75303_get_temp(const struct temp_sensor_t *sensor,
}
#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 DEFINE_F75303_DATA(sensor_id) \
+ [F75303_SENSOR_ID(sensor_id)] = { \
+ .i2c_port = I2C_PORT_BY_DEV(sensor_id), \
+ .i2c_addr_flags = DT_REG_ADDR(sensor_id), \
},
-#define GET_ZEPHYR_TEMP_SENSOR_F75303(named_id) \
+#define GET_ZEPHYR_TEMP_SENSOR_F75303(named_id, sensor_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), \
+#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, sensor_id), \
}
const struct f75303_sensor_t f75303_sensors[F75303_IDX_COUNT] = {