87 #ifndef LTC4155_USE_MALLOC 98 #ifdef LTC4155_USE_MALLOC 115 if (chip == NULL)
return NULL;
123 static inline uint8_t
get_size(uint16_t registerinfo)
125 return ((registerinfo >> 8) & 0x0F) + 1;
129 return (registerinfo) & 0xFF;
133 return (registerinfo >> 12) & 0x0F;
135 static inline uint8_t
get_mask(uint16_t registerinfo)
138 uint8_t size =
get_size(registerinfo);
140 for (i=0; i<size-1; i++)
155 uint16_t mask =
get_mask(registerinfo);
158 if (failure)
return failure;
159 data = (read_data & ~mask) | (data << offset);
170 uint16_t mask =
get_mask(registerinfo);
173 *data = *data >> offset;
static uint8_t get_offset(uint16_t registerinfo)
int LTC4155_read_register(LTC4155 chip_handle, uint16_t registerinfo, uint8_t *data)
Retrieves a bit field data into *data.
uint8_t addr
Target IC's SMBus address.
LTC4155 LTC4155_alloc(void)
smbus_read_register read_register
Pointer to a user supplied smbus_read_register function.
LTC4155 LTC4155_init(LTC4155_chip_cfg_t *cfg)
Returns a pointer to a LTC4155 structure used by LTC4155_write_register and LTC4155_read_register.
#define MAX_NUM_LTC4155_INSTANCES
Multiple LTC4155 use.
Information required to access hardware SMBus port.
static uint8_t get_mask(uint16_t registerinfo)
union LT_union_int32_4bytes data
LTC4155_chip_cfg_t LTC4155_chip_array[MAX_NUM_LTC4155_INSTANCES]
port_configuration_t * port_configuration
Pointer to a user supplied port_configuration struct.
static uint8_t get_subaddr(uint16_t registerinfo)
int LTC4155_write_register(LTC4155 chip_handle, uint16_t registerinfo, uint8_t data)
Function to modify a bit field within a register while preserving the unaddressed bit fields...
LTC4155: Dual-Input Power Manager / 3.5A Li-Ion Battery Charger with I²C Control and USB OTG...
smbus_write_register write_register
Pointer to a user supplied smbus_write_register function.
static uint8_t get_size(uint16_t registerinfo)