#include <types.h>
#include <sdrv_common.h>
Go to the source code of this file.
- Copyright
- Copyright (c) 2022 Semidrive Semiconductor. All rights reserved.
◆ SDRV_RSTGEN_CORE
| #define SDRV_RSTGEN_CORE 1 |
◆ SDRV_RSTGEN_DEBUG
| #define SDRV_RSTGEN_DEBUG 6 |
◆ SDRV_RSTGEN_GENERAL_REG_NUM
| #define SDRV_RSTGEN_GENERAL_REG_NUM 8 |
◆ SDRV_RSTGEN_INDEX
◆ SDRV_RSTGEN_IST
| #define SDRV_RSTGEN_IST 5 |
◆ SDRV_RSTGEN_LATENT
| #define SDRV_RSTGEN_LATENT 2 |
◆ SDRV_RSTGEN_MISSION
| #define SDRV_RSTGEN_MISSION 3 |
◆ SDRV_RSTGEN_MODULE
| #define SDRV_RSTGEN_MODULE 4 |
◆ SDRV_RSTGEN_SIG_ID
| #define SDRV_RSTGEN_SIG_ID |
( |
|
type, |
|
|
|
idx |
|
) |
| ((uint32_t)((((uint32_t)(type)) << ((uint32_t)SDRV_RSTGEN_TYPE_SHIFT)) | ((uint32_t)(idx)))) |
◆ SDRV_RSTGEN_TYPE
◆ SDRV_RSTGEN_TYPE_SHIFT
| #define SDRV_RSTGEN_TYPE_SHIFT 24 |
◆ reset_core_id_e
◆ reset_wdt_id_e
◆ sdrv_recovery_btm_t
semidrive recovery device.
◆ sdrv_recovery_epwm_t
◆ sdrv_recovery_etimer_t
◆ sdrv_recovery_module_t
◆ sdrv_rstgen_general_reg_t
SDRV rstgen general register.
◆ sdrv_rstgen_glb_t
SDRV rstgen global reset controller.
◆ sdrv_rstgen_sig_handler
| typedef void(* sdrv_rstgen_sig_handler) (uint32_t rstgen_sig_id) |
semidrive reset sig handler.
call pre handler before reset/assert signal, and call post handler after reset/deassert signal, if necessary.
◆ sdrv_rstgen_sig_t
◆ sdrv_rstgen_t
◆ reset_core_id
| Enumerator |
|---|
| RESET_CORE_SF | |
| RESET_CORE_SP0 | |
| RESET_CORE_SP1 | |
| RESET_CORE_SX0 | |
| RESET_CORE_SX1 | |
◆ reset_lowpower_mode
| Enumerator |
|---|
| RESET_LP_HIB | |
| RESET_LP_SLEEP | |
◆ reset_wdt_id
| Enumerator |
|---|
| RESET_WDT1 | |
| RESET_WDT2 | |
| RESET_WDT3 | |
| RESET_WDT4 | |
| RESET_WDT5 | |
| RESET_WDT6 | |
◆ sdrv_reset_error
RESET status error code.
| Enumerator |
|---|
| SDRV_RESET_STATUS_SIGNAL_ASSERT | |
| SDRV_RESET_STATUS_LOCK | |
| SDRV_RESET_STATUS_TIMEOUT | |
| SDRV_RESET_STATUS_WRONG_SIGNAL | |
◆ sdrv_recovery_module()
sdrv recovery latent module.
Some latent modules (btm/etimer/epwm etc.) will be not reset when core is reset, so these modules should be recovery when core restart.
- Parameters
-
| [in] | recovery_module | recovery latent module list |
- Returns
- 0 if success, or a negative error code.
◆ sdrv_rstgen_assert()
Assert a reset signal.
The reset singal will stay asserted until reset_deassert() is called.
- Parameters
-
- Returns
- 0 if OK, or a negative error code.
◆ sdrv_rstgen_current_global_status()
Check current global reset status.
Global reset status only for the last time. If multiple reset source comes neatly the same time, only the first one will be recorded.
- Parameters
-
| [in] | rst_glb_ctl | Global reset controller. |
- Returns
- SF and AP domain current global reset status. bit[31:25] for rstgen AP: bit[31] rstgen ap software global reset bit[30] reserved bit[29] efusec security violation bit[28] system panic(vdc function irq) bit[27] sem1/sem2 error bit[26] reserved bit[25] PT sensor interrupt bit[24:0] for rstgen SF: bit[24] wdt6 int reset request bit[23] wdt6 int reset request bit[22] wdt4 int reset request bit[21] wdt4 int reset request bit[20] wdt2 int reset request bit[19] reserved bit[18] wdt5 int reset request bit[17] wdt5 int reset request bit[16] wdt3 int reset request bit[15] wdt3 int reset request bit[14] wdt1 int reset request bit[13] reserved bit[12] ist done fail bit[11] rstgen sf software global reset bit[10] reserved bit[9] wdt2 int reset request (Only for E3104/E3106/E3205/E3206) bit[8] wdt1 int reset request (Only for E3104/E3106/E3205/E3206) bit[7] ist done fail (Only for E3104/E3106/E3205/E3206) bit[6] rstgen sf software global reset (Only for E3104/E3106/E3205/E3206) bit[5] rstgen ap cold reset request bit[4] efusec security violation bit[3] system panic(vdc function irq) bit[2] sem1/sem2 error bit[1] reserved bit[0] PT sensor interrupt Especially, bit[31:10] are invalid for E3104/E3106/E3205/E3206.
◆ sdrv_rstgen_deassert()
Deassert a reset signal.
Release a reset signal.
- Parameters
-
- Returns
- 0 if OK, or a negative error code.
◆ sdrv_rstgen_global_reset()
Global reset.
Global reset SF/AP domain
- Parameters
-
| [in] | rst_glb_ctl | Global reset controller. |
- Returns
- 0 if OK, or a negative error code.
◆ sdrv_rstgen_global_status()
Check global reset status.
Global reset status for all the time, including each global reset status before clear or power off. If multiple reset source comes neatly the same time, only the first one will be recorded.
- Parameters
-
| [in] | rst_glb_ctl | Global reset controller. |
- Returns
- SF and AP domain global reset status. bit[31:25] for rstgen AP: bit[31] rstgen ap software global reset bit[30] reserved bit[29] efusec security violation bit[28] system panic(vdc function irq) bit[27] sem1/sem2 error bit[26] reserved bit[25] PT sensor interrupt bit[24:0] for rstgen SF: bit[24] wdt6 int reset request bit[23] wdt6 int reset request bit[22] wdt4 int reset request bit[21] wdt4 int reset request bit[20] wdt2 int reset request bit[19] reserved bit[18] wdt5 int reset request bit[17] wdt5 int reset request bit[16] wdt3 int reset request bit[15] wdt3 int reset request bit[14] wdt1 int reset request bit[13] reserved bit[12] ist done fail bit[11] rstgen sf software global reset bit[10] reserved bit[9] wdt2 int reset request (Only for E3104/E3106/E3205/E3206) bit[8] wdt1 int reset request (Only for E3104/E3106/E3205/E3206) bit[7] ist done fail (Only for E3104/E3106/E3205/E3206) bit[6] rstgen sf software global reset (Only for E3104/E3106/E3205/E3206) bit[5] rstgen ap cold reset request bit[4] efusec security violation bit[3] system panic(vdc function irq) bit[2] sem1/sem2 error bit[1] reserved bit[0] PT sensor interrupt Especially, bit[31:10] are invalid for E3104/E3106/E3205/E3206.
◆ sdrv_rstgen_global_status_clear()
clear global reset status.
Clear global reset status, otherwise the status will keep until power off.
- Parameters
-
| [in] | rst_glb_ctl | Global reset controller. |
◆ sdrv_rstgen_lowpower_set()
Config reset signal assert/deassert in lowpower mode.
- Parameters
-
| [in] | rst_sig | Reset signal. |
| [in] | mode | lowpower mode |
| [in] | val | 0:assert, 1:deassert |
- Returns
- 0 if OK, or a negative error code.
◆ sdrv_rstgen_read_general()
Read reset general reg.
The data saved in general regs will be not lost until SOC power down.
- Parameters
-
| [in] | rst_gen_reg | reset general reg. |
- Returns
- general reg value.
◆ sdrv_rstgen_reset()
Reset a reset signal.
Assert a reset signal, and then deassert it automatically.
- Parameters
-
- Returns
- 0 if OK, or a negative error code.
◆ sdrv_rstgen_status()
Check reset signal status.
- Parameters
-
- Returns
- 0 if deasserted, or a negative error code.
◆ sdrv_rstgen_wdt_core_reset_enable()
Config wdt cause single core reset enable.
Config watchdog timeout trigger core reset. Each core has two watchdog, WDT1 and WDT2 belongs to SF, WDT3 and WDT4 belongs to SP0/SP1, WDT5 and WDT6 belongs to SX0/SX1. SP1 and SX1 can be reset alone, if SP0 or SX0 be reset, SP1 or SX1 will reset followed.
- Parameters
-
| [in] | wdt | wdt id |
| [in] | core | core id |
| [in] | enable | true/false |
- Returns
- 0 if success, or a negative error code.
◆ sdrv_rstgen_wdt_reset_enable()
Config wdt cause global reset enable.
- Parameters
-
| [in] | wdt | wdt id |
| [in] | enable | true/false |
- Returns
- 0 if success, or a negative error code.
◆ sdrv_rstgen_write_general()
Write reset general reg.
- Parameters
-
| [in] | rst_gen_reg | reset general reg. |
| [in] | val | write value. |
- Returns
- 0 if success, or a negative error code.
◆ sdrv_rstgen_write_general_bit()
Write reset general reg bit.
- Parameters
-
| [in] | rst_gen_reg | reset general reg. |
| [in] | start | write start bit. |
| [in] | width | write bit width. |
| [in] | val | write value. |
- Returns
- 0 if success, or a negative error code.