57 lines
1.5 KiB
C
Executable File
57 lines
1.5 KiB
C
Executable File
/*******************************************************************************
|
|
* Copyright © 2025 Analog Devices Inc. All Rights Reserved.
|
|
* This software is proprietary to Analog Devices, Inc. and its licensors.
|
|
*******************************************************************************/
|
|
|
|
|
|
#include "MAX22215.h"
|
|
|
|
static int32_t readRegisterI2C(uint16_t icID, uint8_t address);
|
|
static void writeRegisterI2C(uint16_t icID, uint8_t address, int32_t value);
|
|
|
|
int32_t max22215_readRegister(uint16_t icID, uint8_t address)
|
|
{
|
|
MAX22215BusType bus = max22215_getBusType(icID);
|
|
|
|
if(bus == IC_BUS_I2C)
|
|
{
|
|
return readRegisterI2C(icID, address);
|
|
}
|
|
//ToDo: Error handling
|
|
return -1;
|
|
}
|
|
|
|
void max22215_writeRegister(uint16_t icID, uint8_t address, int32_t value)
|
|
{
|
|
MAX22215BusType bus = max22215_getBusType(icID);
|
|
|
|
if(bus == IC_BUS_I2C)
|
|
{
|
|
return writeRegisterI2C(icID, address, value);
|
|
}
|
|
}
|
|
|
|
int32_t readRegisterI2C(uint16_t icID, uint8_t address)
|
|
{
|
|
uint8_t data[3] = { 0 };
|
|
|
|
data[0] = max22215_getDeviceAddress(icID);
|
|
data[1] = address; //register address
|
|
|
|
if(!max22215_readWriteI2C(icID, &data[0], 1,1))
|
|
return 0;
|
|
|
|
return (int32_t)data[2];
|
|
}
|
|
|
|
void writeRegisterI2C(uint16_t icID, uint8_t address, int32_t value)
|
|
{
|
|
uint8_t data[3] = { 0 };
|
|
|
|
data[0] = max22215_getDeviceAddress(icID);
|
|
data[1] = address; //register address
|
|
data[2] = 0xFF & value;
|
|
|
|
max22215_readWriteI2C(icID, &data[0], 2,0);
|
|
}
|