PDK API Guide for J721E
PMIC WatchDog Driver API

Introduction

This Module explains about PMIC WatchDog driver parameters and APIs usage. PMIC WatchDog Driver module covers all WatchDog features APIs. Like, set/get watchdog configuration, Enable or disable watchdog, Get watchdog error status, Get watchdog failcount, start watchdog QA sequence and start watchdog trigger mode.

Supported PMIC devices for Watchdog Module:

  1. TPS6594x (Leo PMIC Device)
  2. LP8764x (Hera PMIC Device)

Files

file  pmic_wdg.h
 PMIC Low Level Driver API/interface file for WatchDog APIs.
 

Data Structures

struct  Pmic_WdgCfg_t
 PMIC Watchdog configuration structure. More...
 
struct  Pmic_WdgErrStatus_t
 PMIC Watchdog error status structure. More...
 

Functions

int32_t Pmic_wdgEnable (Pmic_CoreHandle_t *pPmicCoreHandle)
 API to Enable Watchdog timer. More...
 
int32_t Pmic_wdgDisable (Pmic_CoreHandle_t *pPmicCoreHandle)
 API to Disable Watchdog timer. More...
 
int32_t Pmic_wdgSetCfg (Pmic_CoreHandle_t *pPmicCoreHandle, const Pmic_WdgCfg_t wdgCfg)
 API to set PMIC watchdog configurations. More...
 
int32_t Pmic_wdgGetCfg (Pmic_CoreHandle_t *pPmicCoreHandle, Pmic_WdgCfg_t *pWdgCfg)
 API to get PMIC watchdog configurations. More...
 
int32_t Pmic_wdgStartQaSequence (Pmic_CoreHandle_t *pPmicCoreHandle, uint32_t num_of_sequences, uint32_t maxCnt)
 API to Start watchdog QA mode. More...
 
int32_t Pmic_wdgGetErrorStatus (Pmic_CoreHandle_t *pPmicCoreHandle, Pmic_WdgErrStatus_t *pErrStatus)
 API to get PMIC watchdog error status. More...
 
int32_t Pmic_wdgGetFailCount (Pmic_CoreHandle_t *pPmicCoreHandle, uint8_t *pFailCount)
 API to get PMIC watchdog fail count. More...
 
int32_t Pmic_wdgStartTriggerSequence (Pmic_CoreHandle_t *pPmicCoreHandle)
 API to Start watchdog Trigger mode. More...
 

Macros

#define PMIC_WDG_WAIT_CNT_MIN_VAL   (30U)
 Minimum number of iterations to wait for a Good/Bad event. More...
 
#define PMIC_WD_QA_INFINITE_SEQ   (0xFFFFFFFFU)
 Macro for PMIC Watchdog QA infinite sequence. More...
 

PMIC watchdog timer En/Disable Modes

#define PMIC_WDG_DISABLE   (bool)false
 
#define PMIC_WDG_ENABLE   (bool)true
 

PMIC watchdog timer warm reset En/Disable

#define PMIC_WDG_RESET_DISABLE   (0x0U)
 
#define PMIC_WDG_RESET_ENABLE   (0x1U)
 

PMIC watchdog timer Return Long Window En/Disable

#define PMIC_WDG_RETLONGWIN_DISABLE   (bool)false
 
#define PMIC_WDG_RETLONGWIN_ENABLE   (bool)true
 

PMIC watchdog timer Power Hold En/Disable

#define PMIC_WDG_PWRHOLD_DISABLE   (0x0U)
 
#define PMIC_WDG_PWRHOLD_ENABLE   (0x1U)
 

PMIC watchdog timer Trigger/QA Mode

#define PMIC_WDG_TRIGGER_MODE   (0x0U)
 
#define PMIC_WDG_QA_MODE   (0x1U)
 

PMIC watchdog timer Reset Threshold Configurations

#define PMIC_WDG_RESET_THRESHOLD_COUNT_0   (0x0U)
 
#define PMIC_WDG_RESET_THRESHOLD_COUNT_1   (0x1U)
 
#define PMIC_WDG_RESET_THRESHOLD_COUNT_2   (0x2U)
 
#define PMIC_WDG_RESET_THRESHOLD_COUNT_3   (0x3U)
 
#define PMIC_WDG_RESET_THRESHOLD_COUNT_4   (0x4U)
 
#define PMIC_WDG_RESET_THRESHOLD_COUNT_5   (0x5U)
 
#define PMIC_WDG_RESET_THRESHOLD_COUNT_6   (0x6U)
 
#define PMIC_WDG_RESET_THRESHOLD_COUNT_7   (0x7U)
 

PMIC watchdog timer Fail Threshold Configurations

#define PMIC_WDG_FAIL_THRESHOLD_COUNT_0   (0x0U)
 
#define PMIC_WDG_FAIL_THRESHOLD_COUNT_1   (0x1U)
 
