no-OS
Classes | Macros | Enumerations | Functions
lt7170.h File Reference
#include <stdint.h>
#include <string.h>
#include "no_os_util.h"
#include "no_os_i2c.h"
Include dependency graph for lt7170.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  lt7170_dev
 
struct  lt7170_init_param
 
struct  lt7170_chip_info
 
struct  lt7170_status
 

Macros

#define LT7170_PAGE   0x00
 
#define LT7170_OPERATION   0x01
 
#define LT7170_ON_OFF_CONFIG   0x02
 
#define LT7170_CLEAR_FAULTS   0x03
 
#define LT7170_PAGE_PLUS_WRITE   0x05
 
#define LT7170_PAGE_PLUS_READ   0x06
 
#define LT7170_ZONE_CONFIG   0x07
 
#define LT7170_ZONE_ACTIVE   0x08
 
#define LT7170_WRITE_PROTECT   0x10
 
#define LT7170_STORE_USER_ALL   0x15
 
#define LT7170_RESTORE_USER_ALL   0x16
 
#define LT7170_CAPABILITY   0x19
 
#define LT7170_QUERY   0x1A
 
#define LT7170_SMBALERT_MASK   0x1B
 
#define LT7170_VOUT_MODE   0x20
 
#define LT7170_VOUT_COMMAND   0x21
 
#define LT7170_VOUT_MAX   0x24
 
#define LT7170_VOUT_MARGIN_HIGH   0x25
 
#define LT7170_VOUT_MARGIN_LOW   0x26
 
#define LT7170_VOUT_TRANSITION_RATE   0x27
 
#define LT7170_FREQUENCY_SWITCH   0x33
 
#define LT7170_VIN_ON   0x35
 
#define LT7170_VIN_OFF   0x36
 
#define LT7170_IOUT_CAL_OFFSET   0x39
 
#define LT7170_VOUT_OV_FAULT_LIMIT   0x40
 
#define LT7170_VOUT_OV_FAULT_RESPONSE   0x41
 
#define LT7170_VOUT_OV_WARN_LIMIT   0x42
 
#define LT7170_VOUT_UV_WARN_LIMIT   0x43
 
#define LT7170_VOUT_UV_FAULT_LIMIT   0x44
 
#define LT7170_VOUT_UV_FAULT_RESPONSE   0x45
 
#define LT7170_IOUT_OC_FAULT_RESPONSE   0x47
 
#define LT7170_IOUT_OC_WARN_LIMIT   0x4A
 
#define LT7170_OT_FAULT_LIMIT   0x4F
 
#define LT7170_OT_FAULT_RESPONSE   0x50
 
#define LT7170_OT_WARN_LIMIT   0x51
 
#define LT7170_VIN_OV_FAULT_RESPONSE   0x56
 
#define LT7170_VIN_UV_WARN_LIMIT   0x58
 
#define LT7170_TON_DELAY   0x60
 
#define LT7170_TON_RISE   0x61
 
#define LT7170_TON_MAX_FAULT_LIMIT   0x62
 
#define LT7170_TON_MAX_FAULT_RESPONSE   0x63
 
#define LT7170_TOFF_DELAY   0x64
 
#define LT7170_TOFF_FALL   0x65
 
#define LT7170_TOFF_MAX_WARN_LIMIT   0x66
 
#define LT7170_STATUS_BYTE   0x78
 
#define LT7170_STATUS_WORD   0x79
 
#define LT7170_STATUS_VOUT   0x7A
 
#define LT7170_STATUS_IOUT   0x7B
 
#define LT7170_STATUS_INPUT   0x7C
 
#define LT7170_STATUS_TEMPERATURE   0x7D
 
#define LT7170_STATUS_CML   0x7E
 
#define LT7170_STATUS_MFR_SPECIFIC   0x80
 
#define LT7170_READ_VIN   0x88
 
#define LT7170_READ_VOUT   0x8B
 
#define LT7170_READ_IOUT   0x8C
 
#define LT7170_READ_TEMPERATURE_1   0x8D
 
#define LT7170_READ_FREQUENCY   0x95
 
#define LT7170_REVISION   0x98
 
#define LT7170_MFR_ID   0x99
 
#define LT7170_MFR_SERIAL   0x9E
 
#define LT7170_IC_DEVICE_ID   0xAD
 
#define LT7170_IC_DEVICE_REV   0xAE
 
#define LT7170_MFR_NVM_UNLOCK   0xBD
 
#define LT7170_MFR_NVM_USER_WRITES_REMAINING   0xBE
 
#define LT7170_MFR_NVM_DATA   0xBF
 
#define LT7170_MFR_USER_DATA_00   0xC9
 
#define LT7170_MFR_USER_DATA_01   0xCA
 
#define LT7170_MFR_READ_EXTVCC   0xCD
 
#define LT7170_MFR_READ_ITH   0xCE
 
#define LT7170_MFR_CHAN_CONFIG   0xD0
 
#define LT7170_MFR_CONFIG_ALL   0xD1
 
#define LT7170_MFR_FAULT_PROPAGATE   0xD2
 
#define LT7170_MFR_READ_ASEL   0xD3
 
#define LT7170_MFR_PWM_MODE   0xD4
 
#define LT7170_MFR_FAULT_RESPONSE   0xD5
 
