/* * Copyright 2021 Grinn * * SPDX-License-Identifier: Apache-2.0 */ #include "ina23x_common.h" #include int ina23x_reg_read_24(const struct i2c_dt_spec *bus, uint8_t reg, uint32_t *val) { uint8_t data[3]; int ret; ret = i2c_burst_read_dt(bus, reg, data, sizeof(data)); if (ret < 0) { return ret; } *val = sys_get_be24(data); return ret; } int ina23x_reg_read_16(const struct i2c_dt_spec *bus, uint8_t reg, uint16_t *val) { uint8_t data[2]; int ret; ret = i2c_burst_read_dt(bus, reg, data, sizeof(data)); if (ret < 0) { return ret; } *val = sys_get_be16(data); return ret; } int ina23x_reg_write(const struct i2c_dt_spec *bus, uint8_t reg, uint16_t val) { uint8_t tx_buf[3]; tx_buf[0] = reg; sys_put_be16(val, &tx_buf[1]); return i2c_write_dt(bus, tx_buf, sizeof(tx_buf)); }