#define PMIC_WDG_FAIL_THRESHOLD_COUNT_2   (0x2U)
 
#define PMIC_WDG_FAIL_THRESHOLD_COUNT_3   (0x3U)
 
#define PMIC_WDG_FAIL_THRESHOLD_COUNT_4   (0x4U)
 
#define PMIC_WDG_FAIL_THRESHOLD_COUNT_5   (0x5U)
 
#define PMIC_WDG_FAIL_THRESHOLD_COUNT_6   (0x6U)
 
#define PMIC_WDG_FAIL_THRESHOLD_COUNT_7   (0x7U)
 

PMIC watchdog timer QA Feedback Values

#define PMIC_WDG_QA_FEEDBACK_VALUE_0   (0x0U)
 
#define PMIC_WDG_QA_FEEDBACK_VALUE_1   (0x1U)
 
#define PMIC_WDG_QA_FEEDBACK_VALUE_2   (0x2U)
 
#define PMIC_WDG_QA_FEEDBACK_VALUE_3   (0x3U)
 

PMIC watchdog timer QA LFSR Values

#define PMIC_WDG_QA_LFSR_VALUE_0   (0x0U)
 
#define PMIC_WDG_QA_LFSR_VALUE_1   (0x1U)
 
#define PMIC_WDG_QA_LFSR_VALUE_2   (0x2U)
 
#define PMIC_WDG_QA_LFSR_VALUE_3   (0x3U)
 

PMIC watchdog timer QA Question Seed Values

#define PMIC_WDG_QA_QUES_SEED_VALUE_0   (0x0U)
 
#define PMIC_WDG_QA_QUES_SEED_VALUE_1   (0x1U)
 
#define PMIC_WDG_QA_QUES_SEED_VALUE_2   (0x2U)
 
#define PMIC_WDG_QA_QUES_SEED_VALUE_3   (0x3U)
 
#define PMIC_WDG_QA_QUES_SEED_VALUE_4   (0x4U)
 
#define PMIC_WDG_QA_QUES_SEED_VALUE_5   (0x5U)
 
#define PMIC_WDG_QA_QUES_SEED_VALUE_6   (0x6U)
 
#define PMIC_WDG_QA_QUES_SEED_VALUE_7   (0x7U)
 
#define PMIC_WDG_QA_QUES_SEED_VALUE_8   (0x8U)
 
#define PMIC_WDG_QA_QUES_SEED_VALUE_9   (0x9U)
 
#define PMIC_WDG_QA_QUES_SEED_VALUE_10   (0xAU)
 
#define PMIC_WDG_QA_QUES_SEED_VALUE_11   (0xBU)
 
#define PMIC_WDG_QA_QUES_SEED_VALUE_12   (0xCU)
 
#define PMIC_WDG_QA_QUES_SEED_VALUE_13   (0xDU)
 
#define PMIC_WDG_QA_QUES_SEED_VALUE_14   (0xEU)
 
#define PMIC_WDG_QA_QUES_SEED_VALUE_15   (0xFU)
 

PMIC watchdog timer Config Structure Param Bit positions

#define PMIC_CFG_WDG_LONGWINDURATION_VALID   (0U)
 
#define PMIC_CFG_WDG_WIN1DURATION_VALID   (1U)
 
#define PMIC_CFG_WDG_WIN2DURATION_VALID   (2U)
 
#define PMIC_CFG_WDG_FAILTHRESHOLD_VALID   (3U)
 
#define PMIC_CFG_WDG_RSTTHRESHOLD_VALID   (4U)
 
#define PMIC_CFG_WDG_RSTENABLE_VALID   (5U)
 
#define PMIC_CFG_WDG_WDGMODE_VALID   (6U)
 
#define PMIC_CFG_WDG_PWRHOLD_VALID   (7U)
 
#define PMIC_CFG_WDG_RETLONGWIN_VALID   (8U)
 
#define PMIC_CFG_WDG_QA_FDBK_VALID   (9U)
 
#define PMIC_CFG_WDG_QA_LFSR_VALID   (10U)
 
#define PMIC_CFG_WDG_QA_QUES_SEED_VALID   (11U)
 

PMIC WatchDog Config Structure Params Bit shift values

Application can use below shifted values to set the validParam structure member defined in Pmic_WdgCfg_t structure

#define PMIC_CFG_WDG_LONGWINDURATION_VALID_SHIFT   (1U << PMIC_CFG_WDG_LONGWINDURATION_VALID)
 
#define PMIC_CFG_WDG_WIN1DURATION_VALID_SHIFT   (1U << PMIC_CFG_WDG_WIN1DURATION_VALID)
 
#define PMIC_CFG_WDG_WIN2DURATION_VALID_SHIFT   (1U << PMIC_CFG_WDG_WIN2DURATION_VALID)
 
