Zephyr API Documentation 4.5.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
hy4245.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2025, Linumiz GmbH
3 * Copyright (c) 2026, Testo SE & Co. KGaA
4 *
5 * SPDX-License-Identifier: Apache-2.0
6 */
7
25
26#ifndef ZEPHYR_INCLUDE_DRIVERS_FUEL_GAUGE_HY4245_H_
27#define ZEPHYR_INCLUDE_DRIVERS_FUEL_GAUGE_HY4245_H_
28
29#include <stdbool.h>
30#include <stdint.h>
31
33#include <zephyr/sys/util.h>
34
35#ifdef __cplusplus
36extern "C" {
37#endif /* __cplusplus */
38
45
51#define HY4245_CONTROL_STATUS_VOK BIT(1)
53#define HY4245_CONTROL_STATUS_SLEEP BIT(4)
55#define HY4245_CONTROL_STATUS_FULLSLEEP BIT(5)
57#define HY4245_CONTROL_STATUS_HIBERNATE BIT(6)
59#define HY4245_CONTROL_STATUS_SHUTDOWN BIT(7)
61#define HY4245_CONTROL_STATUS_1WR BIT(8)
63#define HY4245_CONTROL_STATUS_BCA BIT(10)
65#define HY4245_CONTROL_STATUS_CCA BIT(11)
67#define HY4245_CONTROL_STATUS_CSV BIT(12)
69#define HY4245_CONTROL_STATUS_SS BIT(13)
71#define HY4245_CONTROL_STATUS_FAS BIT(14)
73#define HY4245_CONTROL_STATUS_SE BIT(15)
75
81#define HY4245_FLAGS_DSG BIT(0)
83#define HY4245_FLAGS_SOCF BIT(1)
85#define HY4245_FLAGS_SOC1 BIT(2)
87#define HY4245_FLAGS_BAT_DET BIT(3)
89#define HY4245_FLAGS_LRND BIT(4)
91#define HY4245_FLAGS_QSTART BIT(5)
93#define HY4245_FLAGS_EODCTAKEN BIT(6)
95#define HY4245_FLAGS_OCVTAKEN BIT(7)
97#define HY4245_FLAGS_CHG BIT(8)
99#define HY4245_FLAGS_FC BIT(9)
101#define HY4245_FLAGS_CHGSUSP BIT(10)
103#define HY4245_FLAGS_XCHG BIT(11)
105#define HY4245_FLAGS_DOT BIT(14)
107#define HY4245_FLAGS_COT BIT(15)
109
115#define HY4245_SAFETY_STATUS_OV BIT(6)
117#define HY4245_SAFETY_STATUS_UV BIT(7)
119#define HY4245_SAFETY_STATUS_COC BIT(12)
121#define HY4245_SAFETY_STATUS_DOC BIT(13)
123#define HY4245_SAFETY_STATUS_COT BIT(14)
125#define HY4245_SAFETY_STATUS_DOT BIT(15)
127
133#define HY4245_OPERATION_CONFIG_A_TEMPS BIT(0)
135#define HY4245_OPERATION_CONFIG_A_SE_EN BIT(1)
137#define HY4245_OPERATION_CONFIG_A_SE_POL BIT(3)
139#define HY4245_OPERATION_CONFIG_A_RMFCC BIT(4)
141#define HY4245_OPERATION_CONFIG_A_SLEEP BIT(5)
143#define HY4245_OPERATION_CONFIG_A_UPIMP_B BIT(6)
145#define HY4245_OPERATION_CONFIG_A_CELL0 BIT(8)
147#define HY4245_OPERATION_CONFIG_A_SMLSR BIT(10)
149#define HY4245_OPERATION_CONFIG_A_GNDSEL BIT(11)
151#define HY4245_OPERATION_CONFIG_A_NR BIT(13)
153#define HY4245_OPERATION_CONFIG_A_FACDC_EN BIT(14)
155#define HY4245_OPERATION_CONFIG_A_UPD_EN BIT(15)
157
159#define HY4245_DATA_FLASH_BLOCK_SIZE 32U
160
165#define HY4245_CONFIG_IMAGE_ELEMENT_SIZE (2U + HY4245_DATA_FLASH_BLOCK_SIZE)
166
323
335
339
340#ifdef __cplusplus
341}
342#endif /* __cplusplus */
343
344#endif /* ZEPHYR_INCLUDE_DRIVERS_FUEL_GAUGE_HY4245_H_ */
Main header file for fuel gauge driver API.
hy4245_fuel_gauge_prop
HY4245 specific fuel gauge properties.
Definition hy4245.h:174
#define HY4245_DATA_FLASH_BLOCK_SIZE
Size of one data flash block in bytes.
Definition hy4245.h:159
@ HY4245_FUEL_GAUGE_CONFIG_IMAGE_VERIFY
Verify the data flash against a configuration image, buffer property.
Definition hy4245.h:305
@ HY4245_FUEL_GAUGE_DATA_FLASH_BLOCK
Single data flash block, buffer property with struct hy4245_data_flash_block.
Definition hy4245.h:269
@ HY4245_FUEL_GAUGE_FIRMWARE_VERSION
Firmware (algorithm) version (Control() subcommand Version).
Definition hy4245.h:241
@ HY4245_FUEL_GAUGE_LIFETIME_OVER_TEMPERATURE_MINS
Accumulated duration of over temperature events (Control() subcommand LifetimeOverTempDuration).
Definition hy4245.h:219
@ HY4245_FUEL_GAUGE_MANUFACTURER_INFO_A
Manufacturer info block A, buffer property with up to HY4245_DATA_FLASH_BLOCK_SIZE bytes.
Definition hy4245.h:279
@ HY4245_FUEL_GAUGE_DATA_FLASH_CHECKSUM
Data flash checksum (Control() subcommand DFChecksum).
Definition hy4245.h:228
@ HY4245_FUEL_GAUGE_FLASH_UPDATE_ENABLE
Data flash updates by the gauge algorithm (OperationCfgA().UPD_EN).
Definition hy4245.h:185
@ HY4245_FUEL_GAUGE_SAFETY_STATUS
SafetyStatus() register.
Definition hy4245.h:212
@ HY4245_FUEL_GAUGE_CONFIG_IMAGE
Configuration image (battery parameter file), buffer property.
Definition hy4245.h:296
@ HY4245_FUEL_GAUGE_OPERATION_CONFIG_A
OperationCfgA() register.
Definition hy4245.h:199
@ HY4245_FUEL_GAUGE_CONTROL_STATUS
ControlStatus() register.
Definition hy4245.h:192
@ HY4245_FUEL_GAUGE_FLAGS
Flags() register.
Definition hy4245.h:205
@ HY4245_FUEL_GAUGE_CLEAR_LEARNED
Clear learned capacity information (Control() subcommand ClearLearned).
Definition hy4245.h:313
@ HY4245_FUEL_GAUGE_MANUFACTURER_INFO_C
Manufacturer info block C, see HY4245_FUEL_GAUGE_MANUFACTURER_INFO_A.
Definition hy4245.h:283
@ HY4245_FUEL_GAUGE_DATA_FLASH_VERSION
Data flash version (Control() subcommand DFVersion), the version field of the programmed configuratio...
Definition hy4245.h:235
@ HY4245_FUEL_GAUGE_RESET
Full reset of the gauge (Control() subcommand Reset).
Definition hy4245.h:258
@ HY4245_FUEL_GAUGE_CALIBRATION_MODE
Calibration mode (data flash access session).
Definition hy4245.h:251
@ HY4245_FUEL_GAUGE_QUICK_START
QuickStart: re-estimate the capacity information from the open circuit voltage (Control() subcommand ...
Definition hy4245.h:321
@ HY4245_FUEL_GAUGE_MANUFACTURER_INFO_B
Manufacturer info block B, see HY4245_FUEL_GAUGE_MANUFACTURER_INFO_A.
Definition hy4245.h:281
@ FUEL_GAUGE_CUSTOM_BEGIN
Reserved to demark downstream custom properties - use this value as the actual value may change over ...
Definition fuel_gauge.h:199
__UINT8_TYPE__ uint8_t
Definition stdint.h:88
Data flash block for HY4245_FUEL_GAUGE_DATA_FLASH_BLOCK.
Definition hy4245.h:325
uint8_t subclass
Data flash subclass id.
Definition hy4245.h:327
uint8_t data[32U]
Block data.
Definition hy4245.h:333
uint8_t len
Number of valid bytes in data, at most HY4245_DATA_FLASH_BLOCK_SIZE.
Definition hy4245.h:331
uint8_t block
Block number within the subclass.
Definition hy4245.h:329
Misc utilities.