Header file for the ADP5055 Driver. More...
#include <stdint.h>
#include <stdbool.h>
#include <stdio.h>
#include "no_os_gpio.h"
#include "no_os_i2c.h"
#include "no_os_pwm.h"
#include "no_os_util.h"
#include "no_os_units.h"
Go to the source code of this file.
Classes | |
struct | adp5055_init_param |
Initialization parameter for the ADP5055 device. More... | |
struct | adp5055_desc |
Device descriptor for ADP5055. More... | |
Functions | |
int | adp5055_read (struct adp5055_desc *desc, uint8_t address, uint8_t *data) |
Read data from ADP5055. | |
int | adp5055_write (struct adp5055_desc *desc, uint8_t address, uint8_t data) |
Write data to ADP5055. | |
int | adp5055_read_status (struct adp5055_desc *desc, uint8_t *status_val) |
Read statuses. | |
int | adp5055_set_enable_mode (struct adp5055_desc *desc, enum adp5055_en_mode mode) |
Configures enabling for all individual channels by hardware and/or software. | |
int | adp5055_set_dvs_auto (struct adp5055_desc *desc, bool en) |
Enables or disables dynamic voltage scaling across all channels. | |
int | adp5055_set_ocp_blanking (struct adp5055_desc *desc, bool en) |
Enables or disables overcurrent protection (OCP) blanking for all channels. | |
int | adp5055_set_auto_pwm_psm (struct adp5055_desc *desc, enum adp5055_channel ch, bool en) |
Enables or disables automatic PWM/PSM per channel. | |
int | adp5055_set_output_discharge (struct adp5055_desc *desc, enum adp5055_channel ch, bool en) |
Enables or disables output discharge per channel. | |
int | adp5055_set_enable_disable_delay (struct adp5055_desc *desc, enum adp5055_channel ch, enum adp5055_en_dly en_dly, enum adp5055_dis_dly dis_dly) |
Sets both enable and disable delay per channel. | |
int | adp5055_set_vid_code (struct adp5055_desc *desc, enum adp5055_channel ch, uint8_t val) |
Sets 8-bit code of output voltage reference of a channel. | |
int | adp5055_start_vout (struct adp5055_desc *desc, enum adp5055_channel ch) |
Initiates output voltage transition on specified channel when dynamic voltage scaling is enabled. | |
int | adp5055_enable_channel (struct adp5055_desc *desc, enum adp5055_channel ch, bool en) |
Enables output voltage channel in software. | |
int | adp5055_set_dvs_interval (struct adp5055_desc *desc, enum adp5055_channel ch, enum adp5055_dvs_intval intval) |
Sets dynamic voltage scaling interval for each channel. | |
int | adp5055_set_vidx_lim (struct adp5055_desc *desc, enum adp5055_channel ch, enum adp5055_vidx_limit lim_type, uint8_t lim_val) |
Sets high or low limit for output voltage reference. | |
int | adp5055_set_fast_transient (struct adp5055_desc *desc, enum adp5055_channel ch, enum adp5055_ft_th ft) |
Configures fast transient sensitivity per channel. | |
int | adp5055_set_pg_channel_output (struct adp5055_desc *desc, enum adp5055_channel ch, bool en) |
Enables power good signal to external PWRGD hardware pin. | |
int | adp5055_set_pg_hw_delay (struct adp5055_desc *desc, bool en) |
Enables a delay in the PWRGD hardware pin. | |
int | adp5055_read_pg (struct adp5055_desc *desc, enum adp5055_channel ch, uint8_t *pg_val) |
Reads real-time power good status of specified channel. | |
int | adp5055_read_latched_status (struct adp5055_desc *desc, enum adp5055_channel ch, enum adp5055_latch_status lch_status_type, uint8_t *lch_status_val) |
Reads the latched status of a specified channel. | |
int | adp5055_init (struct adp5055_desc **desc, struct adp5055_init_param *init_param) |
Initialize the ADP5055 device. | |
int | adp5055_remove (struct adp5055_desc *desc) |
Free the resources allocated by the adp5055_init() | |
Header file for the ADP5055 Driver.
Copyright 2025(c) Analog Devices, Inc.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES, INC. “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ANALOG DEVICES, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define ADP5055_CAPABILITY 0x19 |
#define ADP5055_CH1_ON NO_OS_BIT(0) |
#define ADP5055_CH2_ON NO_OS_BIT(1) |
#define ADP5055_CH3_ON NO_OS_BIT(2) |
#define ADP5055_CTRL123 0xD1 |
#define ADP5055_CTRL_MODE1 0xD3 |
#define ADP5055_CTRL_MODE2 0xD4 |
#define ADP5055_DIS_DLY_MASK NO_OS_GENMASK(6, 4) |
#define ADP5055_DLY1 0xD5 |
#define ADP5055_DLY2 0xD6 |
#define ADP5055_DLY3 0xD7 |
#define ADP5055_DSCG1_ON NO_OS_BIT(0) |
#define ADP5055_DSCG2_ON NO_OS_BIT(1) |
#define ADP5055_DSCG3_ON NO_OS_BIT(2) |
#define ADP5055_DVS_AUTO NO_OS_BIT(4) |
#define ADP5055_DVS_CFG 0xDB |
#define ADP5055_DVS_INTVAL1 NO_OS_GENMASK(1, 0) |
#define ADP5055_DVS_INTVAL2 NO_OS_GENMASK(3, 2) |
#define ADP5055_DVS_INTVAL3 NO_OS_GENMASK(5, 4) |
#define ADP5055_DVS_LIM1 0xDC |
#define ADP5055_DVS_LIM2 0xDD |
#define ADP5055_DVS_LIM3 0xDE |
#define ADP5055_EN_DLY_MASK NO_OS_GENMASK(2, 0) |
#define ADP5055_EN_MODE_MASK NO_OS_GENMASK(1, 0) |
#define ADP5055_FT1_TH NO_OS_GENMASK(1, 0) |
#define ADP5055_FT2_TH NO_OS_GENMASK(3, 2) |
#define ADP5055_FT3_TH NO_OS_GENMASK(5, 4) |
#define ADP5055_FT_CFG 0xDF |
#define ADP5055_INT_LCH NO_OS_BIT(7) |
#define ADP5055_MODEL_ID 0xD0 |
#define ADP5055_OCP1_LCH NO_OS_BIT(4) |
#define ADP5055_OCP2_LCH NO_OS_BIT(5) |
#define ADP5055_OCP3_LCH NO_OS_BIT(6) |
#define ADP5055_OCP_BLANKING NO_OS_BIT(7) |
#define ADP5055_PG1_LCH NO_OS_BIT(0) |
#define ADP5055_PG1_MASK NO_OS_BIT(0) |
#define ADP5055_PG2_LCH NO_OS_BIT(1) |
#define ADP5055_PG2_MASK NO_OS_BIT(1) |
#define ADP5055_PG3_LCH NO_OS_BIT(2) |
#define ADP5055_PG3_MASK NO_OS_BIT(2) |
#define ADP5055_PG_CFG 0xE0 |
#define ADP5055_PG_READ 0xE1 |
#define ADP5055_PMBUS_0OHM_ADDRESS 0x70 |
#define ADP5055_PMBUS_127KOHM_ADDRESS 0x71 |
#define ADP5055_PMBUS_14KOHM_ADDRESS 0x71 |
#define ADP5055_PMBUS_16KOHM_ADDRESS 0x72 |
#define ADP5055_PMBUS_200KOHM_ADDRESS 0x72 |
#define ADP5055_PMBUS_20KOHM_ADDRESS 0x73 |
#define ADP5055_PMBUS_23KOHM_ADDRESS 0x70 |
#define ADP5055_PMBUS_32KOHM_ADDRESS 0x71 |
#define ADP5055_PMBUS_39KOHM_ADDRESS 0x73 |
#define ADP5055_PMBUS_47KOHM_ADDRESS 0x71 |
#define ADP5055_PMBUS_511KOHM_ADDRESS 0x73 |
#define ADP5055_PMBUS_57KOHM_ADDRESS 0x72 |
#define ADP5055_PMBUS_71KOHM_ADDRESS 0x73 |
#define ADP5055_PMBUS_90KOHM_ADDRESS 0x70 |
#define ADP5055_PMBUS_OPEN_ADDRESS 0x70 |
#define ADP5055_PSM1_ON NO_OS_BIT(4) |
#define ADP5055_PSM2_ON NO_OS_BIT(5) |
#define ADP5055_PSM3_ON NO_OS_BIT(6) |
#define ADP5055_PWRGD1 NO_OS_BIT(0) |
#define ADP5055_PWRGD2 NO_OS_BIT(1) |
#define ADP5055_PWRGD3 NO_OS_BIT(2) |
#define ADP5055_PWRGD_DLY NO_OS_BIT(4) |
#define ADP5055_STATUS_CML 0x7E |
#define ADP5055_STATUS_LCH 0xE2 |
#define ADP5055_TSD_LCH NO_OS_BIT(3) |
#define ADP5055_VID1 0xD8 |
#define ADP5055_VID1_GO NO_OS_BIT(0) |
#define ADP5055_VID2 0xD9 |
#define ADP5055_VID2_GO NO_OS_BIT(1) |
#define ADP5055_VID3 0xDA |
#define ADP5055_VID3_GO NO_OS_BIT(2) |
#define ADP5055_VID_GO 0xD2 |
#define ADP5055_VIDX_HIGH_MASK NO_OS_GENMASK(7, 4) |
#define ADP5055_VIDX_LOW_MASK NO_OS_GENMASK(3, 0) |
enum adp5055_channel |
enum adp5055_dis_dly |
enum adp5055_dvs_intval |
enum adp5055_en_dly |
enum adp5055_en_mode |
enum adp5055_ft_th |
enum adp5055_latch_status |
enum adp5055_vidx_limit |
int adp5055_enable_channel | ( | struct adp5055_desc * | desc, |
enum adp5055_channel | ch, | ||
bool | en ) |
Enables output voltage channel in software.
Enable/disable ADP5055 output channels.
desc | - ADP5055 device descriptor |
ch | - ADP5055 output channel |
en | - Channel enable or disable |
int adp5055_init | ( | struct adp5055_desc ** | desc, |
struct adp5055_init_param * | init_param ) |
Initialize the ADP5055 device.
Initialize the ADP5055 device descriptor.
desc | - ADP5055 device descriptor |
init_param | - Initialization parameter containing information about the ADP5055 device to be initialized. |
int adp5055_read | ( | struct adp5055_desc * | desc, |
uint8_t | address, | ||
uint8_t * | data ) |
Read data from ADP5055.
Read command from ADP5055 device.
desc | - ADP5055 device descriptor |
address | - 8-bit ADP5055 register address |
data | - Buffer with received data |
int adp5055_read_latched_status | ( | struct adp5055_desc * | desc, |
enum adp5055_channel | ch, | ||
enum adp5055_latch_status | lch_status_type, | ||
uint8_t * | lch_status_val ) |
Reads the latched status of a specified channel.
Read ADP5055 latched status.
desc | - ADP5055 device descriptor |
ch | - ADP5055 output channel |
lch_status_type | - Selects which latch status to read |
lch_status_val | - Stores the latch status value of the specified channel |
int adp5055_read_pg | ( | struct adp5055_desc * | desc, |
enum adp5055_channel | ch, | ||
uint8_t * | pg_val ) |
Reads real-time power good status of specified channel.
Read ADP5055 power-good status per channel.
desc | - ADP5055 device descriptor |
ch | - ADP5055 output channel |
pg_val | - Stores the value of the real-time power good status |
int adp5055_read_status | ( | struct adp5055_desc * | desc, |
uint8_t * | status_val ) |
Read statuses.
Read ADP5055 CML status.
desc | - ADP5055 device descriptor |
status_val | - Status value to be returned. |
int adp5055_remove | ( | struct adp5055_desc * | desc | ) |
Free the resources allocated by the adp5055_init()
Remove resources allocated by the init function.
desc | - ADP5055 device descriptor |
int adp5055_set_auto_pwm_psm | ( | struct adp5055_desc * | desc, |
enum adp5055_channel | ch, | ||
bool | en ) |
Enables or disables automatic PWM/PSM per channel.
Enable/disable ADP5055 auto PWM/PSM mode per channel.
desc | - ADP5055 device descriptor |
ch | - ADP5055 output channel |
en | - If true, enables automatic PWM/PSM on specified channel |
int adp5055_set_dvs_auto | ( | struct adp5055_desc * | desc, |
bool | en ) |
Enables or disables dynamic voltage scaling across all channels.
Enable/disable ADP5055 dynamic voltage scaling (DVS) auto mode.
desc | - ADP5055 device descriptor |
en | - If true, output voltage transitions only with a write to the VIDx_GO |
int adp5055_set_dvs_interval | ( | struct adp5055_desc * | desc, |
enum adp5055_channel | ch, | ||
enum adp5055_dvs_intval | intval ) |
Sets dynamic voltage scaling interval for each channel.
Set ADP5055 DVS interval per channel.
desc | - ADP5055 device descriptor |
ch | - ADP5055 output channel |
intval | - Dynamic voltage scaling interval setting |
int adp5055_set_enable_disable_delay | ( | struct adp5055_desc * | desc, |
enum adp5055_channel | ch, | ||
enum adp5055_en_dly | en_dly, | ||
enum adp5055_dis_dly | dis_dly ) |
Sets both enable and disable delay per channel.
Set ADP5055 enable and disable delay time per channel.
desc | - ADP5055 device descriptor |
ch | - ADP5055 output channel |
en_dly | - Enable delay on the specified channel |
dis_dly | - Disable delay on the specified channel |
int adp5055_set_enable_mode | ( | struct adp5055_desc * | desc, |
enum adp5055_en_mode | mode ) |
Configures enabling for all individual channels by hardware and/or software.
Set ADP5055 HW/SW enable mode.
desc | - ADP5055 device descriptor |
mode | - Enable mode |
int adp5055_set_fast_transient | ( | struct adp5055_desc * | desc, |
enum adp5055_channel | ch, | ||
enum adp5055_ft_th | ft ) |
Configures fast transient sensitivity per channel.
Set ADP5055 fast transient.
desc | - ADP5055 device descriptor |
ch | - ADP5055 output channel |
ft | - Fast transient setting |
int adp5055_set_ocp_blanking | ( | struct adp5055_desc * | desc, |
bool | en ) |
Enables or disables overcurrent protection (OCP) blanking for all channels.
Enable/disable ADP5055 overcurrent protection blanking during DVS transition.
desc | - ADP5055 device descriptor |
en | - If true, enables OCP blanking |
int adp5055_set_output_discharge | ( | struct adp5055_desc * | desc, |
enum adp5055_channel | ch, | ||
bool | en ) |
Enables or disables output discharge per channel.
Enable/disable ADP5055 output discharge path per channel.
desc | - ADP5055 device descriptor |
ch | - ADP5055 output channel |
en | - If true, enables output discharge on the specified channel |
int adp5055_set_pg_channel_output | ( | struct adp5055_desc * | desc, |
enum adp5055_channel | ch, | ||
bool | en ) |
Enables power good signal to external PWRGD hardware pin.
Enable/disable ADP5055 power-good signal outputs per channel.
desc | - ADP5055 device descriptor |
ch | - ADP5055 output channel |
en | - If true, power good signal of specified channel is outputted at external PWRGD hardware pin |
int adp5055_set_pg_hw_delay | ( | struct adp5055_desc * | desc, |
bool | en ) |
Enables a delay in the PWRGD hardware pin.
Enable/disable hardware power-good signal delay.
desc | - ADP5055 device descriptor |
en | - If false, PWRGD pin responds immediately |
int adp5055_set_vid_code | ( | struct adp5055_desc * | desc, |
enum adp5055_channel | ch, | ||
uint8_t | val ) |
Sets 8-bit code of output voltage reference of a channel.
Set ADP5055 VID code per channel.
desc | - ADP5055 device descriptor |
ch | - ADP5055 output channel |
val | - 8-bit code of output voltage reference (Vref = 408mV + (1.5mV * val)) |
int adp5055_set_vidx_lim | ( | struct adp5055_desc * | desc, |
enum adp5055_channel | ch, | ||
enum adp5055_vidx_limit | lim_type, | ||
uint8_t | lim_val ) |
Sets high or low limit for output voltage reference.
Set ADP5055 VID code high/low limits per channel.
desc | - ADP5055 device descriptor |
ch | - ADP5055 output channel |
lim_type | - Selects whether high or low limit is set |
lim_val | - 4-bit code of high / low output voltage reference limit |
int adp5055_start_vout | ( | struct adp5055_desc * | desc, |
enum adp5055_channel | ch ) |
Initiates output voltage transition on specified channel when dynamic voltage scaling is enabled.
Start ADP5055 Vout transition per channel.
desc | - ADP5055 device descriptor |
ch | - ADP5055 output channel |
int adp5055_write | ( | struct adp5055_desc * | desc, |
uint8_t | address, | ||
uint8_t | data ) |
Write data to ADP5055.
Write command to ADP5055 device.
desc | - ADP5055 device descriptor |
address | - 8-bit ADP5055 register address |
data | - Data byte value to write to the ADP5055 |