54#include "../platform/SensorCommCustom.hpp"
55#include "../platform/SensorCommCustomHal.hpp"
87 return static_cast<Capability>(
static_cast<uint32_t
>(a) |
static_cast<uint32_t
>(b));
98 return (
static_cast<uint32_t
>(a) &
static_cast<uint32_t
>(b)) != 0;
146 virtual bool begin(TwoWire &wire, uint8_t addr,
int sda = -1,
int scl = -1) = 0;
147#elif defined(ESP_PLATFORM)
148#if defined(SENSORLIB_USE_I2C_LEGACY)
157 virtual bool begin(i2c_port_t port_num, uint8_t addr,
int sda = -1,
int scl = -1) = 0;
165 virtual bool begin(i2c_master_bus_handle_t handle, uint8_t addr) = 0;
PMIC Base Abstract Class.
virtual PmicChannelBase * getChannel()
Get power output channel interface.
virtual PmicCapability::Capability getCapabilities() const =0
Get PMIC capabilities.
virtual PmicLedBase & getLed()=0
Get LED interface.
virtual ~PmicBase()=default
Virtual destructor.
virtual const PmicConfig & getConfig() const =0
Get static PMIC configuration.
virtual const char * getChipName() const =0
Get PMIC device name.
virtual void end()=0
Deinitialize PMIC and release resources.
virtual PmicChargerBase * getCharger()
Get charger interface.
virtual bool begin(SensorCommCustom::CustomCallback callback, SensorCommCustomHal::CustomHalCallback hal_cb, uint8_t addr)=0
Initialize PMIC with custom communication callback.
virtual PmicAdcBase & getAdc()=0
Get ADC interface.
virtual PmicPowerBase & getPower()=0
Get power management interface.
virtual PmicGpioBase * getGpio()
Get GPIO interface.
virtual PmicIrqBase * getIrq()
Get interrupt interface.
PMIC power output channel base interface.
PMIC charger capability interface.
uint32_t(*)(Operation op, void *param1, void *param2) CustomHalCallback
bool(*)(uint8_t addr, uint8_t reg, uint8_t *buf, size_t len, bool writeReg, bool isWrite) CustomCallback
constexpr Capability operator|(Capability a, Capability b)
Bitwise OR operator for PmicCapability::Capability.
constexpr bool operator&(Capability a, Capability b)
Bitwise AND operator for PmicCapability::Capability.
@ PmicSupportCharger
Battery charger support.
@ PmicSupportGpio
General purpose I/O support.
@ PmicSupportIrq
Interrupt handling support.
@ PmicSupportPower
Power management (input limits, boost, etc.)
@ PmicSupportAdc
Analog-to-Digital converter for monitoring.
@ PmicSupportChannel
Power output channel control (DCDC/LDO)
@ PmicSupportLed
LED driver support.
@ PmicSupportTypeC
USB Type-C support.
@ PmicSupportPowerBtn
Power-on/Power-off control support.
@ PmicSupportBc12
BC1.2 (USB Battery Charging) support.
@ PmicNone
No capabilities (should not occur)
PMIC static configuration data.
uint8_t channelCount
Number of power output channels.
PmicCapability::Capability capabilities
Supported feature flags.
uint8_t chipIdReg
Chip ID register address.
uint16_t chargeCurrentMin
Minimum configurable charge current (mA), 0 if charging can be disabled.
uint16_t chargeCurrentMax
Maximum configurable charge current (mA)
uint16_t chargeCurrentStep
Step size in mA; 0 if non-uniform (see datasheet)
uint8_t i2cAddress
Default I2C address.
uint8_t chargeCurrentSteps
Total number of discrete levels.
uint8_t chipIdValue
Expected chip ID value.
const char * chipName
e.g. "AXP2101"