30#include "../../../SensorBuildOpt.h"
31#if !SENSORLIB_EXCLUDE_PMIC_SY6970
43 return rev == SY6970_DEV_REV;
48 int val =
readReg(REG_DEVICE_REV);
49 return (val >= 0) ? (val & MASK_DEV_REV) : 0xFF;
59 int val =
readReg(REG_ADC_BUSV);
60 return (val >= 0) && (val & MASK_BUS_GD);
66 return (val >= 0) ? ((val >> SHIFT_BUS_STAT) & 0x07) : 0;
72 return (val >= 0) ? ((val >> SHIFT_CHRG_STAT) & 0x03) : 0xFF;
78 return (val >= 0) && (val & MASK_PG_STAT);
99 if (val < 0)
return false;
100 fault =
static_cast<uint8_t
>(val);
104bool SY6970Core::initImpl(uint8_t param)
108 if (rev != SY6970_DEV_REV) {
109 SENSORLIB_LOG_E(
"Device revision mismatch: expected 0x%02x, got 0x%02x",
110 static_cast<unsigned int>(SY6970_DEV_REV),
111 static_cast<unsigned int>(rev));
123 return updateBits(REG_CHG_TIMER, MASK_WATCHDOG, 0x00) >= 0;
#define SENSORLIB_LOG_E(...)
std::unique_ptr< SensorHal > hal
uint8_t getBusStatus()
Get USB port type status.
bool isOtg()
Check if in OTG (boost) mode.
void reset()
Reset device to default state.
void end()
Deinitialize and release resources.
bool isChargeDone()
Check if charging is complete.
bool isCharging()
Check if actively charging.
uint8_t getChargeStatus()
Get charging status.
uint8_t getDeviceRevision() const
Get device revision.
bool isVbusPresent()
Check if VBUS (USB power) is present.
bool isPowerGood()
Check if power is good.
bool isValid() const
Check if device is valid/present.
bool getFaultStatus(uint8_t &fault)
Get fault status.
bool getRegBit(uint8_t reg, uint8_t bit)
int readReg(uint8_t reg) const
int updateBits(uint8_t reg, uint8_t mask, uint8_t value_shifted)
bool setRegBit(uint8_t reg, uint8_t bit)