#define PMIC_CFG_WDG_FAILTHRESHOLD_VALID_SHIFT   (1U << PMIC_CFG_WDG_FAILTHRESHOLD_VALID)
 
#define PMIC_CFG_WDG_RSTTHRESHOLD_VALID_SHIFT   (1U << PMIC_CFG_WDG_RSTTHRESHOLD_VALID)
 
#define PMIC_CFG_WDG_RSTENABLE_VALID_SHIFT   (1U << PMIC_CFG_WDG_RSTENABLE_VALID)
 
#define PMIC_CFG_WDG_WDGMODE_VALID_SHIFT   (1U << PMIC_CFG_WDG_WDGMODE_VALID)
 
#define PMIC_CFG_WDG_PWRHOLD_VALID_SHIFT   (1U << PMIC_CFG_WDG_PWRHOLD_VALID)
 
#define PMIC_CFG_WDG_RETLONGWIN_VALID_SHIFT   (1U << PMIC_CFG_WDG_RETLONGWIN_VALID)
 
#define PMIC_CFG_WDG_QA_FDBK_VALID_SHIFT   (1U << PMIC_CFG_WDG_QA_FDBK_VALID)
 
#define PMIC_CFG_WDG_QA_LFSR_VALID_SHIFT   (1U << PMIC_CFG_WDG_QA_LFSR_VALID)
 
#define PMIC_CFG_WDG_QA_QUES_SEED_VALID_SHIFT   (1U << PMIC_CFG_WDG_QA_QUES_SEED_VALID)
 

PMIC watchdog timer error status Structure Param Bit positions.

#define PMIC_CFG_WD_LONGWIN_TIMEOUT_ERRSTAT_VALID   (0U)
 
#define PMIC_CFG_WD_TIMEOUT_ERRSTAT_VALID   (1U)
 
#define PMIC_CFG_WD_TRIG_EARLY_ERRSTAT_VALID   (2U)
 
#define PMIC_CFG_WD_ANSW_EARLY_ERRSTAT_VALID   (3U)
 
#define PMIC_CFG_WD_SEQ_ERR_ERRSTAT_VALID   (4U)
 
#define PMIC_CFG_WD_ANSW_ERR_ERRSTAT_VALID   (5U)
 
#define PMIC_CFG_WD_FAIL_INT_ERRSTAT_VALID   (6U)
 
#define PMIC_CFG_WD_RST_INT_ERRSTAT_VALID   (7U)
 

PMIC WatchDog Error status Structure Params Bit shift values

Application can use below shifted values to set the validParams structure member defined in Pmic_WdgErrStatus_t structure

#define PMIC_CFG_WD_LONGWIN_TIMEOUT_ERRSTAT_VALID_SHIFT   (1U << PMIC_CFG_WD_LONGWIN_TIMEOUT_ERRSTAT_VALID)
 
#define PMIC_CFG_WD_TIMEOUT_ERRSTAT_VALID_SHIFT   (1U << PMIC_CFG_WD_TIMEOUT_ERRSTAT_VALID)
 
#define PMIC_CFG_WD_TRIG_EARLY_ERRSTAT_VALID_SHIFT   (1U << PMIC_CFG_WD_TRIG_EARLY_ERRSTAT_VALID)
 
#define PMIC_CFG_WD_ANSW_EARLY_ERRSTAT_VALID_SHIFT   (1U << PMIC_CFG_WD_ANSW_EARLY_ERRSTAT_VALID)
 
#define PMIC_CFG_WD_SEQ_ERR_ERRSTAT_VALID_SHIFT   (1U << PMIC_CFG_WD_SEQ_ERR_ERRSTAT_VALID)
 
#define PMIC_CFG_WD_ANSW_ERR_ERRSTAT_VALID_SHIFT   (1U << PMIC_CFG_WD_ANSW_ERR_ERRSTAT_VALID)
 
#define PMIC_CFG_WD_FAIL_INT_ERRSTAT_VALID_SHIFT   (1U << PMIC_CFG_WD_FAIL_INT_ERRSTAT_VALID)
 
#define PMIC_CFG_WD_RST_INT_ERRSTAT_VALID_SHIFT   (1U << PMIC_CFG_WD_RST_INT_ERRSTAT_VALID)
 

Macro Definition Documentation

◆ PMIC_WDG_DISABLE

#define PMIC_WDG_DISABLE   (bool)false

◆ PMIC_WDG_ENABLE

#define PMIC_WDG_ENABLE   (bool)true

◆ PMIC_WDG_RESET_DISABLE

#define PMIC_WDG_RESET_DISABLE   (0x0U)

◆ PMIC_WDG_RESET_ENABLE

#define PMIC_WDG_RESET_ENABLE   (0x1U)

◆ PMIC_WDG_RETLONGWIN_DISABLE

#define PMIC_WDG_RETLONGWIN_DISABLE   (bool)false

◆ PMIC_WDG_RETLONGWIN_ENABLE

