@@ -199,14 +199,27 @@ static void counter_max32_wut_isr(const struct device *dev)
199
199
MXC_WUT_ClearFlags (cfg -> regs );
200
200
}
201
201
202
+ static void counter_max32_wut_hw_init (const struct device * dev )
203
+ {
204
+ const struct max32_wut_config * cfg = dev -> config ;
205
+
206
+ Wrap_MXC_SYS_Select32KClockSource (cfg -> clock_source );
207
+
208
+ cfg -> irq_func (dev );
209
+
210
+ if (cfg -> wakeup_source ) {
211
+ MXC_LP_EnableWUTAlarmWakeup ();
212
+ }
213
+ }
214
+
202
215
static int counter_max32_wut_init (const struct device * dev )
203
216
{
204
217
const struct max32_wut_config * cfg = dev -> config ;
205
218
uint8_t prescaler_lo , prescaler_hi ;
206
219
mxc_wut_pres_t pres ;
207
220
mxc_wut_cfg_t wut_cfg ;
208
221
209
- Wrap_MXC_SYS_Select32KClockSource ( cfg -> clock_source );
222
+ counter_max32_wut_hw_init ( dev );
210
223
211
224
prescaler_lo = FIELD_GET (GENMASK (2 , 0 ), LOG2 (cfg -> prescaler ));
212
225
prescaler_hi = FIELD_GET (BIT (3 ), LOG2 (cfg -> prescaler ));
@@ -222,30 +235,16 @@ static int counter_max32_wut_init(const struct device *dev)
222
235
223
236
MXC_WUT_SetCount (cfg -> regs , 0 );
224
237
225
- cfg -> irq_func (dev );
226
-
227
- if (cfg -> wakeup_source ) {
228
- MXC_LP_EnableWUTAlarmWakeup ();
229
- }
230
-
231
238
return 0 ;
232
239
}
233
240
234
241
#ifdef CONFIG_PM_DEVICE
235
242
static int counter_max32_wut_pm_action (const struct device * dev , enum pm_device_action action )
236
243
{
237
- int ret ;
238
-
239
244
switch (action ) {
240
245
case PM_DEVICE_ACTION_RESUME :
241
-
242
- ret = counter_max32_wut_init (dev );
243
- if (ret != 0 ) {
244
- return ret ;
245
- }
246
-
246
+ counter_max32_wut_hw_init (dev );
247
247
break ;
248
-
249
248
case PM_DEVICE_ACTION_SUSPEND :
250
249
break ;
251
250
default :
0 commit comments