From d2892c1123b6afd39eeafac375d87cd3d5166f66 Mon Sep 17 00:00:00 2001 From: Mulin Chao Date: Mon, 28 Aug 2023 23:53:25 -0700 Subject: [PATCH] driver: sensor: npcx: add 'thr-sel' prop. for adc comparator Add `thr-sel` prop. to select the relevant threshold register for adc comparator since there're two adc modules in npcx4 series. Signed-off-by: Kate Yen Signed-off-by: Mulin Chao --- drivers/sensor/nuvoton_adc_cmp_npcx/adc_cmp_npcx.c | 2 +- dts/bindings/sensor/nuvoton,adc-cmp.yaml | 13 ++++++++++++- include/zephyr/drivers/sensor/adc_cmp_npcx.h | 13 +++++++++++++ 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/drivers/sensor/nuvoton_adc_cmp_npcx/adc_cmp_npcx.c b/drivers/sensor/nuvoton_adc_cmp_npcx/adc_cmp_npcx.c index 5294c8fd3b9..ff1871e8a40 100644 --- a/drivers/sensor/nuvoton_adc_cmp_npcx/adc_cmp_npcx.c +++ b/drivers/sensor/nuvoton_adc_cmp_npcx/adc_cmp_npcx.c @@ -256,7 +256,7 @@ static const struct sensor_driver_api adc_cmp_npcx_api = { static const struct adc_cmp_npcx_config adc_cmp_npcx_config_##inst = {\ .adc = DEVICE_DT_GET(DT_INST_IO_CHANNELS_CTLR(inst)), \ .chnsel = DT_INST_IO_CHANNELS_INPUT(inst), \ - .th_sel = inst, \ + .th_sel = DT_INST_STRING_TOKEN_OR(inst, thr_sel, inst), \ .thr_mv = DT_INST_PROP_OR(inst, threshold_mv, \ ADC_CMP_NPCX_UNDEFINED), \ .comparison = DT_INST_STRING_TOKEN_OR(inst, \ diff --git a/dts/bindings/sensor/nuvoton,adc-cmp.yaml b/dts/bindings/sensor/nuvoton,adc-cmp.yaml index 769304b25b2..40d0e1b6e0c 100644 --- a/dts/bindings/sensor/nuvoton,adc-cmp.yaml +++ b/dts/bindings/sensor/nuvoton,adc-cmp.yaml @@ -1,6 +1,5 @@ # Copyright (c) 2022 Intel Corporation # SPDX-License-Identifier: Apache-2.0 - description: | This will perform signal comparision with threshold established. @@ -28,3 +27,15 @@ properties: enum: - ADC_CMP_NPCX_GREATER - ADC_CMP_NPCX_LESS_OR_EQUAL + + thr-sel: + type: string + description: | + Determines the register for threshold control and event. + enum: + - ADC_CMP_NPCX_THRCTL1 + - ADC_CMP_NPCX_THRCTL2 + - ADC_CMP_NPCX_THRCTL3 + - ADC_CMP_NPCX_THRCTL4 + - ADC_CMP_NPCX_THRCTL5 + - ADC_CMP_NPCX_THRCTL6 diff --git a/include/zephyr/drivers/sensor/adc_cmp_npcx.h b/include/zephyr/drivers/sensor/adc_cmp_npcx.h index fc66fd80a11..5e986dd1be7 100644 --- a/include/zephyr/drivers/sensor/adc_cmp_npcx.h +++ b/include/zephyr/drivers/sensor/adc_cmp_npcx.h @@ -12,6 +12,19 @@ enum adc_cmp_npcx_comparison { ADC_CMP_NPCX_LESS_OR_EQUAL, }; +/* Supported ADC threshold controllers in NPCX series */ +enum npcx_adc_cmp_thrctl { + ADC_CMP_NPCX_THRCTL1, + ADC_CMP_NPCX_THRCTL2, + ADC_CMP_NPCX_THRCTL3, +#if !defined(CONFIG_SOC_SERIES_NPCX7) + ADC_CMP_NPCX_THRCTL4, + ADC_CMP_NPCX_THRCTL5, + ADC_CMP_NPCX_THRCTL6, +#endif + ADC_CMP_NPCX_THRCTL_COUNT, +}; + enum adc_cmp_npcx_sensor_attribute { SENSOR_ATTR_LOWER_VOLTAGE_THRESH = SENSOR_ATTR_PRIV_START, SENSOR_ATTR_UPPER_VOLTAGE_THRESH,