#define PMIC_WDG_RETLONGWIN_ENABLE   (bool)true

◆ PMIC_WDG_PWRHOLD_DISABLE

#define PMIC_WDG_PWRHOLD_DISABLE   (0x0U)

◆ PMIC_WDG_PWRHOLD_ENABLE

#define PMIC_WDG_PWRHOLD_ENABLE   (0x1U)

◆ PMIC_WDG_TRIGGER_MODE

#define PMIC_WDG_TRIGGER_MODE   (0x0U)

◆ PMIC_WDG_QA_MODE

#define PMIC_WDG_QA_MODE   (0x1U)

◆ PMIC_WDG_RESET_THRESHOLD_COUNT_0

#define PMIC_WDG_RESET_THRESHOLD_COUNT_0   (0x0U)

◆ PMIC_WDG_RESET_THRESHOLD_COUNT_1

#define PMIC_WDG_RESET_THRESHOLD_COUNT_1   (0x1U)

◆ PMIC_WDG_RESET_THRESHOLD_COUNT_2

#define PMIC_WDG_RESET_THRESHOLD_COUNT_2   (0x2U)

◆ PMIC_WDG_RESET_THRESHOLD_COUNT_3

#define PMIC_WDG_RESET_THRESHOLD_COUNT_3   (0x3U)

◆ PMIC_WDG_RESET_THRESHOLD_COUNT_4

#define PMIC_WDG_RESET_THRESHOLD_COUNT_4   (0x4U)

◆ PMIC_WDG_RESET_THRESHOLD_COUNT_5

#define PMIC_WDG_RESET_THRESHOLD_COUNT_5   (0x5U)

◆ PMIC_WDG_RESET_THRESHOLD_COUNT_6

#define PMIC_WDG_RESET_THRESHOLD_COUNT_6   (0x6U)

◆ PMIC_WDG_RESET_THRESHOLD_COUNT_7

#define PMIC_WDG_RESET_THRESHOLD_COUNT_7   (0x7U)

◆ PMIC_WDG_FAIL_THRESHOLD_COUNT_0

#define PMIC_WDG_FAIL_THRESHOLD_COUNT_0   (0x0U)

◆ PMIC_WDG_FAIL_THRESHOLD_COUNT_1

#define PMIC_WDG_FAIL_THRESHOLD_COUNT_1   (0x1U)

◆ PMIC_WDG_FAIL_THRESHOLD_COUNT_2

#define PMIC_WDG_FAIL_THRESHOLD_COUNT_2   (0x2U)

◆ PMIC_WDG_FAIL_THRESHOLD_COUNT_3

#define PMIC_WDG_FAIL_THRESHOLD_COUNT_3   (0x3U)

◆ PMIC_WDG_FAIL_THRESHOLD_COUNT_4

#define PMIC_WDG_FAIL_THRESHOLD_COUNT_4   (0x4U)

◆ PMIC_WDG_FAIL_THRESHOLD_COUNT_5

#define PMIC_WDG_FAIL_THRESHOLD_COUNT_5   (0x5U)

◆ PMIC_WDG_FAIL_THRESHOLD_COUNT_6

#define PMIC_WDG_FAIL_THRESHOLD_COUNT_6   (0x6U)

◆ PMIC_WDG_FAIL_THRESHOLD_COUNT_7

#define PMIC_WDG_FAIL_THRESHOLD_COUNT_7   (0x7U)

◆ PMIC_WDG_QA_FEEDBACK_VALUE_0

#define PMIC_WDG_QA_FEEDBACK_VALUE_0   (0x0U)

◆ PMIC_WDG_QA_FEEDBACK_VALUE_1

#define PMIC_WDG_QA_FEEDBACK_VALUE_1   (0x1U)

◆ PMIC_WDG_QA_FEEDBACK_VALUE_2

#define PMIC_WDG_QA_FEEDBACK_VALUE_2   (0x2U)

◆ PMIC_WDG_QA_FEEDBACK_VALUE_3

#define PMIC_WDG_QA_FEEDBACK_VALUE_3   (0x3U)

◆ PMIC_WDG_QA_LFSR_VALUE_0

#define PMIC_WDG_QA_LFSR_VALUE_0   (0x0U)

◆ PMIC_WDG_QA_LFSR_VALUE_1

#define PMIC_WDG_QA_LFSR_VALUE_1   (0x1U)

◆ PMIC_WDG_QA_LFSR_VALUE_2

#define PMIC_WDG_QA_LFSR_VALUE_2   (0x2U)

◆ PMIC_WDG_QA_LFSR_VALUE_3

#define PMIC_WDG_QA_LFSR_VALUE_3   (0x3U)

◆ PMIC_WDG_QA_QUES_SEED_VALUE_0

#define PMIC_WDG_QA_QUES_SEED_VALUE_0   (0x0U)

◆ PMIC_WDG_QA_QUES_SEED_VALUE_1

