SemiDrive SSDK Appication Program Interface PTG3.0
sdrv_smc.h
Go to the documentation of this file.
1
9#ifndef SDRV_SMC_H_
10#define SDRV_SMC_H_
11
12#include <sdrv_common.h>
13#include <types.h>
14#include <part.h>
15
19#if CONFIG_E3 || CONFIG_D3
20#define SDRV_SMC_ASYNC_INT_USB (236 + 16)
21#define SDRV_SMC_ASYNC_INT_IOC (237 + 16)
22#define SDRV_SMC_ASYNC_INT_VIC1_SF_GPIO (238 + 16)
23#define SDRV_SMC_ASYNC_INT_VIC1_AP_GPIO (239 + 16)
24#define SDRV_SMC_ASYNC_INT_VIC2A_SF_GPIO (240 + 16)
25#define SDRV_SMC_ASYNC_INT_VIC2A_AP_GPIO (241 + 16)
26#define SDRV_SMC_ASYNC_INT_VIC2B_SF_GPIO (242 + 16)
27#define SDRV_SMC_ASYNC_INT_VIC2B_AP_GPIO (243 + 16)
28#define SDRV_SMC_ASYNC_INT_VIC3A_SF_GPIO (244 + 16)
29#define SDRV_SMC_ASYNC_INT_VIC3A_AP_GPIO (245 + 16)
30#define SDRV_SMC_ASYNC_INT_VIC3B_SF_GPIO (246 + 16)
31#define SDRV_SMC_ASYNC_INT_VIC3B_AP_GPIO (247 + 16)
32
33#define SDRV_SF_CKGEN_PCG_NUM 334
34#define SDRV_SF_CKGEN_BCG_NUM 15
35#define SDRV_SF_CKGEN_CCG_NUM 5
36
37#endif
38
39#if CONFIG_E3L || CONFIG_D3L
40#define SDRV_SMC_ASYNC_INT_USB (163 + 16)
41#define SDRV_SMC_ASYNC_INT_IOC (164 + 16)
42#define SDRV_SMC_ASYNC_INT_VIC1_SF_GPIO (165 + 16)
43
44#define SDRV_SF_CKGEN_PCG_NUM 207
45#define SDRV_SF_CKGEN_BCG_NUM 8
46#define SDRV_SF_CKGEN_CCG_NUM 1
47
48#endif
49
50#define RAM_LP_PG_EN 0x4u
51#define RAM_LP_RET1N 0x2u
52#define RAM_LP_RET2N 0x1u
53
54#define SDRV_SMC_CHIP_ENABLE (RAM_LP_RET1N | RAM_LP_RET2N)
55#define SDRV_SMC_SELECTIVE_PRECHARGE (RAM_LP_RET2N)
56#define SDRV_SMC_RETENTION_1 (RAM_LP_PG_EN | RAM_LP_RET2N)
57#define SDRV_SMC_RETENTION_2 (RAM_LP_PG_EN | RAM_LP_RET1N)
58#define SDRV_SMC_POWER_DOWN (RAM_LP_PG_EN | RAM_LP_RET1N | RAM_LP_RET2N)
59
64#define SDRV_SMC_IGNORE_AP (0x1u)
66#define SDRV_SMC_AP_LP_ALIGN_SAF (0x2u)
68#define SDRV_SMC_AP_WK_ALIGN_SAF (0x4u)
69
70#define SDRV_SMC_SWM_RUN (0x0u)
71#define SDRV_SMC_SWM_SLP (0x1u)
72#define SDRV_SMC_SWM_HIB (0x2u)
73#define SDRV_SMC_SWM_RTC (0x3u)
74
81};
82
89typedef enum sdrv_smc_domain {
93
97typedef enum sdrv_smc_mode {
107
118
119#if CONFIG_E3 || CONFIG_D3
133
137typedef enum sdrv_smc_ram {
146#endif /* CONFIG_E3 || CONFIG_D3 */
147
148#if CONFIG_E3L || CONFIG_D3L
155typedef enum sdrv_smc_power_switch {
157 SDRV_SMC_POWER_SWITCH_SF_BOOT = 2,
158 SDRV_SMC_POWER_SWITCH_AP_MIX = 3,
160
164typedef enum sdrv_smc_ram {
165 SDRV_SMC_RAM_SF = 0,
166 SDRV_SMC_RAM_SF_BOOT = 2,
167 SDRV_SMC_RAM_AP_MIX = 3,
169#endif /* CONFIG_E3L || CONFIG_D3L */
170
174typedef enum sdrv_smc_handshake {
181
185typedef enum sdrv_smc_core {
192
196typedef enum sdrv_smc_debug_mux {
201
206 bool wkup_en;
207 bool wdt_en;
208 uint8_t ckgen_hk;
209 uint8_t rstgen_hk;
212
216typedef struct sdrv_smc_soc_timeout {
217 bool wkup_en;
218 bool wdt_en;
219 uint8_t pmu_hk;
221
228 uint16_t lp2wkup_val;
233 uint16_t wkup_ack_val;
234 uint16_t soc_run_val;
236
247
251typedef struct sdrv_smc {
252 paddr_t base;
253
254 /* recored for wakeup irq info */
255 uint32_t core_irq_status[5];
256 uint32_t group_irq_status[8];
258
267
280
294
307
322 sdrv_smc_mode_e mode, bool power_down_enable);
323
336 uint32_t iso_en, uint32_t pg, uint32_t po, uint32_t iso_dis);
337
356 uint32_t ram_mode);
357
368
380 bool lp_trans_req, uint32_t irq_mask_dly, bool ill_trans_wkup_en);
381
396
409
418status_t sdrv_smc_ctrl_pre_divider_config(sdrv_smc_t *smc_ctrl, uint16_t div_32k, uint8_t div_24m);
419
428
437
445
454
465status_t sdrv_smc_ctrl_core_wakeup_irq_config(sdrv_smc_t *smc_ctrl, uint32_t err_wkup, uint32_t bk_wkup);
466
474
484
492status_t sdrv_smc_ctrl_soc_misc_config(sdrv_smc_t *smc_ctrl, bool ill_trans_wkup_en);
493
502status_t sdrv_smc_ctrl_smc_misc_config(sdrv_smc_t *smc_ctrl, bool lpbk_force_check_en, bool permission_err_en);
503
521 uint32_t smc_swm);
522
535 sdrv_smc_power_switch_e power_switch, bool power_down_enable);
536
545
562 uint32_t ram_mode);
563
578
586
594
602
612
624
636
646
658
670 uint32_t irq_num);
671
679
691
702
710
722
735
747
761 sdrv_smc_mode_e mode, bool power_down_enable);
762
774 uint32_t iso_en, uint32_t pg, uint32_t po, uint32_t iso_dis);
775
793 uint32_t ram_mode);
794
803
814 bool lp_trans_req, uint32_t irq_mask_dly, bool ill_trans_wkup_en);
815
829
841
849status_t sdrv_smc_pre_divider_config(uint16_t div_32k, uint8_t div_24m);
850
858
866
872
880
890status_t sdrv_smc_core_wakeup_irq_config(uint32_t err_wkup, uint32_t bk_wkup);
891
898
907
914status_t sdrv_smc_soc_misc_config(bool ill_trans_wkup_en);
915
923status_t sdrv_smc_smc_misc_config(bool lpbk_force_check_en, bool permission_err_en);
924
941 uint32_t smc_swm);
942
954 sdrv_smc_power_switch_e power_switch, bool power_down_enable);
955
963
979 uint32_t ram_mode);
980
994
1000
1007
1014
1022
1033
1044
1052
1063
1074 uint32_t irq_num);
1075
1081
1092
1102
1103#endif /* SDRV_SMC_H_ */
SemiDrive driver common header file.
@ SDRV_STATUS_GROUP_SMC
Definition: sdrv_common.h:52
int32_t status_t
Type used for all status and error return values.
Definition: sdrv_common.h:82
#define SDRV_ERROR_STATUS(group, code)
Construct a status code value from a group and code number. All the error statuses are negetive numbe...
Definition: sdrv_common.h:17
struct sdrv_smc_soc_timeout sdrv_smc_soc_timeout_t
Definition for SOC SWM timeout setting.
status_t sdrv_smc_ap_domain_handshake(bool enable)
Config SMC whether handshake with AP domain.
status_t sdrv_smc_ctrl_soc_wakeup_control_config(sdrv_smc_t *smc_ctrl, sdrv_smc_soc_wakeup_ctrl_t *config)
Set soc wakeup control setting.
uint32_t sdrv_smc_ctrl_illegal_status_monitor(sdrv_smc_t *smc_ctrl)
Get SMC illegal transition event monitor status.
uint32_t sdrv_smc_ctrl_timeout_status_monitor(sdrv_smc_t *smc_ctrl)
Get SMC timeout event monitor status.
status_t sdrv_smc_pre_divider_config(uint16_t div_32k, uint8_t div_24m)
Set pre-divider number for 24M and 32K clock.
status_t sdrv_smc_ctrl_set_primary_core(sdrv_smc_t *smc_ctrl, sdrv_smc_domain_e domain, sdrv_smc_core_e id)
Set primary core id for a power domain.
status_t sdrv_smc_ctrl_global_control_config(sdrv_smc_t *smc_ctrl, sdrv_smc_global_control_t *config)
Config Safety/AP domain global control setting.
status_t sdrv_smc_ctrl_smc_misc_config(sdrv_smc_t *smc_ctrl, bool lpbk_force_check_en, bool permission_err_en)
Config SMC misc.
status_t sdrv_smc_all_interrupt_monitor_clear(void)
Clear all interrupt monitor register status.
status_t sdrv_smc_clear_core_wakeup_ack(void)
Clear all core wakeup acknowledge.
enum sdrv_smc_ram sdrv_smc_ram_e
On chip RAMs that have low power modes controlled by SMC.
struct sdrv_smc_soc_wakeup_ctrl sdrv_smc_soc_wakeup_ctrl_t
Definition for soc wakeup timeout control setting.
status_t sdrv_smc_ctrl_core_wakeup_irq_config(sdrv_smc_t *smc_ctrl, uint32_t err_wkup, uint32_t bk_wkup)
Set wakeup core irq enable or disable.
status_t sdrv_smc_ctrl_domain_misc_config(sdrv_smc_t *smc_ctrl, sdrv_smc_domain_e domain, bool lp_trans_req, uint32_t irq_mask_dly, bool ill_trans_wkup_en)
Config SMC Saf or AP domain misc.
sdrv_smc_mode
SMC power modes.
Definition: sdrv_smc.h:97
@ SDRV_SMC_HIBERNATE
Definition: sdrv_smc.h:116
@ SDRV_SMC_SLEEP
Definition: sdrv_smc.h:106
status_t sdrv_smc_rc24m_hibernate_enable(bool enable)
Configure RC oscillator state in hibernate mode.
status_t sdrv_smc_record_interrupt_monitor_status(void)
This function record monitor interrupt status when exit WFI.
uint32_t sdrv_smc_debug_monitor(sdrv_smc_debug_mux_e dbg_mux)
Debug for SMC status.
sdrv_smc_ram
On chip RAMs that have low power modes controlled by SMC.
Definition: sdrv_smc.h:137
@ SDRV_SMC_RAM_SX
Definition: sdrv_smc.h:140
@ SDRV_SMC_RAM_SP
Definition: sdrv_smc.h:139
@ SDRV_SMC_RAM_GAMA1
Definition: sdrv_smc.h:141
@ SDRV_SMC_RAM_AP
Definition: sdrv_smc.h:143
@ SDRV_SMC_RAM_DISP
Definition: sdrv_smc.h:144
@ SDRV_SMC_RAM_SF_MISC
Definition: sdrv_smc.h:142
@ SDRV_SMC_RAM_SF
Definition: sdrv_smc.h:138
sdrv_smc_error
SMC status error code.
Definition: sdrv_smc.h:78
@ SDRV_SMC_CONFIG_TYPE_WRONG
Definition: sdrv_smc.h:79
@ SDRV_SMC_CONFIG_NOT_SUPPORT
Definition: sdrv_smc.h:80
status_t sdrv_smc_power_switch_config(sdrv_smc_power_switch_e power_switch, sdrv_smc_mode_e mode, bool power_down_enable)
Control power switchs in low power mode.
uint32_t sdrv_smc_timeout_status_monitor(void)
Get SMC timeout event monitor status.
uint32_t sdrv_smc_illegal_status_monitor(void)
Get SMC illegal transition event monitor status.
status_t sdrv_smc_ctrl_power_switch_delay_config(sdrv_smc_t *smc_ctrl, sdrv_smc_power_switch_e power_switch, uint32_t iso_en, uint32_t pg, uint32_t po, uint32_t iso_dis)
Config Power switch in low power delay control.
status_t sdrv_smc_ctrl_rc24m_hibernate_enable(sdrv_smc_t *smc_ctrl, bool enable)
Configure RC oscillator state in hibernate mode.
enum sdrv_smc_power_switch sdrv_smc_power_switch_e
Power switches.
status_t sdrv_smc_ctrl_wakeup_interrupt_enable(sdrv_smc_t *smc_ctrl, sdrv_smc_core_e core, uint32_t irq_num)
Enable wakeup interrupt for specific core.
status_t sdrv_smc_trigger_software_handshake(sdrv_smc_handshake_e handshake, uint32_t smc_swm)
Software trigger SMC handshake with other module.
status_t sdrv_smc_soc_swm_timeout_config(sdrv_smc_soc_timeout_t *config)
Set soc swm timeout setting.
status_t sdrv_smc_ctrl_trigger_software_ram_lowpower(sdrv_smc_t *smc_ctrl, sdrv_smc_ram_e ram, uint32_t ram_mode)
Software trigger SMC control core ram power down in run mode.
bool sdrv_smc_software_power_switch_gate_status(sdrv_smc_power_switch_e power_switch)
Get power switch software power gate status.
status_t sdrv_smc_domain_timeout_config(sdrv_smc_domain_e domain, sdrv_smc_domain_timeout_t *config)
Config SMC Saf or AP domain timeout setting.
status_t sdrv_smc_ctrl_ap_domain_config(sdrv_smc_t *smc_ctrl, uint32_t ap_bitmap)
AP domain smc config.
status_t sdrv_smc_ctrl_lowpower_enable(sdrv_smc_t *smc_ctrl, sdrv_smc_domain_e domain, bool enable)
Enable or disable low power for specific domain.
status_t sdrv_smc_set_core_wakeup_ack(uint32_t ack)
Set core wakeup acknowledge.
status_t sdrv_smc_ctrl_wakeup_interrupt_disable(sdrv_smc_t *smc_ctrl, sdrv_smc_core_e core, uint32_t irq_num)
Disable wakeup interrupt for specific core.
status_t sdrv_smc_wakeup_interrupt_enable(sdrv_smc_core_e core, uint32_t irq_num)
Enable wakeup interrupt for specific core.
sdrv_smc_debug_mux
SMC debug mux sel.
Definition: sdrv_smc.h:196
@ SDRV_SMC_DBG_HK_PMU
Definition: sdrv_smc.h:199
@ SDRV_SMC_DBG_HK_SAF
Definition: sdrv_smc.h:197
@ SDRV_SMC_DBG_HK_AP
Definition: sdrv_smc.h:198
status_t sdrv_smc_soc_wakeup_control_config(sdrv_smc_soc_wakeup_ctrl_t *config)
Set soc wakeup control setting.
status_t sdrv_smc_ctrl_clear_core_wakeup_irq_status(sdrv_smc_t *smc_ctrl, uint32_t clr)
Clear wakeup core irq status.
bool sdrv_smc_ctrl_software_power_switch_gate_status(sdrv_smc_t *smc_ctrl, sdrv_smc_power_switch_e power_switch)
Get power switch software power gate status.
struct sdrv_smc_global_control sdrv_smc_global_control_t
Definition for SMC global control setting.
sdrv_smc_handshake
SMC handshake signals with other on chip modules.
Definition: sdrv_smc.h:174
@ SDRV_SMC_HK_PMU
Definition: sdrv_smc.h:179
@ SDRV_SMC_HK_SAF_RSTGEN
Definition: sdrv_smc.h:178
@ SDRV_SMC_HK_AP_CKGEN
Definition: sdrv_smc.h:175
@ SDRV_SMC_HK_AP_RSTGEN
Definition: sdrv_smc.h:176
@ SDRV_SMC_HK_SAF_CKGEN
Definition: sdrv_smc.h:177
struct sdrv_smc_domain_timeout sdrv_smc_domain_timeout_t
Definition for domain timeout setting.
uint32_t sdrv_smc_ctrl_get_core_wakeup_irq_status(sdrv_smc_t *smc_ctrl)
Get wakeup core irq status.
bool sdrv_smc_interrupt_monitor_status(sdrv_smc_core_e core, uint32_t irq_num)
Get specific core interrupt status in interrupt monitor register.
status_t sdrv_smc_clear_core_wakeup_irq_status(uint32_t clr)
Clear wakeup core irq status.
status_t sdrv_smc_ctrl_pre_divider_config(sdrv_smc_t *smc_ctrl, uint16_t div_32k, uint8_t div_24m)
Set pre-divider number for 24M and 32K clock.
struct sdrv_smc sdrv_smc_t
System work mode controller instance.
status_t sdrv_smc_ctrl_ap_domain_handshake(sdrv_smc_t *smc_ctrl, bool enable)
Config SMC whether handshake with AP domain.
status_t sdrv_smc_ctrl_domain_timeout_config(sdrv_smc_t *smc_ctrl, sdrv_smc_domain_e domain, sdrv_smc_domain_timeout_t *config)
Config SMC Saf or AP domain tiemout setting.
status_t sdrv_smc_trigger_software_ram_lowpower(sdrv_smc_ram_e ram, uint32_t ram_mode)
Software trigger SMC control core ram power down in run mode.
status_t sdrv_smc_ctrl_power_switch_config(sdrv_smc_t *smc_ctrl, sdrv_smc_power_switch_e power_switch, sdrv_smc_mode_e mode, bool power_down_enable)
Control power switchs in low power mode.
enum sdrv_smc_domain sdrv_smc_domain_e
SMC domains.
status_t sdrv_smc_ctrl_soc_misc_config(sdrv_smc_t *smc_ctrl, bool ill_trans_wkup_en)
Config SOC misc.
status_t sdrv_smc_ctrl_soc_swm_timeout_config(sdrv_smc_t *smc_ctrl, sdrv_smc_soc_timeout_t *config)
Set soc swm timeout setting.
status_t sdrv_smc_ctrl_set_core_wakeup_ack(sdrv_smc_t *smc_ctrl, uint32_t ack)
Set core wakeup acknowledge.
enum sdrv_smc_handshake sdrv_smc_handshake_e
SMC handshake signals with other on chip modules.
status_t sdrv_smc_ctrl_clear_interrupt_monitor_status(sdrv_smc_t *smc_ctrl, sdrv_smc_core_e core, uint32_t irq_num)
Clear specific core interrupt status in interrupt monitor register.
status_t sdrv_smc_ap_domain_config(uint32_t ap_bitmap)
AP domain smc config.
status_t sdrv_smc_global_control_config(sdrv_smc_global_control_t *config)
Config Safety/AP domain global control setting.
uint32_t sdrv_smc_get_core_wakeup_irq_status(void)
Get wakeup core irq status.
status_t sdrv_smc_soc_misc_config(bool ill_trans_wkup_en)
Config SOC misc.
status_t sdrv_smc_set_lowpower_mode(sdrv_smc_domain_e domain, sdrv_smc_mode_e mode)
Set low power mode for specific domain.
status_t sdrv_smc_ctrl_ram_lowpower_config(sdrv_smc_t *smc_ctrl, sdrv_smc_ram_e ram, sdrv_smc_mode_e mode, uint32_t ram_mode)
Configure low power modes for core RAM.
status_t sdrv_smc_lowpower_enable(sdrv_smc_domain_e domain, bool enable)
Enable or disable low power for specific domain.
status_t sdrv_smc_clear_interrupt_monitor_status(sdrv_smc_core_e core, uint32_t irq_num)
Clear specific core interrupt status in interrupt monitor register.
enum sdrv_smc_debug_mux sdrv_smc_debug_mux_e
SMC debug mux sel.
status_t sdrv_smc_ctrl_record_interrupt_monitor_status(sdrv_smc_t *smc_ctrl)
This function record monitor interrupt status when exit WFI.
status_t sdrv_smc_ctrl_set_lowpower_mode(sdrv_smc_t *smc_ctrl, sdrv_smc_domain_e domain, sdrv_smc_mode_e mode)
Set low power mode for specific domain.
status_t sdrv_smc_clear_timeout_illegal_status(void)
Clear SMC timeout and illegal transition error status.
status_t sdrv_smc_ram_lowpower_config(sdrv_smc_ram_e ram, sdrv_smc_mode_e mode, uint32_t ram_mode)
Configure low power modes for core RAM.
uint32_t sdrv_smc_ctrl_debug_monitor(sdrv_smc_t *smc_ctrl, sdrv_smc_debug_mux_e dbg_mux)
Debug for SMC status.
sdrv_smc_power_switch
Power switches.
Definition: sdrv_smc.h:126
@ SDRV_SMC_POWER_SWITCH_AP_DISP
Definition: sdrv_smc.h:131
@ SDRV_SMC_POWER_SWITCH_SF
Definition: sdrv_smc.h:127
@ SDRV_SMC_POWER_SWITCH_SP
Definition: sdrv_smc.h:128
@ SDRV_SMC_POWER_SWITCH_SX
Definition: sdrv_smc.h:129
@ SDRV_SMC_POWER_SWITCH_GAMA1
Definition: sdrv_smc.h:130
status_t sdrv_smc_ctrl_clear_core_wakeup_ack(sdrv_smc_t *smc_ctrl)
Clear all core wakeup acknowledge.
uint32_t sdrv_smc_status_monitor(void)
Get SWM status monitor register.
status_t sdrv_smc_ctrl_trigger_software_handshake(sdrv_smc_t *smc_ctrl, sdrv_smc_handshake_e handshake, uint32_t smc_swm)
Software trigger SMC handshake with other module.
status_t sdrv_smc_domain_misc_config(sdrv_smc_domain_e domain, bool lp_trans_req, uint32_t irq_mask_dly, bool ill_trans_wkup_en)
Config SMC Saf or AP domain misc.
status_t sdrv_smc_core_wakeup_irq_config(uint32_t err_wkup, uint32_t bk_wkup)
Set wakeup core irq enable or disable.
status_t sdrv_smc_trigger_software_power_switch(sdrv_smc_power_switch_e power_switch, bool power_down_enable)
Software trigger SMC control power switch in run mode.
status_t sdrv_smc_ctrl_all_interrupt_monitor_clear(sdrv_smc_t *smc_ctrl)
Clear all interrupt monitor register status.
status_t sdrv_smc_ctrl_clear_timeout_illegal_status(sdrv_smc_t *smc_ctrl)
Clear SMC timeout and illegal transition error status.
status_t sdrv_smc_ctrl_trigger_software_power_switch(sdrv_smc_t *smc_ctrl, sdrv_smc_power_switch_e power_switch, bool power_down_enable)
Software trigger SMC control power switch in run mode.
status_t sdrv_smc_power_switch_delay_config(sdrv_smc_power_switch_e power_switch, uint32_t iso_en, uint32_t pg, uint32_t po, uint32_t iso_dis)
Config Power switch in low power delay control.
status_t sdrv_smc_all_wakeup_interrupt_disable(void)
Mask all interrupt for SMC.
sdrv_smc_core
CPU cores managed by SMC.
Definition: sdrv_smc.h:185
@ SDRV_SMC_CORE_SP0
Definition: sdrv_smc.h:187
@ SDRV_SMC_CORE_SP1
Definition: sdrv_smc.h:188
@ SDRV_SMC_CORE_SX1
Definition: sdrv_smc.h:190
@ SDRV_SMC_CORE_SF
Definition: sdrv_smc.h:186
@ SDRV_SMC_CORE_SX0
Definition: sdrv_smc.h:189
status_t sdrv_smc_set_primary_core(sdrv_smc_domain_e domain, sdrv_smc_core_e id)
Set primary core id for a power domain.
enum sdrv_smc_core sdrv_smc_core_e
CPU cores managed by SMC.
uint32_t sdrv_smc_ctrl_status_monitor(sdrv_smc_t *smc_ctrl)
Get SWM status monitor register.
sdrv_smc_domain
SMC domains.
Definition: sdrv_smc.h:89
@ SDRV_SMC_SAF
Definition: sdrv_smc.h:90
@ SDRV_SMC_AP
Definition: sdrv_smc.h:91
status_t sdrv_smc_ctrl_all_wakeup_interrupt_disable(sdrv_smc_t *smc_ctrl)
Mask all interrupt for SMC.
enum sdrv_smc_mode sdrv_smc_mode_e
SMC power modes.
status_t sdrv_smc_wakeup_interrupt_disable(sdrv_smc_core_e core, uint32_t irq_num)
Disable wakeup interrupt for specific core.
status_t sdrv_smc_smc_misc_config(bool lpbk_force_check_en, bool permission_err_en)
Config SMC misc.
bool sdrv_smc_ctrl_interrupt_monitor_status(sdrv_smc_t *smc_ctrl, sdrv_smc_core_e core, uint32_t irq_num)
Get specific core interrupt status in interrupt monitor register.
Definition for domain timeout setting.
Definition: sdrv_smc.h:205
bool wkup_en
Definition: sdrv_smc.h:206
bool wdt_en
Definition: sdrv_smc.h:207
uint8_t rstgen_hk
Definition: sdrv_smc.h:209
uint8_t ckgen_hk
Definition: sdrv_smc.h:208
uint8_t mode_req_trans
Definition: sdrv_smc.h:210
Definition for SMC global control setting.
Definition: sdrv_smc.h:240
bool wkup_align_saf_en
Definition: sdrv_smc.h:245
bool lp_align_saf_en
Definition: sdrv_smc.h:244
sdrv_smc_core_e ap_pri_core
Definition: sdrv_smc.h:242
sdrv_smc_core_e saf_pri_core
Definition: sdrv_smc.h:241
bool ap_off_en
Definition: sdrv_smc.h:243
Definition for SOC SWM timeout setting.
Definition: sdrv_smc.h:216
bool wkup_en
Definition: sdrv_smc.h:217
bool wdt_en
Definition: sdrv_smc.h:218
uint8_t pmu_hk
Definition: sdrv_smc.h:219
Definition for soc wakeup timeout control setting.
Definition: sdrv_smc.h:225
uint8_t wkup_done_src_sel
Definition: sdrv_smc.h:231
uint16_t wkup_ack_val
Definition: sdrv_smc.h:233
uint16_t soc_run_val
Definition: sdrv_smc.h:234
bool lp2wkup_wdt_en
Definition: sdrv_smc.h:227
uint16_t lp2wkup_val
Definition: sdrv_smc.h:228
bool wkup_wdt_en
Definition: sdrv_smc.h:230
bool lp2wkup_tout_wkup_en
Definition: sdrv_smc.h:226
System work mode controller instance.
Definition: sdrv_smc.h:251
uint32_t group_irq_status[8]
Definition: sdrv_smc.h:256
paddr_t base
Definition: sdrv_smc.h:252
uint32_t core_irq_status[5]
Definition: sdrv_smc.h:255