![]() |
no-OS
|
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"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.
SPDX-License-Identifier: BSD-3-Clause
| #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 |