#define PMIC_WDG_QA_QUES_SEED_VALUE_1   (0x1U)

◆ PMIC_WDG_QA_QUES_SEED_VALUE_2

#define PMIC_WDG_QA_QUES_SEED_VALUE_2   (0x2U)

◆ PMIC_WDG_QA_QUES_SEED_VALUE_3

#define PMIC_WDG_QA_QUES_SEED_VALUE_3   (0x3U)

◆ PMIC_WDG_QA_QUES_SEED_VALUE_4

#define PMIC_WDG_QA_QUES_SEED_VALUE_4   (0x4U)

◆ PMIC_WDG_QA_QUES_SEED_VALUE_5

#define PMIC_WDG_QA_QUES_SEED_VALUE_5   (0x5U)

◆ PMIC_WDG_QA_QUES_SEED_VALUE_6

#define PMIC_WDG_QA_QUES_SEED_VALUE_6   (0x6U)

◆ PMIC_WDG_QA_QUES_SEED_VALUE_7

#define PMIC_WDG_QA_QUES_SEED_VALUE_7   (0x7U)

◆ PMIC_WDG_QA_QUES_SEED_VALUE_8

#define PMIC_WDG_QA_QUES_SEED_VALUE_8   (0x8U)

◆ PMIC_WDG_QA_QUES_SEED_VALUE_9

#define PMIC_WDG_QA_QUES_SEED_VALUE_9   (0x9U)

◆ PMIC_WDG_QA_QUES_SEED_VALUE_10

#define PMIC_WDG_QA_QUES_SEED_VALUE_10   (0xAU)

◆ PMIC_WDG_QA_QUES_SEED_VALUE_11

#define PMIC_WDG_QA_QUES_SEED_VALUE_11   (0xBU)

◆ PMIC_WDG_QA_QUES_SEED_VALUE_12

#define PMIC_WDG_QA_QUES_SEED_VALUE_12   (0xCU)

◆ PMIC_WDG_QA_QUES_SEED_VALUE_13

#define PMIC_WDG_QA_QUES_SEED_VALUE_13   (0xDU)

◆ PMIC_WDG_QA_QUES_SEED_VALUE_14

#define PMIC_WDG_QA_QUES_SEED_VALUE_14   (0xEU)

◆ PMIC_WDG_QA_QUES_SEED_VALUE_15

#define PMIC_WDG_QA_QUES_SEED_VALUE_15   (0xFU)

◆ PMIC_CFG_WDG_LONGWINDURATION_VALID

#define PMIC_CFG_WDG_LONGWINDURATION_VALID   (0U)

◆ PMIC_CFG_WDG_WIN1DURATION_VALID

#define PMIC_CFG_WDG_WIN1DURATION_VALID   (1U)

◆ PMIC_CFG_WDG_WIN2DURATION_VALID

#define PMIC_CFG_WDG_WIN2DURATION_VALID   (2U)

◆ PMIC_CFG_WDG_FAILTHRESHOLD_VALID

#define PMIC_CFG_WDG_FAILTHRESHOLD_VALID   (3U)

◆ PMIC_CFG_WDG_RSTTHRESHOLD_VALID

#define PMIC_CFG_WDG_RSTTHRESHOLD_VALID   (4U)

◆ PMIC_CFG_WDG_RSTENABLE_VALID

#define PMIC_CFG_WDG_RSTENABLE_VALID   (5U)

◆ PMIC_CFG_WDG_WDGMODE_VALID

#define PMIC_CFG_WDG_WDGMODE_VALID   (6U)

◆ PMIC_CFG_WDG_PWRHOLD_VALID

#define PMIC_CFG_WDG_PWRHOLD_VALID   (7U)

◆ PMIC_CFG_WDG_RETLONGWIN_VALID

#define PMIC_CFG_WDG_RETLONGWIN_VALID   (8U)

◆ PMIC_CFG_WDG_QA_FDBK_VALID

#define PMIC_CFG_WDG_QA_FDBK_VALID   (9U)

◆ PMIC_CFG_WDG_QA_LFSR_VALID

#define PMIC_CFG_WDG_QA_LFSR_VALID   (10U)

◆ PMIC_CFG_WDG_QA_QUES_SEED_VALID

#define PMIC_CFG_WDG_QA_QUES_SEED_VALID   (11U)

◆ PMIC_WDG_WAIT_CNT_MIN_VAL

#define PMIC_WDG_WAIT_CNT_MIN_VAL   (30U)

Minimum number of iterations to wait for a Good/Bad event.

◆ PMIC_CFG_WDG_LONGWINDURATION_VALID_SHIFT

#define PMIC_CFG_WDG_LONGWINDURATION_VALID_SHIFT   (1U << PMIC_CFG_WDG_LONGWINDURATION_VALID)

◆ PMIC_CFG_WDG_WIN1DURATION_VALID_SHIFT

