/*
 * Copyright (c) 2021 Grinn
 *
 * SPDX-License-Identifier: Apache-2.0
 */
#ifndef ZEPHYR_INCLUDE_DT_BINDINGS_INA237_H_
#define ZEPHYR_INCLUDE_DT_BINDINGS_INA237_H_

#include <zephyr/dt-bindings/dt-util.h>

/* Operating Mode */
#define INA237_OPER_MODE_SHUTDOWN			0x00
#define INA237_OPER_MODE_BUS_VOLTAGE_TRIG		0x01
#define INA237_OPER_MODE_SHUNT_VOLTAGE_TRIG		0x02
#define INA237_OPER_MODE_SHUNT_BUS_VOLTAGE_TRIG		0x03
#define INA237_OPER_MODE_TEMP_TRIG			0x04
#define INA237_OPER_MODE_TEMP_BUS_VOLTAGE_TRIG		0x05
#define INA237_OPER_MODE_TEMP_SHUNT_VOLTAGE_TRIG	0x06
#define INA237_OPER_MODE_BUS_SHUNT_VOLTAGE_TEMP_TRIG	0x07
#define INA237_OPER_MODE_BUS_VOLTAGE_CONT		0x09
#define INA237_OPER_MODE_SHUNT_VOLTAGE_CONT		0x0A
#define INA237_OPER_MODE_SHUNT_BUS_VOLTAGE_CONT		0x0B
#define INA237_OPER_MODE_TEMP_CONT			0x0C
#define INA237_OPER_MODE_BUS_VOLTAGE_TEMP_CONT		0x0D
#define INA237_OPER_MODE_TEMP_SHUNT_VOLTAGE_CONT	0x0E
#define INA237_OPER_MODE_BUS_SHUNT_VOLTAGE_TEMP_CONT	0x0F

/* Conversion time for bus, shunt and temp in micro-seconds */
#define INA237_CONV_TIME_50   0x00
#define INA237_CONV_TIME_84   0x01
#define INA237_CONV_TIME_150  0x02
#define INA237_CONV_TIME_280  0x03
#define INA237_CONV_TIME_540  0x04
#define INA237_CONV_TIME_1052 0x05
#define INA237_CONV_TIME_2074 0x06
#define INA237_CONV_TIME_4120 0x07

/* Averaging Mode */
#define INA237_AVG_MODE_1    0x00
#define INA237_AVG_MODE_4    0x01
#define INA237_AVG_MODE_16   0x02
#define INA237_AVG_MODE_64   0x03
#define INA237_AVG_MODE_128  0x04
#define INA237_AVG_MODE_256  0x05
#define INA237_AVG_MODE_512  0x06
#define INA237_AVG_MODE_1024 0x07

/* Reset Mode */
#define INA237_RST_NORMAL_OPERATION	0x00
#define INA237_RST_SYSTEM_RESET		0x01

/* Delay for initial ADC conversion in steps of 2 ms */
#define INA237_INIT_ADC_DELAY_0_S	0x00
#define INA237_INIT_ADC_DELAY_2_MS	0x01
#define INA237_INIT_ADC_DELAY_510_MS	0xFF

/* Shunt full scale range selection across IN+ and IN–. */
#define INA237_ADC_RANGE_163_84	0x00
#define INA237_ADC_RANGE_40_96	0x01

/**
 * @brief Macro for creating the INA237 configuration value
 *
 * @param rst_mode	Reset mode.
 * @param convdly	Delay for initial ADC conversion in steps of 2 ms.
 * @param adc_range	Shunt full scale range selection across IN+ and IN–.
 *
 */
#define INA237_CONFIG(rst_mode, \
		      convdly, \
		      adc_range) \
	(((rst_mode) << 15) | ((convdly) << 6) | ((adc_range) << 4))

/**
 * @brief Macro for creating the INA237 ADC configuration value
 *
 * @param mode   Operating mode.
 * @param vshct  Conversion time for shunt voltage.
 * @param vbusct Conversion time for bus voltage.
 * @param vtct   Conversion time for temperature.
 * @param avg    Averaging mode.
 */
#define INA237_ADC_CONFIG(mode, \
		      vshct, \
		      vbusct, \
		      vtct, \
		      avg)  \
	(((mode) << 12) | ((vbusct) << 9) | ((vshct) << 6) | ((vtct) << 3) | (avg))

#endif /* ZEPHYR_INCLUDE_DT_BINDINGS_INA237_H_ */
