/*
 * Copyright (c) 2021  Grinn
 *
 * SPDX-License-Identifier: Apache-2.0
 */

#ifndef ZEPHYR_DRIVERS_SENSOR_INA23X_INA237_H_
#define ZEPHYR_DRIVERS_SENSOR_INA23X_INA237_H_

#include "ina23x_trigger.h"

#include <stdint.h>

#include <zephyr/device.h>
#include <zephyr/drivers/gpio.h>
#include <zephyr/drivers/i2c.h>
#include <zephyr/drivers/sensor.h>

#define INA237_REG_CONFIG     0x00
#define INA237_REG_ADC_CONFIG 0x01
#define INA237_REG_CALIB      0x02
#define INA237_REG_SHUNT_VOLT 0x04
#define INA237_REG_BUS_VOLT   0x05
#define INA237_REG_MASK       0x06
#define INA237_REG_CURRENT    0x07
#define INA237_REG_POWER      0x08
#define INA237_REG_ALERT      0x0B
#define INA237_REG_SOVL       0x0C
#define INA237_REG_SUVL       0x0D
#define INA237_REG_BOVL       0x0E
#define INA237_REG_BUVL       0x0F
#define INA237_REG_TEMP_LIMIT 0x10
#define INA237_REG_PWR_LIMIT  0x11
#define INA237_REG_MANUFACTURER_ID 0x3E

#define INA237_MANUFACTURER_ID 0x5449

struct ina237_data {
	const struct device *dev;
	uint16_t current;
	uint16_t bus_voltage;
	uint32_t power;
	enum sensor_channel chan;
	struct ina23x_trigger trigger;
};

struct ina237_config {
	struct i2c_dt_spec bus;
	uint16_t config;
	uint16_t adc_config;
	uint32_t current_lsb;
	uint16_t rshunt;
	const struct gpio_dt_spec alert_gpio;
	uint16_t alert_config;
};

#endif /* ZEPHYR_DRIVERS_SENSOR_INA23X_INA237_H_ */
