no-OS
Loading...
Searching...
No Matches
max20362.c File Reference
#include <stdlib.h>
#include "max20362.h"
#include "no_os_delay.h"
#include "no_os_alloc.h"
#include "no_os_gpio.h"
#include "no_os_util.h"
Include dependency graph for max20362.c:

Functions

int max20362_reg_write (struct max20362_dev *dev, uint8_t reg, uint8_t val)
 Write register.
 
int max20362_reg_read (struct max20362_dev *dev, uint8_t reg, uint8_t *val)
 Read register.
 
int max20362_reg_update_bits (struct max20362_dev *dev, uint8_t reg, uint8_t mask, uint8_t val)
 Modify register bits.
 
int max20362_init (struct max20362_dev **device, const struct max20362_init_param *init_param)
 Initialize MAX20362 device.
 
int max20362_remove (struct max20362_dev *dev)
 Free resources and remove device.
 
int max20362_enable_buck_boost (struct max20362_dev *dev, bool enable)
 Enable/disable buck-boost converter.
 
int max20362_set_buck_boost_voltage (struct max20362_dev *dev, uint32_t microvolts)
 Set buck-boost output voltage.
 
int max20362_config_buck_boost_mode (struct max20362_dev *dev, bool half_bw, bool low_emi, bool fast_fpwm)
 Configure buck-boost operating parameters.
 
int max20362_config_buck_boost_discharge (struct max20362_dev *dev, bool active_discharge, bool passive_discharge)
 Configure buck-boost discharge modes.
 
int max20362_enable_ldo (struct max20362_dev *dev, bool enable)
 Enable/disable LDO regulator.
 
int max20362_set_ldo_voltage (struct max20362_dev *dev, uint32_t microvolts)
 Set LDO output voltage.
 
int max20362_config_ldo_mode (struct max20362_dev *dev, bool low_iq_mode, bool passive_discharge, bool active_discharge)
 Configure LDO operating modes.
 
int max20362_set_ldo_input_source (struct max20362_dev *dev, enum max20362_ldo_source source)
 Set LDO input source.
 
int max20362_set_dvs_mode (struct max20362_dev *dev, enum max20362_dvs_source source)
 Set DVS operating mode.
 
int max20362_set_dvs_rr_table (struct max20362_dev *dev, const uint32_t *voltages_uv, uint8_t count)
 Configure DVS round-robin voltage table.
 
int max20362_set_rr_wrap (struct max20362_dev *dev, bool enable)
 Set round-robin wrap mode.
 
int max20362_set_rr_clk_polarity (struct max20362_dev *dev, bool rising_edge)
 Set round-robin clock polarity.
 
int max20362_set_rr_timeout_reset (struct max20362_dev *dev, bool enable)
 Set round-robin timeout reset behavior.
 
int max20362_set_cap_voltage (struct max20362_dev *dev, uint32_t microvolts, uint8_t step_size)
 Set energy storage capacitor voltage.
 
int max20362_set_input_current_limit (struct max20362_dev *dev, uint8_t ma)
 Set input current limit.
 
int max20362_set_bbat_vdrop (struct max20362_dev *dev, enum max20362_bbat_vdrop vdrop)
 Set battery voltage droop.
 
int max20362_get_status (struct max20362_dev *dev, uint8_t *status)
 Read fault status flags.
 
int max20362_get_int_status (struct max20362_dev *dev, uint8_t *status)
 Read main interrupt status.
 
int max20362_get_ldo_int_status (struct max20362_dev *dev, uint8_t *status)
 Read LDO interrupt status.
 
int max20362_get_ingen_int_status (struct max20362_dev *dev, uint8_t *status)
 Read Ingenuity interrupt status.
 
int max20362_set_int_mask (struct max20362_dev *dev, uint8_t mask)
 Set main interrupt mask.
 
int max20362_set_ldo_int_mask (struct max20362_dev *dev, uint8_t mask)
 Set LDO interrupt mask.
 
int max20362_set_ingen_int_mask (struct max20362_dev *dev, uint8_t mask)
 Set Ingenuity interrupt mask.
 
int max20362_clear_all_interrupts (struct max20362_dev *dev)
 Clear all interrupt flags.
 
int max20362_unlock_registers (struct max20362_dev *dev)
 Unlock write protection for protected registers.
 
int max20362_lock_registers (struct max20362_dev *dev)
 Lock write protection for protected registers.
 

Function Documentation

◆ max20362_clear_all_interrupts()

int max20362_clear_all_interrupts ( struct max20362_dev * dev)

Clear all interrupt flags.

