| /* |
| * 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 |