#define LT7170_MFR_IOUT_PEAK   0xD7
 
#define LT7170_MFR_ADC_CONTROL   0xD8
 
#define LT7170_MFR_RETRY_DELAY   0xDB
 
#define LT7170_MFR_VOUT_PEAK   0xDD
 
#define LT7170_MFR_VIN_PEAK   0xDE
 
#define LT7170_MFR_TEMPERATURE_1_PEAK   0xDF
 
#define LT7170_MFR_READ_PWM_CFG   0xE0
 
#define LT7170_MFR_READ_VOUT_CFG   0xE1
 
#define LT7170_MFR_CLEAR_PEAKS   0xE3
 
#define LT7170_MFR_DISCHARGE_THRESHOLD   0xE4
 
#define LT7170_MFR_PADS   0xE5
 
#define LT7170_MFR_I2C_ADDRESS   0xE6
 
#define LT7170_MFR_SPECIAL_ID   0xE7
 
#define LT7170_MFR_COMMON   0xEF
 
#define LT7170_MFR_COMPARE_USER_ALL   0xF0
 
#define LT7170_MFR_CHANNEL_STATE   0xF1
 
#define LT7170_MFR_PGOOD_DELAY   0xF2
 
#define LT7170_MFR_NOT_PGOOD_DELAY   0xF3
 
#define LT7170_MFR_PWM_PHASE   0xF5
 
#define LT7170_MFR_SYNC_CONFIG   0xF6
 
#define LT7170_MFR_PIN_CONFIG_STATUS   0xF7
 
#define LT7170_MFR_RAIL_ADDRESS   0xFA
 
#define LT7170_MFR_DISABLE_OUTPUT   0xFB
 
#define LT7170_MFR_NVM_USER_WP   0xFC
 
#define LT7170_MFR_RESET   0xFD
 
#define LT7170_CRC_POLYNOMIAL   0x7
 
#define LT7170_VOUT_MODE_VAL_MSK   NO_OS_GENMASK(4,0)
 
#define LT7170_IEEE754_SIGN_BIT   NO_OS_BIT(15)
 
#define LT7170_IEEE754_EXPONENT_MSK   NO_OS_GENMASK(14, 10)
 
#define LT7170_IEEE754_MANTISSA_MSK   NO_OS_GENMASK(9, 0)
 
#define LT7170_IEEE754_MAX_MANTISSA   0x7ff
 
#define LT7170_IEEE754_MIN_MANTISSA   0x400
 
#define LT7170_FREQ_MIN   400000
 
#define LT7170_FREQ_MAX   4000000
 
#define LT7170_VIN_ON_MIN   1400
 
#define LT7170_VIN_ON_MAX   16000
 
#define LT7170_VIN_OFF_MIN   1350
 
#define LT7170_VIN_OFF_MAX   16000
 
#define LT7170_PHASE_FULL_MILLI   360000
 
#define LT7170_STATUS_BYTE_TYPE_MSK   0x01
 
#define LT7170_STATUS_VOUT_TYPE_MSK   0x02
 
#define LT7170_STATUS_IOUT_TYPE_MSK   0x04
 
#define LT7170_STATUS_INPUT_TYPE_MSK   0x08
 
#define LT7170_STATUS_TEMP_TYPE_MSK   0x10
 
#define LT7170_STATUS_CML_TYPE_MSK   0x20
 
#define LT7170_STATUS_MFR_SPECIFIC_TYPE_MSK   0x40
 
#define LT7170_STATUS_WORD_TYPE_MSK   0x80
 
#define LT7170_STATUS_ALL_TYPE_MSK   0xFF
 
#define LT7170_PWM_OP_MODE_BIT   NO_OS_BIT(0)
 
#define LT7170_SYNC_CLK_INPUT_BIT   NO_OS_BIT(1)
 
#define LT7170_SYNC_CLK_OUTPUT_BIT   NO_OS_BIT(0)
 
#define LT7170_ADC_CTRL_LOW_FREQ_BIT   NO_OS_BIT(1)
 
#define LT7170_ADC_CTRL_DEBUG_BIT   NO_OS_BIT(0)
 
#define LT7170_CONFIG_ALL_PEC_BIT   NO_OS_BIT(2)
 
#define LT7170_PADS_RUN_BIT   NO_OS_BIT(2)
 
#define LT7170_SPECIAL_ID_VALUE   0x1C1D
 

Enumerations

enum  lt7170_chip_id {
  ID_LT7170,
  ID_LT7170_1,
  ID_LT7171,
  ID_LT7171_1
}
 
enum  lt7170_fault_pin_config {
  LT7170_FAULT_PIN_INPUT,
  LT7170_FAULT_PIN_OUTPUT
}
 
enum  lt7170_operation_type {
  LT7170_OPERATION_OFF = 0x00,
  LT7170_OPERATION_ON = 0x80,
  LT7170_OPERATION_MARGIN_HIGH = 0x98,
  LT7170_OPERATION_MARGIN_LOW = 0xA8,
  LT7170_OPERATION_SEQ_OFF = 0x40
}
 
