43#define MAX17851_UART_MAX_BYTES_NB 31
45#define MAX17851_FRAME_SIZE 2
47#define MAX17851_RD_REG(reg) ((reg) + 1)
49#define MAX17851_GPIO_RECOVERY_DELAY_DISABLED 0xFF
50#define MAX17851_CONTACT_TIMER_DELAY_INFINITE 0xFF
52#define MAX17851_CONFIG_GEN2_MASK(sel) NO_OS_BIT(sel)
53#define MAX17851_ALRTPCKT_TIME_MASK NO_OS_GENMASK(3, 0)
54#define MAX17851_LOADQ_MASK NO_OS_GENMASK(1, 0)
55#define MAX17851_TXQ_MASK NO_OS_GENMASK(3, 2)
56#define MAX17851_ALRT_MASK(alrt) NO_OS_BIT(((alrt) % 8))
57#define MAX17851_BAUD_MASK NO_OS_GENMASK(6, 4)
58#define MAX17851_SINGLE_MASK NO_OS_BIT(7)
59#define MAX17851_MS_MASK NO_OS_GENMASK(5, 4)
60#define MAX17851_ALRTPCKT_DBNC_MASK NO_OS_GENMASK(5, 3)
61#define MAX17851_SAFEMON_GPIO_MASK(x) NO_OS_BIT(x)
62#define MAX17851_COMM_RETRY_COUNT_MASK NO_OS_GENMASK(5, 4)
63#define MAX17851_COMM_TIMEOUT_DELAY_MASK NO_OS_GENMASK(2, 0)
65#define MAX17851_STATUS_RX_REG 0x00
66#define MAX17851_STATUS_TX_REG 0x02
67#define MAX17851_STATUS_LSSM_BYTE_REG 0x04
68#define MAX17851_STATUS_GEN_REG 0x06
69#define MAX17851_STATUS_OPSTATE_REG 0x08
70#define MAX17851_STATUS_BUF_REG 0x0A
71#define MAX17851_STATUS_WD_REG 0x0C
72#define MAX17851_STATUS_GPIO_REG 0x0E
74#define MAX17851_ALERT_RX_REG 0x10
75#define MAX17851_ALERT_TX_REG 0x12
76#define MAX17851_ALERT_LSSM_BYTE_REG 0x14
77#define MAX17851_ALERT_GEN_REG 0x16
78#define MAX17851_ALERT_OPSTATE_REG 0x18
79#define MAX17851_ALERT_BUF_REG 0x1A
80#define MAX17851_ALERT_WD_REG 0x1C
81#define MAX17851_ALERT_GPIO_REG 0x1E
83#define MAX17851_ALRTEN_RX_REG 0x20
84#define MAX17851_ALRTEN_TX_REG 0x22
85#define MAX17851_ALRTEN_LSSM_BYTE_REG 0x24
86#define MAX17851_ALRTEN_GEN_REG 0x26
87#define MAX17851_ALRTEN_OPSTATE_REG 0x28
88#define MAX17851_ALRTEN_BUF_REG 0x2A
89#define MAX17851_ALRTEN_WD_REG 0x2C
90#define MAX17851_ALRTEN_GPIO_REG 0x2E
92#define MAX17851_CLR_TXBUF_REG 0x40
93#define MAX17851_CLR_RXBUF_REG 0x42
94#define MAX17851_CLR_LSSM_REG 0x44
95#define MAX17851_CLR_ALIVECOUNT_SEED_REG 0x48
96#define MAX17851_SWPOR_REG 0x4A
97#define MAX17851_SLP_EN_REG 0x4C
98#define MAX17851_VER_CONFIG_REG 0x4E
99#define MAX17851_LOAD_CONFIG_REG 0x50
100#define MAX17851_WD_KEY_REG 0x52
102#define MAX17851_CONFIG_GEN0_REG 0x60
103#define MAX17851_CONFIG_GEN1_REG 0x62
104#define MAX17851_CONFIG_GEN2_REG 0x64
105#define MAX17851_CONFIG_GEN3_REG 0x66
106#define MAX17851_CONFIG_GEN4_REG 0x68
107#define MAX17851_CONFIG_GEN5_REG 0x6A
108#define MAX17851_CONFIG_SAFEMON0_REG 0x6C
109#define MAX17851_CONFIG_SAFEMON1_REG 0x6E
110#define MAX17851_CONFIG_SAFEMON2_REG 0x70
111#define MAX17851_CONFIG_SAFEMON3_REG 0x72
112#define MAX17851_CONFIG_SLP_REG 0x74
113#define MAX17851_CONFIG_COMM_REG 0x76
114#define MAX17851_STATUS_DBNC_MASK0_REG 0x78
115#define MAX17851_STATUS_DBNC_MASK1_REG 0x7A
116#define MAX17851_STATUS_ERR_MASK0_REG 0x7C
117#define MAX17851_STATUS_ERR_MASK1_REG 0x7E
118#define MAX17851_CONFIG_GPIO12_REG 0x80
119#define MAX17851_CONFIG_GPIO34_REG 0x82
120#define MAX17851_CONFIG_WD0_REG 0x84
121#define MAX17851_CONFIG_WD1_REG 0x86
122#define MAX17851_CONFIG_WD2_REG 0x88
124#define MAX17851_ALRTPCKTBUF_RD_PTR_REG 0x8C
125#define MAX17851_ALRTPCKTBUF_RD_MSG_REG 0x8E
126#define MAX17851_RX_RD_MSG_REG 0x90
127#define MAX17851_RX_RD_NXT_MSG_REG 0x92
128#define MAX17851_TX_QUEUE_SEL_REG 0x94
129#define MAX17851_RX_RD_PTR_REG 0x96
130#define MAX17851_RX_WR_PTR_REG 0x98
131#define MAX17851_RX_NXT_MSG_PTR_REG 0x9A
132#define MAX17851_RX_SPACE_REG 0x9C
133#define MAX17851_RX_BYTE_REG 0x9E
135#define MAX17851_NXT_LDQ_REG 0xB0
136#define MAX17851_LDQ_REG 0xC0
137#define MAX17851_LDQ_PTR_REG 0xC2
138#define MAX17851_CONFIGQ_REG 0xD0
139#define MAX17851_CONFIG_PTR_REG 0xD2
141#define MAX17851_STATE_REG 0xDC
142#define MAX17851_COMM_RTRY_CNT_REG 0xDE
143#define MAX17851_ALRTPCKT_ERR_CNT_REG 0xE0
144#define MAX17851_WD_FAULT_CNT_REG 0xE2
145#define MAX17851_ALIVECOUNT_SEED_REG 0xE4
146#define MAX17851_ALIVECOUNT_RET_REG 0xE6
147#define MAX17851_ALIVECOUNT_Q_REG 0xE8
148#define MAX17851_FAULT_TIMER0_REG 0xEA
149#define MAX17851_FAULT_TIMER1_REG 0xEC
150#define MAX17851_SLP_CBTIMER0_REG 0xEE
151#define MAX17851_SLP_CBTIMER1_REG 0xF0
152#define MAX17851_VERSION_REG 0xF2
153#define MAX17851_MODEL_REG 0xF4
struct ad7616_init_param init_param
Definition ad7616_sdz.c:107
const struct no_os_uart_platform_ops max17851_uart_ops
MAX17851 platform specific UART platform ops structure.
Definition max17851.c:742
max17851_safemon_gpio
Definition max17851.h:280
@ MAX17851_SAFEMON_GPIO4
Definition max17851.h:284
@ MAX17851_SAFEMON_GPIO3
Definition max17851.h:283
@ MAX17851_SAFEMON_GPIO2
Definition max17851.h:282
@ MAX17851_SAFEMON_GPIO1
Definition max17851.h:281
max17851_command
Definition max17851.h:155
@ MAX17851_VER_CONFIG
Definition max17851.h:160
@ MAX17851_LOAD_CONFIG
Definition max17851.h:161
@ MAX17851_CLR_ALIVECOUNT_SEED
Definition max17851.h:157
@ MAX17851_SLP_EN
Definition max17851.h:159
@ MAX17851_CLR_LSSM
Definition max17851.h:156
@ MAX17851_WD_KEY
Definition max17851.h:162
@ MAX17851_SWPOR
Definition max17851.h:158
max17851_alrtpckt_time
Definition max17851.h:235
@ MAX17851_ALRTPCKT_5120US
Definition max17851.h:246
@ MAX17851_ALRTPCKT_10240US
Definition max17851.h:247
@ MAX17851_ALRTPCKT_40US
Definition max17851.h:239
@ MAX17851_ALRTPCKT_2560US
Definition max17851.h:245
@ MAX17851_ALRTPCKT_640US
Definition max17851.h:243
@ MAX17851_ALRTPCKT_10US
Definition max17851.h:237
@ MAX17851_ALRTPCKT_INFINITE
Definition max17851.h:248
@ MAX17851_ALRTPCKT_0US
Definition max17851.h:236
@ MAX17851_ALRTPCKT_20US
Definition max17851.h:238
@ MAX17851_ALRTPCKT_80US
Definition max17851.h:240
@ MAX17851_ALRTPCKT_1280US
Definition max17851.h:244
@ MAX17851_ALRTPCKT_160US
Definition max17851.h:241
@ MAX17851_ALRTPCKT_320US
Definition max17851.h:242
int max17851_set_safemon_dly(struct max17851_desc *desc, enum max17851_safemon_dly delay)
Select Safe Monitoring Mode Scan Delay.
Definition max17851.c:458
int max17851_set_safemon_gpio(struct max17851_desc *desc, enum max17851_safemon_gpio gpio, bool enable)
Select which GPIO pins to be configured as SAFEMON output.
Definition max17851.c:471
int max17851_write_msg(struct max17851_desc *desc, const uint8_t *data, uint8_t len)
Write message over UART using MAX17851.
Definition max17851.c:280
int max17851_reg_update(struct max17851_desc *desc, uint8_t reg, uint8_t mask, uint8_t data)
MAX17851 register update function.
Definition max17851.c:558
max17851_safemon_dly
Definition max17851.h:274
@ MAX17851_SAFEMON_DLY_1500MS
Definition max17851.h:277
@ MAX17851_SAFEMON_DLY_1000MS
Definition max17851.h:276
@ MAX17851_SAFEMON_DLY_500MS
Definition max17851.h:275
max17851_config_gen2_sel
Definition max17851.h:224
@ MAX17851_TX_PAUSE_SEL
Definition max17851.h:227
@ MAX17851_TX_PREAMBLES_SEL
Definition max17851.h:230
@ MAX17851_TX_QUEUE_SEL
Definition max17851.h:229
@ MAX17851_RX_RAW_DATA_SEL
Definition max17851.h:232
@ MAX17851_TX_RAW_DATA_SEL
Definition max17851.h:231
@ MAX17851_TX_NOPREAMBLE_SEL
Definition max17851.h:225
@ MAX17851_TX_ODDPARITY_SEL
Definition max17851.h:228
@ MAX17851_TX_NOSTOP_SEL
Definition max17851.h:226
int max17851_remove(struct max17851_desc *desc)
Deallocate any resources used at the initialization function.
Definition max17851.c:729
max17851_status_debounce
Definition max17851.h:263
@ MAX17851_ALERTPCKT_DBNC_2
Definition max17851.h:265
@ MAX17851_ALERTPCKT_DBNC_1
Definition max17851.h:264
@ MAX17851_ALERTPCKT_DBNC_32
Definition max17851.h:269
@ MAX17851_ALERTPCKT_DBNC_128
Definition max17851.h:271
@ MAX17851_ALERTPCKT_DBNC_16
Definition max17851.h:268
@ MAX17851_ALERTPCKT_DBNC_8
Definition max17851.h:267
@ MAX17851_ALERTPCKT_DBNC_64
Definition max17851.h:270
@ MAX17851_ALERTPCKT_DBNC_4
Definition max17851.h:266
max17851_queue_sel
Definition max17851.h:213
@ MAX17851_LOADQ_1_SEL
Definition max17851.h:215
@ MAX17851_LOADQ_3_SEL
Definition max17851.h:217
@ MAX17851_TXQ_0_SEL
Definition max17851.h:218
@ MAX17851_LOADQ_2_SEL
Definition max17851.h:216
@ MAX17851_TXQ_3_SEL
Definition max17851.h:221
@ MAX17851_LOADQ_0_SEL
Definition max17851.h:214
@ MAX17851_TXQ_2_SEL
Definition max17851.h:220
@ MAX17851_TXQ_1_SEL
Definition max17851.h:219
#define MAX17851_CLR_ALIVECOUNT_SEED_REG
Definition max17851.h:95
int max17851_reg_write(struct max17851_desc *desc, uint8_t reg, uint8_t data)
MAX17851 register write function.
Definition max17851.c:535
int max17851_init(struct max17851_desc **desc, struct max17851_init_param *init_param)
MAX17851 device initialization function.
Definition max17851.c:580
int max17851_read_msg(struct max17851_desc *desc, uint8_t *data, uint8_t len)
Read message over UART from the MAX17851.
Definition max17851.c:226
int max17851_sel_alrtpckt_time(struct max17851_desc *desc, enum max17851_alrtpckt_time time)
Set timing for Alert Packets/Keep-Alive Packets.
Definition max17851.c:342
int max17851_select_queue(struct max17851_desc *desc, enum max17851_queue_sel sel)
Select queue for transmitting/loading TX buffer for UART.
Definition max17851.c:357
#define MAX17851_VER_CONFIG_REG
Definition max17851.h:98
max17851_comm_try_count
Definition max17851.h:287
@ MAX17851_RETRY_COUNT_16
Definition max17851.h:291
@ MAX17851_RETRY_COUNT_8
Definition max17851.h:290
@ MAX17851_RETRY_COUNT_4
Definition max17851.h:289
@ MAX17851_RETRY_COUNT_2
Definition max17851.h:288
max17851_alert
Definition max17851.h:165
@ MAX17851_GPIO3_ERR_ALRT
Definition max17851.h:209
@ MAX17851_TX_EMPTY_ALRT
Definition max17851.h:172
@ MAX17851_WD_EXP_ERR_ALRT
Definition max17851.h:202
@ MAX17581_LSSM_FULL_ALRT
Definition max17851.h:200
@ MAX17851_RX_ERR_ALRT
Definition max17851.h:171
@ MAX17851_COMM_MSMTCH_ERR_ALRT
Definition max17851.h:182
@ MAX17851_TX_OVRFLW_ERR_ALRT
Definition max17851.h:175
@ MAX17851_WD_RJCT_ERR_ALRT
Definition max17851.h:203
@ MAX17851_RX_OVRFLW_ERR_ALRT
Definition max17851.h:168
@ MAX17851_ALRTPCKT_COMM_ERR_ALRT
Definition max17851.h:188
@ MAX17851_ALRTPCKTBUF_HW_ERR_ALRT
Definition max17851.h:187
@ MAX17851_ALIVECNT_ERR_ALRT
Definition max17851.h:180
@ MAX17851_COMMAND_OP_ALRT
Definition max17851.h:181
@ MAX17851_RX_BUSY_ALRT
Definition max17851.h:170
@ MAX17851_TX_AVAIL_ALRT
Definition max17851.h:173
@ MAX17851_DATAPATH_ERR_ALRT
Definition max17851.h:190
@ MAX17851_SPI_ERR_ALRT
Definition max17851.h:189
@ MAX17851_HW_ERR_ALRT
Definition max17851.h:179
@ MAX17851_RX_STOP_ALRT
Definition max17851.h:167
@ MAX17851_SAFEMON_STATUS_ERR_ALRT
Definition max17851.h:195
@ MAX17851_GPIO4_ERR_ALRT
Definition max17851.h:210
@ MAX17851_TX_IDLE_ALRT
Definition max17851.h:176
@ MAX17851_WD_ERR_ALRT
Definition max17851.h:192
@ MAX17851_GPIO2_ERR_ALRT
Definition max17851.h:208
@ MAX17851_WD_OPEN_ALRT
Definition max17851.h:205
@ MAX17851_SAFEMON_CFG_ERR_ALRT
Definition max17851.h:194
@ MAX17851_WD_LFSR_ERR_ALRT
Definition max17851.h:204
@ MAX17851_SAFEMON_GPIO12_ALRT
Definition max17851.h:196
@ MAX17851_GPIO1_ERR_ALRT
Definition max17851.h:207
@ MAX17851_RX_IDLE_ALRT
Definition max17851.h:169
@ MAX17851_COMM_ERR_ALRT
Definition max17851.h:184
@ MAX17851_SLP_ALRT
Definition max17851.h:199
@ MAX17851_RX_EMPTY_ALRT
Definition max17851.h:166
@ MAX17851_ALRTPCKTBUF_FULL_ALRT
Definition max17851.h:201
@ MAX17851_WD_TO_ERR_ALRT
Definition max17851.h:206
@ MAX17851_SAFEMON_ALRT
Definition max17851.h:197
@ MAX17851_TX_BUSY_ALRT
Definition max17851.h:177
@ MAX17851_RX_READY_ALRT
Definition max17851.h:186
@ MAX17851_SLP_STATUS_ERR_ALRT
Definition max17851.h:198
@ MAX17851_ALRTPCKT_STATUS_ERR_ALRT
Definition max17851.h:185
@ MAX17851_GPIO_ERR_ALRT
Definition max17851.h:191
@ MAX17851_TX_FULL_ALRT
Definition max17851.h:174
@ MAX17851_TX_HELD_ALRT
Definition max17851.h:178
@ MAX17851_DEV_COUNT_ERR_ALRT
Definition max17851.h:193
@ MAX17851_ALRTPCKT_ERR_ALRT
Definition max17851.h:183
max17851_comm_timeout_delay
Definition max17851.h:294
@ MAX17851_TIMEOUT_DELAY_276BITS
Definition max17851.h:295
@ MAX17851_TIMEOUT_DELAY_996BITS
Definition max17851.h:297
@ MAX17851_TIMEOUT_DELAY_1956BITS
Definition max17851.h:298
@ MAX17851_TIMEOUT_DELAY_DISABLED
Definition max17851.h:299
@ MAX17851_TIMEOUT_DELAY_516BITS
Definition max17851.h:296
#define MAX17851_LOAD_CONFIG_REG
Definition max17851.h:99
#define MAX17851_CLR_LSSM_REG
Definition max17851.h:94
int max17851_clear_buff(struct max17851_desc *desc, bool tx_buf)
Clear RX/TX buffer inside the MAX17851 memory.
Definition max17851.c:376
int max17851_config_gen2(struct max17851_desc *desc, enum max17851_config_gen2_sel sel, bool enable)
Configure general settings for MAX17851.
Definition max17851.c:328
int max17851_set_alert(struct max17851_desc *desc, enum max17851_alert alert, bool enable)
Enable/Disable specific alert.
Definition max17851.c:423
#define MAX17851_WD_KEY_REG
Definition max17851.h:100
int max17851_send_command(struct max17851_desc *desc, enum max17851_command command, bool enable)
Send specific device command over SPI.
Definition max17851.c:185
#define MAX17851_SWPOR_REG
Definition max17851.h:96
int max17851_get_alert(struct max17851_desc *desc, enum max17851_alert alert, bool *enable)
Read specific alert state.
Definition max17851.c:398
#define MAX17851_SLP_EN_REG
Definition max17851.h:97
max17851_uart_op_mode
Definition max17851.h:257
@ MAX17851_MASTER_SINGLE_UART
Definition max17851.h:259
@ MAX17851_MASTER_DUAL_UART
Definition max17851.h:260
@ MAX17851_SLAVE_DUAL_UART
Definition max17851.h:258
int max17851_reg_read(struct max17851_desc *desc, uint8_t reg, uint8_t *data)
MAX17851 register read function.
Definition max17851.c:506
int max17851_set_alert_debounce(struct max17851_desc *desc, enum max17851_status_debounce dbnc)
Select the number of unmasked consecutive Alert Packet status alerts, which must happen prior to taki...
Definition max17851.c:443
int max17851_set_comm(struct max17851_desc *desc, enum max17851_comm_try_count count, enum max17851_comm_timeout_delay delay)
Set communication retry count and timeout delay.
Definition max17851.c:486
max17851_baud_rate
Definition max17851.h:251
@ MAX17851_UART_BAUD_2M
Definition max17851.h:254
@ MAX17851_UART_BAUD_500K
Definition max17851.h:252
@ MAX17851_UART_BAUD_1M
Definition max17851.h:253
Header file of GPIO Interface.
Header file of SPI Interface.
Header file of UART interface.
Header file of utility functions.
Definition max17851.h:321
enum max17851_status_debounce dbnc
Definition max17851.h:330
enum max17851_comm_timeout_delay comm_to_delay
Definition max17851.h:327
enum max17851_uart_op_mode op_mode
Definition max17851.h:329
enum max17851_baud_rate baud_rate
Definition max17851.h:331
struct no_os_gpio_desc * gpio2_desc
Definition max17851.h:325
uint8_t buff[33]
Definition max17851.h:337
enum max17851_safemon_dly safemon_dly
Definition max17851.h:328
struct no_os_spi_desc * spi_desc
Definition max17851.h:322
uint8_t no_dev
Definition max17851.h:338
uint8_t contact_tmr_dly_4xmin
Definition max17851.h:333
struct no_os_gpio_desc * gpio1_desc
Definition max17851.h:324
uint8_t lssm_byte
Definition max17851.h:336
uint8_t gpio_rec_dly_csec
Definition max17851.h:334
bool single
Definition max17851.h:339
Definition max17851.h:302
enum max17851_safemon_dly safemon_dly
Definition max17851.h:309
struct no_os_spi_init_param * spi_param
Definition max17851.h:303
enum max17851_uart_op_mode op_mode
Definition max17851.h:310
uint8_t no_dev
Definition max17851.h:317
bool single
Definition max17851.h:318
enum max17851_baud_rate baud_rate
Definition max17851.h:312
uint8_t contact_tmr_dly_4xmin
Definition max17851.h:314
struct no_os_gpio_init_param * gpio1_param
Definition max17851.h:305
enum max17851_status_debounce dbnc
Definition max17851.h:311
struct no_os_gpio_init_param * gpio2_param
Definition max17851.h:306
enum max17851_comm_timeout_delay comm_to_delay
Definition max17851.h:308
uint8_t gpio_rec_dly_csec
Definition max17851.h:315
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 SPI descriptor.
Definition no_os_spi.h:180
Structure holding the parameters for SPI initialization.
Definition no_os_spi.h:128