no-OS
All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
ltm4686.h
Go to the documentation of this file.
1/***************************************************************************/
33#ifndef __LTM4686_H__
34#define __LTM4686_H__
35
36#include <stdint.h>
37#include <string.h>
38#include "no_os_util.h"
39#include "no_os_i2c.h"
40
41/* PMBus commands */
42#define LTM4686_PAGE 0x00
43#define LTM4686_OPERATION 0x01
44#define LTM4686_ON_OFF_CONFIG 0x02
45#define LTM4686_CLEAR_FAULTS 0x03
46#define LTM4686_PAGE_PLUS_WRITE 0x05
47#define LTM4686_PAGE_PLUS_READ 0x06
48
49#define LTM4686_WRITE_PROTECT 0x10
50#define LTM4686_STORE_USER_ALL 0x15
51#define LTM4686_RESTORE_USER_ALL 0x16
52
53#define LTM4686_CAPABILITY 0x19
54#define LTM4686_SMBALERT_MASK 0x1B
55
56#define LTM4686_VOUT_MODE 0x20
57#define LTM4686_VOUT_COMMAND 0x21
58#define LTM4686_VOUT_MAX 0x24
59#define LTM4686_VOUT_MARGIN_HIGH 0x25
60#define LTM4686_VOUT_MARGIN_LOW 0x26
61#define LTM4686_VOUT_TRANSITION_RATE 0x27
62
63#define LTM4686_FREQUENCY_SWITCH 0x33
64#define LTM4686_VIN_ON 0x35
65#define LTM4686_VIN_OFF 0x36
66#define LTM4686_IOUT_CAL_GAIN 0x38
67
68#define LTM4686_VOUT_OV_FAULT_LIMIT 0x40
69#define LTM4686_VOUT_OV_FAULT_RESPONSE 0x41
70#define LTM4686_VOUT_OV_WARN_LIMIT 0x42
71#define LTM4686_VOUT_UV_WARN_LIMIT 0x43
72#define LTM4686_VOUT_UV_FAULT_LIMIT 0x44
73#define LTM4686_VOUT_UV_FAULT_RESPONSE 0x45
74#define LTM4686_IOUT_OC_FAULT_LIMIT 0x46
75#define LTM4686_IOUT_OC_FAULT_RESPONSE 0x47
76#define LTM4686_IOUT_OC_WARN_LIMIT 0x4A
77
78#define LTM4686_OT_FAULT_LIMIT 0x4F
79#define LTM4686_OT_FAULT_RESPONSE 0x50
80#define LTM4686_OT_WARN_LIMIT 0x51
81#define LTM4686_UT_FAULT_LIMIT 0x53
82#define LTM4686_UT_FAULT_RESPONSE 0x54
83
84#define LTM4686_VIN_OV_FAULT_LIMIT 0x55
85#define LTM4686_VIN_OV_FAULT_RESPONSE 0x56
86#define LTM4686_VIN_UV_WARN_LIMIT 0x58
87#define LTM4686_IIN_OC_WARN_LIMIT 0x5D
88
89#define LTM4686_TON_DELAY 0x60
90#define LTM4686_TON_RISE 0x61
91#define LTM4686_TON_MAX_FAULT_LIMIT 0x62
92#define LTM4686_TON_MAX_FAULT_RESPONSE 0x63
93#define LTM4686_TOFF_DELAY 0x64
94#define LTM4686_TOFF_FALL 0x65
95#define LTM4686_TOFF_MAX_WARN_LIMIT 0x66
96
97#define LTM4686_STATUS_BYTE 0x78
98#define LTM4686_STATUS_WORD 0x79
99#define LTM4686_STATUS_VOUT 0x7A
100#define LTM4686_STATUS_IOUT 0x7B
101#define LTM4686_STATUS_INPUT 0x7C
102#define LTM4686_STATUS_TEMPERATURE 0x7D
103#define LTM4686_STATUS_CML 0x7E
104#define LTM4686_STATUS_MFR_SPECIFIC 0x80
105
106#define LTM4686_READ_VIN 0x88
107#define LTM4686_READ_IIN 0x89
108#define LTM4686_READ_VOUT 0x8B
109#define LTM4686_READ_IOUT 0x8C
110#define LTM4686_READ_TEMPERATURE_1 0x8D
111#define LTM4686_READ_TEMPERATURE_2 0x8E
112#define LTM4686_READ_DUTY_CYCLE 0x94
113#define LTM4686_READ_POUT 0x96
114
115#define LTM4686_REVISION 0x98
116#define LTM4686_MFR_ID 0x99
117#define LTM4686_MFR_MODEL 0x9A
118#define LTM4686_MFR_SERIAL 0x9E
119#define LTM4686_MFR_VOUT_MAX 0xA5
120
121#define LTM4686_MFR_USER_DATA_00 0xB0
122#define LTM4686_MFR_USER_DATA_01 0xB1
123#define LTM4686_MFR_USER_DATA_02 0xB2
124#define LTM4686_MFR_USER_DATA_03 0xB3
125#define LTM4686_MFR_USER_DATA_04 0xB4
126
127#define LTM4686_MFR_INFO 0xB6
128#define LTM4686_MFR_EE_UNLOCK 0xBD
129#define LTM4686_MFR_EE_ERASE 0xBE
130#define LTM4686_MFR_EE_DATA 0xBF
131
132#define LTM4686_MFR_CHAN_CONFIG 0xD0
133#define LTM4686_MFR_CONFIG_ALL 0xD1
134#define LTM4686_MFR_GPIO_PROPAGATE 0xD2
135#define LTM4686_MFR_PWM_MODE 0xD4
136#define LTM4686_MFR_GPIO_RESPONSE 0xD5
137#define LTM4686_MFR_OT_FAULT_RESPONSE 0xD6
138#define LTM4686_MFR_IOUT_PEAK 0xD7
139#define LTM4686_MFR_ADC_CONTROL 0xD8
140#define LTM4686_MFR_ADC_TELEMETRY_STATUS 0xDA
141#define LTM4686_MFR_RETRY_DELAY 0xDB
142#define LTM4686_MFR_RESTART_DELAY 0xDC
143#define LTM4686_MFR_VOUT_PEAK 0xDD
144#define LTM4686_MFR_VIN_PEAK 0xDE
145#define LTM4686_MFR_TEMPERATURE_1_PEAK 0xDF
146#define LTM4686_MFR_CLEAR_PEAKS 0xE3
147#define LTM4686_MFR_PADS 0xE5
148#define LTM4686_MFR_ADDRESS 0xE6
149#define LTM4686_MFR_SPECIAL_ID 0xE7
150#define LTM4686_MFR_IIN_OFFSET 0xE9
151#define LTM4686_MFR_FAULT_LOG_STORE 0xEA
152#define LTM4686_MFR_FAULT_LOG_CLEAR 0xEC
153#define LTM4686_MFR_READ_IIN 0xED
154#define LTM4686_MFR_FAULT_LOG 0xEE
155#define LTM4686_MFR_COMMON 0xEF
156#define LTM4686_MFR_COMPARE_USER_ALL 0xF0
157#define LTM4686_MFR_TEMPERATURE_2_PEAK 0xF4
158#define LTM4686_MFR_PWM_CONFIG 0xF5
159#define LTM4686_MFR_IOUT_CAL_GAIN_TC 0xF6
160#define LTM4686_MFR_TEMP_1_GAIN 0xF8
161#define LTM4686_MFR_TEMP_1_OFFSET 0xF9
162#define LTM4686_MFR_RAIL_ADDRESS 0xFA
163#define LTM4686_MFR_RESET 0xFD
164
165/* LTM4673 manufacturer-specific commands */
166#define LTM4673_MFR_FAULTB0_PROPAGATE 0xD2
167#define LTM4673_MFR_FAULTB1_PROPAGATE 0xD3
168#define LTM4673_MFR_PWRGD_ENABLE 0xD4
169#define LTM4673_MFR_FAULTB0_RESPONSE 0xD5
170#define LTM4673_MFR_FAULTB1_RESPONSE 0xD6
171#define LTM4673_MFR_IOUT_MIN 0xD8
172#define LTM4673_MFR_CONFIG2 0xD9
173#define LTM4673_MFR_CONFIG3 0xDA
174#define LTM4673_MFR_DAC 0xE0
175#define LTM4673_MFR_PGD_ASSERTION_DELAY 0xE1
176#define LTM4673_MFR_WATCHDOG_T_FIRST 0xE2
177#define LTM4673_MFR_WATCHDOG_T 0xE3
178#define LTM4673_MFR_PAGE_FF_MASK 0xE4
179#define LTM4673_MFR_IIN_CAL_GAIN 0xE8
180#define LTM4673_MFR_VOUT_DISCHARGE_THRESHOLD 0xE9
181#define LTM4673_MFR_FAULT_LOG_RESTORE 0xEB
182#define LTM4673_MFR_FAULT_LOG_STATUS 0xED
183#define LTM4673_MFR_RETRY_COUNT 0xF7
184#define LTM4673_MFR_IOUT_SENSE_VOLTAGE 0xFA
185#define LTM4673_MFR_VOUT_MIN 0xFB
186#define LTM4673_MFR_VIN_MIN 0xFC
187#define LTM4673_MFR_TEMPERATURE_1_MIN 0xFD
188
189/* PMBus-specific parameters */
190#define LTM4686_CRC_POLYNOMIAL 0x7
191#define LTM4686_VOUT_MODE_VAL_MSK NO_OS_GENMASK(4,0)
192
193/* LINEAR data format params */
194#define LTM4686_LIN11_MANTISSA_MAX 1023L
195#define LTM4686_LIN11_MANTISSA_MIN 511L
196#define LTM4686_LIN11_EXPONENT_MAX 15
197#define LTM4686_LIN11_EXPONENT_MIN -15
198#define LTM4686_LIN11_MANTISSA_MSK NO_OS_GENMASK(10,0)
199#define LTM4686_LIN11_EXPONENT_MSK NO_OS_GENMASK(15,11)
200#define LTM4686_LIN11_EXPONENT(x) ((int16_t)(x) >> 11)
201#define LTM4686_LIN11_MANTISSA(x) (((int16_t)((x & 0x7FF) << 5)) >> 5)
202#define LTM4686_LIN16_EXPONENT -12
203
204/* LTM4686 channel numbers */
205#define LTM4686_CHAN_0 0x0
206#define LTM4686_CHAN_1 0x1
207#define LTM4686_CHAN_2 0x2
208#define LTM4686_CHAN_3 0x3
209#define LTM4686_CHAN_ALL 0xFF
210
211/* Status types masks */
212#define LTM4686_STATUS_BYTE_TYPE_MSK 0x01
213#define LTM4686_STATUS_VOUT_TYPE_MSK 0x02
214#define LTM4686_STATUS_IOUT_TYPE_MSK 0x04
215#define LTM4686_STATUS_INPUT_TYPE_MSK 0x08
216#define LTM4686_STATUS_TEMP_TYPE_MSK 0x10
217#define LTM4686_STATUS_CML_TYPE_MSK 0x20
218#define LTM4686_STATUS_MFR_SPECIFIC_TYPE_MSK 0x40
219#define LTM4686_STATUS_WORD_TYPE_MSK 0x80
220#define LTM4686_STATUS_ALL_TYPE_MSK 0xFF
221
222/* LTM4686 configurable bits and masks */
223#define LTM4686_PWM_OP_MODE_BIT NO_OS_BIT(0)
224#define LTM4686_CONFIG_ALL_DIS_SYNC_BIT NO_OS_BIT(4)
225#define LTM4686_CONFIG_ALL_PEC_BIT NO_OS_BIT(2)
226
227/* LTM4686 ID values */
228#define LTM4686_ID_MSK 0xFFF0
229#define LTM4686_SPECIAL_ID_VALUE 0x4770
230#define LTM4673_SPECIAL_ID_VALUE_REV_1 0x0230
231#define LTM4673_SPECIAL_ID_VALUE_REV_2 0x4480
232
238
243
251
266
278
287
299
305
310
324
336
339};
340
342 uint16_t word;
343 uint8_t byte;
344 uint8_t vout;
345 uint8_t iout;
346 uint8_t input;
347 uint8_t temp;
348 uint8_t cml;
350};
351
352/* Initialize the device structure */
353int ltm4686_init(struct ltm4686_dev **device,
355
356/* Free or remove device instance */
357int ltm4686_remove(struct ltm4686_dev *dev);
358
359/* Set PMBus page and phase */
360int ltm4686_set_page(struct ltm4686_dev *dev, int page);
361
362/* Send a PMBus command to the device */
363int ltm4686_send_byte(struct ltm4686_dev *dev, int page, uint8_t cmd);
364
365/* Perform a PMBus read_byte operation */
366int ltm4686_read_byte(struct ltm4686_dev *dev, int page,
367 uint8_t cmd, uint8_t *data);
368
369/* Perform a PMBus write_byte operation */
370int ltm4686_write_byte(struct ltm4686_dev *dev, int page,
371 uint8_t cmd, uint8_t value);
372
373/* Perform a PMBus read_word operation */
374int ltm4686_read_word(struct ltm4686_dev *dev, int page,
375 uint8_t cmd, uint16_t *word);
376
377/* Perform a PMBus write_word operation */
378int ltm4686_write_word(struct ltm4686_dev *dev, int page,
379 uint8_t cmd, uint16_t word);
380
381/* Perform a PMBus read_word operation then perform conversion*/
382int ltm4686_read_word_data(struct ltm4686_dev *dev, int page,
383 uint8_t cmd, int *data);
384
385/* Perform conversion then perform a PMBus write_word operation */
386int ltm4686_write_word_data(struct ltm4686_dev *dev, int page,
387 uint8_t cmd, int data);
388
389/* Read a block of bytes */
390int ltm4686_read_block_data(struct ltm4686_dev *dev, int page, uint8_t cmd,
391 uint8_t *data, size_t nbytes);
392
393/* Read specific value type */
394int ltm4686_read_value(struct ltm4686_dev *dev,
395 uint8_t channel,
396 enum ltm4686_value_type value_type,
397 int *value);
398
399/* Read status */
400int ltm4686_read_status(struct ltm4686_dev *dev,
401 uint8_t channel,
402 enum ltm4686_status_type status_type,
403 struct ltm4686_status *status);
404
405/* Set VOUT parameters: VOUT_COMMAND and VOUT_MAX */
406int ltm4686_vout_value(struct ltm4686_dev *dev, uint8_t channel,
407 int vout_command, int vout_max);
408
409/* Set VOUT transition rate in microvolt per milliseconds */
410int ltm4686_vout_tr(struct ltm4686_dev *dev, uint8_t channel, int tr);
411
412/* Set VOUT margins */
413int ltm4686_vout_margin(struct ltm4686_dev *dev, uint8_t channel,
414 int margin_low, int margin_high);
415
416/* Set VIN threshold when to start power conversion */
417int ltm4686_set_vin(struct ltm4686_dev *dev, int vin_on, int vin_off);
418
419/* Set timing values in microseconds */
420int ltm4686_set_timing(struct ltm4686_dev *dev, uint8_t channel,
421 enum ltm4686_timing_type timing_type, int time);
422
423/* Set switching frequency */
424int ltm4686_switch_freq(struct ltm4686_dev *dev, enum ltm4686_freq freq);
425
426/* Set PWM mode of a channel */
427int ltm4686_pwm_mode(struct ltm4686_dev *dev, uint8_t channel,
428 enum ltm4686_pwm_mode pwm_mode);
429
430/* Set operation */
431int ltm4686_set_operation(struct ltm4686_dev *dev, uint8_t channel,
432 enum ltm4686_operation_type operation);
433
434/* NVM/EEPROM user commands */
435int ltm4686_nvm_cmd(struct ltm4686_dev *dev, enum ltm4686_nvm_cmd_type cmd);
436
437/* Software reset */
438int ltm4686_software_reset(struct ltm4686_dev *dev);
439
440#endif /* __LTM4686_H__ */
struct ad7616_init_param init_param
Definition ad7616_sdz.c:107
ltm4686_operation_type
Definition ltm4686.h:244
@ LTM4686_OPERATION_MARGIN_HIGH
Definition ltm4686.h:248
@ LTM4686_OPERATION_OFF
Definition ltm4686.h:245
@ LTM4686_OPERATION_MARGIN_LOW
Definition ltm4686.h:247
@ LTM4686_OPERATION_SEQ_OFF
Definition ltm4686.h:249
@ LTM4686_OPERATION_ON
Definition ltm4686.h:246
ltm4686_chip_id
Definition ltm4686.h:233
@ ID_LTM4686B
Definition ltm4686.h:235
@ ID_LTM4673
Definition ltm4686.h:236
@ ID_LTM4686
Definition ltm4686.h:234
int ltm4686_init(struct ltm4686_dev **device, struct ltm4686_init_param *init_param)
Initialize the device structure.
Definition ltm4686.c:460
#define LTM4686_READ_IOUT
Definition ltm4686.h:109
#define LTM4686_STATUS_WORD_TYPE_MSK
Definition ltm4686.h:219
#define LTM4686_MFR_COMPARE_USER_ALL
Definition ltm4686.h:156
int ltm4686_set_page(struct ltm4686_dev *dev, int page)
Set page of the device. Page 0x0 - Channel 0 Page 0x1 - Channel 1 Page 0x2 - Channel 2 Page 0x3 - Cha...
Definition ltm4686.c:623
#define LTM4686_READ_TEMPERATURE_2
Definition ltm4686.h:111
int ltm4686_read_word(struct ltm4686_dev *dev, int page, uint8_t cmd, uint16_t *word)
Perform a raw PMBus read word operation.
Definition ltm4686.c:773
#define LTM4686_STATUS_ALL_TYPE_MSK
Definition ltm4686.h:220
int ltm4686_nvm_cmd(struct ltm4686_dev *dev, enum ltm4686_nvm_cmd_type cmd)
Perform commands for non-volatile memory/EEPROM.
Definition ltm4686.c:1230
int ltm4686_set_operation(struct ltm4686_dev *dev, uint8_t channel, enum ltm4686_operation_type operation)
Set channel operation.
Definition ltm4686.c:1213
int ltm4686_vout_tr(struct ltm4686_dev *dev, uint8_t channel, int tr)
Set output voltage transition rate.
Definition ltm4686.c:1068
#define LTM4686_MFR_IOUT_PEAK
Definition ltm4686.h:138
#define LTM4686_MFR_RESTART_DELAY
Definition ltm4686.h:142
ltm4686_fault_pin_config
Definition ltm4686.h:239
@ LTM4686_FAULT_PIN_INPUT
Definition ltm4686.h:240
@ LTM4686_FAULT_PIN_OUTPUT
Definition ltm4686.h:241
int ltm4686_write_byte(struct ltm4686_dev *dev, int page, uint8_t cmd, uint8_t value)
Perform a raw PMBus write byte operation.
Definition ltm4686.c:743
#define LTM4686_READ_POUT
Definition ltm4686.h:113
int ltm4686_write_word(struct ltm4686_dev *dev, int page, uint8_t cmd, uint16_t word)
Perform a raw PMBus write word operation.
Definition ltm4686.c:815
#define LTM4686_STATUS_VOUT_TYPE_MSK
Definition ltm4686.h:213
#define LTM4686_STATUS_CML_TYPE_MSK
Definition ltm4686.h:217
ltm4686_timing_type
Definition ltm4686.h:279
@ LTM4686_TOFF_DELAY_TYPE
Definition ltm4686.h:282
@ LTM4686_TOFF_FALL_TYPE
Definition ltm4686.h:283
@ LTM4686_TON_RISE_TYPE
Definition ltm4686.h:281
@ LTM4686_RESTART_DELAY
Definition ltm4686.h:285
@ LT7182_RETRY_DELAY
Definition ltm4686.h:284
@ LTM4686_TON_DELAY_TYPE
Definition ltm4686.h:280
int ltm4686_read_value(struct ltm4686_dev *dev, uint8_t channel, enum ltm4686_value_type value_type, int *value)
Read a value.
Definition ltm4686.c:946
#define LTM4686_MFR_TEMPERATURE_1_PEAK
Definition ltm4686.h:145
int ltm4686_read_status(struct ltm4686_dev *dev, uint8_t channel, enum ltm4686_status_type status_type, struct ltm4686_status *status)
Read statuses.
Definition ltm4686.c:969
int ltm4686_read_word_data(struct ltm4686_dev *dev, int page, uint8_t cmd, int *data)
Perform a PMBus read word operation and converts to actual value.
Definition ltm4686.c:845
#define LTM4686_TOFF_DELAY
Definition ltm4686.h:93
int ltm4686_set_vin(struct ltm4686_dev *dev, int vin_on, int vin_off)
Set input voltage window at which power conversion will proceed.
Definition ltm4686.c:1108
ltm4686_status_type
Definition ltm4686.h:267
@ LTM4686_STATUS_BYTE_TYPE
Definition ltm4686.h:269
@ LTM4686_STATUS_IOUT_TYPE
Definition ltm4686.h:271
@ LTM4686_STATUS_WORD_TYPE
Definition ltm4686.h:276
@ LTM4686_STATUS_MFR_SPECIFIC_TYPE
Definition ltm4686.h:275
@ LTM4686_STATUS_CML_TYPE
Definition ltm4686.h:274
@ LTM4686_STATUS_TEMP_TYPE
Definition ltm4686.h:273
@ LTM4686_STATUS_ALL_TYPE
Definition ltm4686.h:268
@ LTM4686_STATUS_INPUT_TYPE
Definition ltm4686.h:272
@ LTM4686_STATUS_VOUT_TYPE
Definition ltm4686.h:270
#define LTM4686_STORE_USER_ALL
Definition ltm4686.h:50
#define LTM4686_READ_DUTY_CYCLE
Definition ltm4686.h:112
#define LTM4686_MFR_VOUT_PEAK
Definition ltm4686.h:143
int ltm4686_write_word_data(struct ltm4686_dev *dev, int page, uint8_t cmd, int data)
Converts value to register data and do PMBus write word operation.
Definition ltm4686.c:867
int ltm4686_software_reset(struct ltm4686_dev *dev)
Perform a device software reset.
Definition ltm4686.c:1241
#define LTM4686_STATUS_TEMP_TYPE_MSK
Definition ltm4686.h:216
#define LTM4686_MFR_VIN_PEAK
Definition ltm4686.h:144
#define LTM4686_READ_VIN
Definition ltm4686.h:106
#define LTM4686_STATUS_BYTE_TYPE_MSK
Definition ltm4686.h:212
#define LTM4686_STATUS_INPUT_TYPE_MSK
Definition ltm4686.h:215
#define LTM4686_TON_DELAY
Definition ltm4686.h:89
#define LTM4686_STATUS_MFR_SPECIFIC_TYPE_MSK
Definition ltm4686.h:218
int ltm4686_read_block_data(struct ltm4686_dev *dev, int page, uint8_t cmd, uint8_t *data, size_t nbytes)
Perform a PMBus read block operation.
Definition ltm4686.c:890
ltm4686_freq
Definition ltm4686.h:288
@ LTM4686_FREQ_425_KHZ
Definition ltm4686.h:292
@ LTM4686_FREQ_650_KHZ
Definition ltm4686.h:295
@ LTM4686_FREQ_EXT_OSC
Definition ltm4686.h:289
@ LTM4686_FREQ_350_KHZ
Definition ltm4686.h:291
@ LTM4686_FREQ_1000_KHZ
Definition ltm4686.h:297
@ LTM4686_FREQ_500_KHZ
Definition ltm4686.h:293
@ LTM4686_FREQ_575_KHZ
Definition ltm4686.h:294
@ LTM4686_FREQ_250_KHZ
Definition ltm4686.h:290
@ LTM4686_FREQ_750_KHZ
Definition ltm4686.h:296
int ltm4686_read_byte(struct ltm4686_dev *dev, int page, uint8_t cmd, uint8_t *data)
Perform a raw PMBus read byte operation.
Definition ltm4686.c:704
ltm4686_nvm_cmd_type
Definition ltm4686.h:300
@ LTM4686_RESTORE_USER
Definition ltm4686.h:302
@ LTM4686_COMPARE_USER
Definition ltm4686.h:303
@ LTM4686_STORE_USER
Definition ltm4686.h:301
#define LTM4686_TOFF_FALL
Definition ltm4686.h:94
int ltm4686_vout_margin(struct ltm4686_dev *dev, uint8_t channel, int margin_low, int margin_high)
Set output voltage margin.
Definition ltm4686.c:1083
int ltm4686_remove(struct ltm4686_dev *dev)
Free or remove device instance.
Definition ltm4686.c:592
#define LTM4686_MFR_RETRY_DELAY
Definition ltm4686.h:141
int ltm4686_send_byte(struct ltm4686_dev *dev, int page, uint8_t cmd)
Send a PMBus command to the device.
Definition ltm4686.c:682
#define LTM4686_STATUS_IOUT_TYPE_MSK
Definition ltm4686.h:214
#define LTM4686_RESTORE_USER_ALL
Definition ltm4686.h:51
#define LTM4686_READ_VOUT
Definition ltm4686.h:108
#define LTM4686_READ_TEMPERATURE_1
Definition ltm4686.h:110
int ltm4686_set_timing(struct ltm4686_dev *dev, uint8_t channel, enum ltm4686_timing_type timing_type, int time)
Set timing values.
Definition ltm4686.c:1137
ltm4686_value_type
Definition ltm4686.h:252
@ LTM4686_POUT
Definition ltm4686.h:260
@ LTM4686_DUTY_CYCLE
Definition ltm4686.h:259
@ LTM4686_TEMP_IC
Definition ltm4686.h:258
@ LTM4686_VOUT
Definition ltm4686.h:255
@ LTM4686_VOUT_PEAK
Definition ltm4686.h:262
@ LTM4686_IOUT_PEAK
Definition ltm4686.h:261
@ LTM4686_IIN
Definition ltm4686.h:254
@ LTM4686_VIN_PEAK
Definition ltm4686.h:263
@ LTM4686_VIN
Definition ltm4686.h:253
@ LTM4686_TEMP_PEAK
Definition ltm4686.h:264
@ LTM4686_TEMP_TSNS
Definition ltm4686.h:257
@ LTM4686_IOUT
Definition ltm4686.h:256
ltm4686_pwm_mode
Definition ltm4686.h:306
@ LTM4686_PWM_FORCED_CONTINUOUS_MODE
Definition ltm4686.h:307
@ LTM4686_PWM_PULSE_SKIP_MODE
Definition ltm4686.h:308
int ltm4686_vout_value(struct ltm4686_dev *dev, uint8_t channel, int vout_command, int vout_max)
Set output voltage and its upper limit.
Definition ltm4686.c:1046
#define LTM4686_READ_IIN
Definition ltm4686.h:107
#define LTM4686_TON_RISE
Definition ltm4686.h:90
int ltm4686_switch_freq(struct ltm4686_dev *dev, enum ltm4686_freq freq)
Set switching frequency.
Definition ltm4686.c:1150
Header file of I2C Interface.
Header file of utility functions.
Definition ad9361_util.h:63
Definition ltm4686.h:337
uint8_t num_channels
Definition ltm4686.h:338
Definition ltm4686.h:311
enum ltm4686_chip_id id
Definition ltm4686.h:318
int lin16_exp
Definition ltm4686.h:320
bool crc_en
Definition ltm4686.h:321
struct no_os_gpio_desc ** pgood_descs
Definition ltm4686.h:314
struct no_os_gpio_desc ** run_descs
Definition ltm4686.h:315
struct no_os_i2c_desc * i2c_desc
Definition ltm4686.h:312
struct no_os_gpio_desc * alert_desc
Definition ltm4686.h:313
struct no_os_gpio_desc ** fault_descs
Definition ltm4686.h:316
uint8_t num_channels
Definition ltm4686.h:322
int page
Definition ltm4686.h:319
Definition ltm4686.h:325
struct no_os_i2c_init_param * i2c_init
Definition ltm4686.h:326
struct no_os_gpio_init_param ** pgood_params
Definition ltm4686.h:328
struct no_os_gpio_init_param ** run_params
Definition ltm4686.h:329
bool external_clk_en
Definition ltm4686.h:333
struct no_os_gpio_init_param * alert_param
Definition ltm4686.h:327
enum ltm4686_chip_id id
Definition ltm4686.h:332
bool crc_en
Definition ltm4686.h:334
struct no_os_gpio_init_param ** fault_params
Definition ltm4686.h:330
Definition ltm4686.h:341
uint8_t cml
Definition ltm4686.h:348
uint8_t byte
Definition ltm4686.h:343
uint8_t input
Definition ltm4686.h:346
uint8_t iout
Definition ltm4686.h:345
uint8_t vout
Definition ltm4686.h:344
uint16_t word
Definition ltm4686.h:342
uint8_t temp
Definition ltm4686.h:347
uint8_t mfr_specific
Definition ltm4686.h:349
Structure holding the GPIO descriptor.
Definition no_os_gpio.h:84
Structure holding the parameters for GPIO initialization.
Definition no_os_gpio.h:67
Structure holding I2C address descriptor.
Definition no_os_i2c.h:89
Structure holding the parameters for I2C initialization.
Definition no_os_i2c.h:52