5 #include "qm_comparator.h"
7 #if (HAS_SOC_CONTEXT_RETENTION)
8 #include "power_states.h"
11 static void (*callback)(
void *, uint32_t) = NULL;
12 static void *callback_data;
15 #define cmp_ref_pol cmp_ref_pol
19 uint32_t int_status = QM_SCSS_CMP->cmp_stat_clr;
21 #if (HAS_SOC_CONTEXT_RETENTION)
22 if (QM_SCSS_GP->gps0 & QM_GPS0_POWER_STATES_MASK) {
27 (*callback)(callback_data, int_status);
31 QM_SCSS_CMP->cmp_stat_clr = int_status;
33 QM_ISR_EOI(QM_IRQ_COMPARATOR_0_INT_VECTOR);
38 QM_CHECK(config != NULL, -EINVAL);
40 uint32_t reference = 0;
49 QM_SCSS_CMP->cmp_en = 0;
53 QM_SCSS_CMP->cmp_ref_sel = reference;
54 QM_SCSS_CMP->cmp_ref_pol = config->
polarity;
55 QM_SCSS_CMP->cmp_pwr = config->
power;
58 QM_SCSS_CMP->cmp_stat_clr = 0x7FFFF;
59 QM_SCSS_CMP->cmp_en = config->
cmp_en;
void qm_power_soc_restore(void)
Restore system state after sleep or deep sleep.
uint32_t power
1b: Normal mode; 0b:Power-down/Shutdown mode
QM_ISR_DECLARE(qm_comparator_0_isr)
ISR for Analog Comparator 0 interrupt.
int qm_ac_set_config(const qm_ac_config_t *const config)
Set Analog Comparator configuration.
uint32_t cmp_en
Comparator enable.
uint32_t reference
Reference voltage, 1b: VREF; 0b: AR_PIN.
void(* callback)(void *data, uint32_t int_status)
Transfer callback.
uint32_t polarity
0b: input>ref; 1b: input<ref
Analog Comparator configuration type.
void * callback_data
Callback user data.