diff options
-rw-r--r-- | zephyr/boards/arm/brya/brya.dts | 8 | ||||
-rw-r--r-- | zephyr/boards/arm/herobrine_npcx9/herobrine_npcx9.dts | 6 | ||||
-rw-r--r-- | zephyr/boards/arm/npcx_evb/npcx_evb.dtsi | 10 | ||||
-rw-r--r-- | zephyr/boards/arm/trogdor/trogdor.dts | 6 | ||||
-rw-r--r-- | zephyr/boards/arm/volteer/volteer.dts | 8 | ||||
-rw-r--r-- | zephyr/boards/riscv/asurada/asurada.dts | 14 | ||||
-rw-r--r-- | zephyr/boards/riscv/it8xxx2_evb/it8xxx2_evb.dts | 12 | ||||
-rw-r--r-- | zephyr/dts/bindings/adc/named-adc.yaml | 6 | ||||
-rw-r--r-- | zephyr/include/cros/ite/it8xxx2.dtsi | 1 | ||||
-rw-r--r-- | zephyr/include/cros/nuvoton/npcx.dtsi | 1 | ||||
-rw-r--r-- | zephyr/projects/corsola/adc_kingler.dts | 8 | ||||
-rw-r--r-- | zephyr/projects/corsola/adc_krabby.dts | 8 | ||||
-rw-r--r-- | zephyr/projects/nissa/nereid_generated.dts | 8 | ||||
-rw-r--r-- | zephyr/projects/nissa/nivviks_generated.dts | 6 | ||||
-rw-r--r-- | zephyr/projects/skyrim/adc.dts | 8 | ||||
-rw-r--r-- | zephyr/projects/skyrim/guybrush.dts | 2 | ||||
-rw-r--r-- | zephyr/shim/include/zephyr_adc.h | 1 | ||||
-rw-r--r-- | zephyr/shim/src/adc.c | 28 | ||||
-rw-r--r-- | zephyr/test/drivers/overlay.dts | 9 |
19 files changed, 75 insertions, 75 deletions
diff --git a/zephyr/boards/arm/brya/brya.dts b/zephyr/boards/arm/brya/brya.dts index 02dfee6d1c..a37b8f6650 100644 --- a/zephyr/boards/arm/brya/brya.dts +++ b/zephyr/boards/arm/brya/brya.dts @@ -75,22 +75,22 @@ adc_ddr_soc: ddr_soc { label = "TEMP_DDR_SOC"; enum-name = "ADC_TEMP_SENSOR_1_DDR_SOC"; - channel = <0>; + io-channels = <&adc0 0>; }; adc_ambient: ambient { label = "TEMP_AMBIENT"; enum-name = "ADC_TEMP_SENSOR_2_AMBIENT"; - channel = <1>; + io-channels = <&adc0 1>; }; adc_charger: charger { label = "TEMP_CHARGER"; enum-name = "ADC_TEMP_SENSOR_3_CHARGER"; - channel = <6>; + io-channels = <&adc0 6>; }; adc_wwan: wwan { label = "TEMP_WWAN"; enum-name = "ADC_TEMP_SENSOR_4_WWAN"; - channel = <7>; + io-channels = <&adc0 7>; }; }; diff --git a/zephyr/boards/arm/herobrine_npcx9/herobrine_npcx9.dts b/zephyr/boards/arm/herobrine_npcx9/herobrine_npcx9.dts index 2103b59c1d..27451b0951 100644 --- a/zephyr/boards/arm/herobrine_npcx9/herobrine_npcx9.dts +++ b/zephyr/boards/arm/herobrine_npcx9/herobrine_npcx9.dts @@ -66,14 +66,14 @@ vbus { label = "VBUS"; enum-name = "ADC_VBUS"; - channel = <1>; + io-channels = <&adc0 1>; /* Measure VBUS through a 1/10 voltage divider */ mul = <10>; }; amon_bmon { label = "AMON_BMON"; enum-name = "ADC_AMON_BMON"; - channel = <2>; + io-channels = <&adc0 2>; /* * Adapter current output or battery charging/ * discharging current (uV) 18x amplification on @@ -85,7 +85,7 @@ psys { label = "PSYS"; enum-name = "ADC_PSYS"; - channel = <3>; + io-channels = <&adc0 3>; /* * ISL9238 PSYS output is 1.44 uA/W over 5.6K resistor, * to read 0.8V @ 99 W, i.e. 124000 uW/mV. diff --git a/zephyr/boards/arm/npcx_evb/npcx_evb.dtsi b/zephyr/boards/arm/npcx_evb/npcx_evb.dtsi index 4995cd8af3..af5d6218bb 100644 --- a/zephyr/boards/arm/npcx_evb/npcx_evb.dtsi +++ b/zephyr/boards/arm/npcx_evb/npcx_evb.dtsi @@ -47,27 +47,27 @@ adc_ch_0 { label = "ADC0"; enum-name = "ADC_EVB_CH_0"; - channel = <0>; + io-channels = <&adc0 0>; }; adc_ch_1 { label = "ADC1"; enum-name = "ADC_EVB_CH_1"; - channel = <1>; + io-channels = <&adc0 1>; }; adc_ch_2 { label = "ADC2"; enum-name = "ADC_EVB_CH_2"; - channel = <2>; + io-channels = <&adc0 2>; }; adc_ch_3 { label = "ADC3"; enum-name = "ADC_EVB_CH_3"; - channel = <3>; + io-channels = <&adc0 3>; }; adc_ch_4 { label = "ADC4"; enum-name = "ADC_EVB_CH_4"; - channel = <4>; + io-channels = <&adc0 4>; }; }; diff --git a/zephyr/boards/arm/trogdor/trogdor.dts b/zephyr/boards/arm/trogdor/trogdor.dts index 3b9c6178e8..d930907cf8 100644 --- a/zephyr/boards/arm/trogdor/trogdor.dts +++ b/zephyr/boards/arm/trogdor/trogdor.dts @@ -118,14 +118,14 @@ vbus { label = "VBUS"; enum-name = "ADC_VBUS"; - channel = <1>; + io-channels = <&adc0 1>; /* Measure VBUS through a 1/10 voltage divider */ mul = <10>; }; amon_bmon { label = "AMON_BMON"; enum-name = "ADC_AMON_BMON"; - channel = <2>; + io-channels = <&adc0 2>; /* * Adapter current output or battery charging/ * discharging current (uV) 18x amplification on @@ -137,7 +137,7 @@ psys { label = "PSYS"; enum-name = "ADC_PSYS"; - channel = <3>; + io-channels = <&adc0 3>; /* * ISL9238 PSYS output is 1.44 uA/W over 5.6K resistor, * to read 0.8V @ 99 W, i.e. 124000 uW/mV. diff --git a/zephyr/boards/arm/volteer/volteer.dts b/zephyr/boards/arm/volteer/volteer.dts index 79d08170af..cbc8227760 100644 --- a/zephyr/boards/arm/volteer/volteer.dts +++ b/zephyr/boards/arm/volteer/volteer.dts @@ -95,22 +95,22 @@ adc_charger: charger { label = "TEMP_CHARGER"; enum-name = "ADC_TEMP_SENSOR_CHARGER"; - channel = <0>; + io-channels = <&adc0 0>; }; adc_pp3300_regulator: pp3300_regulator { label = "TEMP_PP3300_REGULATOR"; enum-name = "ADC_TEMP_SENSOR_PP3300_REGULATOR"; - channel = <1>; + io-channels = <&adc0 1>; }; adc_ddr_soc: ddr_soc { label = "TEMP_DDR_SOC"; enum-name = "ADC_TEMP_SENSOR_DDR_SOC"; - channel = <8>; + io-channels = <&adc0 8>; }; adc_fan: fan { label = "TEMP_FAN"; enum-name = "ADC_TEMP_SENSOR_FAN"; - channel = <3>; + io-channels = <&adc0 3>; }; }; diff --git a/zephyr/boards/riscv/asurada/asurada.dts b/zephyr/boards/riscv/asurada/asurada.dts index 9b8cf91283..df768c7c5b 100644 --- a/zephyr/boards/riscv/asurada/asurada.dts +++ b/zephyr/boards/riscv/asurada/asurada.dts @@ -45,41 +45,41 @@ adc_vbus_c0 { label = "VBUS_C0"; enum-name = "ADC_VBUS_C0"; - channel = <0>; + io-channels = <&adc0 0>; mul = <10>; }; adc_board_id0 { label = "BOARD_ID_0"; enum-name = "ADC_BOARD_ID_0"; - channel = <1>; + io-channels = <&adc0 1>; }; adc_board_id1 { label = "BOARD_ID_1"; enum-name = "ADC_BOARD_ID_1"; - channel = <2>; + io-channels = <&adc0 2>; }; adc_charger_amon_r { label = "AMON_BMON"; enum-name = "ADC_AMON_BMON"; - channel = <3>; + io-channels = <&adc0 3>; mul = <1000>; div = <18>; }; adc_vbus_c1 { label = "VBUS_C1"; enum-name = "ADC_VBUS_C1"; - channel = <5>; + io-channels = <&adc0 5>; mul = <10>; }; adc_charger_pmon { label = "PMON"; enum-name = "ADC_PMON"; - channel = <6>; + io-channels = <&adc0 6>; }; adc-psys { label = "PSYS"; enum-name = "ADC_PSYS"; - channel = <6>; + io-channels = <&adc0 6>; }; }; diff --git a/zephyr/boards/riscv/it8xxx2_evb/it8xxx2_evb.dts b/zephyr/boards/riscv/it8xxx2_evb/it8xxx2_evb.dts index 52ee525eae..c0c186f256 100644 --- a/zephyr/boards/riscv/it8xxx2_evb/it8xxx2_evb.dts +++ b/zephyr/boards/riscv/it8xxx2_evb/it8xxx2_evb.dts @@ -102,32 +102,32 @@ adc_vbussa: vbussa { label = "ADC_VBUSSA"; enum-name = "ADC_VBUS"; - channel = <0>; + io-channels = <&adc0 0>; }; adc_vbussb: vbussb { label = "ADC_VBUSSB"; enum-name = "ADC_PSYS"; - channel = <1>; + io-channels = <&adc0 1>; }; adc_evb_ch_13: evb_ch_13 { label = "ADC_EVB_CH_13"; enum-name = "ADC_AMON_BMON"; - channel = <2>; + io-channels = <&adc0 2>; }; adc_evb_ch_14: evb_ch_14 { label = "ADC_EVB_CH_14"; enum-name = "ADC_TEMP_SENSOR_FAN"; - channel = <3>; + io-channels = <&adc0 3>; }; adc_evb_ch_15: evb_ch_15 { label = "ADC_EVB_CH_15"; enum-name = "ADC_TEMP_SENSOR_DDR_SOC"; - channel = <4>; + io-channels = <&adc0 4>; }; adc_evb_ch_16: evb_ch_16 { label = "ADC_EVB_CH_16"; enum-name = "ADC_TEMP_SENSOR_CHARGER"; - channel = <5>; + io-channels = <&adc0 5>; }; }; diff --git a/zephyr/dts/bindings/adc/named-adc.yaml b/zephyr/dts/bindings/adc/named-adc.yaml index a21ed82e39..5e1edb6000 100644 --- a/zephyr/dts/bindings/adc/named-adc.yaml +++ b/zephyr/dts/bindings/adc/named-adc.yaml @@ -14,10 +14,10 @@ child-binding: type: string description: String used to describe an ADC channel in the 'adc' console command. - channel: + io-channels: required: true - type: int - description: ADC channel used + type: phandle-array + description: IO channels specifiers ADC channel used mul: required: false type: int diff --git a/zephyr/include/cros/ite/it8xxx2.dtsi b/zephyr/include/cros/ite/it8xxx2.dtsi index d835d9d4f1..a6a4d89e1c 100644 --- a/zephyr/include/cros/ite/it8xxx2.dtsi +++ b/zephyr/include/cros/ite/it8xxx2.dtsi @@ -8,7 +8,6 @@ / { chosen { - cros-ec,adc = &adc0; cros-ec,bbram = &bbram; cros-ec,espi = &espi0; cros-ec,flash = &fiu0; diff --git a/zephyr/include/cros/nuvoton/npcx.dtsi b/zephyr/include/cros/nuvoton/npcx.dtsi index 0a658663a8..44b3433459 100644 --- a/zephyr/include/cros/nuvoton/npcx.dtsi +++ b/zephyr/include/cros/nuvoton/npcx.dtsi @@ -11,7 +11,6 @@ / { chosen { - cros-ec,adc = &adc0; cros-ec,bbram = &bbram; cros-ec,espi = &espi0; cros-ec,flash = &fiu0; diff --git a/zephyr/projects/corsola/adc_kingler.dts b/zephyr/projects/corsola/adc_kingler.dts index 7b2e9817e4..badef7a849 100644 --- a/zephyr/projects/corsola/adc_kingler.dts +++ b/zephyr/projects/corsola/adc_kingler.dts @@ -10,7 +10,7 @@ adc_charger_pmon_r { label = "ADC_CHARGER_PMON_R"; enum-name = "ADC_PSYS"; - channel = <0>; + io-channels = <&adc0 0>; /* * ISL9238C PSYS output is 1.44 uA/W over 33K resistor. */ @@ -19,17 +19,17 @@ adc_ec_id0 { label = "ADC_EC_ID0"; enum-name = "ADC_ID_0"; - channel = <1>; + io-channels = <&adc0 1>; }; adc_ec_id1 { label = "ADC_EC_ID1"; enum-name = "ADC_ID_1"; - channel = <2>; + io-channels = <&adc0 2>; }; adc_charger_amon_r { label = "ADC_AMON_R"; enum-name = "ADC_AMON_BMON"; - channel = <3>; + io-channels = <&adc0 3>; mul = <1000>; div = <18>; }; diff --git a/zephyr/projects/corsola/adc_krabby.dts b/zephyr/projects/corsola/adc_krabby.dts index 938fc42cd1..f9cab10cf1 100644 --- a/zephyr/projects/corsola/adc_krabby.dts +++ b/zephyr/projects/corsola/adc_krabby.dts @@ -10,23 +10,23 @@ adc_vbus_c0 { label = "VBUS_C0"; enum-name = "ADC_VBUS_C0"; - channel = <0>; + io-channels = <&adc0 0>; mul = <10>; }; adc_board_id0 { label = "BOARD_ID_0"; enum-name = "ADC_BOARD_ID_0"; - channel = <1>; + io-channels = <&adc0 1>; }; adc_board_id1 { label = "BOARD_ID_1"; enum-name = "ADC_BOARD_ID_1"; - channel = <2>; + io-channels = <&adc0 2>; }; adc_vbus_c1 { label = "VBUS_C1"; enum-name = "ADC_VBUS_C1"; - channel = <7>; + io-channels = <&adc0 7>; mul = <10>; }; }; diff --git a/zephyr/projects/nissa/nereid_generated.dts b/zephyr/projects/nissa/nereid_generated.dts index 0ea7482308..a93f889b9c 100644 --- a/zephyr/projects/nissa/nereid_generated.dts +++ b/zephyr/projects/nissa/nereid_generated.dts @@ -13,22 +13,22 @@ adc_ec_vsense_pp3300_s5: ec_vsense_pp3300_s5 { label = "EC_VSENSE_PP3300_S5"; enum-name = "ADC_PP3300_S5"; - channel = <0>; + io-channels = <&adc0 0>; }; adc_temp_sensor_1: temp_sensor_1 { label = "TEMP_SENSOR_1"; enum-name = "ADC_TEMP_SENSOR_1"; - channel = <2>; + io-channels = <&adc0 2>; }; adc_temp_sensor_2: temp_sensor_2 { label = "TEMP_SENSOR_2"; enum-name = "ADC_TEMP_SENSOR_2"; - channel = <3>; + io-channels = <&adc0 3>; }; adc_temp_sensor_3: temp_sensor_3 { label = "TEMP_SENSOR_3"; enum-name = "ADC_TEMP_SENSOR_3"; - channel = <13>; + io-channels = <&adc0 13>; }; }; diff --git a/zephyr/projects/nissa/nivviks_generated.dts b/zephyr/projects/nissa/nivviks_generated.dts index a0019844e3..cc3dfa0210 100644 --- a/zephyr/projects/nissa/nivviks_generated.dts +++ b/zephyr/projects/nissa/nivviks_generated.dts @@ -13,17 +13,17 @@ adc_ec_vsense_pp3300_s5: ec_vsense_pp3300_s5 { label = "EC_VSENSE_PP3300_S5"; enum-name = "ADC_PP3300_S5"; - channel = <6>; + io-channels = <&adc0 6>; }; adc_temp_sensor_1: temp_sensor_1 { label = "TEMP_SENSOR_1"; enum-name = "ADC_TEMP_SENSOR_1"; - channel = <0>; + io-channels = <&adc0 0>; }; adc_temp_sensor_2: temp_sensor_2 { label = "TEMP_SENSOR_2"; enum-name = "ADC_TEMP_SENSOR_2"; - channel = <1>; + io-channels = <&adc0 1>; }; }; diff --git a/zephyr/projects/skyrim/adc.dts b/zephyr/projects/skyrim/adc.dts index fa9db4ece8..46b4b454b3 100644 --- a/zephyr/projects/skyrim/adc.dts +++ b/zephyr/projects/skyrim/adc.dts @@ -12,22 +12,22 @@ adc_temp_charger: temp-charger { label = "CHARGER"; enum-name = "ADC_TEMP_SENSOR_CHARGER"; - channel = <1>; + io-channels = <&adc0 1>; }; adc_temp_memory: temp-memory { label = "MEMORY"; enum-name = "ADC_TEMP_SENSOR_MEMORY"; - channel = <2>; + io-channels = <&adc0 2>; }; adc_core_imon1: core-imon1 { label = "CORE_I"; enum-name = "ADC_CORE_IMON1"; - channel = <3>; + io-channels = <&adc0 3>; }; adc_core_imon2: core-imon2 { label = "SOC_I"; enum-name = "ADC_SOC_IMON2"; - channel = <4>; + io-channels = <&adc0 4>; }; }; diff --git a/zephyr/projects/skyrim/guybrush.dts b/zephyr/projects/skyrim/guybrush.dts index 9fbc31c2bc..5c7d86c95f 100644 --- a/zephyr/projects/skyrim/guybrush.dts +++ b/zephyr/projects/skyrim/guybrush.dts @@ -105,7 +105,7 @@ adc_temp_soc: temp-soc { label = "SOC"; enum-name = "ADC_TEMP_SENSOR_SOC"; - channel = <0>; + io-channels = <&adc0 0>; }; }; }; diff --git a/zephyr/shim/include/zephyr_adc.h b/zephyr/shim/include/zephyr_adc.h index 4d279bec86..1c8e06664b 100644 --- a/zephyr/shim/include/zephyr_adc.h +++ b/zephyr/shim/include/zephyr_adc.h @@ -24,6 +24,7 @@ enum adc_channel { struct adc_t { const char *name; + const struct device *dev; uint8_t input_ch; int factor_mul; int factor_div; diff --git a/zephyr/shim/src/adc.c b/zephyr/shim/src/adc.c index 4b2de4bd24..68babcc576 100644 --- a/zephyr/shim/src/adc.c +++ b/zephyr/shim/src/adc.c @@ -3,6 +3,7 @@ * found in the LICENSE file. */ +#include <devicetree/io-channels.h> #include <drivers/adc.h> #include <logging/log.h> #include "adc.h" @@ -14,19 +15,18 @@ LOG_MODULE_REGISTER(shim_adc, LOG_LEVEL_ERR); #error "Define only one 'adc' console command." #endif -#define adc_dev DEVICE_DT_GET(DT_CHOSEN(cros_ec_adc)) - #define HAS_NAMED_ADC_CHANNELS DT_NODE_EXISTS(DT_INST(0, named_adc_channels)) #if HAS_NAMED_ADC_CHANNELS #define ADC_CHANNEL_COMMA(node_id) \ [ZSHIM_ADC_ID(node_id)] = { \ .name = DT_LABEL(node_id), \ - .input_ch = DT_PROP(node_id, channel), \ + .dev = DEVICE_DT_GET(DT_IO_CHANNELS_CTLR(node_id)), \ + .input_ch = DT_IO_CHANNELS_INPUT(node_id), \ .factor_mul = DT_PROP(node_id, mul), \ .factor_div = DT_PROP(node_id, div), \ .channel_cfg = { \ - .channel_id = DT_PROP(node_id, channel), \ + .channel_id = DT_IO_CHANNELS_INPUT(node_id), \ .gain = DT_STRING_TOKEN(node_id, gain), \ .reference = DT_STRING_TOKEN(node_id, reference), \ .acquisition_time = \ @@ -47,13 +47,14 @@ static int init_device_bindings(const struct device *device) { ARG_UNUSED(device); - if (!device_is_ready(adc_dev)) { - k_oops(); - } - #if HAS_NAMED_ADC_CHANNELS - for (int i = 0; i < ARRAY_SIZE(adc_channels); i++) - adc_channel_setup(adc_dev, &adc_channels[i].channel_cfg); + for (int i = 0; i < ARRAY_SIZE(adc_channels); i++) { + if (!device_is_ready(adc_channels[i].dev)) + k_oops(); + + adc_channel_setup(adc_channels[i].dev, + &adc_channels[i].channel_cfg); + } #endif return 0; @@ -73,12 +74,13 @@ int adc_read_channel(enum adc_channel ch) .calibrate = false, }; - rv = adc_read(adc_dev, &seq); + rv = adc_read(adc_channels[ch].dev, &seq); if (rv) return rv; - adc_raw_to_millivolts(adc_ref_internal(adc_dev), ADC_GAIN_1, - CONFIG_PLATFORM_EC_ADC_RESOLUTION, &ret); + adc_raw_to_millivolts(adc_ref_internal(adc_channels[ch].dev), + ADC_GAIN_1, CONFIG_PLATFORM_EC_ADC_RESOLUTION, + &ret); ret = (ret * adc_channels[ch].factor_mul) / adc_channels[ch].factor_div; return ret; } diff --git a/zephyr/test/drivers/overlay.dts b/zephyr/test/drivers/overlay.dts index ca38a578aa..bc388a6912 100644 --- a/zephyr/test/drivers/overlay.dts +++ b/zephyr/test/drivers/overlay.dts @@ -9,7 +9,6 @@ / { chosen { - cros-ec,adc = &adc0; cros-ec,espi = &espi0; }; @@ -242,22 +241,22 @@ adc_charger: charger { label = "ADC_TEMP_SENSOR_CHARGER"; enum-name = "ADC_TEMP_SENSOR_CHARGER"; - channel = <0>; + io-channels = <&adc0 0>; }; adc_pp3300_regulator: pp3300-regulator { label = "ADC_TEMP_SENSOR_PP3300_REGULATOR"; enum-name = "ADC_TEMP_SENSOR_PP3300_REGULATOR"; - channel = <1>; + io-channels = <&adc0 1>; }; adc_ddr_soc: ddr-soc { label = "ADC_TEMP_SENSOR_DDR_SOC"; enum-name = "ADC_TEMP_SENSOR_DDR_SOC"; - channel = <2>; + io-channels = <&adc0 2>; }; adc_fan: fan { label = "ADC_TEMP_SENSOR_FAN"; enum-name = "ADC_TEMP_SENSOR_FAN"; - channel = <3>; + io-channels = <&adc0 3>; }; }; |