1
1
/*
2
- * SPDX-FileCopyrightText: 2019-2024 Espressif Systems (Shanghai) CO LTD
2
+ * SPDX-FileCopyrightText: 2019-2025 Espressif Systems (Shanghai) CO LTD
3
3
*
4
4
* SPDX-License-Identifier: Apache-2.0
5
5
*/
@@ -107,7 +107,7 @@ esp_err_t adc_oneshot_new_unit(const adc_oneshot_unit_init_cfg_t *init_config, a
107
107
if (init_config -> ulp_mode != ADC_ULP_MODE_DISABLE ) {
108
108
clk_src = LP_ADC_CLK_SRC_LP_DYN_FAST ;
109
109
} else
110
- #endif /* CONFIG_SOC_LP_ADC_SUPPORTED */
110
+ #endif /* SOC_LP_ADC_SUPPORTED */
111
111
{
112
112
clk_src = ADC_DIGI_CLK_SRC_DEFAULT ;
113
113
if (init_config -> clk_src ) {
@@ -119,10 +119,28 @@ esp_err_t adc_oneshot_new_unit(const adc_oneshot_unit_init_cfg_t *init_config, a
119
119
120
120
adc_oneshot_hal_cfg_t config = {
121
121
.unit = init_config -> unit_id ,
122
- .work_mode = (init_config -> ulp_mode != ADC_ULP_MODE_DISABLE ) ? ADC_HAL_LP_MODE : ADC_HAL_SINGLE_READ_MODE ,
123
122
.clk_src = clk_src ,
124
123
.clk_src_freq_hz = clk_src_freq_hz ,
125
124
};
125
+
126
+ switch (init_config -> ulp_mode ) {
127
+ case ADC_ULP_MODE_FSM :
128
+ config .work_mode = ADC_HAL_LP_MODE ; // esp32 ulp-fsm mode
129
+ break ;
130
+ case ADC_ULP_MODE_RISCV :
131
+ config .work_mode = ADC_HAL_SINGLE_READ_MODE ; // esp32s2, esp32s3 ulp-riscv mode
132
+ break ;
133
+ #if SOC_LP_ADC_SUPPORTED
134
+ case ADC_ULP_MODE_LP_CORE :
135
+ config .work_mode = ADC_HAL_LP_MODE ; // lp core mode
136
+ break ;
137
+ #endif /* SOC_LP_ADC_SUPPORTED */
138
+ case ADC_ULP_MODE_DISABLE :
139
+ default :
140
+ config .work_mode = ADC_HAL_SINGLE_READ_MODE ; // oneshot read mode
141
+ break ;
142
+ }
143
+
126
144
adc_oneshot_hal_init (& (unit -> hal ), & config );
127
145
128
146
#if SOC_ADC_DIG_CTRL_SUPPORTED && !SOC_ADC_RTC_CTRL_SUPPORTED
0 commit comments