Line data Source code
1 0 : /* 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 0 : #define INA230_SHUNT_VOLTAGE_OVER BIT(15) 14 0 : #define INA230_SHUNT_VOLTAGE_UNDER BIT(14) 15 0 : #define INA230_BUS_VOLTAGE_OVER BIT(13) 16 0 : #define INA230_BUS_VOLTAGE_UNDER BIT(12) 17 0 : #define INA230_OVER_LIMIT_POWER BIT(11) 18 0 : #define INA230_CONVERSION_READY BIT(10) 19 0 : #define INA230_ALERT_FUNCTION_FLAG BIT(4) 20 0 : #define INA230_CONVERSION_READY_FLAG BIT(3) 21 0 : #define INA230_MATH_OVERFLOW_FLAG BIT(2) 22 0 : #define INA230_ALERT_POLARITY BIT(1) 23 0 : #define INA230_ALERT_LATCH_ENABLE BIT(0) 24 : 25 : /* Operating Mode */ 26 0 : #define INA230_OPER_MODE_POWER_DOWN 0x00 27 0 : #define INA230_OPER_MODE_SHUNT_VOLTAGE_TRIG 0x01 28 0 : #define INA230_OPER_MODE_BUS_VOLTAGE_TRIG 0x02 29 0 : #define INA230_OPER_MODE_SHUNT_BUS_VOLTAGE_TRIG 0x03 30 0 : #define INA230_OPER_MODE_SHUNT_VOLTAGE_CONT 0x05 31 0 : #define INA230_OPER_MODE_BUS_VOLTAGE_CONT 0x06 32 0 : #define INA230_OPER_MODE_SHUNT_BUS_VOLTAGE_CONT 0x07 33 : 34 : /* Conversion time for bus and shunt in micro-seconds */ 35 0 : #define INA230_CONV_TIME_140 0x00 36 0 : #define INA230_CONV_TIME_204 0x01 37 0 : #define INA230_CONV_TIME_332 0x02 38 0 : #define INA230_CONV_TIME_588 0x03 39 0 : #define INA230_CONV_TIME_1100 0x04 40 0 : #define INA230_CONV_TIME_2116 0x05 41 0 : #define INA230_CONV_TIME_4156 0x06 42 0 : #define INA230_CONV_TIME_8244 0x07 43 : 44 : /* Averaging Mode */ 45 0 : #define INA230_AVG_MODE_1 0x00 46 0 : #define INA230_AVG_MODE_4 0x01 47 0 : #define INA230_AVG_MODE_16 0x02 48 0 : #define INA230_AVG_MODE_64 0x03 49 0 : #define INA230_AVG_MODE_128 0x04 50 0 : #define INA230_AVG_MODE_256 0x05 51 0 : #define INA230_AVG_MODE_512 0x06 52 0 : #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 1 : avg) \ 66 : (((avg) << 9) | ((bvct) << 6) | ((svct) << 3) | (mode)) 67 : 68 : #endif /* ZEPHYR_INCLUDE_DT_BINDINGS_INA230_H_ */