Source file for the ADP5055 Driver. More...
#include <stdlib.h>
#include <string.h>
#include "adp5055.h"
#include "no_os_alloc.h"
#include "no_os_delay.h"
#include "no_os_error.h"
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() | |
Source 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.
int adp5055_enable_channel | ( | struct adp5055_desc * | desc, |
enum adp5055_channel | ch, | ||
bool | en ) |
Enables output voltage channel in software.
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.
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.
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.
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.
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.
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()
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
desc | - ADP5055 device descriptor |
address | - 8-bit ADP5055 register address |
data | - Data byte value to write to the ADP5055 |