enum  lt7170_value_type {
  LT7170_VIN = LT7170_READ_VIN,
  LT7170_VOUT = LT7170_READ_VOUT,
  LT7170_IOUT = LT7170_READ_IOUT,
  LT7170_TEMP = LT7170_READ_TEMPERATURE_1,
  LT7170_FREQUENCY = LT7170_READ_FREQUENCY,
  LT7170_ITH = LT7170_MFR_READ_ITH,
  LT7170_EXTVCC = LT7170_MFR_READ_EXTVCC,
  LT7170_IOUT_PEAK = LT7170_MFR_IOUT_PEAK,
  LT7170_VOUT_PEAK = LT7170_MFR_VOUT_PEAK,
  LT7170_VIN_PEAK = LT7170_MFR_VIN_PEAK,
  LT7170_TEMP_PEAK = LT7170_MFR_TEMPERATURE_1_PEAK
}
 
enum  lt7170_limit_type {
  LT7170_VOUT_OV_FAULT_LIMIT_TYPE = LT7170_VOUT_OV_FAULT_LIMIT,
  LT7170_VOUT_OV_WARN_LIMIT_TYPE = LT7170_VOUT_OV_WARN_LIMIT,
  LT7170_VOUT_UV_FAULT_LIMIT_TYPE = LT7170_VOUT_UV_FAULT_LIMIT,
  LT7170_VOUT_UV_WARN_LIMIT_TYPE = LT7170_VOUT_UV_WARN_LIMIT,
  LT7170_IOUT_OC_WARN_LIMIT_TYPE = LT7170_IOUT_OC_WARN_LIMIT,
  LT7170_OT_FAULT_LIMIT_TYPE = LT7170_OT_FAULT_LIMIT,
  LT7170_OT_WARN_LIMIT_TYPE = LT7170_OT_WARN_LIMIT,
  LT7170_VIN_UV_WARN_LIMIT_TYPE = LT7170_VIN_UV_WARN_LIMIT,
  LT7170_TON_MAX_FAULT_LIMIT_TYPE = LT7170_TON_MAX_FAULT_LIMIT,
  LT7170_TOFF_MAX_WARN_LIMIT_TYPE = LT7170_TOFF_MAX_WARN_LIMIT
}
 
enum  lt7170_status_type {
  LT7170_STATUS_BYTE_TYPE = LT7170_STATUS_BYTE_TYPE_MSK,
  LT7170_STATUS_VOUT_TYPE = LT7170_STATUS_VOUT_TYPE_MSK,
  LT7170_STATUS_IOUT_TYPE = LT7170_STATUS_IOUT_TYPE_MSK,
  LT7170_STATUS_INPUT_TYPE = LT7170_STATUS_INPUT_TYPE_MSK,
  LT7170_STATUS_TEMP_TYPE = LT7170_STATUS_TEMP_TYPE_MSK,
  LT7170_STATUS_CML_TYPE = LT7170_STATUS_CML_TYPE_MSK,
  LT7170_STATUS_MFR_SPECIFIC_TYPE = LT7170_STATUS_MFR_SPECIFIC_TYPE_MSK,
  LT7170_STATUS_WORD_TYPE = LT7170_STATUS_WORD_TYPE_MSK,
  LT7170_STATUS_ALL_TYPE = LT7170_STATUS_ALL_TYPE_MSK
}
 
enum  lt7170_timing_type {
  LT7170_TON_DELAY_TYPE = LT7170_TON_DELAY,
  LT7170_TON_RISE_TYPE = LT7170_TON_RISE,
  LT7170_TOFF_DELAY_TYPE = LT7170_TOFF_DELAY,
  LT7170_TOFF_FALL_TYPE = LT7170_TOFF_FALL,
  LT7170_RETRY_DELAY = LT7170_MFR_RETRY_DELAY
}
 
enum  lt7170_nvm_cmd_type {
  LT7170_LOCK_USER,
  LT7170_UNLOCK_USER,
  LT7170_STORE_USER = LT7170_STORE_USER_ALL,
  LT7170_RESTORE_USER = LT7170_RESTORE_USER_ALL,
  LT7170_COMPARE_USER = LT7170_MFR_COMPARE_USER_ALL
}
 
enum  lt7170_pwm_mode {
  LT7170_PWM_FORCED_CONTINUOUS_MODE,
  LT7170_PWM_PULSE_SKIP_MODE
}
 

Functions

