REL.PMIC.LP8772X.00.10.00
Pre-releasev0.10.0
PMIC Low-Level Driver release for Coach/LP8772x.
PMICDRV-173: Support IRQ / Error Status
Adds support for the IRQ module which allows for configuration (masking/unmasking), reading, and clearing of interrupt sources on LP8772X PMIC.
PMICDRV-184: Change what data is sent to pFnPmicCommIo{Rx,Wr}
The prior implementation of Pmic_io{Tx,Rx}Byte()
passed the entire I2C buffer that is used to calculate the I2C CRC into the user provided functions pFnPmicCommIo{Rd,Wr}()
.
Generally I2C driver functions are either designed so that they expect to receive register subaddress and then data as two separate parameters, or designed so that they don't have knowledge of subaddresses and the user embeds those in the single data
parameter.
The updated implementation provides all necessary components as separate
arguments:
- I2C device address -> handle->slaveAddress
- Register subaddress -> uint16_t regAddr parameter
- Data packet -> uint8_t *{rx,tx}Data parameter
PMICDRV-183: Potential PMIC_ST_INV_HANDLE error when Pmic_CoreHandle_t uses uninit memory
If the Pmic_CoreHandle_t
type is created in an uninitialized memory region the individual fields may not start out as 0. For most fields this is okay as the fields are assigned using =
, but the drvInitStatus
field is initialized using |=
so will not end up with the expected value unless it is explicitly initialized to 0.
This change ensures that this field starts out as DRV_INIT_UNINIT
.
PMICDRV-185: Add versions of Pmic_io{Tx,Rx}Byte which handle critical section
Add two new functions to the IO module which are duplicates of Pmic_ioTxByte and Pmic_ioRxByte, but obtain and release critical sections before/after performing the write/read, respectively.
These functions should be preferred for one-off reads and writes which are not part of a larger sequence of sequential transactions.
Full Changelog: REL.PMIC.LP8772X.00.09.00...REL.PMIC.LP8772X.00.10.00