summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2021-03-27 17:47:28 +1300
committerCommit Bot <commit-bot@chromium.org>2021-04-02 23:12:53 +0000
commit41025766295073696e2eace5b5be11cf80af525e (patch)
tree73e7a5dfe244d12b99da40c4070b0ad12a54a092
parent227d8ca20a7ac1cd6dd580b426998a36bdd22994 (diff)
downloadchrome-ec-41025766295073696e2eace5b5be11cf80af525e.tar.gz
zephyr: Update ADC shim for Zephyr 2.5
This seems to have changed with the new version. We now need to use an enum since we cannot get the label except as a string. Update it. BUG=b:175881324 BRANCH=none TEST=build Zephyr with lazor and some other CLs and see that the ADC enum is now available and there are not build errors Signed-off-by: Simon Glass <sjg@chromium.org> Change-Id: Iefa1a3582ec7d20a41b1e26a8210fdf7c8b7e1ef Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2788839 Reviewed-by: Keith Short <keithshort@chromium.org>
-rw-r--r--zephyr/dts/bindings/adc/named-adc.yaml13
-rw-r--r--zephyr/projects/trogdor/boards/arm/trogdor/trogdor.dts3
-rw-r--r--zephyr/projects/volteer/boards/arm/volteer/volteer.dts4
-rw-r--r--zephyr/shim/include/zephyr_adc.h8
-rw-r--r--zephyr/shim/src/adc.c2
-rw-r--r--zephyr/shim/src/temp_sensors.c2
6 files changed, 28 insertions, 4 deletions
diff --git a/zephyr/dts/bindings/adc/named-adc.yaml b/zephyr/dts/bindings/adc/named-adc.yaml
index 91c247a20e..4e621b1484 100644
--- a/zephyr/dts/bindings/adc/named-adc.yaml
+++ b/zephyr/dts/bindings/adc/named-adc.yaml
@@ -29,3 +29,16 @@ child-binding:
type: int
default: 1
description: Division factor of ADC measurement
+ enum-name:
+ type: string
+ required: true
+ description:
+ Enum values used in the source code to refer to the ADC channels
+ enum:
+ - ADC_AMON_BMON
+ - ADC_VBUS
+ - ADC_PSYS
+ - ADC_TEMP_SENSOR_CHARGER
+ - ADC_TEMP_SENSOR_DDR_SOC
+ - ADC_TEMP_SENSOR_FAN
+ - ADC_TEMP_SENSOR_PP3300_REGULATOR
diff --git a/zephyr/projects/trogdor/boards/arm/trogdor/trogdor.dts b/zephyr/projects/trogdor/boards/arm/trogdor/trogdor.dts
index f0c9104afc..3afe140971 100644
--- a/zephyr/projects/trogdor/boards/arm/trogdor/trogdor.dts
+++ b/zephyr/projects/trogdor/boards/arm/trogdor/trogdor.dts
@@ -78,12 +78,14 @@
vbus {
label = "ADC_VBUS";
+ enum-name = "ADC_VBUS";
channel = <1>;
/* Measure VBUS through a 1/10 voltage divider */
mul = <10>;
};
amon_bmon {
label = "ADC_AMON_BMON";
+ enum-name = "ADC_AMON_BMON";
channel = <2>;
/*
* Adapter current output or battery charging/
@@ -95,6 +97,7 @@
};
psys {
label = "ADC_PSYS";
+ enum-name = "ADC_PSYS";
channel = <3>;
/*
* ISL9238 PSYS output is 1.44 uA/W over 5.6K resistor,
diff --git a/zephyr/projects/volteer/boards/arm/volteer/volteer.dts b/zephyr/projects/volteer/boards/arm/volteer/volteer.dts
index 1d1e694f0d..dca08db417 100644
--- a/zephyr/projects/volteer/boards/arm/volteer/volteer.dts
+++ b/zephyr/projects/volteer/boards/arm/volteer/volteer.dts
@@ -79,18 +79,22 @@
adc_charger: charger {
label = "ADC_TEMP_SENSOR_CHARGER";
+ enum-name = "ADC_TEMP_SENSOR_CHARGER";
channel = <0>;
};
adc_pp3300_regulator: pp3300_regulator {
label = "ADC_TEMP_SENSOR_PP3300_REGULATOR";
+ enum-name = "ADC_TEMP_SENSOR_PP3300_REGULATOR";
channel = <1>;
};
adc_ddr_soc: ddr_soc {
label = "ADC_TEMP_SENSOR_DDR_SOC";
+ enum-name = "ADC_TEMP_SENSOR_DDR_SOC";
channel = <8>;
};
adc_fan: fan {
label = "ADC_TEMP_SENSOR_FAN";
+ enum-name = "ADC_TEMP_SENSOR_FAN";
channel = <3>;
};
};
diff --git a/zephyr/shim/include/zephyr_adc.h b/zephyr/shim/include/zephyr_adc.h
index 121f8db849..25ef530e17 100644
--- a/zephyr/shim/include/zephyr_adc.h
+++ b/zephyr/shim/include/zephyr_adc.h
@@ -8,14 +8,18 @@
#ifdef CONFIG_PLATFORM_EC_ADC
-#define NODE_ID_AND_COMMA(node_id) node_id,
+#define ZSHIM_ADC_ID(node_id) DT_ENUM_UPPER_TOKEN(node_id, enum_name)
+#define ADC_ID_WITH_COMMA(node_id) ZSHIM_ADC_ID(node_id),
+
enum adc_channel {
#if DT_NODE_EXISTS(DT_INST(0, named_adc_channels))
- DT_FOREACH_CHILD(DT_INST(0, named_adc_channels), NODE_ID_AND_COMMA)
+ DT_FOREACH_CHILD(DT_INST(0, named_adc_channels), ADC_ID_WITH_COMMA)
#endif /* named_adc_channels */
ADC_CH_COUNT
};
+#undef ADC_ID_WITH_COMMA
+
struct adc_t {
const char *name;
uint8_t input_ch;
diff --git a/zephyr/shim/src/adc.c b/zephyr/shim/src/adc.c
index 7ace7ecf82..3e7aa6f37f 100644
--- a/zephyr/shim/src/adc.c
+++ b/zephyr/shim/src/adc.c
@@ -11,7 +11,7 @@ const struct device *adc_dev;
#if DT_NODE_EXISTS(DT_INST(0, named_adc_channels))
#define ADC_CHANNEL_COMMA(node_id) \
- [node_id] = { \
+ [ZSHIM_ADC_ID(node_id)] = { \
.name = DT_LABEL(node_id), \
.input_ch = DT_PROP(node_id, channel), \
.factor_mul = DT_PROP(node_id, mul), \
diff --git a/zephyr/shim/src/temp_sensors.c b/zephyr/shim/src/temp_sensors.c
index dfe259f126..b29b5f720b 100644
--- a/zephyr/shim/src/temp_sensors.c
+++ b/zephyr/shim/src/temp_sensors.c
@@ -12,7 +12,7 @@
[ZSHIM_TEMP_SENSOR_ID(node_id)] = { \
.name = DT_LABEL(node_id), \
.read = DT_ENUM_TOKEN(node_id, get_temp_func), \
- .idx = DT_PHANDLE(node_id, adc), \
+ .idx = ZSHIM_ADC_ID(DT_PHANDLE(node_id, adc)), \
.type = TEMP_SENSOR_TYPE_BOARD, \
},