int lt7170_init (struct lt7170_dev **dev, 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...
 

Macro Definition Documentation

◆ LT7170_ADC_CTRL_DEBUG_BIT

#define LT7170_ADC_CTRL_DEBUG_BIT   NO_OS_BIT(0)

◆ LT7170_ADC_CTRL_LOW_FREQ_BIT

#define LT7170_ADC_CTRL_LOW_FREQ_BIT   NO_OS_BIT(1)

◆ LT7170_CAPABILITY

#define LT7170_CAPABILITY   0x19

◆ LT7170_CLEAR_FAULTS

#define LT7170_CLEAR_FAULTS   0x03

◆ LT7170_CONFIG_ALL_PEC_BIT

#define LT7170_CONFIG_ALL_PEC_BIT   NO_OS_BIT(2)

◆ LT7170_CRC_POLYNOMIAL

#define LT7170_CRC_POLYNOMIAL   0x7

◆ LT7170_FREQ_MAX

#define LT7170_FREQ_MAX   4000000

◆ LT7170_FREQ_MIN

#define LT7170_FREQ_MIN   400000

◆ LT7170_FREQUENCY_SWITCH

#define LT7170_FREQUENCY_SWITCH   0x33

◆ LT7170_IC_DEVICE_ID

#define LT7170_IC_DEVICE_ID   0xAD

◆ LT7170_IC_DEVICE_REV

#define LT7170_IC_DEVICE_REV   0xAE

◆ LT7170_IEEE754_EXPONENT_MSK

#define LT7170_IEEE754_EXPONENT_MSK   NO_OS_GENMASK(14, 10)

◆ LT7170_IEEE754_MANTISSA_MSK

#define LT7170_IEEE754_MANTISSA_MSK   NO_OS_GENMASK(9, 0)

◆ LT7170_IEEE754_MAX_MANTISSA

#define LT7170_IEEE754_MAX_MANTISSA   0x7ff

◆ LT7170_IEEE754_MIN_MANTISSA

#define LT7170_IEEE754_MIN_MANTISSA   0x400

◆ LT7170_IEEE754_SIGN_BIT

#define LT7170_IEEE754_SIGN_BIT   NO_OS_BIT(15)

◆ LT7170_IOUT_CAL_OFFSET

#define LT7170_IOUT_CAL_OFFSET   0x39

◆ LT7170_IOUT_OC_FAULT_RESPONSE

#define LT7170_IOUT_OC_FAULT_RESPONSE   0x47

◆ LT7170_IOUT_OC_WARN_LIMIT

#define LT7170_IOUT_OC_WARN_LIMIT   0x4A

◆ LT7170_MFR_ADC_CONTROL

#define LT7170_MFR_ADC_CONTROL   0xD8

◆ LT7170_MFR_CHAN_CONFIG

#define LT7170_MFR_CHAN_CONFIG   0xD0

◆ LT7170_MFR_CHANNEL_STATE

#define LT7170_MFR_CHANNEL_STATE   0xF1

◆ LT7170_MFR_CLEAR_PEAKS

#define LT7170_MFR_CLEAR_PEAKS   0xE3

◆ LT7170_MFR_COMMON

#define LT7170_MFR_COMMON   0xEF

◆ LT7170_MFR_COMPARE_USER_ALL

#define LT7170_MFR_COMPARE_USER_ALL   0xF0

◆ LT7170_MFR_CONFIG_ALL

#define LT7170_MFR_CONFIG_ALL   0xD1

◆ LT7170_MFR_DISABLE_OUTPUT

#define LT7170_MFR_DISABLE_OUTPUT   0xFB

◆ LT7170_MFR_DISCHARGE_THRESHOLD

#define LT7170_MFR_DISCHARGE_THRESHOLD   0xE4

◆ LT7170_MFR_FAULT_PROPAGATE

#define LT7170_MFR_FAULT_PROPAGATE   0xD2

◆ LT7170_MFR_FAULT_RESPONSE

#define LT7170_MFR_FAULT_RESPONSE   0xD5

◆ LT7170_MFR_I2C_ADDRESS

#define LT7170_MFR_I2C_ADDRESS   0xE6

◆ LT7170_MFR_ID

#define LT7170_MFR_ID   0x99

◆ LT7170_MFR_IOUT_PEAK

#define LT7170_MFR_IOUT_PEAK   0xD7

◆ LT7170_MFR_NOT_PGOOD_DELAY

#define LT7170_MFR_NOT_PGOOD_DELAY   0xF3

◆ LT7170_MFR_NVM_DATA

#define LT7170_MFR_NVM_DATA   0xBF

◆ LT7170_MFR_NVM_UNLOCK

#define LT7170_MFR_NVM_UNLOCK   0xBD

◆ LT7170_MFR_NVM_USER_WP

#define LT7170_MFR_NVM_USER_WP   0xFC

◆ LT7170_MFR_NVM_USER_WRITES_REMAINING

#define LT7170_MFR_NVM_USER_WRITES_REMAINING   0xBE

◆ LT7170_MFR_PADS

#define LT7170_MFR_PADS   0xE5

◆ LT7170_MFR_PGOOD_DELAY

#define LT7170_MFR_PGOOD_DELAY   0xF2

◆ LT7170_MFR_PIN_CONFIG_STATUS

#define LT7170_MFR_PIN_CONFIG_STATUS   0xF7

◆ LT7170_MFR_PWM_MODE

#define LT7170_MFR_PWM_MODE   0xD4

◆ LT7170_MFR_PWM_PHASE

#define LT7170_MFR_PWM_PHASE   0xF5

◆ LT7170_MFR_RAIL_ADDRESS

#define LT7170_MFR_RAIL_ADDRESS   0xFA

◆ LT7170_MFR_READ_ASEL

#define LT7170_MFR_READ_ASEL   0xD3

◆ LT7170_MFR_READ_EXTVCC

#define LT7170_MFR_READ_EXTVCC   0xCD

◆ LT7170_MFR_READ_ITH

#define LT7170_MFR_READ_ITH   0xCE

◆ LT7170_MFR_READ_PWM_CFG

#define LT7170_MFR_READ_PWM_CFG   0xE0

◆ LT7170_MFR_READ_VOUT_CFG

#define LT7170_MFR_READ_VOUT_CFG   0xE1

◆ LT7170_MFR_RESET

#define LT7170_MFR_RESET   0xFD

◆ LT7170_MFR_RETRY_DELAY

#define LT7170_MFR_RETRY_DELAY   0xDB

◆ LT7170_MFR_SERIAL

#define LT7170_MFR_SERIAL   0x9E

◆ LT7170_MFR_SPECIAL_ID

#define LT7170_MFR_SPECIAL_ID   0xE7

◆ LT7170_MFR_SYNC_CONFIG

#define LT7170_MFR_SYNC_CONFIG   0xF6

◆ LT7170_MFR_TEMPERATURE_1_PEAK

#define LT7170_MFR_TEMPERATURE_1_PEAK   0xDF

◆ LT7170_MFR_USER_DATA_00

#define LT7170_MFR_USER_DATA_00   0xC9

◆ LT7170_MFR_USER_DATA_01

#define LT7170_MFR_USER_DATA_01   0xCA

◆ LT7170_MFR_VIN_PEAK

#define LT7170_MFR_VIN_PEAK   0xDE

◆ LT7170_MFR_VOUT_PEAK

#define LT7170_MFR_VOUT_PEAK   0xDD

◆ LT7170_ON_OFF_CONFIG

#define LT7170_ON_OFF_CONFIG   0x02

◆ LT7170_OPERATION

#define LT7170_OPERATION   0x01

◆ LT7170_OT_FAULT_LIMIT

#define LT7170_OT_FAULT_LIMIT   0x4F

◆ LT7170_OT_FAULT_RESPONSE

#define LT7170_OT_FAULT_RESPONSE   0x50

◆ LT7170_OT_WARN_LIMIT

#define LT7170_OT_WARN_LIMIT   0x51

◆ LT7170_PADS_RUN_BIT

#define LT7170_PADS_RUN_BIT   NO_OS_BIT(2)

◆ LT7170_PAGE

#define LT7170_PAGE   0x00

◆ LT7170_PAGE_PLUS_READ

#define LT7170_PAGE_PLUS_READ   0x06

◆ LT7170_PAGE_PLUS_WRITE

#define LT7170_PAGE_PLUS_WRITE   0x05

◆ LT7170_PHASE_FULL_MILLI

#define LT7170_PHASE_FULL_MILLI   360000

◆ LT7170_PWM_OP_MODE_BIT

#define LT7170_PWM_OP_MODE_BIT   NO_OS_BIT(0)

◆ LT7170_QUERY

#define LT7170_QUERY   0x1A

◆ LT7170_READ_FREQUENCY

#define LT7170_READ_FREQUENCY   0x95

◆ LT7170_READ_IOUT

#define LT7170_READ_IOUT   0x8C

◆ LT7170_READ_TEMPERATURE_1

#define LT7170_READ_TEMPERATURE_1   0x8D

◆ LT7170_READ_VIN

#define LT7170_READ_VIN   0x88

◆ LT7170_READ_VOUT

#define LT7170_READ_VOUT   0x8B

◆ LT7170_RESTORE_USER_ALL

#define LT7170_RESTORE_USER_ALL   0x16

◆ LT7170_REVISION

#define LT7170_REVISION   0x98

◆ LT7170_SMBALERT_MASK

#define LT7170_SMBALERT_MASK   0x1B

◆ LT7170_SPECIAL_ID_VALUE

#define LT7170_SPECIAL_ID_VALUE   0x1C1D

◆ LT7170_STATUS_ALL_TYPE_MSK

#define LT7170_STATUS_ALL_TYPE_MSK   0xFF

◆ LT7170_STATUS_BYTE

#define LT7170_STATUS_BYTE   0x78

◆ LT7170_STATUS_BYTE_TYPE_MSK

#define LT7170_STATUS_BYTE_TYPE_MSK   0x01

◆ LT7170_STATUS_CML

#define LT7170_STATUS_CML   0x7E

◆ LT7170_STATUS_CML_TYPE_MSK

#define LT7170_STATUS_CML_TYPE_MSK   0x20

◆ LT7170_STATUS_INPUT

#define LT7170_STATUS_INPUT   0x7C

◆ LT7170_STATUS_INPUT_TYPE_MSK

#define LT7170_STATUS_INPUT_TYPE_MSK   0x08

◆ LT7170_STATUS_IOUT

#define LT7170_STATUS_IOUT   0x7B

◆ LT7170_STATUS_IOUT_TYPE_MSK

#define LT7170_STATUS_IOUT_TYPE_MSK   0x04

◆ LT7170_STATUS_MFR_SPECIFIC

#define LT7170_STATUS_MFR_SPECIFIC   0x80

◆ LT7170_STATUS_MFR_SPECIFIC_TYPE_MSK

#define LT7170_STATUS_MFR_SPECIFIC_TYPE_MSK   0x40

◆ LT7170_STATUS_TEMP_TYPE_MSK

#define LT7170_STATUS_TEMP_TYPE_MSK   0x10

◆ LT7170_STATUS_TEMPERATURE

#define LT7170_STATUS_TEMPERATURE   0x7D

◆ LT7170_STATUS_VOUT

#define LT7170_STATUS_VOUT   0x7A

◆ LT7170_STATUS_VOUT_TYPE_MSK

#define LT7170_STATUS_VOUT_TYPE_MSK   0x02

◆ LT7170_STATUS_WORD

#define LT7170_STATUS_WORD   0x79

◆ LT7170_STATUS_WORD_TYPE_MSK

#define LT7170_STATUS_WORD_TYPE_MSK   0x80

◆ LT7170_STORE_USER_ALL

#define LT7170_STORE_USER_ALL   0x15

◆ LT7170_SYNC_CLK_INPUT_BIT

#define LT7170_SYNC_CLK_INPUT_BIT   NO_OS_BIT(1)

◆ LT7170_SYNC_CLK_OUTPUT_BIT

#define LT7170_SYNC_CLK_OUTPUT_BIT   NO_OS_BIT(0)

◆ LT7170_TOFF_DELAY

#define LT7170_TOFF_DELAY   0x64

◆ LT7170_TOFF_FALL

#define LT7170_TOFF_FALL   0x65

◆ LT7170_TOFF_MAX_WARN_LIMIT

#define LT7170_TOFF_MAX_WARN_LIMIT   0x66

◆ LT7170_TON_DELAY

#define LT7170_TON_DELAY   0x60

◆ LT7170_TON_MAX_FAULT_LIMIT

#define LT7170_TON_MAX_FAULT_LIMIT   0x62

◆ LT7170_TON_MAX_FAULT_RESPONSE

#define LT7170_TON_MAX_FAULT_RESPONSE   0x63

◆ LT7170_TON_RISE

#define LT7170_TON_RISE   0x61

◆ LT7170_VIN_OFF

#define LT7170_VIN_OFF   0x36

◆ LT7170_VIN_OFF_MAX

#define LT7170_VIN_OFF_MAX   16000

◆ LT7170_VIN_OFF_MIN

#define LT7170_VIN_OFF_MIN   1350

◆ LT7170_VIN_ON

#define LT7170_VIN_ON   0x35

◆ LT7170_VIN_ON_MAX

#define LT7170_VIN_ON_MAX   16000

◆ LT7170_VIN_ON_MIN

#define LT7170_VIN_ON_MIN   1400

◆ LT7170_VIN_OV_FAULT_RESPONSE

#define LT7170_VIN_OV_FAULT_RESPONSE   0x56

◆ LT7170_VIN_UV_WARN_LIMIT

#define LT7170_VIN_UV_WARN_LIMIT   0x58

◆ LT7170_VOUT_COMMAND

#define LT7170_VOUT_COMMAND   0x21

◆ LT7170_VOUT_MARGIN_HIGH

#define LT7170_VOUT_MARGIN_HIGH   0x25

◆ LT7170_VOUT_MARGIN_LOW

#define LT7170_VOUT_MARGIN_LOW   0x26

◆ LT7170_VOUT_MAX

#define LT7170_VOUT_MAX   0x24

◆ LT7170_VOUT_MODE

#define LT7170_VOUT_MODE   0x20

◆ LT7170_VOUT_MODE_VAL_MSK

#define LT7170_VOUT_MODE_VAL_MSK   NO_OS_GENMASK(4,0)

◆ LT7170_VOUT_OV_FAULT_LIMIT

#define LT7170_VOUT_OV_FAULT_LIMIT   0x40

◆ LT7170_VOUT_OV_FAULT_RESPONSE

#define LT7170_VOUT_OV_FAULT_RESPONSE   0x41

◆ LT7170_VOUT_OV_WARN_LIMIT

#define LT7170_VOUT_OV_WARN_LIMIT   0x42

◆ LT7170_VOUT_TRANSITION_RATE

#define LT7170_VOUT_TRANSITION_RATE   0x27

◆ LT7170_VOUT_UV_FAULT_LIMIT

#define LT7170_VOUT_UV_FAULT_LIMIT   0x44

◆ LT7170_VOUT_UV_FAULT_RESPONSE

#define LT7170_VOUT_UV_FAULT_RESPONSE   0x45

◆ LT7170_VOUT_UV_WARN_LIMIT

#define LT7170_VOUT_UV_WARN_LIMIT   0x43

◆ LT7170_WRITE_PROTECT

#define LT7170_WRITE_PROTECT   0x10

◆ LT7170_ZONE_ACTIVE

#define LT7170_ZONE_ACTIVE   0x08

◆ LT7170_ZONE_CONFIG

#define LT7170_ZONE_CONFIG   0x07

Enumeration Type Documentation

◆ lt7170_chip_id

Enumerator
ID_LT7170 
ID_LT7170_1 
ID_LT7171 
ID_LT7171_1 

◆ lt7170_fault_pin_config

Enumerator
LT7170_FAULT_PIN_INPUT 
LT7170_FAULT_PIN_OUTPUT 

◆ lt7170_limit_type

Enumerator
LT7170_VOUT_OV_FAULT_LIMIT_TYPE 
LT7170_VOUT_OV_WARN_LIMIT_TYPE 
LT7170_VOUT_UV_FAULT_LIMIT_TYPE 
LT7170_VOUT_UV_WARN_LIMIT_TYPE 
LT7170_IOUT_OC_WARN_LIMIT_TYPE 
LT7170_OT_FAULT_LIMIT_TYPE 
LT7170_OT_WARN_LIMIT_TYPE 
LT7170_VIN_UV_WARN_LIMIT_TYPE 
LT7170_TON_MAX_FAULT_LIMIT_TYPE 
LT7170_TOFF_MAX_WARN_LIMIT_TYPE 

◆ lt7170_nvm_cmd_type

Enumerator
LT7170_LOCK_USER 
LT7170_UNLOCK_USER 
LT7170_STORE_USER 
LT7170_RESTORE_USER 
LT7170_COMPARE_USER 

◆ lt7170_operation_type

Enumerator
LT7170_OPERATION_OFF 
LT7170_OPERATION_ON 
LT7170_OPERATION_MARGIN_HIGH 
LT7170_OPERATION_MARGIN_LOW 
LT7170_OPERATION_SEQ_OFF 

◆ lt7170_pwm_mode

Enumerator
LT7170_PWM_FORCED_CONTINUOUS_MODE 
LT7170_PWM_PULSE_SKIP_MODE 

◆ lt7170_status_type

Enumerator
LT7170_STATUS_BYTE_TYPE 
LT7170_STATUS_VOUT_TYPE 
LT7170_STATUS_IOUT_TYPE 
LT7170_STATUS_INPUT_TYPE 
LT7170_STATUS_TEMP_TYPE 
LT7170_STATUS_CML_TYPE 
LT7170_STATUS_MFR_SPECIFIC_TYPE 
LT7170_STATUS_WORD_TYPE 
LT7170_STATUS_ALL_TYPE 

◆ lt7170_timing_type

Enumerator
LT7170_TON_DELAY_TYPE 
LT7170_TON_RISE_TYPE 
LT7170_TOFF_DELAY_TYPE 
LT7170_TOFF_FALL_TYPE 
LT7170_RETRY_DELAY 

◆ lt7170_value_type

Enumerator
LT7170_VIN 
LT7170_VOUT 
LT7170_IOUT 
LT7170_TEMP 
LT7170_FREQUENCY 
LT7170_ITH 
LT7170_EXTVCC 
LT7170_IOUT_PEAK 
LT7170_VOUT_PEAK 
LT7170_VIN_PEAK 
LT7170_TEMP_PEAK 

Function Documentation

◆ lt7170_adc_control()

int lt7170_adc_control ( struct lt7170_dev dev,
bool  low_freq_telemetry,
bool  debug_telemetry 
)

Configure ADC control.

Parameters
dev- Device structure
low_freq_telemetry- Enable for low frequency telemetry (every 100ms)
debug_telemetry- Enable for debug telemetry with EXTVcc and Ith
Returns
0 in case of success, negative error code otherwise

◆ lt7170_clear_faults()

int lt7170_clear_faults ( struct lt7170_dev dev)

Clear all asserted faults.

Parameters
dev- Device structure
Returns
0 in case of success, negative error code otherwise

◆ lt7170_init()

int lt7170_init ( struct lt7170_dev **  device,
struct lt7170_init_param init_param 
)

Initialize the device structure.

Parameters
device- Device structure
init_param- Initialization parameters
Returns
0 in case of success, negative error code otherwise
Here is the caller graph for this function:

◆ lt7170_nvm_cmd()

int lt7170_nvm_cmd ( struct lt7170_dev dev,
enum lt7170_nvm_cmd_type  cmd 
)

Perform commands for non-volatile memory (NVM)

Parameters
dev- Device structure
cmd- NVM commands. Example: LT7170_LOCK_USER LT7170_UNLOCK_USER LT7170_STORE_USER LT7170_COMPARE_USER LT7170_RESTORE_USER
Returns
0 in case of success, negative error code otherwise

◆ lt7170_pwm_mode()

int lt7170_pwm_mode ( struct lt7170_dev dev,
enum lt7170_pwm_mode  pwm_mode 
)

Set output PWM mode.

Parameters
dev- Device structure
pwm_mode- PWM mode of the output channel. Example: LT7170_PWM_FORCED_CONTINUOUS_MODE LT7170_PWM_PULSE_SKIP_MODE
Returns
0 in case of success, negative error code otherwise

◆ lt7170_pwm_phase()

int lt7170_pwm_phase ( struct lt7170_dev dev,
int  phase 
)

Set output PWM phase.

Parameters
dev- Device structure
phase- Phase in milli-degrees
Returns
0 in case of success, negative error code otherwise

◆ lt7170_read_block_data()

int lt7170_read_block_data ( struct lt7170_dev dev,
uint8_t  cmd,
uint8_t *  data,
size_t  nbytes 
)

Perform a PMBus read block operation.

Parameters
dev- Device structure
cmd- PMBus command
data- Address of the read block
nbytes- Size of the block in bytes
Returns
0 in case of success, negative error code otherwise

◆ lt7170_read_byte()

int lt7170_read_byte ( struct lt7170_dev dev,
uint8_t  cmd,
uint8_t *  data 
)

Perform a raw PMBus read byte operation.

Parameters
dev- Device structure
cmd- PMBus command
data- Address of the byte read
Returns
0 in case of success, negative error code otherwise
Here is the caller graph for this function:

◆ lt7170_read_status()

int lt7170_read_status ( struct lt7170_dev dev,
enum lt7170_status_type  status_type,
struct lt7170_status status 
)

Read statuses.

Parameters
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
Returns
0 in case of success, negative error code otherwise
Here is the caller graph for this function:

◆ lt7170_read_value()

int lt7170_read_value ( struct lt7170_dev dev,
enum lt7170_value_type  value_type,
int *  value 
)

Read a value.

Parameters
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
Returns
0 in case of success, negative error code otherwise
Here is the caller graph for this function:

◆ lt7170_read_word()

int lt7170_read_word ( struct lt7170_dev dev,
uint8_t  cmd,
uint16_t *  word 
)

Perform a raw PMBus read word operation.

Parameters
dev- Device structure
cmd- PMBus command
word- Address of the read word
Returns
0 in case of success, negative error code otherwise
Here is the caller graph for this function:

◆ lt7170_read_word_data()

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.

Parameters
dev- Device structure
cmd- PMBus command
data- Address of data read
Returns
0 in case of success, negative error code otherwise
Here is the caller graph for this function:

◆ lt7170_remove()

int lt7170_remove ( struct lt7170_dev dev)

Free or remove device instance.

Parameters
dev- The device structure
Returns
0 in case of success, negative error code otherwise
Here is the caller graph for this function:

◆ lt7170_send_byte()

int lt7170_send_byte ( struct lt7170_dev dev,
uint8_t  cmd 
)

Send a PMBus command to the device.

Parameters
dev- Device structure
cmd- PMBus command
Returns
0 in case of success, negative error code otherwise
Here is the caller graph for this function:

◆ lt7170_set_channel_state()

int lt7170_set_channel_state ( struct lt7170_dev dev,
bool  state 
)

Set channel state using the RUN pin.

Parameters
dev- Device structure
state- true for ON, false for OFF
Returns
0 in case of success, negative error code otherwise

◆ lt7170_set_limit()

int lt7170_set_limit ( struct lt7170_dev dev,
enum lt7170_limit_type  limit,
int  limit_val 
)

Set overvalue and undervalue limits.

Parameters
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.
Returns
0 in case of success, negative error code otherwise

◆ lt7170_set_operation()

int lt7170_set_operation ( struct lt7170_dev dev,
enum lt7170_operation_type  operation 
)

Set channel operation.

Parameters
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
Returns
0 in case of success, negative error code otherwise

◆ lt7170_set_timing()

int lt7170_set_timing ( struct lt7170_dev dev,
enum lt7170_timing_type  timing_type,
int  time 
)

Set timing values.

Parameters
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
Returns
0 in case of success, negative error code otherwise

◆ lt7170_set_vin()

int lt7170_set_vin ( struct lt7170_dev dev,
int  vin_on,
int  vin_off 
)

Set input voltage window at which power conversion will proceed.

Parameters
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
Returns
0 in case of success, negative error code otherwise

◆ lt7170_software_reset()

int lt7170_software_reset ( struct lt7170_dev dev)

Perform a device software reset.

Parameters
dev- Device structure
Returns
0 in case of success, negative error code otherwise

◆ lt7170_switch_freq()

int lt7170_switch_freq ( struct lt7170_dev dev,
int  freq 
)

Set switching frequency.

Parameters
dev- Device structure
freq- Frequency to set in Hz. Value should be between 400000 Hz and 4000000 Hz.
Returns
0 in case of success, negative error code otherwise

◆ lt7170_sync_config()

int lt7170_sync_config ( struct lt7170_dev dev,
bool  input_clk,
bool  output_clk 
)

Configure SYNC pin for clock synchronization.

Parameters
dev- Device structure
input_clk- Enable to use SYNC clock input
output_clk- Enable to use SYNC output clock
Returns
0 in case of success, negative error code otherwise

◆ lt7170_vout_margin()

int lt7170_vout_margin ( struct lt7170_dev dev,
int  margin_high,
int  margin_low 
)

Set output voltage margin.

Parameters
dev- Device structure
margin_high- Upper margin in millivolts
margin_low- Lower margin in millivolts
Returns
0 in case of success, negative error code otherwise

◆ lt7170_vout_tr()

int lt7170_vout_tr ( struct lt7170_dev dev,
int  tr 
)

Set output voltage transition rate.

Parameters
dev- Device structure
tr- Transition rate in V/s or mV/ms
Returns
0 in case of success, negative error code otherwise

◆ lt7170_vout_value()

int lt7170_vout_value ( struct lt7170_dev dev,
int  vout_command,
int  vout_max 
)

Set output voltage and its upper limit.

Parameters
dev- Device structure
vout_command- Output voltage in millivolts
vout_max- Output voltage upper limit in millivolts
Returns
0 in case of success, negative error code otherwise

◆ lt7170_write_byte()

int lt7170_write_byte ( struct lt7170_dev dev,
uint8_t  cmd,
uint8_t  value 
)

Perform a raw PMBus write byte operation.

Parameters
dev- Device structure
cmd- PMBus command
value- Byte to be written
Returns
0 in case of success, negative error code otherwise
Here is the caller graph for this function:

◆ lt7170_write_word()

int lt7170_write_word ( struct lt7170_dev dev,
uint8_t  cmd,
uint16_t  word 
)

Perform a raw PMBus write word operation.

Parameters
dev- Device structure
cmd- PMBus command
word- Word to write
Returns
0 in case of success, negative error code otherwise
Here is the caller graph for this function:

◆ lt7170_write_word_data()

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.

Parameters
dev- Device structure
cmd- PMBus command
data- Value to write
Returns
0 in case of success, negative error code otherwise
Here is the caller graph for this function: