diff options
author | Simon Glass <sjg@chromium.org> | 2021-03-27 17:47:28 +1300 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-04-02 23:12:53 +0000 |
commit | 41025766295073696e2eace5b5be11cf80af525e (patch) | |
tree | 73e7a5dfe244d12b99da40c4070b0ad12a54a092 | |
parent | 227d8ca20a7ac1cd6dd580b426998a36bdd22994 (diff) | |
download | chrome-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.yaml | 13 | ||||
-rw-r--r-- | zephyr/projects/trogdor/boards/arm/trogdor/trogdor.dts | 3 | ||||
-rw-r--r-- | zephyr/projects/volteer/boards/arm/volteer/volteer.dts | 4 | ||||
-rw-r--r-- | zephyr/shim/include/zephyr_adc.h | 8 | ||||
-rw-r--r-- | zephyr/shim/src/adc.c | 2 | ||||
-rw-r--r-- | zephyr/shim/src/temp_sensors.c | 2 |
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, \ }, |