K74B/app_Indie/drivers/hal/inc/pmu_device.h
2024-01-16 10:46:17 +08:00

123 lines
2.7 KiB
C

/**
* @copyright 2017 Indie Semiconductor.
*
* This file is proprietary to Indie Semiconductor.
* All rights reserved. Reproduction or distribution, in whole
* or in part, is forbidden except by express written permission
* of Indie Semiconductor.
*
* @file pmu_device.h
*/
#ifndef PMU_DEVICE_H__
#define PMU_DEVICE_H__
#include <stddef.h>
#include <string.h>
#include <stdint.h>
#include <stdbool.h>
#include <meta.h>
typedef enum{
POLARITY_NATIVE = 0,
POLARITY_FLIP,
}BattMonitorPolarity_t;
typedef enum{
S_BOR_1P5V = 0,
BOR_1V5_THRS_1328mV,
BOR_1V5_THRS_1358mV,
BOR_1V5_THRS_1393mV,
BOR_1V5_THRS_1423mV,
BOR_1V5_THRS_1463mV,
}Bor1V5Thres_t;
typedef enum{
BOR_3V3_THRS_2163mV = 0,
BOR_3V3_THRS_2228mV,
BOR_3V3_THRS_2292mV,
BOR_3V3_THRS_2363mV,
BOR_3V3_THRS_2433mV,
BOR_3V3_THRS_2513mV,
BOR_3V3_THRS_2598mV,
BOR_3V3_THRS_2688mV,
BOR_3V3_THRS_2783mV,
BOR_3V3_THRS_2883mV,
BOR_3V3_THRS_2998mV,
BOR_3V3_THRS_3118mV,
BOR_3V3_THRS_3248mV,
}Bor3V3Thres_t;
/**
* @brief The enumeration of brownout mode.
*/
typedef enum {
PMU_BROWNOUT_RESET = 0U,
PMU_BROWNOUT_INTERRUPT,
PMU_BROWNOUT_NONE,
} PMU_BROWNOUT_MODE_t;
/**
* @brief The enumeration of wake up timer mode.
*/
typedef enum {
WAKEUP_TIMEER_DISABLE = 0U,
WAKEUP_TIMEER_ENABLE,
} PMU_WAKEUP_TIMEER_MODE_t;
/**
* @brief The enumeration of wake up timer mode.
*/
typedef enum {
WAKEUP_TIMEER_INTERVAL_100us = 0U,
WAKEUP_TIMEER_INTERVAL_200us,
WAKEUP_TIMEER_INTERVAL_400us,
WAKEUP_TIMEER_INTERVAL_800us,
WAKEUP_TIMEER_INTERVAL_16ms,
WAKEUP_TIMEER_INTERVAL_32ms,
WAKEUP_TIMEER_INTERVAL_64ms,
WAKEUP_TIMEER_INTERVAL_128ms,
WAKEUP_TIMEER_INTERVAL_256ms,
WAKEUP_TIMEER_INTERVAL_512ms,
WAKEUP_TIMEER_INTERVAL_1024ms,
WAKEUP_TIMEER_INTERVAL_2048ms,
WAKEUP_TIMEER_INTERVAL_4096ms,
WAKEUP_TIMEER_INTERVAL_8192ms,
WAKEUP_TIMEER_INTERVAL_16384ms,
WAKEUP_TIMEER_INTERVAL_32768ms
} PMU_WAKEUP_TIMEER_Interval_t;
#define MODUE_SOFT_RESET_ADC (0x001U)
#define MODUE_SOFT_RESET_PWM (0x002U)
#define MODUE_SOFT_RESET_CTT (0x004U)
#define MODUE_SOFT_RESET_GTM (0x008U)
#define MODUE_SOFT_RESET_SPIM (0x010U)
#define MODUE_SOFT_RESET_UART (0x011U)
#define MODUE_SOFT_RESET_MATHDIV (0x012U)
#define MODUE_SOFT_RESET_CRC (0x014U)
#define MODUE_SOFT_RESET_PWM_AUX (0x018U)
#define MODUE_SOFT_RESET_LINS (0x020U)
void PMU_BORInit(Bor1V5Thres_t lowThreshold, Bor3V3Thres_t highThreshold);
void PMU_WakeTimerInit(PMU_WAKEUP_TIMEER_MODE_t mode, PMU_WAKEUP_TIMEER_Interval_t interval);
void PMU_EnterDeepSleepMode(void);
#endif /* __PMU_DEVICE_H__ */