143 lines
8.4 KiB
C
143 lines
8.4 KiB
C
/*
|
|
* Copyright (c) 2023, ithinx GmbH
|
|
* Copyright (c) 2023, Tonies GmbH
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
#ifndef ZEPHYR_DRIVERS_FUELGAUGE_BQ27Z746_GAUGE_H_
|
|
#define ZEPHYR_DRIVERS_FUELGAUGE_BQ27Z746_GAUGE_H_
|
|
|
|
#include <zephyr/drivers/i2c.h>
|
|
|
|
/* Registers */
|
|
#define BQ27Z746_MANUFACTURERACCESS 0x00 /* R/W */
|
|
#define BQ27Z746_ATRATE 0x02 /* R/W, Unit: mA, Range: -32768..32767 */
|
|
#define BQ27Z746_ATRATETIMETOEMPTY 0x04 /* R/O, Unit: minutes, Range: 0..65535 */
|
|
#define BQ27Z746_TEMPERATURE 0x06 /* R/O, Unit: 0.1 K, Range: 0..32767 */
|
|
#define BQ27Z746_VOLTAGE 0x08 /* R/O, Unit: mV, Range: 0..32767 */
|
|
#define BQ27Z746_BATTERYSTATUS 0x0A /* R/O, Unit: status bits */
|
|
#define BQ27Z746_CURRENT 0x0C /* R/O, Unit: mA, Range: -32768..32767 */
|
|
#define BQ27Z746_REMAININGCAPACITY 0x10 /* R/O, Unit: mAh, Range: 0..32767 */
|
|
#define BQ27Z746_FULLCHARGECAPACITY 0x12 /* R/O, Unit: mAh, Range: 0..32767 */
|
|
#define BQ27Z746_AVERAGECURRENT 0x14 /* R/O, Unit: mA, Range: -32768..32767 */
|
|
#define BQ27Z746_AVERAGETIMETOEMPTY 0x16 /* R/O, Unit: minutes, Range: 0..65535 */
|
|
#define BQ27Z746_AVERAGETIMETOFULL 0x18 /* R/O, Unit: minutes, Range: 0..65535 */
|
|
#define BQ27Z746_MAXLOADCURRENT 0x1E /* R/O, Unit: mA, Range: 0..65535 */
|
|
#define BQ27Z746_MAXLOADTIMETOEMPTY 0x20 /* R/O, Unit: minutes, Range: 0..65535 */
|
|
#define BQ27Z746_AVERAGEPOWER 0x22 /* R/O, Unit: mW, Range: -32768..32767 */
|
|
#define BQ27Z746_BTPDISCHARGESET 0x24 /* Datasheet unclear */
|
|
#define BQ27Z746_BTPCHARGESET 0x26 /* Datasheet unclear */
|
|
#define BQ27Z746_INTERNALTEMPERATURE 0x28 /* R/O, Unit: 0.1 K, Range: 0..32767 */
|
|
#define BQ27Z746_CYCLECOUNT 0x2A /* R/O, Unit: none, Range: 0..65535 */
|
|
#define BQ27Z746_RELATIVESTATEOFCHARGE 0x2C /* R/O, Unit: percent, Range: 0..100 */
|
|
#define BQ27Z746_STATEOFHEALTH 0x2E /* R/O, Unit: percent, Range: 0..100 */
|
|
#define BQ27Z746_CHARGINGVOLTAGE 0x30 /* R/O, Unit: mV, Range: 0..32767 */
|
|
#define BQ27Z746_CHARGINGCURRENT 0x32 /* R/O, Unit: mA, Range: 0..32767 */
|
|
#define BQ27Z746_TERMINATEVOLTAGE 0x34 /* R/W, Unit: mC, Range: 0..32767 */
|
|
#define BQ27Z746_TIMESTAMPUPPER 0x36 /* R/O, Unit: seconds, Range: 0..65535 */
|
|
#define BQ27Z746_TIMESTAMPLOWER 0x38 /* R/O, Unit: seconds, Range: 0..65535 */
|
|
#define BQ27Z746_QMAXCYCLES 0x3A /* R/O, Unit: none, Range: 0..65535 */
|
|
#define BQ27Z746_DESIGNCAPACITY \
|
|
0x3C /* R/O (sealed), R/W (unsealed or factory access), Unit: mAh, Range: 0..32767 */
|
|
#define BQ27Z746_ALTMANUFACTURERACCESS 0x3E /* R/W */
|
|
#define BQ27Z746_MACDATA 0x40 /* R/O, MAC data */
|
|
#define BQ27Z746_MACDATASUM 0x60 /* R/O, Checksum over MAC command and data */
|
|
#define BQ27Z746_MACDATALEN 0x61 /* R/O, Length of the MAC data */
|
|
#define BQ27Z746_VOLTHISETTHRESHOLD 0x62 /* R/W, Unit: mV, Range: 0..5000 */
|
|
#define BQ27Z746_VOLTHICLEARTHRESHOLD 0x64 /* R/W, Unit: mV, Range: 0..5000 */
|
|
#define BQ27Z746_VOLTLOSETTHRESHOLD 0x66 /* R/W, Unit: mV, Range: 0..5000 */
|
|
#define BQ27Z746_VOLTLOCLEARTHRESHOLD 0x68 /* R/W, Unit: mV, Range: 0..5000 */
|
|
#define BQ27Z746_TEMPHISETTHRESHOLD 0x6A /* R/W, Unit: degree celsius, Range: -128..127 */
|
|
#define BQ27Z746_TEMPHICLEARTHRESHOLD 0x6B /* R/W, Unit: degree celsius, Range: -128..127 */
|
|
#define BQ27Z746_TEMPLOSETTHRESHOLD 0x6C /* R/W, Unit: degree celsius, Range: -128..127 */
|
|
#define BQ27Z746_TEMPLOCLEARTHRESHOLD 0x6D /* R/W, Unit: degree celsius, Range: -128..127 */
|
|
#define BQ27Z746_INTERRUPTSTATUS 0x6E /* R/O, Unit: status bits */
|
|
#define BQ27Z746_SOCDELTASETTHRESHOLD 0x6F /* R/W, Unit: percent, Range: 0..100 */
|
|
|
|
/* MAC commands */
|
|
#define BQ27Z746_MAC_CMD_DEVICETYPE 0x0001
|
|
#define BQ27Z746_MAC_CMD_FIRMWAREVERSION 0x0002
|
|
#define BQ27Z746_MAC_CMD_HARDWAREVERSION 0x0003
|
|
#define BQ27Z746_MAC_CMD_IFCHECKSUM 0x0004
|
|
#define BQ27Z746_MAC_CMD_STATICDFSIGNATURE 0x0005
|
|
#define BQ27Z746_MAC_CMD_CHEMID 0x0006
|
|
#define BQ27Z746_MAC_CMD_PREV_MACWRITE 0x0007
|
|
#define BQ27Z746_MAC_CMD_STATICCHEMDFSIGNATURE 0x0008
|
|
#define BQ27Z746_MAC_CMD_ALLDFSIGNATURE 0x0009
|
|
#define BQ27Z746_MAC_CMD_SHELFENABLE 0x000B
|
|
#define BQ27Z746_MAC_CMD_SHELFDISABLE 0x000C
|
|
#define BQ27Z746_MAC_CMD_SHUTDOWNMODE 0x0010
|
|
#define BQ27Z746_MAC_CMD_RESET1 0x0012
|
|
#define BQ27Z746_MAC_CMD_SHIPMODEENABLE 0x0015
|
|
#define BQ27Z746_MAC_CMD_SHIPMODEDISABLE 0x0016
|
|
#define BQ27Z746_MAC_CMD_QMAX_DAY 0x0017
|
|
#define BQ27Z746_MAC_CMD_CHARGEFETTOGGLE 0x001F
|
|
#define BQ27Z746_MAC_CMD_DISCHARGEFETTOGGLE 0x0020
|
|
#define BQ27Z746_MAC_CMD_GAUGING_IT_ENABLE 0x0021
|
|
#define BQ27Z746_MAC_CMD_FET_ENABLE 0x0022
|
|
#define BQ27Z746_MAC_CMD_LIFETIMEDATACOLLECTION 0x0023
|
|
#define BQ27Z746_MAC_CMD_LIFETIMEDATARESET 0x0028
|
|
#define BQ27Z746_MAC_CMD_CALIBRATIONMODE 0x002D
|
|
#define BQ27Z746_MAC_CMD_LIFETIMEDATAFLUSH 0x002E
|
|
#define BQ27Z746_MAC_CMD_LIFETIMEDATASPEEDUPMODE 0x002F
|
|
#define BQ27Z746_MAC_CMD_SEALDEVICE 0x0030
|
|
#define BQ27Z746_MAC_CMD_SECURITYKEYS 0x0035
|
|
#define BQ27Z746_MAC_CMD_RESET2 0x0041
|
|
#define BQ27Z746_MAC_CMD_TAMBIENTSYNC 0x0047
|
|
#define BQ27Z746_MAC_CMD_DEVICE_NAME 0x004A
|
|
#define BQ27Z746_MAC_CMD_DEVICE_CHEM 0x004B
|
|
#define BQ27Z746_MAC_CMD_MANUFACTURER_NAME 0x004C
|
|
#define BQ27Z746_MAC_CMD_MANUFACTURE_DATE 0x004D
|
|
#define BQ27Z746_MAC_CMD_SERIAL_NUMBER 0x004E
|
|
#define BQ27Z746_MAC_CMD_SAFETYALERT 0x0050
|
|
#define BQ27Z746_MAC_CMD_SAFETYSTATUS 0x0051
|
|
#define BQ27Z746_MAC_CMD_OPERATIONSTATUS 0x0054
|
|
#define BQ27Z746_MAC_CMD_CHARGINGSTATUS 0x0055
|
|
#define BQ27Z746_MAC_CMD_GAUGINGSTATUS 0x0056
|
|
#define BQ27Z746_MAC_CMD_MANUFACTURINGSTATUS 0x0057
|
|
#define BQ27Z746_MAC_CMD_LIFETIMEDATABLOCK1 0x0060
|
|
#define BQ27Z746_MAC_CMD_LIFETIMEDATABLOCK2 0x0061
|
|
#define BQ27Z746_MAC_CMD_LIFETIMEDATABLOCK3 0x0062
|
|
#define BQ27Z746_MAC_CMD_LIFETIMEDATABLOCK4 0x0063
|
|
#define BQ27Z746_MAC_CMD_LIFETIMEDATABLOCK6 0x0065
|
|
#define BQ27Z746_MAC_CMD_LIFETIMEDATABLOCK7 0x0065
|
|
#define BQ27Z746_MAC_CMD_LIFETIMEDATABLOCK8 0x0067
|
|
#define BQ27Z746_MAC_CMD_LIFETIMEDATABLOCK9 0x0068
|
|
#define BQ27Z746_MAC_CMD_LIFETIMEDATABLOCK10 0x0069
|
|
#define BQ27Z746_MAC_CMD_LIFETIMEDATABLOCK11 0x006A
|
|
#define BQ27Z746_MAC_CMD_LIFETIMEDATABLOCK12 0x006B
|
|
#define BQ27Z746_MAC_CMD_MANUFACTURERINFO 0x0070
|
|
#define BQ27Z746_MAC_CMD_DASTATUS1 0x0071
|
|
#define BQ27Z746_MAC_CMD_DASTATUS2 0x0072
|
|
#define BQ27Z746_MAC_CMD_ITSTATUS1 0x0073
|
|
#define BQ27Z746_MAC_CMD_ITSTATUS2 0x0074
|
|
#define BQ27Z746_MAC_CMD_ITSTATUS3 0x0075
|
|
#define BQ27Z746_MAC_CMD_FCC_SOH 0x0077
|
|
#define BQ27Z746_MAC_CMD_FILTERED_CAPACITY 0x0078
|
|
#define BQ27Z746_MAC_CMD_MANUFACTURERINFOB 0x007A
|
|
#define BQ27Z746_MAC_CMD_MANUFACTURERINFOC 0x007B
|
|
#define BQ27Z746_MAC_CMD_FET_CONTROL_OVERRIDE 0x0097
|
|
#define BQ27Z746_MAC_CMD_SYSTEM_RESET_ENABLE 0x00A3
|
|
#define BQ27Z746_MAC_CMD_SYSTEM_RESET 0x00A4
|
|
#define BQ27Z746_MAC_CMD_BATTSENSEOUTPUT 0x00B1
|
|
#define BQ27Z746_MAC_CMD_RATABLECELL0 0x00E0
|
|
#define BQ27Z746_MAC_CMD_ROMMODE 0x0F00
|
|
#define BQ27Z746_MAC_CMD_DATAFLASHACCESS 0x4000
|
|
#define BQ27Z746_MAC_CMD_SWITCHTOHDQ 0x7C40
|
|
#define BQ27Z746_MAC_CMD_EXITCALIBRATIONOUTPUT 0xF080
|
|
#define BQ27Z746_MAC_CMD_OUTPUTCCANDADCFORCALIBRATIO 0xF081
|
|
#define BQ27Z746_MAC_CMD_OUTPUTTEMPERATURECAL 0xF083
|
|
#define BQ27Z746_MAC_CMD_PROTECTORCALIBRATION 0xF0A0
|
|
#define BQ27Z746_MAC_CMD_PROTECTORIMAGE1 0xF0A1
|
|
#define BQ27Z746_MAC_CMD_PROTECTORIMAGE2 0xF0A2
|
|
#define BQ27Z746_MAC_CMD_PROTECTORIMAGESAVE 0xF0A3
|
|
#define BQ27Z746_MAC_CMD_PROTECTORIMAGELOCK 0xF0A4
|
|
#define BQ27Z746_MAC_CMD_PROTECTORFACTORYCONFIG 0xF0A5
|
|
|
|
struct bq27z746_config {
|
|
struct i2c_dt_spec i2c;
|
|
};
|
|
|
|
#endif
|