no-OS
|
#include <stdint.h>
#include <stdbool.h>
#include <stdlib.h>
#include <errno.h>
#include "no_os_units.h"
#include "no_os_util.h"
#include "no_os_delay.h"
#include "no_os_alloc.h"
#include "no_os_pwm.h"
#include "no_os_i2c.h"
#include "no_os_gpio.h"
#include "no_os_crc8.h"
#include "lt7170.h"
Functions | |
NO_OS_DECLARE_CRC8_TABLE (lt7170_crc_table) | |
int | lt7170_init (struct lt7170_dev **device, struct lt7170_init_param *init_param) |
Initialize the device structure. More... | |
int | lt7170_remove (struct lt7170_dev *dev) |
Free or remove device instance. More... | |
int | lt7170_send_byte (struct lt7170_dev *dev, uint8_t cmd) |
Send a PMBus command to the device. More... | |
int | lt7170_read_byte (struct lt7170_dev *dev, uint8_t cmd, uint8_t *data) |
Perform a raw PMBus read byte operation. More... | |
int | lt7170_write_byte (struct lt7170_dev *dev, uint8_t cmd, uint8_t value) |
Perform a raw PMBus write byte operation. More... | |
int | lt7170_read_word (struct lt7170_dev *dev, uint8_t cmd, uint16_t *word) |
Perform a raw PMBus read word operation. More... | |
int | lt7170_write_word (struct lt7170_dev *dev, uint8_t cmd, uint16_t word) |
Perform a raw PMBus write word operation. More... | |
int | lt7170_read_word_data (struct lt7170_dev *dev, uint8_t cmd, int *data) |
Perform a PMBus read word operation and converts to actual value. More... | |
int | lt7170_write_word_data (struct lt7170_dev *dev, uint8_t cmd, int data) |
Converts value to register data and do PMBus write word operation. More... | |
int | lt7170_read_block_data (struct lt7170_dev *dev, uint8_t cmd, uint8_t *data, size_t nbytes) |
Perform a PMBus read block operation. More... | |
int | lt7170_read_value (struct lt7170_dev *dev, enum lt7170_value_type value_type, int *value) |
Read a value. More... | |
int | lt7170_read_status (struct lt7170_dev *dev, enum lt7170_status_type status_type, struct lt7170_status *status) |
Read statuses. More... | |
int | lt7170_vout_value (struct lt7170_dev *dev, int vout_command, int vout_max) |
Set output voltage and its upper limit. More... | |
int | lt7170_vout_tr (struct lt7170_dev *dev, int tr) |
Set output voltage transition rate. More... | |
int | lt7170_vout_margin (struct lt7170_dev *dev, int margin_high, int margin_low) |
Set output voltage margin. More... | |
int | lt7170_set_vin (struct lt7170_dev *dev, int vin_on, int vin_off) |
Set input voltage window at which power conversion will proceed. More... | |
int | lt7170_set_timing (struct lt7170_dev *dev, enum lt7170_timing_type timing_type, int time) |
Set timing values. More... | |
int | lt7170_switch_freq (struct lt7170_dev *dev, int freq) |
Set switching frequency. More... | |
int | lt7170_pwm_mode (struct lt7170_dev *dev, enum lt7170_pwm_mode pwm_mode) |
Set output PWM mode. More... | |
int | lt7170_pwm_phase (struct lt7170_dev *dev, int phase) |
Set output PWM phase. More... | |
int | lt7170_set_limit (struct lt7170_dev *dev, enum lt7170_limit_type limit, int limit_val) |
Set overvalue and undervalue limits. More... | |
int | lt7170_set_operation (struct lt7170_dev *dev, enum lt7170_operation_type operation) |
Set channel operation. More... | |
int | lt7170_set_channel_state (struct lt7170_dev *dev, bool state) |
Set channel state using the RUN pin. More... | |
int | lt7170_sync_config (struct lt7170_dev *dev, bool input_clk, bool output_clk) |
Configure SYNC pin for clock synchronization. More... | |
int | lt7170_adc_control (struct lt7170_dev *dev, bool low_freq_telemetry, bool debug_telemetry) |
Configure ADC control. More... | |
int | lt7170_nvm_cmd (struct lt7170_dev *dev, enum lt7170_nvm_cmd_type cmd) |
Perform commands for non-volatile memory (NVM) More... | |
int | lt7170_clear_faults (struct lt7170_dev *dev) |
Clear all asserted faults. More... | |
int | lt7170_software_reset (struct lt7170_dev *dev) |
Perform a device software reset. More... | |
int lt7170_adc_control | ( | struct lt7170_dev * | dev, |
bool | low_freq_telemetry, | ||
bool | debug_telemetry | ||
) |
Configure ADC control.
dev | - Device structure |
low_freq_telemetry | - Enable for low frequency telemetry (every 100ms) |
debug_telemetry | - Enable for debug telemetry with EXTVcc and Ith |
int lt7170_clear_faults | ( | struct lt7170_dev * | dev | ) |
Clear all asserted faults.
dev | - Device structure |
int lt7170_init | ( | struct lt7170_dev ** | device, |
struct lt7170_init_param * | init_param | ||
) |
Initialize the device structure.
device | - Device structure |
init_param | - Initialization parameters |
int lt7170_nvm_cmd | ( | struct lt7170_dev * | dev, |
enum lt7170_nvm_cmd_type | cmd | ||
) |
Perform commands for non-volatile memory (NVM)
dev | - Device structure |
cmd | - NVM commands. Example: LT7170_LOCK_USER LT7170_UNLOCK_USER LT7170_STORE_USER LT7170_COMPARE_USER LT7170_RESTORE_USER |
int lt7170_pwm_mode | ( | struct lt7170_dev * | dev, |
enum lt7170_pwm_mode | pwm_mode | ||
) |
Set output PWM mode.
dev | - Device structure |
pwm_mode | - PWM mode of the output channel. Example: LT7170_PWM_FORCED_CONTINUOUS_MODE LT7170_PWM_PULSE_SKIP_MODE |
int lt7170_pwm_phase | ( | struct lt7170_dev * | dev, |
int | phase | ||
) |
Set output PWM phase.
dev | - Device structure |
phase | - Phase in milli-degrees |
int lt7170_read_block_data | ( | struct lt7170_dev * | dev, |
uint8_t | cmd, | ||
uint8_t * | data, | ||
size_t | nbytes | ||
) |
Perform a PMBus read block operation.
dev | - Device structure |
cmd | - PMBus command |
data | - Address of the read block |
nbytes | - Size of the block in bytes |
int lt7170_read_byte | ( | struct lt7170_dev * | dev, |
uint8_t | cmd, | ||
uint8_t * | data | ||
) |
Perform a raw PMBus read byte operation.
dev | - Device structure |
cmd | - PMBus command |
data | - Address of the byte read |
int lt7170_read_status | ( | struct lt7170_dev * | dev, |
enum lt7170_status_type | status_type, | ||
struct lt7170_status * | status | ||
) |
Read statuses.
dev | - Device structure |
status_type | - Status type. Example values: LT7170_STATUS_BYTE_TYPE LT7170_STATUS_VOUT_TYPE LT7170_STATUS_IOUT_TYPE LT7170_STATUS_INPUT_TYPE LT7170_STATUS_CML_TYPE |
status | - Address of the status structure |
int lt7170_read_value | ( | struct lt7170_dev * | dev, |
enum lt7170_value_type | value_type, | ||
int * | value | ||
) |
Read a value.
dev | - Device structure |
value_type | - Value type. Example values: LT7170_VIN LT7170_VOUT LT7170_IOUT LT7170_TEMP LT7170_FREQUENCY |
value | - Address of the read value |
int lt7170_read_word | ( | struct lt7170_dev * | dev, |
uint8_t | cmd, | ||
uint16_t * | word | ||
) |
Perform a raw PMBus read word operation.
dev | - Device structure |
cmd | - PMBus command |
word | - Address of the read word |
int lt7170_read_word_data | ( | struct lt7170_dev * | dev, |
uint8_t | cmd, | ||
int * | data | ||
) |
Perform a PMBus read word operation and converts to actual value.
dev | - Device structure |
cmd | - PMBus command |
data | - Address of data read |
int lt7170_remove | ( | struct lt7170_dev * | dev | ) |
Free or remove device instance.
dev | - The device structure |
int lt7170_send_byte | ( | struct lt7170_dev * | dev, |
uint8_t | cmd | ||
) |
Send a PMBus command to the device.
dev | - Device structure |
cmd | - PMBus command |
int lt7170_set_channel_state | ( | struct lt7170_dev * | dev, |
bool | state | ||
) |
Set channel state using the RUN pin.
dev | - Device structure |
state | - true for ON, false for OFF |
int lt7170_set_limit | ( | struct lt7170_dev * | dev, |
enum lt7170_limit_type | limit, | ||
int | limit_val | ||
) |
Set overvalue and undervalue limits.
dev | - Device structure |
limit | - Limit value type. Example: LT7170_VOUT_OV_FAULT_LIMIT_TYPE LT7170_OT_WARN_LIMIT_TYPE LT7170_TON_MAX_FAULT_LIMIT_TYPE LT7170_VIN_UV_WARN_LIMIT_TYPE |
limit_val | - Limit value in milli-units for voltage and current, and microseconds for timing. |
int lt7170_set_operation | ( | struct lt7170_dev * | dev, |
enum lt7170_operation_type | operation | ||
) |
Set channel operation.
dev | - Device structure |
operation | - Operation. Accepted values are: LT7170_OPERATION_OFF LT7170_OPERATION_ON LT7170_OPERATION_MARGIN_HIGH LT7170_OPERATION_MARGIN_LOW LT7170_OPERATION_SEQ_OFF |
int lt7170_set_timing | ( | struct lt7170_dev * | dev, |
enum lt7170_timing_type | timing_type, | ||
int | time | ||
) |
Set timing values.
dev | - Device structure |
timing_type | - Timing value type. Example: LT7170_TON_DELAY_TYPE LT7170_TON_RISE_TYPE LT7170_TOFF_DELAY_TYPE LT7170_RETRY_DELAY_TYPE |
time | - Time value in microseconds |
int lt7170_set_vin | ( | struct lt7170_dev * | dev, |
int | vin_on, | ||
int | vin_off | ||
) |
Set input voltage window at which power conversion will proceed.
dev | - Device structure |
vin_on | - Input voltage in millivolts at which conversion will start |
vin_off | - Input voltage in millivolts at which conversion will stop |
int lt7170_software_reset | ( | struct lt7170_dev * | dev | ) |
Perform a device software reset.
dev | - Device structure |
int lt7170_switch_freq | ( | struct lt7170_dev * | dev, |
int | freq | ||
) |
Set switching frequency.
dev | - Device structure |
freq | - Frequency to set in Hz. Value should be between 400000 Hz and 4000000 Hz. |
int lt7170_sync_config | ( | struct lt7170_dev * | dev, |
bool | input_clk, | ||
bool | output_clk | ||
) |
Configure SYNC pin for clock synchronization.
dev | - Device structure |
input_clk | - Enable to use SYNC clock input |
output_clk | - Enable to use SYNC output clock |
int lt7170_vout_margin | ( | struct lt7170_dev * | dev, |
int | margin_high, | ||
int | margin_low | ||
) |
Set output voltage margin.
dev | - Device structure |
margin_high | - Upper margin in millivolts |
margin_low | - Lower margin in millivolts |
int lt7170_vout_tr | ( | struct lt7170_dev * | dev, |
int | tr | ||
) |
Set output voltage transition rate.
dev | - Device structure |
tr | - Transition rate in V/s or mV/ms |
int lt7170_vout_value | ( | struct lt7170_dev * | dev, |
int | vout_command, | ||
int | vout_max | ||
) |
Set output voltage and its upper limit.
dev | - Device structure |
vout_command | - Output voltage in millivolts |
vout_max | - Output voltage upper limit in millivolts |
int lt7170_write_byte | ( | struct lt7170_dev * | dev, |
uint8_t | cmd, | ||
uint8_t | value | ||
) |
Perform a raw PMBus write byte operation.
dev | - Device structure |
cmd | - PMBus command |
value | - Byte to be written |
int lt7170_write_word | ( | struct lt7170_dev * | dev, |
uint8_t | cmd, | ||
uint16_t | word | ||
) |
Perform a raw PMBus write word operation.
dev | - Device structure |
cmd | - PMBus command |
word | - Word to write |
int lt7170_write_word_data | ( | struct lt7170_dev * | dev, |
uint8_t | cmd, | ||
int | data | ||
) |
Converts value to register data and do PMBus write word operation.
dev | - Device structure |
cmd | - PMBus command |
data | - Value to write |
NO_OS_DECLARE_CRC8_TABLE | ( | lt7170_crc_table | ) |