#define PMIC_CFG_WDG_WIN1DURATION_VALID_SHIFT   (1U << PMIC_CFG_WDG_WIN1DURATION_VALID)

◆ PMIC_CFG_WDG_WIN2DURATION_VALID_SHIFT

#define PMIC_CFG_WDG_WIN2DURATION_VALID_SHIFT   (1U << PMIC_CFG_WDG_WIN2DURATION_VALID)

◆ PMIC_CFG_WDG_FAILTHRESHOLD_VALID_SHIFT

#define PMIC_CFG_WDG_FAILTHRESHOLD_VALID_SHIFT   (1U << PMIC_CFG_WDG_FAILTHRESHOLD_VALID)

◆ PMIC_CFG_WDG_RSTTHRESHOLD_VALID_SHIFT

#define PMIC_CFG_WDG_RSTTHRESHOLD_VALID_SHIFT   (1U << PMIC_CFG_WDG_RSTTHRESHOLD_VALID)

◆ PMIC_CFG_WDG_RSTENABLE_VALID_SHIFT

#define PMIC_CFG_WDG_RSTENABLE_VALID_SHIFT   (1U << PMIC_CFG_WDG_RSTENABLE_VALID)

◆ PMIC_CFG_WDG_WDGMODE_VALID_SHIFT

#define PMIC_CFG_WDG_WDGMODE_VALID_SHIFT   (1U << PMIC_CFG_WDG_WDGMODE_VALID)

◆ PMIC_CFG_WDG_PWRHOLD_VALID_SHIFT

#define PMIC_CFG_WDG_PWRHOLD_VALID_SHIFT   (1U << PMIC_CFG_WDG_PWRHOLD_VALID)

◆ PMIC_CFG_WDG_RETLONGWIN_VALID_SHIFT

#define PMIC_CFG_WDG_RETLONGWIN_VALID_SHIFT   (1U << PMIC_CFG_WDG_RETLONGWIN_VALID)

◆ PMIC_CFG_WDG_QA_FDBK_VALID_SHIFT

#define PMIC_CFG_WDG_QA_FDBK_VALID_SHIFT   (1U << PMIC_CFG_WDG_QA_FDBK_VALID)

◆ PMIC_CFG_WDG_QA_LFSR_VALID_SHIFT

#define PMIC_CFG_WDG_QA_LFSR_VALID_SHIFT   (1U << PMIC_CFG_WDG_QA_LFSR_VALID)

◆ PMIC_CFG_WDG_QA_QUES_SEED_VALID_SHIFT

#define PMIC_CFG_WDG_QA_QUES_SEED_VALID_SHIFT   (1U << PMIC_CFG_WDG_QA_QUES_SEED_VALID)

◆ PMIC_CFG_WD_LONGWIN_TIMEOUT_ERRSTAT_VALID

#define PMIC_CFG_WD_LONGWIN_TIMEOUT_ERRSTAT_VALID   (0U)

◆ PMIC_CFG_WD_TIMEOUT_ERRSTAT_VALID

#define PMIC_CFG_WD_TIMEOUT_ERRSTAT_VALID   (1U)

◆ PMIC_CFG_WD_TRIG_EARLY_ERRSTAT_VALID

#define PMIC_CFG_WD_TRIG_EARLY_ERRSTAT_VALID   (2U)

◆ PMIC_CFG_WD_ANSW_EARLY_ERRSTAT_VALID

#define PMIC_CFG_WD_ANSW_EARLY_ERRSTAT_VALID   (3U)

◆ PMIC_CFG_WD_SEQ_ERR_ERRSTAT_VALID

#define PMIC_CFG_WD_SEQ_ERR_ERRSTAT_VALID   (4U)

◆ PMIC_CFG_WD_ANSW_ERR_ERRSTAT_VALID

#define PMIC_CFG_WD_ANSW_ERR_ERRSTAT_VALID   (5U)

◆ PMIC_CFG_WD_FAIL_INT_ERRSTAT_VALID

#define PMIC_CFG_WD_FAIL_INT_ERRSTAT_VALID   (6U)

◆ PMIC_CFG_WD_RST_INT_ERRSTAT_VALID

#define PMIC_CFG_WD_RST_INT_ERRSTAT_VALID   (7U)

◆ PMIC_CFG_WD_LONGWIN_TIMEOUT_ERRSTAT_VALID_SHIFT

#define PMIC_CFG_WD_LONGWIN_TIMEOUT_ERRSTAT_VALID_SHIFT   (1U << PMIC_CFG_WD_LONGWIN_TIMEOUT_ERRSTAT_VALID)

◆ PMIC_CFG_WD_TIMEOUT_ERRSTAT_VALID_SHIFT

#define PMIC_CFG_WD_TIMEOUT_ERRSTAT_VALID_SHIFT   (1U << PMIC_CFG_WD_TIMEOUT_ERRSTAT_VALID)

