adp536x
The adp536x library provides an API to the ADP5360 power management integrated circuit (PMIC).
Implementation
The library accesses the features of the ADP5360 PMIC by conducting Inter-Integrated Circuit (I2C) transactions with its registers. Generic read, write, and masked write functions are private to the library. The feature-specific functions are available to the user.
Note
Regulator functionality (BUCK/BUCKBOOST) is exposed using the Zephyr regulator API.
Supported features
The library provides several functions to set operating parameters for the ADP5360 PMIC and for reading status values.
Requirements
An I2C interface is required to communicate with the ADP5360 PMIC.
Configuration
To enable the library, set the CONFIG_ADP536X
Kconfig option to y
in the project configuration file prj.conf
.
Initialize the library using the adp536x_init()
function and use the API to configure and read from the ADP5360 PMIC.
Dependencies
This library uses the I2C-capable hardware.
API documentation
include/adp536x
lib/adp536x/src
Following define VBUS current limit values, charging current values, and overcharge protection threshold values respectively:
- group adp536x
Defines
-
ADP536X_VBUS_ILIM_50mA
-
ADP536X_VBUS_ILIM_100mA
-
ADP536X_VBUS_ILIM_150mA
-
ADP536X_VBUS_ILIM_200mA
-
ADP536X_VBUS_ILIM_250mA
-
ADP536X_VBUS_ILIM_300mA
-
ADP536X_VBUS_ILIM_400mA
-
ADP536X_VBUS_ILIM_500mA
-
ADP536X_CHG_CURRENT_10mA
-
ADP536X_CHG_CURRENT_50mA
-
ADP536X_CHG_CURRENT_100mA
-
ADP536X_CHG_CURRENT_150mA
-
ADP536X_CHG_CURRENT_200mA
-
ADP536X_CHG_CURRENT_250mA
-
ADP536X_CHG_CURRENT_300mA
-
ADP536X_CHG_CURRENT_320mA
-
ADP536X_OC_CHG_THRESHOLD_25mA
-
ADP536X_OC_CHG_THRESHOLD_50mA
-
ADP536X_OC_CHG_THRESHOLD_100mA
-
ADP536X_OC_CHG_THRESHOLD_150mA
-
ADP536X_OC_CHG_THRESHOLD_200mA
-
ADP536X_OC_CHG_THRESHOLD_250mA
-
ADP536X_OC_CHG_THRESHOLD_300mA
-
ADP536X_OC_CHG_THRESHOLD_400mA
Enums
Functions
-
int adp536x_init(const struct device *dev)
Initialize ADP536X.
- Parameters:
dev – [in] Pointer to the I2C bus device.
- Return values:
0 – If the operation was successful. Otherwise, a (negative) error code is returned.
-
int adp536x_vbus_current_set(uint8_t value)
Set the VBUS current limit.
- Parameters:
value – [in] The upper current threshold in LSB.
- Return values:
0 – If the operation was successful. Otherwise, a (negative) error code is returned.
-
int adp536x_charger_current_set(uint8_t value)
Set the charger current.
- Parameters:
value – [in] The charger current in LSB.
- Return values:
0 – If the operation was successful. Otherwise, a (negative) error code is returned.
-
int adp536x_charger_termination_voltage_set(uint8_t value)
Set the charger termination voltage.
This function configures the maximum battery voltage where the charger remains active.
- Parameters:
value – [in] The charger termination voltage.
- Return values:
0 – If the operation was successful. Otherwise, a (negative) error code is returned.
-
int adp536x_charging_enable(bool enable)
Enable charging.
- Parameters:
enable – [in] The requested charger operation state.
- Return values:
0 – If the operation was successful. Otherwise, a (negative) error code is returned.
-
int adp536x_charger_status_1_read(uint8_t *buf)
Read the STATUS1 register.
- Parameters:
buf – [out] The read value of the STATUS1 register.
- Return values:
0 – If the operation was successful. Otherwise, a (negative) error code is returned.
-
int adp536x_charger_status_2_read(uint8_t *buf)
Read the STATUS2 register.
- Parameters:
buf – [out] The read value of the STATUS2 register.
- Return values:
0 – If the operation was successful. Otherwise, a (negative) error code is returned.
-
int adp536x_oc_chg_hiccup_set(bool enable)
Enable charge hiccup protection mode.
- Parameters:
enable – [in] The requested hiccup protection state.
- Return values:
0 – If the operation was successful. Otherwise, a (negative) error code is returned.
-
int adp536x_oc_dis_hiccup_set(bool enable)
Enable discharge hiccup protection mode.
- Parameters:
enable – [in] The requested hiccup protection state.
- Return values:
0 – If the operation was successful. Otherwise, a (negative) error code is returned.
-
int adp536x_factory_reset(void)
Reset the device to its default values.
- Return values:
0 – If the operation was successful. Otherwise, a (negative) error code is returned.
-
int adp536x_oc_chg_current_set(uint8_t value)
Set the charge over-current threshold.
- Parameters:
value – [in] The over-current threshold.
- Return values:
0 – If the operation was successful. Otherwise, a (negative) error code is returned.
-
int adp536x_fg_set_mode(enum adp536x_fg_enabled en, enum adp536x_fg_mode mode)
Set Fuel Gauge operating mode.
- Parameters:
en – [in] Enable or disable the fuel gauge.
mode – [in] Active or sleep mode.
- Return values:
0 – If the operation was successful. Otherwise, a (negative) error code is returned.
-
int adp536x_fg_soc(uint8_t *percentage)
Read battery state of charge.
- Parameters:
percentage – [out] Percentage of battery remaining
- Return values:
0 – If the operation was successful. Otherwise, a (negative) error code is returned.
-
int adp536x_fg_volts(uint16_t *millivolts)
Read battery voltage.
- Parameters:
millivolts – [out] Battery voltage in millivolts
- Return values:
0 – If the operation was successful. Otherwise, a (negative) error code is returned.
-
ADP536X_VBUS_ILIM_50mA