Parameters
dev- Device structure
Returns
0 on success, negative error code otherwise

◆ max20362_config_buck_boost_discharge()

int max20362_config_buck_boost_discharge ( struct max20362_dev * dev,
bool active_discharge,
bool passive_discharge )

Configure buck-boost discharge modes.

Parameters
dev- Device structure
active_discharge- Active discharge enable
passive_discharge- Passive discharge enable
Returns
0 on success, negative error code otherwise

◆ max20362_config_buck_boost_mode()

int max20362_config_buck_boost_mode ( struct max20362_dev * dev,
bool half_bw,
bool low_emi,
bool fast_fpwm )

Configure buck-boost operating parameters.

Parameters
dev- Device structure
half_bw- Half bandwidth mode enable
low_emi- Low EMI mode enable
fast_fpwm- Fast FPWM mode enable
Returns
0 on success, negative error code otherwise

◆ max20362_config_ldo_mode()

int max20362_config_ldo_mode ( struct max20362_dev * dev,
bool low_iq_mode,
bool passive_discharge,
bool active_discharge )

Configure LDO operating modes.

Parameters
dev- Device structure
low_iq_mode- Low quiescent current mode
passive_discharge- Passive discharge enable
active_discharge- Active discharge enable
Returns
0 on success, negative error code otherwise

◆ max20362_enable_buck_boost()

int max20362_enable_buck_boost ( struct max20362_dev * dev,
bool enable )

Enable/disable buck-boost converter.

Parameters
dev- Device structure
enable- Enable flag
Returns
0 on success, negative error code otherwise

◆ max20362_enable_ldo()

int max20362_enable_ldo ( struct max20362_dev * dev,
bool enable )

Enable/disable LDO regulator.

Parameters
dev- Device structure
enable- Enable flag
Returns
0 on success, negative error code otherwise

◆ max20362_get_ingen_int_status()

int max20362_get_ingen_int_status ( struct max20362_dev * dev,
uint8_t * status )

Read Ingenuity interrupt status.

Parameters
dev- Device structure
status- Status byte pointer
Returns
0 on success, negative error code otherwise

◆ max20362_get_int_status()

int max20362_get_int_status ( struct max20362_dev * dev,
uint8_t * status )

Read main interrupt status.

Parameters
dev- Device structure
status- Status byte pointer
Returns
0 on success, negative error code otherwise

◆ max20362_get_ldo_int_status()

int max20362_get_ldo_int_status ( struct max20362_dev * dev,
uint8_t * status )

Read LDO interrupt status.

Parameters
dev- Device structure
status- Status byte pointer
Returns
0 on success, negative error code otherwise

◆ max20362_get_status()

int max20362_get_status ( struct max20362_dev * dev,
uint8_t * status )

Read fault status flags.

Parameters
dev- Device structure
status- Pointer to store status register value
Returns
0 on success, negative error code otherwise

◆ max20362_init()

int max20362_init ( struct max20362_dev ** device,
const struct max20362_init_param * init_param )

Initialize MAX20362 device.

Parameters
device- Pointer to device structure pointer
init_param- Initialization parameters
Returns
0 on success, negative error code otherwise

◆ max20362_lock_registers()

int max20362_lock_registers ( struct max20362_dev * dev)

Lock write protection for protected registers.

Parameters
dev- Device structure
Returns
0 on success, negative error code otherwise

◆ max20362_reg_read()

int max20362_reg_read ( struct max20362_dev * dev,
uint8_t reg,
uint8_t * val )

Read register.

Parameters
dev- Device structure
reg- Register address
val- Pointer to store read value
Returns
0 on success, negative error code otherwise

◆ max20362_reg_update_bits()

int max20362_reg_update_bits ( struct max20362_dev * dev,
uint8_t reg,
uint8_t mask,
uint8_t val )

Modify register bits.

Parameters
dev- Device structure
reg- Register address
mask- Bit mask
val- New value for masked bits
Returns
0 on success, negative error code otherwise

◆ max20362_reg_write()

int max20362_reg_write ( struct max20362_dev * dev,
uint8_t reg,
uint8_t val )

Write register.

Parameters
dev- Device structure
reg- Register address
val- Value to write
Returns
0 on success, negative error code otherwise

◆ max20362_remove()

int max20362_remove ( struct max20362_dev * dev)

Free resources and remove device.

Parameters
dev- Device structure pointer
Returns
0 on success, negative error code otherwise

◆ max20362_set_bbat_vdrop()

int max20362_set_bbat_vdrop ( struct max20362_dev * dev,
enum max20362_bbat_vdrop vdrop )

Set battery voltage droop.