◆ PMIC_CFG_WD_TRIG_EARLY_ERRSTAT_VALID_SHIFT

#define PMIC_CFG_WD_TRIG_EARLY_ERRSTAT_VALID_SHIFT   (1U << PMIC_CFG_WD_TRIG_EARLY_ERRSTAT_VALID)

◆ PMIC_CFG_WD_ANSW_EARLY_ERRSTAT_VALID_SHIFT

#define PMIC_CFG_WD_ANSW_EARLY_ERRSTAT_VALID_SHIFT   (1U << PMIC_CFG_WD_ANSW_EARLY_ERRSTAT_VALID)

◆ PMIC_CFG_WD_SEQ_ERR_ERRSTAT_VALID_SHIFT

#define PMIC_CFG_WD_SEQ_ERR_ERRSTAT_VALID_SHIFT   (1U << PMIC_CFG_WD_SEQ_ERR_ERRSTAT_VALID)

◆ PMIC_CFG_WD_ANSW_ERR_ERRSTAT_VALID_SHIFT

#define PMIC_CFG_WD_ANSW_ERR_ERRSTAT_VALID_SHIFT   (1U << PMIC_CFG_WD_ANSW_ERR_ERRSTAT_VALID)

◆ PMIC_CFG_WD_FAIL_INT_ERRSTAT_VALID_SHIFT

#define PMIC_CFG_WD_FAIL_INT_ERRSTAT_VALID_SHIFT   (1U << PMIC_CFG_WD_FAIL_INT_ERRSTAT_VALID)

◆ PMIC_CFG_WD_RST_INT_ERRSTAT_VALID_SHIFT

#define PMIC_CFG_WD_RST_INT_ERRSTAT_VALID_SHIFT   (1U << PMIC_CFG_WD_RST_INT_ERRSTAT_VALID)

◆ PMIC_WD_QA_INFINITE_SEQ

#define PMIC_WD_QA_INFINITE_SEQ   (0xFFFFFFFFU)

Macro for PMIC Watchdog QA infinite sequence.

Function Documentation

◆ Pmic_wdgEnable()

int32_t Pmic_wdgEnable ( Pmic_CoreHandle_t pPmicCoreHandle)

API to Enable Watchdog timer.

Requirement: REQ_TAG(PDK-5839), REQ_TAG(PDK-5854) Design: did_pmic_wdg_cfg_readback

     This function is used to Enable the PMIC watchdog. User ensure
     that, this function needs to be called to enable watchdog timer
     before configuring or starting watchdog trigger or QA mode.
Parameters
pPmicCoreHandle[IN] PMIC Interface Handle
Returns
PMIC_ST_SUCCESS in case of success or appropriate error code For valid values Pmic_ErrorCodes

◆ Pmic_wdgDisable()

int32_t Pmic_wdgDisable ( Pmic_CoreHandle_t pPmicCoreHandle)

API to Disable Watchdog timer.

Requirement: REQ_TAG(PDK-5839), REQ_TAG(PDK-5854) Design: did_pmic_wdg_cfg_readback

     This function is used to Disable the PMIC watchdog. User ensure
     that, after using this function, complete watchdog functionality
     and configuration will be deactivated.
Parameters
pPmicCoreHandle[IN] PMIC Interface Handle
Returns
PMIC_ST_SUCCESS in case of success or appropriate error code For valid values Pmic_ErrorCodes

◆ Pmic_wdgSetCfg()

int32_t Pmic_wdgSetCfg ( Pmic_CoreHandle_t pPmicCoreHandle,
const Pmic_WdgCfg_t  wdgCfg 
)

API to set PMIC watchdog configurations.

Requirement: REQ_TAG(PDK-5839), REQ_TAG(PDK-5854) Design: did_pmic_wdg_cfg_readback

     This function is used to configure the watchdog parameters
     in the PMIC for trigger mode or Q&A(question and answer) mode,
     when corresponding validParam bit fields are set in
     Pmic_WdgCfg_t structure.
     User has to call Pmic_wdgEnable() before set the configuration.
Parameters
pPmicCoreHandle[IN] PMIC Interface Handle
wdgCfg[IN] Watchdog configuration
Returns
PMIC_ST_SUCCESS in case of success or appropriate error code For valid values Pmic_ErrorCodes

◆ Pmic_wdgGetCfg()

int32_t Pmic_wdgGetCfg ( Pmic_CoreHandle_t pPmicCoreHandle,
Pmic_WdgCfg_t pWdgCfg 
)

API to get PMIC watchdog configurations.

Requirement: REQ_TAG(PDK-5839), REQ_TAG(PDK-5854) Design: did_pmic_wdg_cfg_readback

     This function is used to get configuration of the watchdog
     from the PMIC for trigger mode or Q&A(question and answer) mode,
     when corresponding validParam bit fields are set in
     Pmic_WdgCfg_t structure.
     User has to call Pmic_wdgEnable() before get the configuration.
