no-OS
ltc4296.h
Go to the documentation of this file.
1 /***************************************************************************/
40 #ifndef __LTC4296_H__
41 #define __LTC4296_H__
42 
43 /******************************************************************************/
44 /***************************** Include Files **********************************/
45 /******************************************************************************/
46 #include <stdint.h>
47 #include "no_os_util.h"
48 #include "no_os_spi.h"
49 #include "no_os_gpio.h"
50 
51 /******************************************************************************/
52 /********************** Macros and Constants Definitions **********************/
53 /******************************************************************************/
54 #define LTC4296_REG_GFLTEV 0x02
55 #define LTC4296_REG_GFLTMSK 0x03
56 #define LTC4296_REG_GCAP 0x06
57 #define LTC4296_REG_GIOST 0x07
58 #define LTC4296_REG_GCMD 0x08
59 #define LTC4296_REG_GCFG 0x09
60 #define LTC4296_REG_GADCCFG 0x0A
61 #define LTC4296_REG_GADCDAT 0x0B
62 #define LTC4296_REG_P0EV 0x10
63 #define LTC4296_REG_P0ST 0x12
64 #define LTC4296_REG_P0CFG0 0x13
65 #define LTC4296_REG_P0CFG1 0x14
66 #define LTC4296_REG_P0ADCCFG 0x15
67 #define LTC4296_REG_P0ADCDAT 0x16
68 #define LTC4296_REG_P0SELFTEST 0x17
69 #define LTC4296_REG_P1EV 0x20
70 #define LTC4296_REG_P1ST 0x22
71 #define LTC4296_REG_P1CFG0 0x23
72 #define LTC4296_REG_P1CFG1 0x24
73 #define LTC4296_REG_P1ADCCFG 0x25
74 #define LTC4296_REG_P1ADCDAT 0x26
75 #define LTC4296_REG_P1SELFTEST 0x27
76 #define LTC4296_REG_P2EV 0x30
77 #define LTC4296_REG_P2ST 0x32
78 #define LTC4296_REG_P2CFG0 0x33
79 #define LTC4296_REG_P2CFG1 0x34
80 #define LTC4296_REG_P2ADCCFG 0x35
81 #define LTC4296_REG_P2ADCDAT 0x36
82 #define LTC4296_REG_P2SELFTEST 0x37
83 #define LTC4296_REG_P3EV 0x40
84 #define LTC4296_REG_P3ST 0x42
85 #define LTC4296_REG_P3CFG0 0x43
86 #define LTC4296_REG_P3CFG1 0x44
87 #define LTC4296_REG_P3ADCCFG 0x45
88 #define LTC4296_REG_P3ADCDAT 0x46
89 #define LTC4296_REG_P3SELFTEST 0x47
90 #define LTC4296_REG_P4EV 0x50
91 #define LTC4296_REG_P4ST 0x52
92 #define LTC4296_REG_P4CFG0 0x53
93 #define LTC4296_REG_P4CFG1 0x54
94 #define LTC4296_REG_P4ADCCFG 0x55
95 #define LTC4296_REG_P4ADCDAT 0x56
96 #define LTC4296_REG_P4SELFTEST 0x57
97 
98 /* LTC4296_REG_GFLTEV */
99 #define LTC4296_UVLO_DIGITAL_MSK NO_OS_BIT(4)
100 #define LTC4296_COMMAND_FAULT_MSK NO_OS_BIT(3)
101 #define LTC4296_PEC_FAULT_MSK NO_OS_BIT(2)
102 #define LTC4296_MEMORY_FAULT_MSK NO_OS_BIT(1)
103 #define LTC4296_LOW_CKT_BRK_FAULT_MSK NO_OS_BIT(0)
104 
105 /* LTC4296_REG_GCAP */
106 #define LTC4296_SCCP_SUPPORT_MSK NO_OS_BIT(6)
107 #define LTC4296_WAKE_FWD_SUPPORT_MSK NO_OS_BIT(5)
108 #define LTC4296_NUMPORTS_MSK NO_OS_GENMASK(4, 0)
109 
110 /* LTC4296_REG_GIOST */
111 #define LTC4296_PG_OUT4_MSK NO_OS_BIT(8)
112 #define LTC4296_PG_OUT3_MSK NO_OS_BIT(7)
113 #define LTC4296_PG_OUT2_MSK NO_OS_BIT(6)
114 #define LTC4296_PG_OUT1_MSK NO_OS_BIT(5)
115 #define LTC4296_PG_OUT0_MSK NO_OS_BIT(4)
116 #define LTC4296_PAD_AUTO_MSK NO_OS_BIT(3)
117 #define LTC4296_PAD_WAKEUP_MSK NO_OS_BIT(2)
118 #define LTC4296_PAD_WAKEUP_DRIVE_MSK NO_OS_BIT(1)
119 
120 /* LTC4296_REG_GCMD */
121 #define LTC4296_SW_RESET_MSK NO_OS_GENMASK(15, 8)
122 #define LTC4296_WRITE_PROTECT_MSK NO_OS_GENMASK(7, 0)
123 
124 /* LTC4296_REG_GCFG */
125 #define LTC4296_MASK_LOWFAULT_MSK NO_OS_BIT(5)
126 #define LTC4296_TLIM_DISABLE_MSK NO_OS_BIT(4)
127 #define LTC4296_TLIM_TIMER_SLEEP_MSK NO_OS_GENMASK(3, 2)
128 #define LTC4296_REFRESH_MSK NO_OS_BIT(1)
129 #define LTC4296_SW_VIN_PGOOD_MSK NO_OS_BIT(0)
130 
131 /* LTC4296_REG_GADCCFG */
132 #define LTC4296_GADC_SAMPLE_MODE_MSK NO_OS_GENMASK(6, 5)
133 #define LTC4296_GADC_SEL_MSK NO_OS_GENMASK(4, 0)
134 
135 /* LTC4296_REG_GADCDAT */
136 #define LTC4296_GADC_MISSED_MSK NO_OS_BIT(13)
137 #define LTC4296_GADC_NEW_MSK NO_OS_BIT(12)
138 #define LTC4296_GADC_MSK NO_OS_GENMASK(11, 0)
139 
140 /* LTC4296_REG_PXEV */
141 #define LTC4296_VALID_SIGNATURE_MSK NO_OS_BIT(9)
142 #define LTC4296_INVALID_SIGNATURE_MSK NO_OS_BIT(8)
143 #define LTC4296_TOFF_TIMER_DONE_MSK NO_OS_BIT(7)
144 #define LTC4296_OVERLOAD_DETECTED_ISLEEP_MSK NO_OS_BIT(6)
145 #define LTC4296_OVERLOAD_DETECTED_IPOWERED_MSK NO_OS_BIT(5)
146 #define LTC4296_MFVS_TIMEOUT_MSK NO_OS_BIT(4)
147 #define LTC4296_TINRUSH_TIMER_DONE_MSK NO_OS_BIT(3)
148 #define LTC4296_PD_WAKEUP_MSK NO_OS_BIT(2)
149 #define LTC4296_LSNS_FORWARD_FAULT_MSK NO_OS_BIT(1)
150 #define LTC4296_LSNS_REVERSE_FAULT_MSK NO_OS_BIT(0)
151 
152 /* LTC4296_REG_PXST */
153 #define LTC4296_DET_VHIGH_MSK NO_OS_BIT(13)
154 #define LTC4296_DET_VLOW_MSK NO_OS_BIT(12)
155 #define LTC4296_POWER_STABLE_HI_MSK NO_OS_BIT(11)
156 #define LTC4296_POWER_STABLE_LO_MSK NO_OS_BIT(10)
157 #define LTC4296_POWER_STABLE_MSK NO_OS_BIT(9)
158 #define LTC4296_OVERLOAD_HELD_MSK NO_OS_BIT(8)
159 #define LTC4296_PI_SLEEPING_MSK NO_OS_BIT(7)
160 #define LTC4296_PI_PREBIASED_MSK NO_OS_BIT(6)
161 #define LTC4296_PI_DETECTING_MSK NO_OS_BIT(5)
162 #define LTC4296_PI_POWERED_MSK NO_OS_BIT(4)
163 #define LTC4296_PI_DISCHARGE_EN_MSK NO_OS_BIT(3)
164 #define LTC4296_PSE_STATUS_MSK NO_OS_GENMASK(2, 0)
165 
166 /* LTC4296_REG_PXCFG0 */
167 #define LTC4296_SW_INRUSH_MSK NO_OS_BIT(15)
168 #define LTC4296_END_CLASSIFICATION_MSK NO_OS_BIT(14)
169 #define LTC4296_SET_CLASSIFICATION_MODE_MSK NO_OS_BIT(13)
170 #define LTC4296_DISABLE_DETECTION_PULLUP_MSK NO_OS_BIT(12)
171 #define LTC4296_TDET_DISABLE_MSK NO_OS_BIT(11)
172 #define LTC4296_FOLDBACK_DISABLE_MSK NO_OS_BIT(10)
173 #define LTC4296_SOFT_START_DISABLE_MSK NO_OS_BIT(9)
174 #define LTC4296_TOFF_TIMER_DISABLE_MSK NO_OS_BIT(8)
175 #define LTC4296_TMFVDO_TIMER_DISABLE_MSK NO_OS_BIT(7)
176 #define LTC4296_SW_PSE_READY_MSK NO_OS_BIT(6)
177 #define LTC4296_SW_POWER_AVAILABLE_MSK NO_OS_BIT(5)
178 #define LTC4296_UPSTREAM_WAKEUP_DISABLE_MSK NO_OS_BIT(4)
179 #define LTC4296_DOWNSTREAM_WAKEUP_DISABLE_MSK NO_OS_BIT(3)
180 #define LTC4296_SW_PSE_WAKEUP_MSK NO_OS_BIT(2)
181 #define LTC4296_HW_EN_MASK_MSK NO_OS_BIT(1)
182 #define LTC4296_SW_EN_MSK NO_OS_BIT(0)
183 
184 /* LTC4296_REG_PXCFG1 */
185 #define LTC4296_PREBIAS_OVERRIDE_GOOD_MSK NO_OS_BIT(8)
186 #define LTC4296_TLIM_TIMER_TOP_MSK NO_OS_GENMASK(7, 6)
187 #define LTC4296_TOD_TRESTART_TIMER_MSK NO_OS_GENMASK(5, 4)
188 #define LTC4296_TINRUSH_TIMER_MSK NO_OS_GENMASK(3, 2)
189 #define LTC4296_SIG_OVERRIDE_BAD_MSK NO_OS_BIT(1)
190 #define LTC4296_SIG_OVERRIDE_GOOD_MSK NO_OS_BIT(0)
191 
192 /* LTC4296_REG_PXADCCFG */
193 #define LTC4296_MFVS_THRESHOLD_MSK NO_OS_GENMASK(7, 0)
194 
195 /* LTC4296_REG_PXADCDAT */
196 #define LTC4296_MISSED_MSK NO_OS_BIT(13)
197 #define LTC4296_NEW_MSK NO_OS_BIT(12)
198 #define LTC4296_SOURCE_CURRENT_MSK NO_OS_GENMASK(11, 0)
199 
200 /* Miscellaneous Definitions*/
201 #define LTC4296_SPI_READ 0x01
202 #define LTC4296_SPI_WRITE 0x00
203 
204 #define LTC4296_RESET_CODE 0x73
205 #define LTC4296_UNLOCK_KEY 0x05
206 #define LTC4296_LOCK_KEY 0xA0
207 
208 #define LTC4296_ADC_OFFSET 2049
209 
210 #define LTC4296_VGAIN 35230 / 1000
211 #define LTC4296_IGAIN 1 / 10
212 
213 #define LTC4296_VMAX 1
214 #define LTC4296_VMIN 0
215 
216 #define LTC4296_MAX_PORTS 5
217 
218 #define RTESTLOAD 200 /*(ohm)*/
219 
220 /******************************************************************************/
221 /*************************** Types Declarations *******************************/
222 /******************************************************************************/
223 
227 struct ltc4296_dev {
229 };
230 
236 };
237 
244 };
245 
256 };
257 
264 };
265 
270  LTC_PSE_STATUS_DISABLED = 0, /* 000b Port is disabled */
271  LTC_PSE_STATUS_SLEEPING, /* 001b Port is in sleeping */
272  LTC_PSE_STATUS_DELIVERING, /* 010b Port is delivering power */
273  LTC_PSE_STATUS_SEARCHING, /* 011b Port is searching */
274  LTC_PSE_STATUS_ERROR, /* 100b Port is in error */
275  LTC_PSE_STATUS_IDLE, /* 101b Port is idle */
276  LTC_PSE_STATUS_PREPDET, /* 110b Port is preparing for detection */
277  LTC_PSE_STATUS_UNKNOWN /* 111b Port is in an unknown state */
278 };
279 
300 };
301 
309 };
310 
322 };
323 
349 };
350 
351 /******************************************************************************/
352 /************************ Functions Declarations ******************************/
353 /******************************************************************************/
354 
356 int ltc4296_reg_write(struct ltc4296_dev *dev, uint8_t reg, uint16_t data);
357 
359 int ltc4296_reg_read(struct ltc4296_dev *dev, uint8_t reg, uint16_t *data);
360 
362 int ltc4296_reset(struct ltc4296_dev *dev);
363 
365 int ltc4296_get_port_addr(enum ltc4296_port port_no,
366  enum ltc4296_port_reg_offset_e port_offset,
367  uint8_t *port_addr);
368 
371 
373 int ltc4296_clear_ckt_breaker(struct ltc4296_dev *dev);
374 
376 int ltc4296_read_global_faults(struct ltc4296_dev *dev, uint16_t *g_events);
377 
379 int ltc4296_unlock(struct ltc4296_dev *dev);
380 
382 int ltc4296_is_locked(struct ltc4296_dev *dev, enum ltc4296_state *state);
383 
385 int ltc4296_read_gadc(struct ltc4296_dev *dev, int *port_voltage_mv);
386 
388 int ltc4296_set_gadc_vin(struct ltc4296_dev *dev);
389 
391 int ltc4296_is_vin_valid(struct ltc4296_dev *dev, int port_vin_mv,
392  enum ltc4296_board_class ltcboard_class, bool *vin_valid);
393 
395 int ltc4296_is_vout_valid(struct ltc4296_dev *dev, int port_vout_mv,
396  enum ltc4296_board_class ltcboard_class, bool *vout_valid);
397 
399 int ltc4296_disable_gadc(struct ltc4296_dev *dev);
400 
402 int ltc4296_read_port_events(struct ltc4296_dev *dev, enum ltc4296_port port_no,
403  uint16_t *port_events);
404 
406 int ltc4296_clear_port_events(struct ltc4296_dev *dev,
407  enum ltc4296_port port_no);
408 
410 int ltc4296_read_port_status(struct ltc4296_dev *dev, enum ltc4296_port port_no,
411  uint16_t *port_status);
412 
414 int ltc4296_is_port_disabled(struct ltc4296_dev *dev, enum ltc4296_port port_no,
415  enum ltc4296_port_status *port_chk);
416 
418 int ltc4296_port_disable(struct ltc4296_dev *dev, enum ltc4296_port port_no);
419 
422  enum ltc4296_port port_no,
423  enum ltc4296_pse_status *pwr_status);
424 
427  enum ltc4296_port port_no, bool *pwr_status);
428 
430 int ltc4296_read_port_adc(struct ltc4296_dev *dev, enum ltc4296_port port_no,
431  int *port_i_out_ma);
432 
434 int ltc4296_port_prebias(struct ltc4296_dev *dev, enum ltc4296_port port_no,
435  enum ltc4296_config mode);
436 
438 int ltc4296_port_en(struct ltc4296_dev *dev, enum ltc4296_port port_no);
439 
442  enum ltc4296_port port_no);
443 
445 int ltc4296_set_port_mfvs(struct ltc4296_dev *dev, enum ltc4296_port port_no);
446 
448 int ltc4296_set_port_pwr(struct ltc4296_dev *dev, enum ltc4296_port port_no);
449 
451 int ltc4296_force_port_pwr(struct ltc4296_dev *dev, enum ltc4296_port port_no);
452 
455  enum ltc4296_port port_no);
456 
458 int ltc4296_set_gadc_vout(struct ltc4296_dev *dev, enum ltc4296_port port_no);
459 
461 int ltc4296_print_global_faults(uint16_t g_events);
462 
464 int ltc4296_print_port_events(enum ltc4296_port port_no, uint16_t port_events);
465 
467 int ltc4296_chk_global_events(struct ltc4296_dev *dev);
468 
470 int ltc4296_chk_port_events(struct ltc4296_dev *dev,
472 
474 int ltc4296_init(struct ltc4296_dev** device,
476 
478 int ltc4296_remove(struct ltc4296_dev* dev);
479 
480 #endif
ltc4296_remove
int ltc4296_remove(struct ltc4296_dev *dev)
Free allocated resources.
Definition: ltc4296.c:1086
LTC4296_OVERLOAD_DETECTED_IPOWERED_MSK
#define LTC4296_OVERLOAD_DETECTED_IPOWERED_MSK
Definition: ltc4296.h:145
ltc4296_port
ltc4296_port
Device Port Numbers.
Definition: ltc4296.h:249
LTC_PSE_STATUS_SEARCHING
@ LTC_PSE_STATUS_SEARCHING
Definition: ltc4296.h:273
ltc4296_print_port_events
int ltc4296_print_port_events(enum ltc4296_port port_no, uint16_t port_events)
Print port events.
Definition: ltc4296.c:883
no_os_put_unaligned_be16
void no_os_put_unaligned_be16(uint16_t val, uint8_t *buf)
LTC_UNLOCKED
@ LTC_UNLOCKED
Definition: ltc4296.h:242
LTC4296_POWER_STABLE_MSK
#define LTC4296_POWER_STABLE_MSK
Definition: ltc4296.h:157
LTC4296_REG_GFLTEV
#define LTC4296_REG_GFLTEV
Definition: ltc4296.h:54
no_os_alloc.h
LTC4296_REG_GCMD
#define LTC4296_REG_GCMD
Definition: ltc4296.h:58
ltc4296_init_param::spi_init
struct no_os_spi_init_param * spi_init
Definition: ltc4296.h:235
LTC_PSE_STATUS_UNKNOWN
@ LTC_PSE_STATUS_UNKNOWN
Definition: ltc4296.h:277
ltc4296_clear_ckt_breaker
int ltc4296_clear_ckt_breaker(struct ltc4296_dev *dev)
Clear circuit break faults.
Definition: ltc4296.c:233
ltc4296_disable_gadc
int ltc4296_disable_gadc(struct ltc4296_dev *dev)
Disable the global ADC.
Definition: ltc4296.c:412
ADI_LTC_SCCP_PD_PRESENT
@ ADI_LTC_SCCP_PD_PRESENT
Definition: ltc4296.h:334
PRODUCTION_POWER_TEST
@ PRODUCTION_POWER_TEST
Definition: ltc4296.h:294
ltc4296_class_str
char * ltc4296_class_str[12][25]
Definition: ltc4296.c:77
LTC4296_REG_GADCDAT
#define LTC4296_REG_GADCDAT
Definition: ltc4296.h:61
LTC4296_MEMORY_FAULT_MSK
#define LTC4296_MEMORY_FAULT_MSK
Definition: ltc4296.h:102
LTC4296_RESET_CODE
#define LTC4296_RESET_CODE
Definition: ltc4296.h:204
ltc4296_force_port_pwr
int ltc4296_force_port_pwr(struct ltc4296_dev *dev, enum ltc4296_port port_no)
Force port to power mode.
Definition: ltc4296.c:791
ltc4296_is_port_disabled
int ltc4296_is_port_disabled(struct ltc4296_dev *dev, enum ltc4296_port port_no, enum ltc4296_port_status *port_chk)
Check if port is enabled/disabled.
Definition: ltc4296.c:503
ltc4296_reg_read
int ltc4296_reg_read(struct ltc4296_dev *dev, uint8_t reg, uint16_t *data)
Register Read.
Definition: ltc4296.c:128
no_os_spi_write_and_read
int32_t no_os_spi_write_and_read(struct no_os_spi_desc *desc, uint8_t *data, uint16_t bytes_number)
Write and read data to/from SPI.
Definition: no_os_spi.c:165
LTC4296_SW_RESET_MSK
#define LTC4296_SW_RESET_MSK
Definition: ltc4296.h:121
PRODUCTION_DATA_TEST
@ PRODUCTION_DATA_TEST
Definition: ltc4296.h:297
ADI_LTC_SCCP_PD_CRC_FAILED
@ ADI_LTC_SCCP_PD_CRC_FAILED
Definition: ltc4296.h:340
no_os_spi.h
Header file of SPI Interface.
ltc4296_read_port_events
int ltc4296_read_port_events(struct ltc4296_dev *dev, enum ltc4296_port port_no, uint16_t *port_events)
Read Port Events.
Definition: ltc4296.c:435
ltc4296_get_port_addr
int ltc4296_get_port_addr(enum ltc4296_port port_no, enum ltc4296_port_reg_offset_e port_offset, uint8_t *port_addr)
Get port address.
Definition: ltc4296.c:200
ltc4296_chk_port_events
int ltc4296_chk_port_events(struct ltc4296_dev *dev, enum ltc4296_port ltc4296_port)
ltc4296_state
ltc4296_state
Device State.
Definition: ltc4296.h:241
ltc4296_is_locked
int ltc4296_is_locked(struct ltc4296_dev *dev, enum ltc4296_state *state)
Check device state.
Definition: ltc4296.c:288
LTC4296_MFVS_TIMEOUT_MSK
#define LTC4296_MFVS_TIMEOUT_MSK
Definition: ltc4296.h:146
LTC_PSE_STATUS_DISABLED
@ LTC_PSE_STATUS_DISABLED
Definition: ltc4296.h:270
pr_err
#define pr_err(fmt, args...)
Definition: no_os_print_log.h:94
ltc4296_read_port_status
int ltc4296_read_port_status(struct ltc4296_dev *dev, enum ltc4296_port port_no, uint16_t *port_status)
Read Port Status.
Definition: ltc4296.c:480
ADI_LTC_SCCP_PD_LINE_NOT_HIGH
@ ADI_LTC_SCCP_PD_LINE_NOT_HIGH
Definition: ltc4296.h:338
ltc4296_is_vin_valid
int ltc4296_is_vin_valid(struct ltc4296_dev *dev, int port_vin_mv, enum ltc4296_board_class ltcboard_class, bool *vin_valid)
Check if input voltage is valid.
Definition: ltc4296.c:366
ltc4296_clear_ckt_breaker
int ltc4296_clear_ckt_breaker(struct ltc4296_dev *dev)
Clear circuit break faults.
Definition: ltc4296.c:233
ltc4296_disable_gadc
int ltc4296_disable_gadc(struct ltc4296_dev *dev)
Disable the global ADC.
Definition: ltc4296.c:412
no_os_delay.h
Header file of Delay functions.
ltc4296_dev::spi_desc
struct no_os_spi_desc * spi_desc
Definition: ltc4296.h:228
ltc4296_set_port_mfvs
int ltc4296_set_port_mfvs(struct ltc4296_dev *dev, enum ltc4296_port port_no)
Set port to maintain full voltage signature.
Definition: ltc4296.c:738
pr_info
#define pr_info(fmt, args...)
Definition: no_os_print_log.h:121
RESERVED
@ RESERVED
Definition: ltc4296.h:298
ltc4296_clear_global_faults
int ltc4296_clear_global_faults(struct ltc4296_dev *dev)
Clear global faults.
Definition: ltc4296.c:217
ADI_LTC_SUCCESS
@ ADI_LTC_SUCCESS
Definition: ltc4296.h:328
ltc4296_is_port_pwr_stable
int ltc4296_is_port_pwr_stable(struct ltc4296_dev *dev, enum ltc4296_port port_no, bool *pwr_status)
Check if port has stable power.
Definition: ltc4296.c:593
no_os_spi_init_param::mode
enum no_os_spi_mode mode
Definition: no_os_spi.h:139
APL_CLASS3
@ APL_CLASS3
Definition: ltc4296.h:293
ltc4296_set_gadc_vout
int ltc4296_set_gadc_vout(struct ltc4296_dev *dev, enum ltc4296_port port_no)
Configure Global ADC to read output voltage.
Definition: ltc4296.c:839
ltc4296_reset
int ltc4296_reset(struct ltc4296_dev *dev)
Software reset.
Definition: ltc4296.c:175
device
Definition: ad9361_util.h:75
ltc4296_chk_global_events
int ltc4296_chk_global_events(struct ltc4296_dev *dev)
Check global events.
Definition: ltc4296.c:928
LTC_PORT_ADCDAT
@ LTC_PORT_ADCDAT
Definition: ltc4296.h:320
no_os_print_log.h
Print messages helpers.
ltc4296_unlock
int ltc4296_unlock(struct ltc4296_dev *dev)
Device unlock.
Definition: ltc4296.c:273
ltc4296_port_disable
int ltc4296_port_disable(struct ltc4296_dev *dev, enum ltc4296_port port_no)
Check if port is disabled.
Definition: ltc4296.c:536
ADI_LTC_TEST_FAILED
@ ADI_LTC_TEST_FAILED
Definition: ltc4296.h:347
ltc4296_print_global_faults
int ltc4296_print_global_faults(uint16_t g_events)
Print global faults.
Definition: ltc4296.c:861
LTC_CFG_RESET
@ LTC_CFG_RESET
Definition: ltc4296.h:308
ltc4296_config
ltc4296_config
Device Configuration Modes.
Definition: ltc4296.h:305
LTC_PORT_ENABLED
@ LTC_PORT_ENABLED
Definition: ltc4296.h:263
APL_CLASSC
@ APL_CLASSC
Definition: ltc4296.h:292
no_os_calloc
void * no_os_calloc(size_t nitems, size_t size)
Allocate memory and return a pointer to it, set memory to 0.
Definition: chibios_alloc.c:60
ADI_LTC_INVALID_ADC_PORT_CURRENT
@ ADI_LTC_INVALID_ADC_PORT_CURRENT
Definition: ltc4296.h:344
ADI_LTC_SCCP_COMPLETE
@ ADI_LTC_SCCP_COMPLETE
Definition: ltc4296.h:330
ltc4296_init_param
Initialization Structure.
Definition: ltc4296.h:234
LTC4296_OVERLOAD_DETECTED_ISLEEP_MSK
#define LTC4296_OVERLOAD_DETECTED_ISLEEP_MSK
Definition: ltc4296.h:144
SPOE_CLASS10
@ SPOE_CLASS10
Definition: ltc4296.h:284
LTC4296_VGAIN
#define LTC4296_VGAIN
Definition: ltc4296.h:210
LTC_PORT0
@ LTC_PORT0
Definition: ltc4296.h:250
LTC_PORT_DISABLED
@ LTC_PORT_DISABLED
Definition: ltc4296.h:262
ltc4296_port_en
int ltc4296_port_en(struct ltc4296_dev *dev, enum ltc4296_port port_no)
Enable specific port.
Definition: ltc4296.c:690
ltc4296_port_pwr_available
int ltc4296_port_pwr_available(struct ltc4296_dev *dev, enum ltc4296_port port_no)
Set port is able to source power.
Definition: ltc4296.c:814
ltc4296_is_vin_valid
int ltc4296_is_vin_valid(struct ltc4296_dev *dev, int port_vin_mv, enum ltc4296_board_class ltcboard_class, bool *vin_valid)
Check if input voltage is valid.
Definition: ltc4296.c:366
ltc4296_read_port_status
int ltc4296_read_port_status(struct ltc4296_dev *dev, enum ltc4296_port port_no, uint16_t *port_status)
Read Port Status.
Definition: ltc4296.c:480
LTC4296_UVLO_DIGITAL_MSK
#define LTC4296_UVLO_DIGITAL_MSK
Definition: ltc4296.h:99
ltc4296_is_port_deliver_pwr
int ltc4296_is_port_deliver_pwr(struct ltc4296_dev *dev, enum ltc4296_port port_no, enum ltc4296_pse_status *pwr_status)
Check if port delivers power.
Definition: ltc4296.c:558
ltc4296_port_en
int ltc4296_port_en(struct ltc4296_dev *dev, enum ltc4296_port port_no)
Enable specific port.
Definition: ltc4296.c:690
ltc4296_read_port_adc
int ltc4296_read_port_adc(struct ltc4296_dev *dev, enum ltc4296_port port_no, int *port_i_out_ma)
Read port ADC.
Definition: ltc4296.c:627
LTC_PORT_ADCCFG
@ LTC_PORT_ADCCFG
Definition: ltc4296.h:319
no_os_mdelay
void no_os_mdelay(uint32_t msecs)
Wait until msecs milliseconds passed.
Definition: aducm3029_delay.c:132
LTC_PSE_STATUS_DELIVERING
@ LTC_PSE_STATUS_DELIVERING
Definition: ltc4296.h:272
LTC4296_LOW_CKT_BRK_FAULT_MSK
#define LTC4296_LOW_CKT_BRK_FAULT_MSK
Definition: ltc4296.h:103
no_os_field_prep
uint32_t no_os_field_prep(uint32_t mask, uint32_t val)
ltc4296_chk_port_events
int ltc4296_chk_port_events(struct ltc4296_dev *dev, enum ltc4296_port ltc4296_port)
Check port events.
Definition: ltc4296.c:1005
ltc4296_spoe_vol_range_mv
int ltc4296_spoe_vol_range_mv[12][2]
Definition: ltc4296.c:62
LTC_PORT_SELFTEST
@ LTC_PORT_SELFTEST
Definition: ltc4296.h:321
ADI_LTC_DISCONTINUE_TEST
@ ADI_LTC_DISCONTINUE_TEST
Definition: ltc4296.h:346
LTC4296_END_CLASSIFICATION_MSK
#define LTC4296_END_CLASSIFICATION_MSK
Definition: ltc4296.h:168
ltc4296_port_prebias
int ltc4296_port_prebias(struct ltc4296_dev *dev, enum ltc4296_port port_no, enum ltc4296_config mode)
Stimulate valid wake-up signature for a port.
Definition: ltc4296.c:663
LTC4296_VMAX
#define LTC4296_VMAX
Definition: ltc4296.h:213
ltc4296_unlock
int ltc4296_unlock(struct ltc4296_dev *dev)
Device unlock.
Definition: ltc4296.c:273
ltc4296_remove
int ltc4296_remove(struct ltc4296_dev *dev)
Free allocated resources.
Definition: ltc4296.c:1086
LTC4296_SW_PSE_READY_MSK
#define LTC4296_SW_PSE_READY_MSK
Definition: ltc4296.h:176
LTC_PORT1
@ LTC_PORT1
Definition: ltc4296.h:251
LTC_PORT_STATUS
@ LTC_PORT_STATUS
Definition: ltc4296.h:316
LTC4296_PD_WAKEUP_MSK
#define LTC4296_PD_WAKEUP_MSK
Definition: ltc4296.h:148
ltc4296_reg_read
int ltc4296_reg_read(struct ltc4296_dev *dev, uint8_t reg, uint16_t *data)
Register Read.
Definition: ltc4296.c:128
ltc4296_is_port_pwr_stable
int ltc4296_is_port_pwr_stable(struct ltc4296_dev *dev, enum ltc4296_port port_no, bool *pwr_status)
Check if port has stable power.
Definition: ltc4296.c:593
LTC4296_PEC_FAULT_MSK
#define LTC4296_PEC_FAULT_MSK
Definition: ltc4296.h:101
LTC4296_TOFF_TIMER_DONE_MSK
#define LTC4296_TOFF_TIMER_DONE_MSK
Definition: ltc4296.h:143
ltc4296_set_port_pwr
int ltc4296_set_port_pwr(struct ltc4296_dev *dev, enum ltc4296_port port_no)
Set port to power mode.
Definition: ltc4296.c:767
LTC4296_TMFVDO_TIMER_DISABLE_MSK
#define LTC4296_TMFVDO_TIMER_DISABLE_MSK
Definition: ltc4296.h:175
APL_CLASSA_NOAUTONEG
@ APL_CLASSA_NOAUTONEG
Definition: ltc4296.h:291
DEBUGMODE
@ DEBUGMODE
Definition: ltc4296.h:299
ltc4296_is_vout_valid
int ltc4296_is_vout_valid(struct ltc4296_dev *dev, int port_vout_mv, enum ltc4296_board_class ltcboard_class, bool *vout_valid)
Check if output voltage is valid.
Definition: ltc4296.c:390
ltc4296_reset
int ltc4296_reset(struct ltc4296_dev *dev)
Software reset.
Definition: ltc4296.c:175
ltc4296_read_global_faults
int ltc4296_read_global_faults(struct ltc4296_dev *dev, uint16_t *g_events)
Read global faults.
Definition: ltc4296.c:257
ADI_LTC_APL_COMPLETE
@ ADI_LTC_APL_COMPLETE
Definition: ltc4296.h:341
ltc4296_force_port_pwr
int ltc4296_force_port_pwr(struct ltc4296_dev *dev, enum ltc4296_port port_no)
Force port to power mode.
Definition: ltc4296.c:791
SPOE_CLASS13
@ SPOE_CLASS13
Definition: ltc4296.h:287
LTC4296_SPI_READ
#define LTC4296_SPI_READ
Definition: ltc4296.h:201
LTC_PORT4
@ LTC_PORT4
Definition: ltc4296.h:254
ltc4296_init
int ltc4296_init(struct ltc4296_dev **device, struct ltc4296_init_param *init_param)
Device initialization.
Definition: ltc4296.c:1033
ltc4296_port_reg_offset_e
ltc4296_port_reg_offset_e
Device Port Register offsets.
Definition: ltc4296.h:314
ADI_LTC_SCCP_PD_CLASS_NOT_SUPPORTED
@ ADI_LTC_SCCP_PD_CLASS_NOT_SUPPORTED
Definition: ltc4296.h:336
ltc4296_read_global_faults
int ltc4296_read_global_faults(struct ltc4296_dev *dev, uint16_t *g_events)
Read global faults.
Definition: ltc4296.c:257
ADI_LTC_INVALID_ADC_VOLTAGE
@ ADI_LTC_INVALID_ADC_VOLTAGE
Definition: ltc4296.h:343
LTC4296_SW_EN_MSK
#define LTC4296_SW_EN_MSK
Definition: ltc4296.h:182
LTC4296_REG_GADCCFG
#define LTC4296_REG_GADCCFG
Definition: ltc4296.h:60
LTC4296_TINRUSH_TIMER_DONE_MSK
#define LTC4296_TINRUSH_TIMER_DONE_MSK
Definition: ltc4296.h:147
ADI_LTC_DISCONTINUE_APL
@ ADI_LTC_DISCONTINUE_APL
Definition: ltc4296.h:342
no_os_spi_desc
Structure holding SPI descriptor.
Definition: no_os_spi.h:177
ltc4296_is_locked
int ltc4296_is_locked(struct ltc4296_dev *dev, enum ltc4296_state *state)
Check device state.
Definition: ltc4296.c:288
adi_ltc_result
adi_ltc_result
Device Result Codes.
Definition: ltc4296.h:327
ltc4296_is_port_disabled
int ltc4296_is_port_disabled(struct ltc4296_dev *dev, enum ltc4296_port port_no, enum ltc4296_port_status *port_chk)
Check if port is enabled/disabled.
Definition: ltc4296.c:503
ltc4296_clear_port_events
int ltc4296_clear_port_events(struct ltc4296_dev *dev, enum ltc4296_port port_no)
Clear Port Events.
Definition: ltc4296.c:457
ltc4296_print_global_faults
int ltc4296_print_global_faults(uint16_t g_events)
Print global faults.
Definition: ltc4296.c:861
SPOE_CLASS12
@ SPOE_CLASS12
Definition: ltc4296.h:286
ltc4296_port_prebias
int ltc4296_port_prebias(struct ltc4296_dev *dev, enum ltc4296_port port_no, enum ltc4296_config mode)
Stimulate valid wake-up signature for a port.
Definition: ltc4296.c:663
ltc4296_is_vout_valid
int ltc4296_is_vout_valid(struct ltc4296_dev *dev, int port_vout_mv, enum ltc4296_board_class ltcboard_class, bool *vout_valid)
Check if output voltage is valid.
Definition: ltc4296.c:390
ltc4296_read_port_events
int ltc4296_read_port_events(struct ltc4296_dev *dev, enum ltc4296_port port_no, uint16_t *port_events)
Read Port Events.
Definition: ltc4296.c:435
ltc4296_clear_global_faults
int ltc4296_clear_global_faults(struct ltc4296_dev *dev)
Clear global faults.
Definition: ltc4296.c:217
ADI_LTC_SCCP_PD_DETECTION_FAILED
@ ADI_LTC_SCCP_PD_DETECTION_FAILED
Definition: ltc4296.h:331
ltc4296_clear_port_events
int ltc4296_clear_port_events(struct ltc4296_dev *dev, enum ltc4296_port port_no)
Clear Port Events.
Definition: ltc4296.c:457
LTC4296_COMMAND_FAULT_MSK
#define LTC4296_COMMAND_FAULT_MSK
Definition: ltc4296.h:100
LTC4296_ADC_OFFSET
#define LTC4296_ADC_OFFSET
Definition: ltc4296.h:208
LTC4296_GADC_MSK
#define LTC4296_GADC_MSK
Definition: ltc4296.h:138
ADI_LTC_DISCONTINUE_SCCP
@ ADI_LTC_DISCONTINUE_SCCP
Definition: ltc4296.h:329
ltc4296_read_gadc
int ltc4296_read_gadc(struct ltc4296_dev *dev, int *port_voltage_mv)
Read global ADC.
Definition: ltc4296.c:314
ltc4296_dev
Device Structure.
Definition: ltc4296.h:227
SPOE_CLASS14
@ SPOE_CLASS14
Definition: ltc4296.h:288
ADI_LTC_INVALID_VIN
@ ADI_LTC_INVALID_VIN
Definition: ltc4296.h:348
LTC4296_UNLOCK_KEY
#define LTC4296_UNLOCK_KEY
Definition: ltc4296.h:205
ADI_LTC_SCCP_PD_NOT_PRESENT
@ ADI_LTC_SCCP_PD_NOT_PRESENT
Definition: ltc4296.h:332
SPOE_CLASS11
@ SPOE_CLASS11
Definition: ltc4296.h:285
no_os_free
void no_os_free(void *ptr)
Deallocate memory previously allocated by a call to no_os_calloc or no_os_malloc.
Definition: chibios_alloc.c:75
SPOE_OFF
@ SPOE_OFF
Definition: ltc4296.h:296
LTC4296_PSE_STATUS_MSK
#define LTC4296_PSE_STATUS_MSK
Definition: ltc4296.h:164
LTC4296_LSNS_FORWARD_FAULT_MSK
#define LTC4296_LSNS_FORWARD_FAULT_MSK
Definition: ltc4296.h:149
LTC4296_SW_POWER_AVAILABLE_MSK
#define LTC4296_SW_POWER_AVAILABLE_MSK
Definition: ltc4296.h:177
LTC4296_VMIN
#define LTC4296_VMIN
Definition: ltc4296.h:214
init_param
struct ad7616_init_param init_param
Definition: ad7616_sdz.c:119
ADI_LTC_SCCP_PD_CLASS_NOT_COMPATIBLE
@ ADI_LTC_SCCP_PD_CLASS_NOT_COMPATIBLE
Definition: ltc4296.h:337
LTC4296_NEW_MSK
#define LTC4296_NEW_MSK
Definition: ltc4296.h:197
LTC_PORT_CFG0
@ LTC_PORT_CFG0
Definition: ltc4296.h:317
APL_CLASSA_OLD_DEMO
@ APL_CLASSA_OLD_DEMO
Definition: ltc4296.h:295
LTC_CFG_SCCP_MODE
@ LTC_CFG_SCCP_MODE
Definition: ltc4296.h:306
ltc4296_board_class
ltc4296_board_class
Board Classes.
Definition: ltc4296.h:283
ADI_LTC_TEST_COMPLETE
@ ADI_LTC_TEST_COMPLETE
Definition: ltc4296.h:345
ltc4296_port_status
ltc4296_port_status
Device Port Status.
Definition: ltc4296.h:261
ltc4296_read_gadc
int ltc4296_read_gadc(struct ltc4296_dev *dev, int *port_voltage_mv)
Read global ADC.
Definition: ltc4296.c:314
no_os_spi_remove
int32_t no_os_spi_remove(struct no_os_spi_desc *desc)
Free the resources allocated by no_os_spi_init().
Definition: no_os_spi.c:122
LTC4296_SET_CLASSIFICATION_MODE_MSK
#define LTC4296_SET_CLASSIFICATION_MODE_MSK
Definition: ltc4296.h:169
LTC_CFG_APL_MODE
@ LTC_CFG_APL_MODE
Definition: ltc4296.h:307
ltc4296_is_port_deliver_pwr
int ltc4296_is_port_deliver_pwr(struct ltc4296_dev *dev, enum ltc4296_port port_no, enum ltc4296_pse_status *pwr_status)
Check if port delivers power.
Definition: ltc4296.c:558
ltc4296_set_gadc_vout
int ltc4296_set_gadc_vout(struct ltc4296_dev *dev, enum ltc4296_port port_no)
Configure Global ADC to read output voltage.
Definition: ltc4296.c:839
no_os_gpio.h
Header file of GPIO Interface.
LTC_PORT2
@ LTC_PORT2
Definition: ltc4296.h:252
LTC_PSE_STATUS_IDLE
@ LTC_PSE_STATUS_IDLE
Definition: ltc4296.h:275
ltc4296_reg_write
int ltc4296_reg_write(struct ltc4296_dev *dev, uint8_t reg, uint16_t data)
Register Write.
Definition: ltc4296.c:155
LTC_LOCKED
@ LTC_LOCKED
Definition: ltc4296.h:243
ADI_LTC_SCCP_PD_LINE_NOT_LOW
@ ADI_LTC_SCCP_PD_LINE_NOT_LOW
Definition: ltc4296.h:339
ltc4296_port_disable
int ltc4296_port_disable(struct ltc4296_dev *dev, enum ltc4296_port port_no)
Check if port is disabled.
Definition: ltc4296.c:536
LTC4296_SPI_WRITE
#define LTC4296_SPI_WRITE
Definition: ltc4296.h:202
ltc4296_port_en_and_classification
int ltc4296_port_en_and_classification(struct ltc4296_dev *dev, enum ltc4296_port port_no)
Enable specific port and classify.
Definition: ltc4296.c:714
LTC4296_MAX_PORTS
#define LTC4296_MAX_PORTS
Definition: ltc4296.h:216
no_os_spi_init
int32_t no_os_spi_init(struct no_os_spi_desc **desc, const struct no_os_spi_init_param *param)
Initialize the SPI communication peripheral.
Definition: no_os_spi.c:58
ltc4296_print_port_events
int ltc4296_print_port_events(enum ltc4296_port port_no, uint16_t port_events)
Print port events.
Definition: ltc4296.c:883
no_os_get_unaligned_be16
uint16_t no_os_get_unaligned_be16(uint8_t *buf)
LTC_PSE_STATUS_SLEEPING
@ LTC_PSE_STATUS_SLEEPING
Definition: ltc4296.h:271
ADI_LTC_SCCP_PD_CLASS_COMPATIBLE
@ ADI_LTC_SCCP_PD_CLASS_COMPATIBLE
Definition: ltc4296.h:335
ltc4296_pse_status
ltc4296_pse_status
Device PSE Status.
Definition: ltc4296.h:269
ltc4296_set_port_mfvs
int ltc4296_set_port_mfvs(struct ltc4296_dev *dev, enum ltc4296_port port_no)
Set port to maintain full voltage signature.
Definition: ltc4296.c:738
LTC_PSE_STATUS_PREPDET
@ LTC_PSE_STATUS_PREPDET
Definition: ltc4296.h:276
no_os_util.h
Header file of utility functions.
ltc4296_reg_write
int ltc4296_reg_write(struct ltc4296_dev *dev, uint8_t reg, uint16_t data)
Register Write.
Definition: ltc4296.c:155
ltc4296_get_port_addr
int ltc4296_get_port_addr(enum ltc4296_port port_no, enum ltc4296_port_reg_offset_e port_offset, uint8_t *port_addr)
Get port address.
Definition: ltc4296.c:200
ltc4296_port_pwr_available
int ltc4296_port_pwr_available(struct ltc4296_dev *dev, enum ltc4296_port port_no)
Set port is able to source power.
Definition: ltc4296.c:814
ltc4296_chk_global_events
int ltc4296_chk_global_events(struct ltc4296_dev *dev)
Check global events.
Definition: ltc4296.c:928
LTC_PORT3
@ LTC_PORT3
Definition: ltc4296.h:253
SPOE_CLASS15
@ SPOE_CLASS15
Definition: ltc4296.h:289
ltc4296_port_en_and_classification
int ltc4296_port_en_and_classification(struct ltc4296_dev *dev, enum ltc4296_port port_no)
Enable specific port and classify.
Definition: ltc4296.c:714
ltc4296_set_gadc_vin
int ltc4296_set_gadc_vin(struct ltc4296_dev *dev)
Set the global ADC to measure voltage.
Definition: ltc4296.c:340
ltc4296.h
Header file for the LTC4296 Driver.
ltc4296_init
int ltc4296_init(struct ltc4296_dev **device, struct ltc4296_init_param *init_param)
Device initialization.
Definition: ltc4296.c:1033
LTC_PSE_STATUS_ERROR
@ LTC_PSE_STATUS_ERROR
Definition: ltc4296.h:274
ltc4296_read_port_adc
int ltc4296_read_port_adc(struct ltc4296_dev *dev, enum ltc4296_port port_no, int *port_i_out_ma)
Read port ADC.
Definition: ltc4296.c:627
ltc4296_set_port_pwr
int ltc4296_set_port_pwr(struct ltc4296_dev *dev, enum ltc4296_port port_no)
Set port to power mode.
Definition: ltc4296.c:767
LTC4296_LSNS_REVERSE_FAULT_MSK
#define LTC4296_LSNS_REVERSE_FAULT_MSK
Definition: ltc4296.h:150
LTC_PORT_EVENTS
@ LTC_PORT_EVENTS
Definition: ltc4296.h:315
LTC4296_GADC_NEW_MSK
#define LTC4296_GADC_NEW_MSK
Definition: ltc4296.h:137
ADI_LTC_SCCP_PD_RES_INVALID
@ ADI_LTC_SCCP_PD_RES_INVALID
Definition: ltc4296.h:333
ltc4296_set_gadc_vin
int ltc4296_set_gadc_vin(struct ltc4296_dev *dev)
Set the global ADC to measure voltage.
Definition: ltc4296.c:340
LTC_NO_PORT
@ LTC_NO_PORT
Definition: ltc4296.h:255
errno.h
Error macro definition for ARM Compiler.
NO_OS_DIV_ROUND_CLOSEST
#define NO_OS_DIV_ROUND_CLOSEST(x, y)
Definition: no_os_util.h:60
LTC_PORT_CFG1
@ LTC_PORT_CFG1
Definition: ltc4296.h:318
APL_CLASSA
@ APL_CLASSA
Definition: ltc4296.h:290
no_os_spi_init_param
Structure holding the parameters for SPI initialization.
Definition: no_os_spi.h:131