1 /* 2 * Copyright 2021 The Chromium OS Authors 3 * Copyright (c) 2021 Grinn 4 * 5 * SPDX-License-Identifier: Apache-2.0 6 */ 7 #ifndef ZEPHYR_INCLUDE_DT_BINDINGS_INA230_H_ 8 #define ZEPHYR_INCLUDE_DT_BINDINGS_INA230_H_ 9 10 #include <zephyr/dt-bindings/dt-util.h> 11 12 /* Mask/Enable bits that asserts the ALERT pin */ 13 #define INA230_SHUNT_VOLTAGE_OVER BIT(15) 14 #define INA230_SHUNT_VOLTAGE_UNDER BIT(14) 15 #define INA230_BUS_VOLTAGE_OVER BIT(13) 16 #define INA230_BUS_VOLTAGE_UNDER BIT(12) 17 #define INA230_OVER_LIMIT_POWER BIT(11) 18 #define INA230_CONVERSION_READY BIT(10) 19 #define INA230_ALERT_FUNCTION_FLAG BIT(4) 20 #define INA230_CONVERSION_READY_FLAG BIT(3) 21 #define INA230_MATH_OVERFLOW_FLAG BIT(2) 22 #define INA230_ALERT_POLARITY BIT(1) 23 #define INA230_ALERT_LATCH_ENABLE BIT(0) 24 25 /* Operating Mode */ 26 #define INA230_OPER_MODE_POWER_DOWN 0x00 27 #define INA230_OPER_MODE_SHUNT_VOLTAGE_TRIG 0x01 28 #define INA230_OPER_MODE_BUS_VOLTAGE_TRIG 0x02 29 #define INA230_OPER_MODE_SHUNT_BUS_VOLTAGE_TRIG 0x03 30 #define INA230_OPER_MODE_SHUNT_VOLTAGE_CONT 0x05 31 #define INA230_OPER_MODE_BUS_VOLTAGE_CONT 0x06 32 #define INA230_OPER_MODE_SHUNT_BUS_VOLTAGE_CONT 0x07 33 34 /* Conversion time for bus and shunt in micro-seconds */ 35 #define INA230_CONV_TIME_140 0x00 36 #define INA230_CONV_TIME_204 0x01 37 #define INA230_CONV_TIME_332 0x02 38 #define INA230_CONV_TIME_588 0x03 39 #define INA230_CONV_TIME_1100 0x04 40 #define INA230_CONV_TIME_2116 0x05 41 #define INA230_CONV_TIME_4156 0x06 42 #define INA230_CONV_TIME_8244 0x07 43 44 /* Averaging Mode */ 45 #define INA230_AVG_MODE_1 0x00 46 #define INA230_AVG_MODE_4 0x01 47 #define INA230_AVG_MODE_16 0x02 48 #define INA230_AVG_MODE_64 0x03 49 #define INA230_AVG_MODE_128 0x04 50 #define INA230_AVG_MODE_256 0x05 51 #define INA230_AVG_MODE_512 0x06 52 #define INA230_AVG_MODE_1024 0x07 53 54 /** 55 * @brief Macro for creating the INA230 configuration value 56 * 57 * @param mode Operating mode. 58 * @param svct Conversion time for shunt voltage. 59 * @param bvct Conversion time for bus voltage. 60 * @param avg Averaging mode. 61 */ 62 #define INA230_CONFIG(mode, \ 63 svct, \ 64 bvct, \ 65 avg) \ 66 (((avg) << 9) | ((bvct) << 6) | ((svct) << 3) | (mode)) 67 68 #endif /* ZEPHYR_INCLUDE_DT_BINDINGS_INA230_H_ */ 69