SemiDrive SSDK Appication Program Interface PTG3.0
sdrv_rstgen.h
Go to the documentation of this file.
1
8#ifndef SDRV_RSTGEN_H_
9#define SDRV_RSTGEN_H_
10
11#include <types.h>
12#include <sdrv_common.h>
13
14/* Define the type of rstgen */
15#define SDRV_RSTGEN_CORE 1
16#define SDRV_RSTGEN_LATENT 2
17#define SDRV_RSTGEN_MISSION 3
18#define SDRV_RSTGEN_MODULE 4
19#define SDRV_RSTGEN_IST 5
20#define SDRV_RSTGEN_DEBUG 6
21
22#define SDRV_RSTGEN_TYPE_SHIFT 24
23
24#define SDRV_RSTGEN_SIG_ID(type, idx) \
25 ((uint32_t)((((uint32_t)(type)) << ((uint32_t)SDRV_RSTGEN_TYPE_SHIFT)) | ((uint32_t)(idx))))
26
27#define SDRV_RSTGEN_TYPE(id) ((uint32_t)(((uint32_t)(id)) >> ((uint32_t)SDRV_RSTGEN_TYPE_SHIFT)))
28#define SDRV_RSTGEN_INDEX(id) ((uint32_t)(((uint32_t)(id)) & BIT_MASK(SDRV_RSTGEN_TYPE_SHIFT)))
29
30#define SDRV_RSTGEN_GENERAL_REG_NUM 8
31
36{
41};
42
43/* Define lowpower mode */
47};
48
49typedef enum reset_wdt_id {
50 RESET_WDT1, /* Trigger global reset or SF core reset */
51 RESET_WDT2, /* Trigger global reset or SF core reset */
52 RESET_WDT3, /* Trigger global reset or SP0/SP1 core reset */
53 RESET_WDT4, /* Trigger global reset or SP0/SP1 core reset */
54 RESET_WDT5, /* Trigger global reset or SX0/SX1 core reset */
55 RESET_WDT6, /* Trigger global reset or SX0/SX1 core reset */
57
58typedef enum reset_core_id {
65
72typedef void (*sdrv_rstgen_sig_handler)(uint32_t rstgen_sig_id);
73
77typedef struct sdrv_rstgen {
78 paddr_t base;
80
84typedef struct sdrv_rstgen_sig {
86 uint32_t id;
91
97 uint32_t id; /* id 1 ~ 7 */
99
103typedef struct sdrv_rstgen_glb_ctl {
107
111typedef struct sdrv_recovery_btm {
112 uint32_t btm_num; /* btm numbers */
113 uint32_t btm_base[]; /* btm base list */
115
116typedef struct sdrv_recovery_etimer {
117 uint32_t etimer_num; /* etimer numbers */
118 uint32_t etimer_base[]; /* etimer base list */
120
121typedef struct sdrv_recovery_epwm {
122 uint32_t epwm_num; /* epwm numbers */
123 uint32_t epwm_base[]; /* epwm base list */
125
126/* semidrive recovery latent module */
127typedef struct sdrv_recovery_module {
132
142
152
162
172
180
228
237
284
294
304 uint32_t val);
305
317 uint8_t start, uint8_t width, uint32_t val);
318
329 enum reset_lowpower_mode mode, uint32_t val);
330
339
353
364
365#endif /* SDRV_RSTGEN_RSTGEN_H_ */
unsigned int width
Definition: logo_rgb565.h:32912
SemiDrive driver common header file.
@ SDRV_STATUS_GROUP_RESET
Definition: sdrv_common.h:23
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
status_t sdrv_rstgen_global_status_clear(sdrv_rstgen_glb_t *rst_glb_ctl)
clear global reset status.
status_t sdrv_rstgen_status(sdrv_rstgen_sig_t *rst_sig)
Check reset signal status.
status_t sdrv_rstgen_global_reset(sdrv_rstgen_glb_t *rst_glb_ctl)
Global reset.
struct sdrv_recovery_etimer sdrv_recovery_etimer_t
struct sdrv_recovery_epwm sdrv_recovery_epwm_t
uint32_t sdrv_rstgen_current_global_status(sdrv_rstgen_glb_t *rst_glb_ctl)
Check current global reset status.
uint32_t sdrv_rstgen_read_general(sdrv_rstgen_general_reg_t *rst_gen_reg)
Read reset general reg.
reset_core_id
Definition: sdrv_rstgen.h:58
@ RESET_CORE_SP1
Definition: sdrv_rstgen.h:61
@ RESET_CORE_SF
Definition: sdrv_rstgen.h:59
@ RESET_CORE_SX0
Definition: sdrv_rstgen.h:62
@ RESET_CORE_SP0
Definition: sdrv_rstgen.h:60
@ RESET_CORE_SX1
Definition: sdrv_rstgen.h:63
sdrv_reset_error
RESET status error code.
Definition: sdrv_rstgen.h:36
@ SDRV_RESET_STATUS_WRONG_SIGNAL
Definition: sdrv_rstgen.h:40
@ SDRV_RESET_STATUS_TIMEOUT
Definition: sdrv_rstgen.h:39
@ SDRV_RESET_STATUS_LOCK
Definition: sdrv_rstgen.h:38
@ SDRV_RESET_STATUS_SIGNAL_ASSERT
Definition: sdrv_rstgen.h:37
struct sdrv_rstgen_sig sdrv_rstgen_sig_t
SDRV rstgen signal.
struct sdrv_recovery_btm sdrv_recovery_btm_t
semidrive recovery device.
uint32_t sdrv_rstgen_global_status(sdrv_rstgen_glb_t *rst_glb_ctl)
Check global reset status.
status_t sdrv_rstgen_write_general_bit(sdrv_rstgen_general_reg_t *rst_gen_reg, uint8_t start, uint8_t width, uint32_t val)
Write reset general reg bit.
enum reset_wdt_id reset_wdt_id_e
struct sdrv_recovery_module sdrv_recovery_module_t
reset_lowpower_mode
Definition: sdrv_rstgen.h:44
@ RESET_LP_SLEEP
Definition: sdrv_rstgen.h:46
@ RESET_LP_HIB
Definition: sdrv_rstgen.h:45
status_t sdrv_rstgen_reset(sdrv_rstgen_sig_t *rst_sig)
Reset a reset signal.
status_t sdrv_rstgen_lowpower_set(sdrv_rstgen_sig_t *rst_sig, enum reset_lowpower_mode mode, uint32_t val)
Config reset signal assert/deassert in lowpower mode.
struct sdrv_rstgen sdrv_rstgen_t
SDRV rstgen controller.
void(* sdrv_rstgen_sig_handler)(uint32_t rstgen_sig_id)
semidrive reset sig handler.
Definition: sdrv_rstgen.h:72
enum reset_core_id reset_core_id_e
status_t sdrv_rstgen_assert(sdrv_rstgen_sig_t *rst_sig)
Assert a reset signal.
struct sdrv_rstgen_general_reg sdrv_rstgen_general_reg_t
SDRV rstgen general register.
status_t sdrv_rstgen_wdt_reset_enable(reset_wdt_id_e wdt, bool enable)
Config wdt cause global reset enable.
status_t sdrv_recovery_module(sdrv_recovery_module_t *recovery_module)
sdrv recovery latent module.
struct sdrv_rstgen_glb_ctl sdrv_rstgen_glb_t
SDRV rstgen global reset controller.
status_t sdrv_rstgen_deassert(sdrv_rstgen_sig_t *rst_sig)
Deassert a reset signal.
reset_wdt_id
Definition: sdrv_rstgen.h:49
@ RESET_WDT6
Definition: sdrv_rstgen.h:55
@ RESET_WDT4
Definition: sdrv_rstgen.h:53
@ RESET_WDT3
Definition: sdrv_rstgen.h:52
@ RESET_WDT2
Definition: sdrv_rstgen.h:51
@ RESET_WDT5
Definition: sdrv_rstgen.h:54
@ RESET_WDT1
Definition: sdrv_rstgen.h:50
status_t sdrv_rstgen_wdt_core_reset_enable(reset_wdt_id_e wdt, reset_core_id_e core, bool enable)
Config wdt cause single core reset enable.
status_t sdrv_rstgen_write_general(sdrv_rstgen_general_reg_t *rst_gen_reg, uint32_t val)
Write reset general reg.
semidrive recovery device.
Definition: sdrv_rstgen.h:111
uint32_t btm_num
Definition: sdrv_rstgen.h:112
uint32_t btm_base[]
Definition: sdrv_rstgen.h:113
Definition: sdrv_rstgen.h:121
uint32_t epwm_num
Definition: sdrv_rstgen.h:122
uint32_t epwm_base[]
Definition: sdrv_rstgen.h:123
Definition: sdrv_rstgen.h:116
uint32_t etimer_num
Definition: sdrv_rstgen.h:117
uint32_t etimer_base[]
Definition: sdrv_rstgen.h:118
Definition: sdrv_rstgen.h:127
sdrv_recovery_btm_t const * btm_list
Definition: sdrv_rstgen.h:128
sdrv_recovery_epwm_t const * epwm_list
Definition: sdrv_rstgen.h:130
sdrv_recovery_etimer_t const * etimer_list
Definition: sdrv_rstgen.h:129
SDRV rstgen general register.
Definition: sdrv_rstgen.h:95
sdrv_rstgen_t * rst_ctl
Definition: sdrv_rstgen.h:96
uint32_t id
Definition: sdrv_rstgen.h:97
SDRV rstgen global reset controller.
Definition: sdrv_rstgen.h:103
sdrv_rstgen_t * rst_ap_ctl
Definition: sdrv_rstgen.h:105
sdrv_rstgen_t * rst_sf_ctl
Definition: sdrv_rstgen.h:104
SDRV rstgen signal.
Definition: sdrv_rstgen.h:84
sdrv_rstgen_t * rst_ctl
Definition: sdrv_rstgen.h:85
uint32_t id
Definition: sdrv_rstgen.h:86
bool need_clr_rst
Definition: sdrv_rstgen.h:87
sdrv_rstgen_sig_handler pre_handler
Definition: sdrv_rstgen.h:88
sdrv_rstgen_sig_handler post_handler
Definition: sdrv_rstgen.h:89
SDRV rstgen controller.
Definition: sdrv_rstgen.h:77
paddr_t base
Definition: sdrv_rstgen.h:78