Parameters
pPmicCoreHandle[IN] PMIC Interface Handle
pWdgCfg[OUT] Watchdog configuration pointer
Returns
PMIC_ST_SUCCESS in case of success or appropriate error code For valid values Pmic_ErrorCodes

◆ Pmic_wdgStartQaSequence()

int32_t Pmic_wdgStartQaSequence ( Pmic_CoreHandle_t pPmicCoreHandle,
uint32_t  num_of_sequences,
uint32_t  maxCnt 
)

API to Start watchdog QA mode.

Requirement: REQ_TAG(PDK-5839) Design: did_pmic_wdg_cfg_readback

     This function is used to start watchdog sequence and continues
     till the given num_of_sequences. User has to ensure, configure
     all Watchdog QA parameters properly using Pmic_wdgSetCfg() API,
     before starting QA sequence using this API.

     Note: To perform QA sequences, user has to adjust Long window
           time interval, Window1 time interval and Window2 time
           inervals depends on errors given by API. If user gets
           PMIC_ST_ERR_INV_WDG_WINDOW, then user has to increase the
           Long window or window1 time interval. If user gets
           PMIC_ST_ERR_WDG_EARLY_ANSWER, then user has to reduce
           the Window1 time inerval.
Parameters
pPmicCoreHandle[IN] PMIC Interface Handle
num_of_sequences[IN] number of QA sequences If PMIC_WD_QA_INFINITE_SEQ is used, then API runs for infinite sequence.
maxCnt[IN] Number of iterations to wait for an Good/Bad event. The value should be greater than or equal to PMIC_WDG_WAIT_CNT_MIN_VAL.
Returns
PMIC_ST_SUCCESS in case of success or appropriate error code For valid values Pmic_ErrorCodes

◆ Pmic_wdgGetErrorStatus()

int32_t Pmic_wdgGetErrorStatus ( Pmic_CoreHandle_t pPmicCoreHandle,
Pmic_WdgErrStatus_t pErrStatus 
)

API to get PMIC watchdog error status.

Requirement: REQ_TAG(PDK-5839), REQ_TAG(PDK-5854) Design: did_pmic_wdg_cfg_readback

     This function is used to get the watchdog error status from the
     PMIC for trigger mode or Q&A(question and answer) mode,
     when corresponding validParam bit fields are set in
     Pmic_WdgErrStatus_t structure.
     User has to call Pmic_wdgEnable() before getting the error status.
Parameters
pPmicCoreHandle[IN] PMIC Interface Handle
pErrStatus[OUT] Watchdog error status pointer
Returns
PMIC_ST_SUCCESS in case of success or appropriate error code For valid values Pmic_ErrorCodes

◆ Pmic_wdgGetFailCount()

int32_t Pmic_wdgGetFailCount ( Pmic_CoreHandle_t pPmicCoreHandle,
uint8_t *  pFailCount 
)

API to get PMIC watchdog fail count.

Requirement: REQ_TAG(PDK-5839), REQ_TAG(PDK-5854) Design: did_pmic_wdg_cfg_readback

     This function is used to get the watchdog fail count from the PMIC
     for trigger mode or Q&A(question and answer) mode.
     User has to call Pmic_wdgEnable() before getting the fail count.
Parameters
pPmicCoreHandle[IN] PMIC Interface Handle
pFailCount[OUT] Watchdog fail count pointer
Returns
PMIC_ST_SUCCESS in case of success or appropriate error code For valid values Pmic_ErrorCodes

◆ Pmic_wdgStartTriggerSequence()

int32_t Pmic_wdgStartTriggerSequence ( Pmic_CoreHandle_t pPmicCoreHandle)

API to Start watchdog Trigger mode.

Requirement: REQ_TAG(PDK-5854) Design: did_pmic_wdg_cfg_readback

     This function is used to start watchdog trigger mode.
     User has to ensure, configure all Watchdog trigger parameters
     properly using Pmic_wdgSetCfg() API, before starting watchdog
     trigger mode using this API. User can use Pmic_wdgSetCfg() API
     to stop watchdog trigger mode.

     Note: To perform watchdog trigger mode, user has to
           adjust Long window time interval, Window1 time interval
           and Window2 time inervals as below, depends on the
           time-period of the trigger pulse provided by other
           device.
           1. Longwindow time interval must be greater than Trigger
              pulse time period.
           2. Window1 time interval must be less than T-off time of
              the Trigger pulse time period.
           3. Window2 time interval must be greater than T-on time
              of the Trigger pulse time period.
           4. (Window1 time interval + Window2 time interval)
              approximately equal to the Trigger pulse time period.
Parameters
pPmicCoreHandle[IN] PMIC Interface Handle
Returns
PMIC_ST_SUCCESS in case of success or appropriate error code For valid values Pmic_ErrorCodes