Parameters
dev- Device structure
vdrop- Voltage droop enum value
Returns
0 on success, negative error code otherwise

◆ max20362_set_buck_boost_voltage()

int max20362_set_buck_boost_voltage ( struct max20362_dev * dev,
uint32_t microvolts )

Set buck-boost output voltage.

Parameters
dev- Device structure
microvolts- Voltage in microvolts (1.5V-5.5V, 50mV steps)
Returns
0 on success, negative error code otherwise

◆ max20362_set_cap_voltage()

int max20362_set_cap_voltage ( struct max20362_dev * dev,
uint32_t microvolts,
uint8_t step_size )

Set energy storage capacitor voltage.

Parameters
dev- Device structure
microvolts- Voltage in microvolts (1.6V-9.5V)
step_size- Step size (0=500mV, 1=250mV, 2=125mV)
Returns
0 on success, negative error code otherwise

◆ max20362_set_dvs_mode()

int max20362_set_dvs_mode ( struct max20362_dev * dev,
enum max20362_dvs_source source )

Set DVS operating mode.

Parameters
dev- Device structure
source- DVS source enum
Returns
0 on success, negative error code otherwise

◆ max20362_set_dvs_rr_table()

int max20362_set_dvs_rr_table ( struct max20362_dev * dev,
const uint32_t * voltages_uv,
uint8_t count )

Configure DVS round-robin voltage table.

Parameters
dev- Device structure
voltages_uv- Array of voltages in microvolts
count- Number of voltages (1-20)
Returns
0 on success, negative error code otherwise

◆ max20362_set_ingen_int_mask()

int max20362_set_ingen_int_mask ( struct max20362_dev * dev,
uint8_t mask )

Set Ingenuity interrupt mask.

Parameters
dev- Device structure
mask- Interrupt mask (1=mask/disable, 0=unmask/enable)
Returns
0 on success, negative error code otherwise

◆ max20362_set_input_current_limit()

int max20362_set_input_current_limit ( struct max20362_dev * dev,
uint8_t ma )

Set input current limit.

Parameters
dev- Device structure
ma- Current limit in milliamps (5-50mA)
Returns
0 on success, negative error code otherwise

◆ max20362_set_int_mask()

int max20362_set_int_mask ( struct max20362_dev * dev,
uint8_t mask )

Set main interrupt mask.

Parameters
dev- Device structure
mask- Interrupt mask (1=mask/disable, 0=unmask/enable)
Returns
0 on success, negative error code otherwise

◆ max20362_set_ldo_input_source()

int max20362_set_ldo_input_source ( struct max20362_dev * dev,
enum max20362_ldo_source source )

Set LDO input source.

Parameters
dev- Device structure
source- LDO input source enum
Returns
0 on success, negative error code otherwise

◆ max20362_set_ldo_int_mask()

int max20362_set_ldo_int_mask ( struct max20362_dev * dev,
uint8_t mask )

Set LDO interrupt mask.

Parameters
dev- Device structure
mask- Interrupt mask (1=mask/disable, 0=unmask/enable)
Returns
0 on success, negative error code otherwise

◆ max20362_set_ldo_voltage()

int max20362_set_ldo_voltage ( struct max20362_dev * dev,
uint32_t microvolts )

Set LDO output voltage.

Parameters
dev- Device structure
microvolts- Voltage in microvolts (0.9V-4.0V, 100mV steps)
Returns
0 on success, negative error code otherwise

◆ max20362_set_rr_clk_polarity()

int max20362_set_rr_clk_polarity ( struct max20362_dev * dev,
bool rising_edge )

Set round-robin clock polarity.

Parameters
dev- Device structure
rising_edge- true: rising edge active, false: falling edge active
Returns
0 on success, negative error code otherwise

◆ max20362_set_rr_timeout_reset()

int max20362_set_rr_timeout_reset ( struct max20362_dev * dev,
bool enable )

Set round-robin timeout reset behavior.

Parameters
dev- Device structure
enable- true: timeout resets RR pointer, false: timeout does not reset
Returns
0 on success, negative error code otherwise

◆ max20362_set_rr_wrap()

int max20362_set_rr_wrap ( struct max20362_dev * dev,
bool enable )

Set round-robin wrap mode.

Parameters
dev- Device structure
enable- true: wrap back to first entry, false: stay on last entry
Returns
0 on success, negative error code otherwise

◆ max20362_unlock_registers()

int max20362_unlock_registers ( struct max20362_dev * dev)

Unlock write protection for protected registers.

Parameters
dev- Device structure
Returns
0 on success, negative error code otherwise