/*
 * 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_TRIG_BUS_VOLTAGE_SINGLE_SHOT		0x01
#define INA237_OPER_MODE_TRIG_SHUNT_VOLTAGE_TRIG_SINGLE_SHOT	0x02
#define INA237_OPER_MODE_TRIG_SHUNT_BUS_VOLTAGE_SINGLE_SHOT	0x03
#define INA237_OPER_MODE_TRIG_TEMP_SINGLE_SHOT			0x05
#define INA237_OPER_MODE_TRIG_TEMP_BUS_SINGLE_SHOT		0x06
#define INA237_OPER_MODE_TRIG_TEMP_SHUNT_SINGLE_SHOT		0x07
#define INA237_OPER_MODE_CONT_BUS_VOLTAGE			0x09
#define INA237_OPER_MODE_CONT_SHUNT_VOLTAGE			0x0A
#define INA237_OPER_MODE_CONT_SHUNT_BUS_VOLTAGE			0x0B
#define INA237_OPER_MODE_CONT_TEMP				0x0C
#define INA237_OPER_MODE_CONT_BUS_VOLTAGE_TEMP			0x0D
#define INA237_OPER_MODE_CONT_TEMP_SHUNT_VOLTAGE		0x0E
#define INA237_OPER_MODE_CONT_BUS_SHUNT_VOLTAGE_TEMP		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_ */
