Flipper Zero Firmware
Loading...
Searching...
No Matches
st25r3916_reg.h
1#pragma once
2
3#include <furi_hal_spi.h>
4
5#ifdef __cplusplus
6extern "C" {
7#endif
8
10#define ST25R3916_CMD_SET_DEFAULT \
11 0xC1U
12#define ST25R3916_CMD_STOP 0xC2U
13#define ST25R3916_CMD_TRANSMIT_WITH_CRC 0xC4U
14#define ST25R3916_CMD_TRANSMIT_WITHOUT_CRC 0xC5U
15#define ST25R3916_CMD_TRANSMIT_REQA 0xC6U
16#define ST25R3916_CMD_TRANSMIT_WUPA 0xC7U
17#define ST25R3916_CMD_INITIAL_RF_COLLISION \
18 0xC8U
19#define ST25R3916_CMD_RESPONSE_RF_COLLISION_N \
20 0xC9U
21#define ST25R3916_CMD_GOTO_SENSE 0xCDU
22#define ST25R3916_CMD_GOTO_SLEEP 0xCEU
23#define ST25R3916_CMD_MASK_RECEIVE_DATA 0xD0U
24#define ST25R3916_CMD_UNMASK_RECEIVE_DATA 0xD1U
25#define ST25R3916_CMD_AM_MOD_STATE_CHANGE 0xD2U
26#define ST25R3916_CMD_MEASURE_AMPLITUDE 0xD3U
27#define ST25R3916_CMD_RESET_RXGAIN 0xD5U
28#define ST25R3916_CMD_ADJUST_REGULATORS 0xD6U
29#define ST25R3916_CMD_CALIBRATE_DRIVER_TIMING \
30 0xD8U
31#define ST25R3916_CMD_MEASURE_PHASE 0xD9U
32#define ST25R3916_CMD_CLEAR_RSSI 0xDAU
33#define ST25R3916_CMD_CLEAR_FIFO 0xDBU
34#define ST25R3916_CMD_TRANSPARENT_MODE 0xDCU
35#define ST25R3916_CMD_CALIBRATE_C_SENSOR 0xDDU
36#define ST25R3916_CMD_MEASURE_CAPACITANCE 0xDEU
37#define ST25R3916_CMD_MEASURE_VDD 0xDFU
38#define ST25R3916_CMD_START_GP_TIMER 0xE0U
39#define ST25R3916_CMD_START_WUP_TIMER 0xE1U
40#define ST25R3916_CMD_START_MASK_RECEIVE_TIMER 0xE2U
41#define ST25R3916_CMD_START_NO_RESPONSE_TIMER 0xE3U
42#define ST25R3916_CMD_START_PPON2_TIMER 0xE4U
43#define ST25R3916_CMD_STOP_NRT 0xE8U
44#define ST25R3916_CMD_SPACE_B_ACCESS 0xFBU
45#define ST25R3916_CMD_TEST_ACCESS 0xFCU
47#define ST25R3916_SPACE_B 0x40U
48#define ST25R3916_SPACE_B_REG_LEN 16U
50#define ST25R3916_FIFO_STATUS_LEN 2
52#define ST25R3916_PTM_A_LEN 15U
53#define ST25R3916_PTM_B_LEN 0U
54#define ST25R3916_PTM_F_LEN 21U
55#define ST25R3916_PTM_TSN_LEN 12U
58#define ST25R3916_PTM_LEN \
59 (ST25R3916_PTM_A_LEN + ST25R3916_PTM_B_LEN + ST25R3916_PTM_F_LEN + ST25R3916_PTM_TSN_LEN)
60
62#define ST25R3916_REG_IO_CONF1 0x00U
63#define ST25R3916_REG_IO_CONF2 0x01U
66#define ST25R3916_REG_OP_CONTROL 0x02U
67#define ST25R3916_REG_MODE 0x03U
68#define ST25R3916_REG_BIT_RATE 0x04U
71#define ST25R3916_REG_ISO14443A_NFC 0x05U
72#define ST25R3916_REG_EMD_SUP_CONF \
73 (ST25R3916_SPACE_B | 0x05U)
74#define ST25R3916_REG_ISO14443B_1 0x06U
75#define ST25R3916_REG_SUBC_START_TIME \
76 (ST25R3916_SPACE_B | 0x06U)
77#define ST25R3916_REG_ISO14443B_2 0x07U
78#define ST25R3916_REG_PASSIVE_TARGET 0x08U
79#define ST25R3916_REG_STREAM_MODE 0x09U
80#define ST25R3916_REG_AUX 0x0AU
83#define ST25R3916_REG_RX_CONF1 0x0BU
84#define ST25R3916_REG_RX_CONF2 0x0CU
85#define ST25R3916_REG_RX_CONF3 0x0DU
86#define ST25R3916_REG_RX_CONF4 0x0EU
87#define ST25R3916_REG_P2P_RX_CONF \
88 (ST25R3916_SPACE_B | 0x0BU)
89#define ST25R3916_REG_CORR_CONF1 \
90 (ST25R3916_SPACE_B | 0x0CU)
91#define ST25R3916_REG_CORR_CONF2 \
92 (ST25R3916_SPACE_B | 0x0DU)
95#define ST25R3916_REG_MASK_RX_TIMER 0x0FU
96#define ST25R3916_REG_NO_RESPONSE_TIMER1 0x10U
97#define ST25R3916_REG_NO_RESPONSE_TIMER2 0x11U
98#define ST25R3916_REG_TIMER_EMV_CONTROL 0x12U
99#define ST25R3916_REG_GPT1 0x13U
100#define ST25R3916_REG_GPT2 0x14U
101#define ST25R3916_REG_PPON2 0x15U
102#define ST25R3916_REG_SQUELCH_TIMER (ST25R3916_SPACE_B | 0x0FU)
103#define ST25R3916_REG_FIELD_ON_GT (ST25R3916_SPACE_B | 0x15U)
106#define ST25R3916_REG_IRQ_MASK_MAIN 0x16U
107#define ST25R3916_REG_IRQ_MASK_TIMER_NFC 0x17U
108#define ST25R3916_REG_IRQ_MASK_ERROR_WUP 0x18U
109#define ST25R3916_REG_IRQ_MASK_TARGET 0x19U
110#define ST25R3916_REG_IRQ_MAIN 0x1AU
111#define ST25R3916_REG_IRQ_TIMER_NFC 0x1BU
112#define ST25R3916_REG_IRQ_ERROR_WUP 0x1CU
113#define ST25R3916_REG_IRQ_TARGET 0x1DU
114#define ST25R3916_REG_FIFO_STATUS1 0x1EU
115#define ST25R3916_REG_FIFO_STATUS2 0x1FU
116#define ST25R3916_REG_COLLISION_STATUS 0x20U
117#define ST25R3916_REG_PASSIVE_TARGET_STATUS 0x21U
120#define ST25R3916_REG_NUM_TX_BYTES1 0x22U
121#define ST25R3916_REG_NUM_TX_BYTES2 0x23U
124#define ST25R3916_REG_NFCIP1_BIT_RATE 0x24U
127#define ST25R3916_REG_AD_RESULT 0x25U
130#define ST25R3916_REG_ANT_TUNE_A 0x26U
131#define ST25R3916_REG_ANT_TUNE_B 0x27U
134#define ST25R3916_REG_TX_DRIVER 0x28U
135#define ST25R3916_REG_PT_MOD 0x29U
136#define ST25R3916_REG_AUX_MOD (ST25R3916_SPACE_B | 0x28U)
137#define ST25R3916_REG_TX_DRIVER_TIMING \
138 (ST25R3916_SPACE_B | 0x29U)
139#define ST25R3916_REG_RES_AM_MOD \
140 (ST25R3916_SPACE_B | 0x2AU)
141#define ST25R3916_REG_TX_DRIVER_STATUS \
142 (ST25R3916_SPACE_B | 0x2BU)
145#define ST25R3916_REG_FIELD_THRESHOLD_ACTV \
146 0x2AU
147#define ST25R3916_REG_FIELD_THRESHOLD_DEACTV \
148 0x2BU
151#define ST25R3916_REG_REGULATOR_CONTROL 0x2CU
152#define ST25R3916_REG_REGULATOR_RESULT \
153 (ST25R3916_SPACE_B | 0x2CU)
156#define ST25R3916_REG_RSSI_RESULT 0x2DU
157#define ST25R3916_REG_GAIN_RED_STATE 0x2EU
158#define ST25R3916_REG_CAP_SENSOR_CONTROL 0x2FU
159#define ST25R3916_REG_CAP_SENSOR_RESULT 0x30U
160#define ST25R3916_REG_AUX_DISPLAY 0x31U
163#define ST25R3916_REG_OVERSHOOT_CONF1 \
164 (ST25R3916_SPACE_B | 0x30U)
165#define ST25R3916_REG_OVERSHOOT_CONF2 \
166 (ST25R3916_SPACE_B | 0x31U)
167#define ST25R3916_REG_UNDERSHOOT_CONF1 \
168 (ST25R3916_SPACE_B | 0x32U)
169#define ST25R3916_REG_UNDERSHOOT_CONF2 \
170 (ST25R3916_SPACE_B | 0x33U)
173#define ST25R3916_REG_WUP_TIMER_CONTROL 0x32U
174#define ST25R3916_REG_AMPLITUDE_MEASURE_CONF \
175 0x33U
176#define ST25R3916_REG_AMPLITUDE_MEASURE_REF \
177 0x34U
178#define ST25R3916_REG_AMPLITUDE_MEASURE_AA_RESULT \
179 0x35U
180#define ST25R3916_REG_AMPLITUDE_MEASURE_RESULT \
181 0x36U
182#define ST25R3916_REG_PHASE_MEASURE_CONF 0x37U
183#define ST25R3916_REG_PHASE_MEASURE_REF 0x38U
184#define ST25R3916_REG_PHASE_MEASURE_AA_RESULT \
185 0x39U
186#define ST25R3916_REG_PHASE_MEASURE_RESULT 0x3AU
187#define ST25R3916_REG_CAPACITANCE_MEASURE_CONF \
188 0x3BU
189#define ST25R3916_REG_CAPACITANCE_MEASURE_REF \
190 0x3CU
191#define ST25R3916_REG_CAPACITANCE_MEASURE_AA_RESULT \
192 0x3DU
193#define ST25R3916_REG_CAPACITANCE_MEASURE_RESULT \
194 0x3EU
197#define ST25R3916_REG_IC_IDENTITY 0x3FU
201#define ST25R3916_REG_IO_CONF1_single (1U << 7)
202#define ST25R3916_REG_IO_CONF1_rfo2 (1U << 6)
203#define ST25R3916_REG_IO_CONF1_i2c_thd1 (1U << 5)
204#define ST25R3916_REG_IO_CONF1_i2c_thd0 (1U << 4)
205#define ST25R3916_REG_IO_CONF1_i2c_thd_mask (3U << 4)
206#define ST25R3916_REG_IO_CONF1_i2c_thd_shift (4U)
207#define ST25R3916_REG_IO_CONF1_rfu (1U << 3)
208#define ST25R3916_REG_IO_CONF1_out_cl1 (1U << 2)
209#define ST25R3916_REG_IO_CONF1_out_cl0 (1U << 1)
210#define ST25R3916_REG_IO_CONF1_out_cl_disabled (3U << 1)
211#define ST25R3916_REG_IO_CONF1_out_cl_13_56MHZ (2U << 1)
212#define ST25R3916_REG_IO_CONF1_out_cl_4_78MHZ (1U << 1)
213#define ST25R3916_REG_IO_CONF1_out_cl_3_39MHZ (0U << 1)
214#define ST25R3916_REG_IO_CONF1_out_cl_mask (3U << 1)
215#define ST25R3916_REG_IO_CONF1_out_cl_shift (1U)
216#define ST25R3916_REG_IO_CONF1_lf_clk_off (1U << 0)
217#define ST25R3916_REG_IO_CONF1_lf_clk_off_on (1U << 0)
218#define ST25R3916_REG_IO_CONF1_lf_clk_off_off (0U << 0)
219
220#define ST25R3916_REG_IO_CONF2_sup3V (1U << 7)
221#define ST25R3916_REG_IO_CONF2_sup3V_3V (1U << 7)
222#define ST25R3916_REG_IO_CONF2_sup3V_5V (0U << 7)
223#define ST25R3916_REG_IO_CONF2_vspd_off (1U << 6)
224#define ST25R3916_REG_IO_CONF2_aat_en (1U << 5)
225#define ST25R3916_REG_IO_CONF2_miso_pd2 (1U << 4)
226#define ST25R3916_REG_IO_CONF2_miso_pd1 (1U << 3)
227#define ST25R3916_REG_IO_CONF2_io_drv_lvl (1U << 2)
228#define ST25R3916_REG_IO_CONF2_slow_up (1U << 0)
229
230#define ST25R3916_REG_OP_CONTROL_en (1U << 7)
231#define ST25R3916_REG_OP_CONTROL_rx_en (1U << 6)
232#define ST25R3916_REG_OP_CONTROL_rx_chn (1U << 5)
233#define ST25R3916_REG_OP_CONTROL_rx_man (1U << 4)
234#define ST25R3916_REG_OP_CONTROL_tx_en (1U << 3)
235#define ST25R3916_REG_OP_CONTROL_wu (1U << 2)
236#define ST25R3916_REG_OP_CONTROL_en_fd_c1 (1U << 1)
237#define ST25R3916_REG_OP_CONTROL_en_fd_c0 (1U << 0)
238#define ST25R3916_REG_OP_CONTROL_en_fd_efd_off (0U << 0)
239#define ST25R3916_REG_OP_CONTROL_en_fd_manual_efd_ca (1U << 0)
240#define ST25R3916_REG_OP_CONTROL_en_fd_manual_efd_pdt (2U << 0)
241#define ST25R3916_REG_OP_CONTROL_en_fd_auto_efd (3U << 0)
242#define ST25R3916_REG_OP_CONTROL_en_fd_shift (0U)
243#define ST25R3916_REG_OP_CONTROL_en_fd_mask (3U << 0)
244
245#define ST25R3916_REG_MODE_targ (1U << 7)
246#define ST25R3916_REG_MODE_targ_targ (1U << 7)
247#define ST25R3916_REG_MODE_targ_init (0U << 7)
248#define ST25R3916_REG_MODE_om3 (1U << 6)
249#define ST25R3916_REG_MODE_om2 (1U << 5)
250#define ST25R3916_REG_MODE_om1 (1U << 4)
251#define ST25R3916_REG_MODE_om0 (1U << 3)
252#define ST25R3916_REG_MODE_om_bpsk_stream (0xfU << 3)
253#define ST25R3916_REG_MODE_om_subcarrier_stream (0xeU << 3)
254#define ST25R3916_REG_MODE_om_topaz (0x4U << 3)
255#define ST25R3916_REG_MODE_om_felica (0x3U << 3)
256#define ST25R3916_REG_MODE_om_iso14443b (0x2U << 3)
257#define ST25R3916_REG_MODE_om_iso14443a (0x1U << 3)
258#define ST25R3916_REG_MODE_om_targ_nfca (0x1U << 3)
259#define ST25R3916_REG_MODE_om_targ_nfcb (0x2U << 3)
260#define ST25R3916_REG_MODE_om_targ_nfcf (0x4U << 3)
261#define ST25R3916_REG_MODE_om_targ_nfcip (0x7U << 3)
262#define ST25R3916_REG_MODE_om_nfc (0x0U << 3)
263#define ST25R3916_REG_MODE_om_mask (0xfU << 3)
264#define ST25R3916_REG_MODE_om_shift (3U)
265#define ST25R3916_REG_MODE_tr_am (1U << 2)
266#define ST25R3916_REG_MODE_tr_am_ook (0U << 2)
267#define ST25R3916_REG_MODE_tr_am_am (1U << 2)
268#define ST25R3916_REG_MODE_nfc_ar1 (1U << 1)
269#define ST25R3916_REG_MODE_nfc_ar0 (1U << 0)
270#define ST25R3916_REG_MODE_nfc_ar_off (0U << 0)
271#define ST25R3916_REG_MODE_nfc_ar_auto_rx (1U << 0)
272#define ST25R3916_REG_MODE_nfc_ar_eof (2U << 0)
273#define ST25R3916_REG_MODE_nfc_ar_rfu (3U << 0)
274#define ST25R3916_REG_MODE_nfc_ar_mask (3U << 0)
275#define ST25R3916_REG_MODE_nfc_ar_shift (0U)
276
277#define ST25R3916_REG_BIT_RATE_txrate_106 (0x0U << 4)
278#define ST25R3916_REG_BIT_RATE_txrate_212 (0x1U << 4)
279#define ST25R3916_REG_BIT_RATE_txrate_424 (0x2U << 4)
280#define ST25R3916_REG_BIT_RATE_txrate_848 (0x3U << 4)
281#define ST25R3916_REG_BIT_RATE_txrate_mask (0x3U << 4)
282#define ST25R3916_REG_BIT_RATE_txrate_shift (4U)
283#define ST25R3916_REG_BIT_RATE_rxrate_106 (0x0U << 0)
284#define ST25R3916_REG_BIT_RATE_rxrate_212 (0x1U << 0)
285#define ST25R3916_REG_BIT_RATE_rxrate_424 (0x2U << 0)
286#define ST25R3916_REG_BIT_RATE_rxrate_848 (0x3U << 0)
287#define ST25R3916_REG_BIT_RATE_rxrate_mask (0x3U << 0)
288#define ST25R3916_REG_BIT_RATE_rxrate_shift (0U)
289
290#define ST25R3916_REG_ISO14443A_NFC_no_tx_par (1U << 7)
291#define ST25R3916_REG_ISO14443A_NFC_no_tx_par_off (0U << 7)
292#define ST25R3916_REG_ISO14443A_NFC_no_rx_par (1U << 6)
293#define ST25R3916_REG_ISO14443A_NFC_no_rx_par_off (0U << 6)
294#define ST25R3916_REG_ISO14443A_NFC_nfc_f0 (1U << 5)
295#define ST25R3916_REG_ISO14443A_NFC_nfc_f0_off (0U << 5)
296#define ST25R3916_REG_ISO14443A_NFC_p_len3 (1U << 4)
297#define ST25R3916_REG_ISO14443A_NFC_p_len2 (1U << 3)
298#define ST25R3916_REG_ISO14443A_NFC_p_len1 (1U << 2)
299#define ST25R3916_REG_ISO14443A_NFC_p_len0 (1U << 1)
300#define ST25R3916_REG_ISO14443A_NFC_p_len_mask (0xfU << 1)
301#define ST25R3916_REG_ISO14443A_NFC_p_len_shift (1U)
302#define ST25R3916_REG_ISO14443A_NFC_antcl (1U << 0)
303
304#define ST25R3916_REG_EMD_SUP_CONF_emd_emv (1U << 7)
305#define ST25R3916_REG_EMD_SUP_CONF_emd_emv_on (1U << 7)
306#define ST25R3916_REG_EMD_SUP_CONF_emd_emv_off (0U << 7)
307#define ST25R3916_REG_EMD_SUP_CONF_rx_start_emv (1U << 6)
308#define ST25R3916_REG_EMD_SUP_CONF_rx_start_emv_on (1U << 6)
309#define ST25R3916_REG_EMD_SUP_CONF_rx_start_emv_off (0U << 6)
310#define ST25R3916_REG_EMD_SUP_CONF_rfu1 (1U << 5)
311#define ST25R3916_REG_EMD_SUP_CONF_rfu0 (1U << 4)
312#define ST25R3916_REG_EMD_SUP_CONF_emd_thld3 (1U << 3)
313#define ST25R3916_REG_EMD_SUP_CONF_emd_thld2 (1U << 2)
314#define ST25R3916_REG_EMD_SUP_CONF_emd_thld1 (1U << 1)
315#define ST25R3916_REG_EMD_SUP_CONF_emd_thld0 (1U << 0)
316#define ST25R3916_REG_EMD_SUP_CONF_emd_thld_mask (0xfU << 0)
317#define ST25R3916_REG_EMD_SUP_CONF_emd_thld_shift (0U)
318
319#define ST25R3916_REG_SUBC_START_TIME_rfu2 (1U << 7)
320#define ST25R3916_REG_SUBC_START_TIME_rfu1 (1U << 6)
321#define ST25R3916_REG_SUBC_START_TIME_rfu0 (1U << 5)
322#define ST25R3916_REG_SUBC_START_TIME_sst4 (1U << 4)
323#define ST25R3916_REG_SUBC_START_TIME_sst3 (1U << 3)
324#define ST25R3916_REG_SUBC_START_TIME_sst2 (1U << 2)
325#define ST25R3916_REG_SUBC_START_TIME_sst1 (1U << 1)
326#define ST25R3916_REG_SUBC_START_TIME_sst0 (1U << 0)
327#define ST25R3916_REG_SUBC_START_TIME_sst_mask (0x1fU << 0)
328#define ST25R3916_REG_SUBC_START_TIME_sst_shift (0U)
329
330#define ST25R3916_REG_ISO14443B_1_egt2 (1U << 7)
331#define ST25R3916_REG_ISO14443B_1_egt1 (1U << 6)
332#define ST25R3916_REG_ISO14443B_1_egt0 (1U << 5)
333#define ST25R3916_REG_ISO14443B_1_egt_shift (5U)
334#define ST25R3916_REG_ISO14443B_1_egt_mask (7U << 5)
335#define ST25R3916_REG_ISO14443B_1_sof_1 (1U << 3)
336#define ST25R3916_REG_ISO14443B_1_sof_1_3etu (1U << 3)
337#define ST25R3916_REG_ISO14443B_1_sof_1_2etu (0U << 3)
338#define ST25R3916_REG_ISO14443B_1_sof_0 (1U << 4)
339#define ST25R3916_REG_ISO14443B_1_sof_0_11etu (1U << 4)
340#define ST25R3916_REG_ISO14443B_1_sof_0_10etu (0U << 4)
341#define ST25R3916_REG_ISO14443B_1_sof_mask (3U << 3)
342#define ST25R3916_REG_ISO14443B_1_eof (1U << 2)
343#define ST25R3916_REG_ISO14443B_1_eof_11etu (1U << 2)
344#define ST25R3916_REG_ISO14443B_1_eof_10etu (0U << 2)
345#define ST25R3916_REG_ISO14443B_1_half (1U << 1)
346#define ST25R3916_REG_ISO14443B_1_rx_st_om (1U << 0)
347
348#define ST25R3916_REG_ISO14443B_2_tr1_1 (1U << 7)
349#define ST25R3916_REG_ISO14443B_2_tr1_0 (1U << 6)
350#define ST25R3916_REG_ISO14443B_2_tr1_64fs32fs (1U << 6)
351#define ST25R3916_REG_ISO14443B_2_tr1_80fs80fs (0U << 6)
352#define ST25R3916_REG_ISO14443B_2_tr1_mask (3U << 6)
353#define ST25R3916_REG_ISO14443B_2_tr1_shift (6U)
354#define ST25R3916_REG_ISO14443B_2_no_sof (1U << 5)
355#define ST25R3916_REG_ISO14443B_2_no_eof (1U << 4)
356#define ST25R3916_REG_ISO14443B_rfu1 (1U << 3)
357#define ST25R3916_REG_ISO14443B_rfu0 (1U << 2)
358#define ST25R3916_REG_ISO14443B_2_f_p1 (1U << 1)
359#define ST25R3916_REG_ISO14443B_2_f_p0 (1U << 0)
360#define ST25R3916_REG_ISO14443B_2_f_p_96 (3U << 0)
361#define ST25R3916_REG_ISO14443B_2_f_p_80 (2U << 0)
362#define ST25R3916_REG_ISO14443B_2_f_p_64 (1U << 0)
363#define ST25R3916_REG_ISO14443B_2_f_p_48 (0U << 0)
364#define ST25R3916_REG_ISO14443B_2_f_p_mask (3U << 0)
365#define ST25R3916_REG_ISO14443B_2_f_p_shift (0U)
366
367#define ST25R3916_REG_PASSIVE_TARGET_fdel_3 (1U << 7)
368#define ST25R3916_REG_PASSIVE_TARGET_fdel_2 (1U << 6)
369#define ST25R3916_REG_PASSIVE_TARGET_fdel_1 (1U << 5)
370#define ST25R3916_REG_PASSIVE_TARGET_fdel_0 (1U << 4)
371#define ST25R3916_REG_PASSIVE_TARGET_fdel_mask (0xfU << 4)
372#define ST25R3916_REG_PASSIVE_TARGET_fdel_shift (4U)
373#define ST25R3916_REG_PASSIVE_TARGET_d_ac_ap2p (1U << 3)
374#define ST25R3916_REG_PASSIVE_TARGET_d_212_424_1r (1U << 2)
375#define ST25R3916_REG_PASSIVE_TARGET_rfu (1U << 1)
376#define ST25R3916_REG_PASSIVE_TARGET_d_106_ac_a (1U << 0)
377
378#define ST25R3916_REG_STREAM_MODE_rfu (1U << 7)
379#define ST25R3916_REG_STREAM_MODE_scf1 (1U << 6)
380#define ST25R3916_REG_STREAM_MODE_scf0 (1U << 5)
381#define ST25R3916_REG_STREAM_MODE_scf_sc212 (0U << 5)
382#define ST25R3916_REG_STREAM_MODE_scf_sc424 (1U << 5)
383#define ST25R3916_REG_STREAM_MODE_scf_sc848 (2U << 5)
384#define ST25R3916_REG_STREAM_MODE_scf_sc1695 (3U << 5)
385#define ST25R3916_REG_STREAM_MODE_scf_bpsk848 (0U << 5)
386#define ST25R3916_REG_STREAM_MODE_scf_bpsk1695 (1U << 5)
387#define ST25R3916_REG_STREAM_MODE_scf_bpsk3390 (2U << 5)
388#define ST25R3916_REG_STREAM_MODE_scf_bpsk106 (3U << 5)
389#define ST25R3916_REG_STREAM_MODE_scf_mask (3U << 5)
390#define ST25R3916_REG_STREAM_MODE_scf_shift (5U)
391#define ST25R3916_REG_STREAM_MODE_scp1 (1U << 4)
392#define ST25R3916_REG_STREAM_MODE_scp0 (1U << 3)
393#define ST25R3916_REG_STREAM_MODE_scp_1pulse (0U << 3)
394#define ST25R3916_REG_STREAM_MODE_scp_2pulses (1U << 3)
395#define ST25R3916_REG_STREAM_MODE_scp_4pulses (2U << 3)
396#define ST25R3916_REG_STREAM_MODE_scp_8pulses (3U << 3)
397#define ST25R3916_REG_STREAM_MODE_scp_mask (3U << 3)
398#define ST25R3916_REG_STREAM_MODE_scp_shift (3U)
399#define ST25R3916_REG_STREAM_MODE_stx2 (1U << 2)
400#define ST25R3916_REG_STREAM_MODE_stx1 (1U << 1)
401#define ST25R3916_REG_STREAM_MODE_stx0 (1U << 0)
402#define ST25R3916_REG_STREAM_MODE_stx_106 (0U << 0)
403#define ST25R3916_REG_STREAM_MODE_stx_212 (1U << 0)
404#define ST25R3916_REG_STREAM_MODE_stx_424 (2U << 0)
405#define ST25R3916_REG_STREAM_MODE_stx_848 (3U << 0)
406#define ST25R3916_REG_STREAM_MODE_stx_mask (7U << 0)
407#define ST25R3916_REG_STREAM_MODE_stx_shift (0U)
408
409#define ST25R3916_REG_AUX_no_crc_rx (1U << 7)
410#define ST25R3916_REG_AUX_rfu (1U << 6)
411#define ST25R3916_REG_AUX_nfc_id1 (1U << 5)
412#define ST25R3916_REG_AUX_nfc_id0 (1U << 4)
413#define ST25R3916_REG_AUX_nfc_id_7bytes (1U << 4)
414#define ST25R3916_REG_AUX_nfc_id_4bytes (0U << 4)
415#define ST25R3916_REG_AUX_nfc_id_mask (3U << 4)
416#define ST25R3916_REG_AUX_nfc_id_shift (4U)
417#define ST25R3916_REG_AUX_mfaz_cl90 (1U << 3)
418#define ST25R3916_REG_AUX_dis_corr (1U << 2)
419#define ST25R3916_REG_AUX_dis_corr_coherent (1U << 2)
420#define ST25R3916_REG_AUX_dis_corr_correlator (0U << 2)
421#define ST25R3916_REG_AUX_nfc_n1 (1U << 1)
422#define ST25R3916_REG_AUX_nfc_n0 (1U << 0)
423#define ST25R3916_REG_AUX_nfc_n_mask (3U << 0)
424#define ST25R3916_REG_AUX_nfc_n_shift (0U)
425
426#define ST25R3916_REG_RX_CONF1_ch_sel (1U << 7)
427#define ST25R3916_REG_RX_CONF1_ch_sel_PM (1U << 7)
428#define ST25R3916_REG_RX_CONF1_ch_sel_AM (0U << 7)
429#define ST25R3916_REG_RX_CONF1_lp2 (1U << 6)
430#define ST25R3916_REG_RX_CONF1_lp1 (1U << 5)
431#define ST25R3916_REG_RX_CONF1_lp0 (1U << 4)
432#define ST25R3916_REG_RX_CONF1_lp_1200khz (0U << 4)
433#define ST25R3916_REG_RX_CONF1_lp_600khz (1U << 4)
434#define ST25R3916_REG_RX_CONF1_lp_300khz (2U << 4)
435#define ST25R3916_REG_RX_CONF1_lp_2000khz (4U << 4)
436#define ST25R3916_REG_RX_CONF1_lp_7000khz (5U << 4)
437#define ST25R3916_REG_RX_CONF1_lp_mask (7U << 4)
438#define ST25R3916_REG_RX_CONF1_lp_shift (4U)
439#define ST25R3916_REG_RX_CONF1_z600k (1U << 3)
440#define ST25R3916_REG_RX_CONF1_h200 (1U << 2)
441#define ST25R3916_REG_RX_CONF1_h80 (1U << 1)
442#define ST25R3916_REG_RX_CONF1_z12k (1U << 0)
443#define ST25R3916_REG_RX_CONF1_hz_60_400khz (0U << 0)
444#define ST25R3916_REG_RX_CONF1_hz_60_200khz (4U << 0)
445#define ST25R3916_REG_RX_CONF1_hz_40_80khz (2U << 0)
446#define ST25R3916_REG_RX_CONF1_hz_12_200khz (1U << 0)
447#define ST25R3916_REG_RX_CONF1_hz_12_80khz (3U << 0)
448#define ST25R3916_REG_RX_CONF1_hz_12_200khz_alt (5U << 0)
449#define ST25R3916_REG_RX_CONF1_hz_600_400khz (8U << 0)
450#define ST25R3916_REG_RX_CONF1_hz_600_200khz (12U << 0)
451#define ST25R3916_REG_RX_CONF1_hz_mask (0xfU << 0)
452#define ST25R3916_REG_RX_CONF1_hz_shift (0U)
453
454#define ST25R3916_REG_RX_CONF2_demod_mode (1U << 7)
455#define ST25R3916_REG_RX_CONF2_amd_sel (1U << 6)
456#define ST25R3916_REG_RX_CONF2_amd_sel_mixer (1U << 6)
457#define ST25R3916_REG_RX_CONF2_amd_sel_peak (0U << 6)
458#define ST25R3916_REG_RX_CONF2_sqm_dyn (1U << 5)
459#define ST25R3916_REG_RX_CONF2_pulz_61 (1U << 4)
460#define ST25R3916_REG_RX_CONF2_agc_en (1U << 3)
461#define ST25R3916_REG_RX_CONF2_agc_m (1U << 2)
462#define ST25R3916_REG_RX_CONF2_agc_alg (1U << 1)
463#define ST25R3916_REG_RX_CONF2_agc6_3 (1U << 0)
464
465#define ST25R3916_REG_RX_CONF3_rg1_am2 (1U << 7)
466#define ST25R3916_REG_RX_CONF3_rg1_am1 (1U << 6)
467#define ST25R3916_REG_RX_CONF3_rg1_am0 (1U << 5)
468#define ST25R3916_REG_RX_CONF3_rg1_am_mask (0x7U << 5)
469#define ST25R3916_REG_RX_CONF3_rg1_am_shift (5U)
470#define ST25R3916_REG_RX_CONF3_rg1_pm2 (1U << 4)
471#define ST25R3916_REG_RX_CONF3_rg1_pm1 (1U << 3)
472#define ST25R3916_REG_RX_CONF3_rg1_pm0 (1U << 2)
473#define ST25R3916_REG_RX_CONF3_rg1_pm_mask (0x7U << 2)
474#define ST25R3916_REG_RX_CONF3_rg1_pm_shift (2U)
475#define ST25R3916_REG_RX_CONF3_lf_en (1U << 1)
476#define ST25R3916_REG_RX_CONF3_lf_op (1U << 0)
477
478#define ST25R3916_REG_RX_CONF4_rg2_am3 (1U << 7)
479#define ST25R3916_REG_RX_CONF4_rg2_am2 (1U << 6)
480#define ST25R3916_REG_RX_CONF4_rg2_am1 (1U << 5)
481#define ST25R3916_REG_RX_CONF4_rg2_am0 (1U << 4)
482#define ST25R3916_REG_RX_CONF4_rg2_am_mask (0xfU << 4)
483#define ST25R3916_REG_RX_CONF4_rg2_am_shift (4U)
484#define ST25R3916_REG_RX_CONF4_rg2_pm3 (1U << 3)
485#define ST25R3916_REG_RX_CONF4_rg2_pm2 (1U << 2)
486#define ST25R3916_REG_RX_CONF4_rg2_pm1 (1U << 1)
487#define ST25R3916_REG_RX_CONF4_rg2_pm0 (1U << 0)
488#define ST25R3916_REG_RX_CONF4_rg2_pm_mask (0xfU << 0)
489#define ST25R3916_REG_RX_CONF4_rg2_pm_shift (0U)
490
491#define ST25R3916_REG_P2P_RX_CONF_ook_fd (1U << 7)
492#define ST25R3916_REG_P2P_RX_CONF_ook_rc1 (1U << 6)
493#define ST25R3916_REG_P2P_RX_CONF_ook_rc0 (1U << 5)
494#define ST25R3916_REG_P2P_RX_CONF_ook_thd1 (1U << 4)
495#define ST25R3916_REG_P2P_RX_CONF_ook_thd0 (1U << 3)
496#define ST25R3916_REG_P2P_RX_CONF_ask_rc1 (1U << 2)
497#define ST25R3916_REG_P2P_RX_CONF_ask_rc0 (1U << 1)
498#define ST25R3916_REG_P2P_RX_CONF_ask_thd (1U << 0)
499
500#define ST25R3916_REG_CORR_CONF1_corr_s7 (1U << 7)
501#define ST25R3916_REG_CORR_CONF1_corr_s6 (1U << 6)
502#define ST25R3916_REG_CORR_CONF1_corr_s5 (1U << 5)
503#define ST25R3916_REG_CORR_CONF1_corr_s4 (1U << 4)
504#define ST25R3916_REG_CORR_CONF1_corr_s3 (1U << 3)
505#define ST25R3916_REG_CORR_CONF1_corr_s2 (1U << 2)
506#define ST25R3916_REG_CORR_CONF1_corr_s1 (1U << 1)
507#define ST25R3916_REG_CORR_CONF1_corr_s0 (1U << 0)
508
509#define ST25R3916_REG_CORR_CONF2_rfu5 (1U << 7)
510#define ST25R3916_REG_CORR_CONF2_rfu4 (1U << 6)
511#define ST25R3916_REG_CORR_CONF2_rfu3 (1U << 5)
512#define ST25R3916_REG_CORR_CONF2_rfu2 (1U << 4)
513#define ST25R3916_REG_CORR_CONF2_rfu1 (1U << 3)
514#define ST25R3916_REG_CORR_CONF2_rfu0 (1U << 2)
515#define ST25R3916_REG_CORR_CONF2_corr_s9 (1U << 1)
516#define ST25R3916_REG_CORR_CONF2_corr_s8 (1U << 0)
517
518#define ST25R3916_REG_TIMER_EMV_CONTROL_gptc2 (1U << 7)
519#define ST25R3916_REG_TIMER_EMV_CONTROL_gptc1 (1U << 6)
520#define ST25R3916_REG_TIMER_EMV_CONTROL_gptc0 (1U << 5)
521#define ST25R3916_REG_TIMER_EMV_CONTROL_gptc_no_trigger (0U << 5)
522#define ST25R3916_REG_TIMER_EMV_CONTROL_gptc_erx (1U << 5)
523#define ST25R3916_REG_TIMER_EMV_CONTROL_gptc_srx (2U << 5)
524#define ST25R3916_REG_TIMER_EMV_CONTROL_gptc_etx_nfc (3U << 5)
525#define ST25R3916_REG_TIMER_EMV_CONTROL_gptc_mask (7U << 5)
526#define ST25R3916_REG_TIMER_EMV_CONTROL_gptc_shift (5U)
527#define ST25R3916_REG_TIMER_EMV_CONTROL_rfu (1U << 4)
528#define ST25R3916_REG_TIMER_EMV_CONTROL_mrt_step (1U << 3)
529#define ST25R3916_REG_TIMER_EMV_CONTROL_mrt_step_512 (1U << 3)
530#define ST25R3916_REG_TIMER_EMV_CONTROL_mrt_step_64 (0U << 3)
531#define ST25R3916_REG_TIMER_EMV_CONTROL_nrt_nfc (1U << 2)
532#define ST25R3916_REG_TIMER_EMV_CONTROL_nrt_nfc_on (1U << 2)
533#define ST25R3916_REG_TIMER_EMV_CONTROL_nrt_nfc_off (0U << 2)
534#define ST25R3916_REG_TIMER_EMV_CONTROL_nrt_emv (1U << 1)
535#define ST25R3916_REG_TIMER_EMV_CONTROL_nrt_emv_on (1U << 1)
536#define ST25R3916_REG_TIMER_EMV_CONTROL_nrt_emv_off (0U << 1)
537#define ST25R3916_REG_TIMER_EMV_CONTROL_nrt_step (1U << 0)
538#define ST25R3916_REG_TIMER_EMV_CONTROL_nrt_step_64fc (0U << 0)
539#define ST25R3916_REG_TIMER_EMV_CONTROL_nrt_step_4096_fc (1U << 0)
540
541#define ST25R3916_REG_FIFO_STATUS2_fifo_b9 (1U << 7)
542#define ST25R3916_REG_FIFO_STATUS2_fifo_b8 (1U << 6)
543#define ST25R3916_REG_FIFO_STATUS2_fifo_b_mask (3U << 6)
544#define ST25R3916_REG_FIFO_STATUS2_fifo_b_shift (6U)
545#define ST25R3916_REG_FIFO_STATUS2_fifo_unf (1U << 5)
546#define ST25R3916_REG_FIFO_STATUS2_fifo_ovr (1U << 4)
547#define ST25R3916_REG_FIFO_STATUS2_fifo_lb2 (1U << 3)
548#define ST25R3916_REG_FIFO_STATUS2_fifo_lb1 (1U << 2)
549#define ST25R3916_REG_FIFO_STATUS2_fifo_lb0 (1U << 1)
550#define ST25R3916_REG_FIFO_STATUS2_fifo_lb_mask (7U << 1)
551#define ST25R3916_REG_FIFO_STATUS2_fifo_lb_shift (1U)
552#define ST25R3916_REG_FIFO_STATUS2_np_lb (1U << 0)
553
554#define ST25R3916_REG_COLLISION_STATUS_c_byte3 (1U << 7)
555#define ST25R3916_REG_COLLISION_STATUS_c_byte2 (1U << 6)
556#define ST25R3916_REG_COLLISION_STATUS_c_byte1 (1U << 5)
557#define ST25R3916_REG_COLLISION_STATUS_c_byte0 (1U << 4)
558#define ST25R3916_REG_COLLISION_STATUS_c_byte_mask (0xfU << 4)
559#define ST25R3916_REG_COLLISION_STATUS_c_byte_shift (4U)
560#define ST25R3916_REG_COLLISION_STATUS_c_bit2 (1U << 3)
561#define ST25R3916_REG_COLLISION_STATUS_c_bit1 (1U << 2)
562#define ST25R3916_REG_COLLISION_STATUS_c_bit0 (1U << 1)
563#define ST25R3916_REG_COLLISION_STATUS_c_pb (1U << 0)
564#define ST25R3916_REG_COLLISION_STATUS_c_bit_mask (3U << 1)
565#define ST25R3916_REG_COLLISION_STATUS_c_bit_shift (1U)
566
567#define ST25R3916_REG_PASSIVE_TARGET_STATUS_rfu (1U << 7)
568#define ST25R3916_REG_PASSIVE_TARGET_STATUS_rfu1 (1U << 6)
569#define ST25R3916_REG_PASSIVE_TARGET_STATUS_rfu2 (1U << 5)
570#define ST25R3916_REG_PASSIVE_TARGET_STATUS_rfu3 (1U << 4)
571#define ST25R3916_REG_PASSIVE_TARGET_STATUS_pta_state3 (1U << 3)
572#define ST25R3916_REG_PASSIVE_TARGET_STATUS_pta_state2 (1U << 2)
573#define ST25R3916_REG_PASSIVE_TARGET_STATUS_pta_state1 (1U << 1)
574#define ST25R3916_REG_PASSIVE_TARGET_STATUS_pta_state0 (1U << 0)
575#define ST25R3916_REG_PASSIVE_TARGET_STATUS_pta_st_power_off (0x0U << 0)
576#define ST25R3916_REG_PASSIVE_TARGET_STATUS_pta_st_idle (0x1U << 0)
577#define ST25R3916_REG_PASSIVE_TARGET_STATUS_pta_st_ready_l1 (0x2U << 0)
578#define ST25R3916_REG_PASSIVE_TARGET_STATUS_pta_st_ready_l2 (0x3U << 0)
579#define ST25R3916_REG_PASSIVE_TARGET_STATUS_pta_st_rfu4 (0x4U << 0)
580#define ST25R3916_REG_PASSIVE_TARGET_STATUS_pta_st_active (0x5U << 0)
581#define ST25R3916_REG_PASSIVE_TARGET_STATUS_pta_st_rfu6 (0x6U << 0)
582#define ST25R3916_REG_PASSIVE_TARGET_STATUS_pta_st_rfu7 (0x7U << 0)
583#define ST25R3916_REG_PASSIVE_TARGET_STATUS_pta_st_rfu8 (0x8U << 0)
584#define ST25R3916_REG_PASSIVE_TARGET_STATUS_pta_st_halt (0x9U << 0)
585#define ST25R3916_REG_PASSIVE_TARGET_STATUS_pta_st_ready_l1_x (0xaU << 0)
586#define ST25R3916_REG_PASSIVE_TARGET_STATUS_pta_st_ready_l2_x (0xbU << 0)
587#define ST25R3916_REG_PASSIVE_TARGET_STATUS_pta_st_rfu12 (0xcU << 0)
588#define ST25R3916_REG_PASSIVE_TARGET_STATUS_pta_st_active_x (0xdU << 0)
589#define ST25R3916_REG_PASSIVE_TARGET_STATUS_pta_state_mask (0xfU << 0)
590#define ST25R3916_REG_PASSIVE_TARGET_STATUS_pta_state_shift (0U)
591
592#define ST25R3916_REG_NUM_TX_BYTES2_ntx4 (1U << 7)
593#define ST25R3916_REG_NUM_TX_BYTES2_ntx3 (1U << 6)
594#define ST25R3916_REG_NUM_TX_BYTES2_ntx2 (1U << 5)
595#define ST25R3916_REG_NUM_TX_BYTES2_ntx1 (1U << 4)
596#define ST25R3916_REG_NUM_TX_BYTES2_ntx0 (1U << 3)
597#define ST25R3916_REG_NUM_TX_BYTES2_ntx_mask (0x1fU << 3)
598#define ST25R3916_REG_NUM_TX_BYTES2_ntx_shift (3U)
599#define ST25R3916_REG_NUM_TX_BYTES2_nbtx2 (1U << 2)
600#define ST25R3916_REG_NUM_TX_BYTES2_nbtx1 (1U << 1)
601#define ST25R3916_REG_NUM_TX_BYTES2_nbtx0 (1U << 0)
602#define ST25R3916_REG_NUM_TX_BYTES2_nbtx_mask (7U << 0)
603#define ST25R3916_REG_NUM_TX_BYTES2_nbtx_shift (0U)
604
605#define ST25R3916_REG_NFCIP1_BIT_RATE_nfc_rfu1 (1U << 7)
606#define ST25R3916_REG_NFCIP1_BIT_RATE_nfc_rfu0 (1U << 6)
607#define ST25R3916_REG_NFCIP1_BIT_RATE_nfc_rate1 (1U << 5)
608#define ST25R3916_REG_NFCIP1_BIT_RATE_nfc_rate0 (1U << 4)
609#define ST25R3916_REG_NFCIP1_BIT_RATE_nfc_rate_mask (0x3U << 4)
610#define ST25R3916_REG_NFCIP1_BIT_RATE_nfc_rate_shift (4U)
611#define ST25R3916_REG_NFCIP1_BIT_RATE_ppt2_on (1U << 3)
612#define ST25R3916_REG_NFCIP1_BIT_RATE_gpt_on (1U << 2)
613#define ST25R3916_REG_NFCIP1_BIT_RATE_nrt_on (1U << 1)
614#define ST25R3916_REG_NFCIP1_BIT_RATE_mrt_on (1U << 0)
615
616#define ST25R3916_REG_TX_DRIVER_am_mod3 (1U << 7)
617#define ST25R3916_REG_TX_DRIVER_am_mod2 (1U << 6)
618#define ST25R3916_REG_TX_DRIVER_am_mod1 (1U << 5)
619#define ST25R3916_REG_TX_DRIVER_am_mod0 (1U << 4)
620#define ST25R3916_REG_TX_DRIVER_am_mod_5percent (0x0U << 4)
621#define ST25R3916_REG_TX_DRIVER_am_mod_6percent (0x1U << 4)
622#define ST25R3916_REG_TX_DRIVER_am_mod_7percent (0x2U << 4)
623#define ST25R3916_REG_TX_DRIVER_am_mod_8percent (0x3U << 4)
624#define ST25R3916_REG_TX_DRIVER_am_mod_9percent (0x4U << 4)
625#define ST25R3916_REG_TX_DRIVER_am_mod_10percent (0x5U << 4)
626#define ST25R3916_REG_TX_DRIVER_am_mod_11percent (0x6U << 4)
627#define ST25R3916_REG_TX_DRIVER_am_mod_12percent (0x7U << 4)
628#define ST25R3916_REG_TX_DRIVER_am_mod_13percent (0x8U << 4)
629#define ST25R3916_REG_TX_DRIVER_am_mod_14percent (0x9U << 4)
630#define ST25R3916_REG_TX_DRIVER_am_mod_15percent (0xaU << 4)
631#define ST25R3916_REG_TX_DRIVER_am_mod_17percent (0xbU << 4)
632#define ST25R3916_REG_TX_DRIVER_am_mod_19percent (0xcU << 4)
633#define ST25R3916_REG_TX_DRIVER_am_mod_22percent (0xdU << 4)
634#define ST25R3916_REG_TX_DRIVER_am_mod_26percent (0xeU << 4)
635#define ST25R3916_REG_TX_DRIVER_am_mod_40percent (0xfU << 4)
636#define ST25R3916_REG_TX_DRIVER_am_mod_mask (0xfU << 4)
637#define ST25R3916_REG_TX_DRIVER_am_mod_shift (4U)
638#define ST25R3916_REG_TX_DRIVER_d_res3 (1U << 3)
639#define ST25R3916_REG_TX_DRIVER_d_res2 (1U << 2)
640#define ST25R3916_REG_TX_DRIVER_d_res1 (1U << 1)
641#define ST25R3916_REG_TX_DRIVER_d_res0 (1U << 0)
642#define ST25R3916_REG_TX_DRIVER_d_res_mask (0xfU << 0)
643#define ST25R3916_REG_TX_DRIVER_d_res_shift (0U)
644
645#define ST25R3916_REG_PT_MOD_ptm_res3 (1U << 7)
646#define ST25R3916_REG_PT_MOD_ptm_res2 (1U << 6)
647#define ST25R3916_REG_PT_MOD_ptm_res1 (1U << 5)
648#define ST25R3916_REG_PT_MOD_ptm_res0 (1U << 4)
649#define ST25R3916_REG_PT_MOD_ptm_res_mask (0xfU << 4)
650#define ST25R3916_REG_PT_MOD_ptm_res_shift (4U)
651#define ST25R3916_REG_PT_MOD_pt_res3 (1U << 3)
652#define ST25R3916_REG_PT_MOD_pt_res2 (1U << 2)
653#define ST25R3916_REG_PT_MOD_pt_res1 (1U << 1)
654#define ST25R3916_REG_PT_MOD_pt_res0 (1U << 0)
655#define ST25R3916_REG_PT_MOD_pt_res_mask (0xfU << 0)
656#define ST25R3916_REG_PT_MOD_pt_res_shift (0U)
657
658#define ST25R3916_REG_AUX_MOD_dis_reg_am (1U << 7)
659#define ST25R3916_REG_AUX_MOD_lm_ext_pol (1U << 6)
660#define ST25R3916_REG_AUX_MOD_lm_ext (1U << 5)
661#define ST25R3916_REG_AUX_MOD_lm_dri (1U << 4)
662#define ST25R3916_REG_AUX_MOD_res_am (1U << 3)
663#define ST25R3916_REG_AUX_MOD_rfu2 (1U << 2)
664#define ST25R3916_REG_AUX_MOD_rfu1 (1U << 1)
665#define ST25R3916_REG_AUX_MOD_rfu0 (1U << 0)
666
667#define ST25R3916_REG_TX_DRIVER_TIMING_d_rat_t3 (1U << 7)
668#define ST25R3916_REG_TX_DRIVER_TIMING_d_rat_t2 (1U << 6)
669#define ST25R3916_REG_TX_DRIVER_TIMING_d_rat_t1 (1U << 5)
670#define ST25R3916_REG_TX_DRIVER_TIMING_d_rat_t0 (1U << 4)
671#define ST25R3916_REG_TX_DRIVER_TIMING_d_rat_mask (0xfU << 4)
672#define ST25R3916_REG_TX_DRIVER_TIMING_d_rat_shift (4U)
673#define ST25R3916_REG_TX_DRIVER_TIMING_rfu (1U << 3)
674#define ST25R3916_REG_TX_DRIVER_TIMING_d_tim_m2 (1U << 2)
675#define ST25R3916_REG_TX_DRIVER_TIMING_d_tim_m1 (1U << 1)
676#define ST25R3916_REG_TX_DRIVER_TIMING_d_tim_m0 (1U << 0)
677#define ST25R3916_REG_TX_DRIVER_TIMING_d_tim_m_mask (0x7U << 0)
678#define ST25R3916_REG_TX_DRIVER_TIMING_d_tim_m_shift (0U)
679
680#define ST25R3916_REG_RES_AM_MOD_fa3_f (1U << 7)
681#define ST25R3916_REG_RES_AM_MOD_md_res6 (1U << 6)
682#define ST25R3916_REG_RES_AM_MOD_md_res5 (1U << 5)
683#define ST25R3916_REG_RES_AM_MOD_md_res4 (1U << 4)
684#define ST25R3916_REG_RES_AM_MOD_md_res3 (1U << 3)
685#define ST25R3916_REG_RES_AM_MOD_md_res2 (1U << 2)
686#define ST25R3916_REG_RES_AM_MOD_md_res1 (1U << 1)
687#define ST25R3916_REG_RES_AM_MOD_md_res0 (1U << 0)
688#define ST25R3916_REG_RES_AM_MOD_md_res_mask (0x7FU << 0)
689#define ST25R3916_REG_RES_AM_MOD_md_res_shift (0U)
690
691#define ST25R3916_REG_TX_DRIVER_STATUS_d_rat_r3 (1U << 7)
692#define ST25R3916_REG_TX_DRIVER_STATUS_d_rat_r2 (1U << 6)
693#define ST25R3916_REG_TX_DRIVER_STATUS_d_rat_r1 (1U << 5)
694#define ST25R3916_REG_TX_DRIVER_STATUS_d_rat_r0 (1U << 4)
695#define ST25R3916_REG_TX_DRIVER_STATUS_d_rat_mask (0xfU << 4)
696#define ST25R3916_REG_TX_DRIVER_STATUS_d_rat_shift (4U)
697#define ST25R3916_REG_TX_DRIVER_STATUS_rfu (1U << 3)
698#define ST25R3916_REG_TX_DRIVER_STATUS_d_tim_r2 (1U << 2)
699#define ST25R3916_REG_TX_DRIVER_STATUS_d_tim_r1 (1U << 1)
700#define ST25R3916_REG_TX_DRIVER_STATUS_d_tim_r0 (1U << 0)
701#define ST25R3916_REG_TX_DRIVER_STATUS_d_tim_mask (0x7U << 0)
702#define ST25R3916_REG_TX_DRIVER_STATUS_d_tim_shift (0U)
703
704#define ST25R3916_REG_FIELD_THRESHOLD_ACTV_trg_l2a (1U << 6)
705#define ST25R3916_REG_FIELD_THRESHOLD_ACTV_trg_l1a (1U << 5)
706#define ST25R3916_REG_FIELD_THRESHOLD_ACTV_trg_l0a (1U << 4)
707#define ST25R3916_REG_FIELD_THRESHOLD_ACTV_trg_75mV (0x0U << 4)
708#define ST25R3916_REG_FIELD_THRESHOLD_ACTV_trg_105mV (0x1U << 4)
709#define ST25R3916_REG_FIELD_THRESHOLD_ACTV_trg_150mV (0x2U << 4)
710#define ST25R3916_REG_FIELD_THRESHOLD_ACTV_trg_205mV (0x3U << 4)
711#define ST25R3916_REG_FIELD_THRESHOLD_ACTV_trg_290mV (0x4U << 4)
712#define ST25R3916_REG_FIELD_THRESHOLD_ACTV_trg_400mV (0x5U << 4)
713#define ST25R3916_REG_FIELD_THRESHOLD_ACTV_trg_560mV (0x6U << 4)
714#define ST25R3916_REG_FIELD_THRESHOLD_ACTV_trg_800mV (0x7U << 4)
715#define ST25R3916_REG_FIELD_THRESHOLD_ACTV_trg_mask (7U << 4)
716#define ST25R3916_REG_FIELD_THRESHOLD_ACTV_trg_shift (4U)
717#define ST25R3916_REG_FIELD_THRESHOLD_ACTV_rfe_t3a (1U << 3)
718#define ST25R3916_REG_FIELD_THRESHOLD_ACTV_rfe_t2a (1U << 2)
719#define ST25R3916_REG_FIELD_THRESHOLD_ACTV_rfe_t1a (1U << 1)
720#define ST25R3916_REG_FIELD_THRESHOLD_ACTV_rfe_t0a (1U << 0)
721#define ST25R3916_REG_FIELD_THRESHOLD_ACTV_rfe_75mV (0x0U << 0)
722#define ST25R3916_REG_FIELD_THRESHOLD_ACTV_rfe_105mV (0x1U << 0)
723#define ST25R3916_REG_FIELD_THRESHOLD_ACTV_rfe_150mV (0x2U << 0)
724#define ST25R3916_REG_FIELD_THRESHOLD_ACTV_rfe_205mV (0x3U << 0)
725#define ST25R3916_REG_FIELD_THRESHOLD_ACTV_rfe_290mV (0x4U << 0)
726#define ST25R3916_REG_FIELD_THRESHOLD_ACTV_rfe_400mV (0x5U << 0)
727#define ST25R3916_REG_FIELD_THRESHOLD_ACTV_rfe_560mV (0x6U << 0)
728#define ST25R3916_REG_FIELD_THRESHOLD_ACTV_rfe_800mV (0x7U << 0)
729#define ST25R3916_REG_FIELD_THRESHOLD_ACTV_rfe_25mV (0x8U << 0)
730#define ST25R3916_REG_FIELD_THRESHOLD_ACTV_rfe_33mV (0x9U << 0)
731#define ST25R3916_REG_FIELD_THRESHOLD_ACTV_rfe_47mV (0xAU << 0)
732#define ST25R3916_REG_FIELD_THRESHOLD_ACTV_rfe_64mV (0xBU << 0)
733#define ST25R3916_REG_FIELD_THRESHOLD_ACTV_rfe_90mV (0xCU << 0)
734#define ST25R3916_REG_FIELD_THRESHOLD_ACTV_rfe_125mV (0xDU << 0)
735#define ST25R3916_REG_FIELD_THRESHOLD_ACTV_rfe_175mV (0xEU << 0)
736#define ST25R3916_REG_FIELD_THRESHOLD_ACTV_rfe_250mV (0xFU << 0)
737#define ST25R3916_REG_FIELD_THRESHOLD_ACTV_rfe_mask (0xfU << 0)
738#define ST25R3916_REG_FIELD_THRESHOLD_ACTV_rfe_shift (0U)
739
740#define ST25R3916_REG_FIELD_THRESHOLD_DEACTV_trg_l2d (1U << 6)
741#define ST25R3916_REG_FIELD_THRESHOLD_DEACTV_trg_l1d (1U << 5)
742#define ST25R3916_REG_FIELD_THRESHOLD_DEACTV_trg_l0d (1U << 4)
743#define ST25R3916_REG_FIELD_THRESHOLD_DEACTV_trg_75mV (0x0U << 4)
744#define ST25R3916_REG_FIELD_THRESHOLD_DEACTV_trg_105mV (0x1U << 4)
745#define ST25R3916_REG_FIELD_THRESHOLD_DEACTV_trg_150mV (0x2U << 4)
746#define ST25R3916_REG_FIELD_THRESHOLD_DEACTV_trg_205mV (0x3U << 4)
747#define ST25R3916_REG_FIELD_THRESHOLD_DEACTV_trg_290mV (0x4U << 4)
748#define ST25R3916_REG_FIELD_THRESHOLD_DEACTV_trg_400mV (0x5U << 4)
749#define ST25R3916_REG_FIELD_THRESHOLD_DEACTV_trg_560mV (0x6U << 4)
750#define ST25R3916_REG_FIELD_THRESHOLD_DEACTV_trg_800mV (0x7U << 4)
751#define ST25R3916_REG_FIELD_THRESHOLD_DEACTV_trg_mask (7U << 4)
752#define ST25R3916_REG_FIELD_THRESHOLD_DEACTV_trg_shift (4U)
753#define ST25R3916_REG_FIELD_THRESHOLD_DEACTV_rfe_t3d (1U << 3)
754#define ST25R3916_REG_FIELD_THRESHOLD_DEACTV_rfe_t2d (1U << 2)
755#define ST25R3916_REG_FIELD_THRESHOLD_DEACTV_rfe_t1d (1U << 1)
756#define ST25R3916_REG_FIELD_THRESHOLD_DEACTV_rfe_t0d (1U << 0)
757#define ST25R3916_REG_FIELD_THRESHOLD_DEACTV_rfe_75mV (0x0U << 0)
758#define ST25R3916_REG_FIELD_THRESHOLD_DEACTV_rfe_105mV (0x1U << 0)
759#define ST25R3916_REG_FIELD_THRESHOLD_DEACTV_rfe_150mV (0x2U << 0)
760#define ST25R3916_REG_FIELD_THRESHOLD_DEACTV_rfe_205mV (0x3U << 0)
761#define ST25R3916_REG_FIELD_THRESHOLD_DEACTV_rfe_290mV (0x4U << 0)
762#define ST25R3916_REG_FIELD_THRESHOLD_DEACTV_rfe_400mV (0x5U << 0)
763#define ST25R3916_REG_FIELD_THRESHOLD_DEACTV_rfe_560mV (0x6U << 0)
764#define ST25R3916_REG_FIELD_THRESHOLD_DEACTV_rfe_800mV (0x7U << 0)
765#define ST25R3916_REG_FIELD_THRESHOLD_DEACTV_rfe_25mV (0x8U << 0)
766#define ST25R3916_REG_FIELD_THRESHOLD_DEACTV_rfe_33mV (0x9U << 0)
767#define ST25R3916_REG_FIELD_THRESHOLD_DEACTV_rfe_47mV (0xAU << 0)
768#define ST25R3916_REG_FIELD_THRESHOLD_DEACTV_rfe_64mV (0xBU << 0)
769#define ST25R3916_REG_FIELD_THRESHOLD_DEACTV_rfe_90mV (0xCU << 0)
770#define ST25R3916_REG_FIELD_THRESHOLD_DEACTV_rfe_125mV (0xDU << 0)
771#define ST25R3916_REG_FIELD_THRESHOLD_DEACTV_rfe_175mV (0xEU << 0)
772#define ST25R3916_REG_FIELD_THRESHOLD_DEACTV_rfe_250mV (0xFU << 0)
773#define ST25R3916_REG_FIELD_THRESHOLD_DEACTV_rfe_mask (0xfU << 0)
774#define ST25R3916_REG_FIELD_THRESHOLD_DEACTV_rfe_shift (0U)
775
776#define ST25R3916_REG_REGULATOR_CONTROL_reg_s (1U << 7)
777#define ST25R3916_REG_REGULATOR_CONTROL_rege_3 (1U << 6)
778#define ST25R3916_REG_REGULATOR_CONTROL_rege_2 (1U << 5)
779#define ST25R3916_REG_REGULATOR_CONTROL_rege_1 (1U << 4)
780#define ST25R3916_REG_REGULATOR_CONTROL_rege_0 (1U << 3)
781#define ST25R3916_REG_REGULATOR_CONTROL_rege_mask (0xfU << 3)
782#define ST25R3916_REG_REGULATOR_CONTROL_rege_shift (3U)
783#define ST25R3916_REG_REGULATOR_CONTROL_mpsv2 (2U << 2)
784#define ST25R3916_REG_REGULATOR_CONTROL_mpsv1 (1U << 1)
785#define ST25R3916_REG_REGULATOR_CONTROL_mpsv0 (1U << 0)
786#define ST25R3916_REG_REGULATOR_CONTROL_mpsv_vdd (0U)
787#define ST25R3916_REG_REGULATOR_CONTROL_mpsv_vdd_a (1U)
788#define ST25R3916_REG_REGULATOR_CONTROL_mpsv_vdd_d (2U)
789#define ST25R3916_REG_REGULATOR_CONTROL_mpsv_vdd_rf (3U)
790#define ST25R3916_REG_REGULATOR_CONTROL_mpsv_vdd_am (4U)
791#define ST25R3916_REG_REGULATOR_CONTROL_rfu (5U)
792#define ST25R3916_REG_REGULATOR_CONTROL_rfu1 (6U)
793#define ST25R3916_REG_REGULATOR_CONTROL_rfu2 (7U)
794#define ST25R3916_REG_REGULATOR_CONTROL_mpsv_mask (7U)
795#define ST25R3916_REG_REGULATOR_CONTROL_mpsv_shift (0U)
796
797#define ST25R3916_REG_REGULATOR_RESULT_reg_3 (1U << 7)
798#define ST25R3916_REG_REGULATOR_RESULT_reg_2 (1U << 6)
799#define ST25R3916_REG_REGULATOR_RESULT_reg_1 (1U << 5)
800#define ST25R3916_REG_REGULATOR_RESULT_reg_0 (1U << 4)
801#define ST25R3916_REG_REGULATOR_RESULT_reg_mask (0xfU << 4)
802#define ST25R3916_REG_REGULATOR_RESULT_reg_shift (4U)
803#define ST25R3916_REG_REGULATOR_RESULT_i_lim (1U << 0)
804
805#define ST25R3916_REG_RSSI_RESULT_rssi_am_3 (1U << 7)
806#define ST25R3916_REG_RSSI_RESULT_rssi_am_2 (1U << 6)
807#define ST25R3916_REG_RSSI_RESULT_rssi_am_1 (1U << 5)
808#define ST25R3916_REG_RSSI_RESULT_rssi_am_0 (1U << 4)
809#define ST25R3916_REG_RSSI_RESULT_rssi_am_mask (0xfU << 4)
810#define ST25R3916_REG_RSSI_RESULT_rssi_am_shift (4U)
811#define ST25R3916_REG_RSSI_RESULT_rssi_pm3 (1U << 3)
812#define ST25R3916_REG_RSSI_RESULT_rssi_pm2 (1U << 2)
813#define ST25R3916_REG_RSSI_RESULT_rssi_pm1 (1U << 1)
814#define ST25R3916_REG_RSSI_RESULT_rssi_pm0 (1U << 0)
815#define ST25R3916_REG_RSSI_RESULT_rssi_pm_mask (0xfU << 0)
816#define ST25R3916_REG_RSSI_RESULT_rssi_pm_shift (0U)
817
818#define ST25R3916_REG_GAIN_RED_STATE_gs_am_3 (1U << 7)
819#define ST25R3916_REG_GAIN_RED_STATE_gs_am_2 (1U << 6)
820#define ST25R3916_REG_GAIN_RED_STATE_gs_am_1 (1U << 5)
821#define ST25R3916_REG_GAIN_RED_STATE_gs_am_0 (1U << 4)
822#define ST25R3916_REG_GAIN_RED_STATE_gs_am_mask (0xfU << 4)
823#define ST25R3916_REG_GAIN_RED_STATE_gs_am_shift (4U)
824#define ST25R3916_REG_GAIN_RED_STATE_gs_pm_3 (1U << 3)
825#define ST25R3916_REG_GAIN_RED_STATE_gs_pm_2 (1U << 2)
826#define ST25R3916_REG_GAIN_RED_STATE_gs_pm_1 (1U << 1)
827#define ST25R3916_REG_GAIN_RED_STATE_gs_pm_0 (1U << 0)
828#define ST25R3916_REG_GAIN_RED_STATE_gs_pm_mask (0xfU << 0)
829#define ST25R3916_REG_GAIN_RED_STATE_gs_pm_shift (0U)
830
831#define ST25R3916_REG_CAP_SENSOR_CONTROL_cs_mcal4 (1U << 7)
832#define ST25R3916_REG_CAP_SENSOR_CONTROL_cs_mcal3 (1U << 6)
833#define ST25R3916_REG_CAP_SENSOR_CONTROL_cs_mcal2 (1U << 5)
834#define ST25R3916_REG_CAP_SENSOR_CONTROL_cs_mcal1 (1U << 4)
835#define ST25R3916_REG_CAP_SENSOR_CONTROL_cs_mcal0 (1U << 3)
836#define ST25R3916_REG_CAP_SENSOR_CONTROL_cs_mcal_mask (0x1fU << 3)
837#define ST25R3916_REG_CAP_SENSOR_CONTROL_cs_mcal_shift (3U)
838#define ST25R3916_REG_CAP_SENSOR_CONTROL_cs_g2 (1U << 2)
839#define ST25R3916_REG_CAP_SENSOR_CONTROL_cs_g1 (1U << 1)
840#define ST25R3916_REG_CAP_SENSOR_CONTROL_cs_g0 (1U << 0)
841#define ST25R3916_REG_CAP_SENSOR_CONTROL_cs_g_mask (7U << 0)
842#define ST25R3916_REG_CAP_SENSOR_CONTROL_cs_g_shift (0U)
843
844#define ST25R3916_REG_CAP_SENSOR_RESULT_cs_cal4 (1U << 7)
845#define ST25R3916_REG_CAP_SENSOR_RESULT_cs_cal3 (1U << 6)
846#define ST25R3916_REG_CAP_SENSOR_RESULT_cs_cal2 (1U << 5)
847#define ST25R3916_REG_CAP_SENSOR_RESULT_cs_cal1 (1U << 4)
848#define ST25R3916_REG_CAP_SENSOR_RESULT_cs_cal0 (1U << 3)
849#define ST25R3916_REG_CAP_SENSOR_RESULT_cs_cal_mask (0x1fU << 3)
850#define ST25R3916_REG_CAP_SENSOR_RESULT_cs_cal_shift (3U)
851#define ST25R3916_REG_CAP_SENSOR_RESULT_cs_cal_end (1U << 2)
852#define ST25R3916_REG_CAP_SENSOR_RESULT_cs_cal_err (1U << 1)
853
854#define ST25R3916_REG_AUX_DISPLAY_a_cha (1U << 7)
855#define ST25R3916_REG_AUX_DISPLAY_efd_o (1U << 6)
856#define ST25R3916_REG_AUX_DISPLAY_tx_on (1U << 5)
857#define ST25R3916_REG_AUX_DISPLAY_osc_ok (1U << 4)
858#define ST25R3916_REG_AUX_DISPLAY_rx_on (1U << 3)
859#define ST25R3916_REG_AUX_DISPLAY_rx_act (1U << 2)
860#define ST25R3916_REG_AUX_DISPLAY_en_peer (1U << 1)
861#define ST25R3916_REG_AUX_DISPLAY_en_ac (1U << 0)
862
863#define ST25R3916_REG_OVERSHOOT_CONF1_ov_tx_mode1 (1U << 7)
864#define ST25R3916_REG_OVERSHOOT_CONF1_ov_tx_mode0 (1U << 6)
865#define ST25R3916_REG_OVERSHOOT_CONF1_ov_pattern13 (1U << 5)
866#define ST25R3916_REG_OVERSHOOT_CONF1_ov_pattern12 (1U << 4)
867#define ST25R3916_REG_OVERSHOOT_CONF1_ov_pattern11 (1U << 3)
868#define ST25R3916_REG_OVERSHOOT_CONF1_ov_pattern10 (1U << 2)
869#define ST25R3916_REG_OVERSHOOT_CONF1_ov_pattern9 (1U << 1)
870#define ST25R3916_REG_OVERSHOOT_CONF1_ov_pattern8 (1U << 0)
871
872#define ST25R3916_REG_OVERSHOOT_CONF2_ov_pattern7 (1U << 7)
873#define ST25R3916_REG_OVERSHOOT_CONF2_ov_pattern6 (1U << 6)
874#define ST25R3916_REG_OVERSHOOT_CONF2_ov_pattern5 (1U << 5)
875#define ST25R3916_REG_OVERSHOOT_CONF2_ov_pattern4 (1U << 4)
876#define ST25R3916_REG_OVERSHOOT_CONF2_ov_pattern3 (1U << 3)
877#define ST25R3916_REG_OVERSHOOT_CONF2_ov_pattern2 (1U << 2)
878#define ST25R3916_REG_OVERSHOOT_CONF2_ov_pattern1 (1U << 1)
879#define ST25R3916_REG_OVERSHOOT_CONF2_ov_pattern0 (1U << 0)
880
881#define ST25R3916_REG_UNDERSHOOT_CONF1_un_tx_mode1 (1U << 7)
882#define ST25R3916_REG_UNDERSHOOT_CONF1_un_tx_mode0 (1U << 6)
883#define ST25R3916_REG_UNDERSHOOT_CONF1_un_pattern13 (1U << 5)
884#define ST25R3916_REG_UNDERSHOOT_CONF1_un_pattern12 (1U << 4)
885#define ST25R3916_REG_UNDERSHOOT_CONF1_un_pattern11 (1U << 3)
886#define ST25R3916_REG_UNDERSHOOT_CONF1_un_pattern10 (1U << 2)
887#define ST25R3916_REG_UNDERSHOOT_CONF1_un_pattern9 (1U << 1)
888#define ST25R3916_REG_UNDERSHOOT_CONF1_un_pattern8 (1U << 0)
889
890#define ST25R3916_REG_UNDERSHOOT_CONF2_un_pattern7 (1U << 7)
891#define ST25R3916_REG_UNDERSHOOT_CONF2_un_pattern6 (1U << 6)
892#define ST25R3916_REG_UNDERSHOOT_CONF2_un_pattern5 (1U << 5)
893#define ST25R3916_REG_UNDERSHOOT_CONF2_un_pattern4 (1U << 4)
894#define ST25R3916_REG_UNDERSHOOT_CONF2_un_pattern3 (1U << 3)
895#define ST25R3916_REG_UNDERSHOOT_CONF2_un_pattern2 (1U << 2)
896#define ST25R3916_REG_UNDERSHOOT_CONF2_un_pattern1 (1U << 1)
897#define ST25R3916_REG_UNDERSHOOT_CONF2_un_pattern0 (1U << 0)
898
899#define ST25R3916_REG_WUP_TIMER_CONTROL_wur (1U << 7)
900#define ST25R3916_REG_WUP_TIMER_CONTROL_wut2 (1U << 6)
901#define ST25R3916_REG_WUP_TIMER_CONTROL_wut1 (1U << 5)
902#define ST25R3916_REG_WUP_TIMER_CONTROL_wut0 (1U << 4)
903#define ST25R3916_REG_WUP_TIMER_CONTROL_wut_mask (7U << 4)
904#define ST25R3916_REG_WUP_TIMER_CONTROL_wut_shift (4U)
905#define ST25R3916_REG_WUP_TIMER_CONTROL_wto (1U << 3)
906#define ST25R3916_REG_WUP_TIMER_CONTROL_wam (1U << 2)
907#define ST25R3916_REG_WUP_TIMER_CONTROL_wph (1U << 1)
908#define ST25R3916_REG_WUP_TIMER_CONTROL_wcap (1U << 0)
909
910#define ST25R3916_REG_AMPLITUDE_MEASURE_CONF_am_d3 (1U << 7)
911#define ST25R3916_REG_AMPLITUDE_MEASURE_CONF_am_d2 (1U << 6)
912#define ST25R3916_REG_AMPLITUDE_MEASURE_CONF_am_d1 (1U << 5)
913#define ST25R3916_REG_AMPLITUDE_MEASURE_CONF_am_d0 (1U << 4)
914#define ST25R3916_REG_AMPLITUDE_MEASURE_CONF_am_d_mask (0xfU << 4)
915#define ST25R3916_REG_AMPLITUDE_MEASURE_CONF_am_d_shift (4U)
916#define ST25R3916_REG_AMPLITUDE_MEASURE_CONF_am_aam (1U << 3)
917#define ST25R3916_REG_AMPLITUDE_MEASURE_CONF_am_aew1 (1U << 2)
918#define ST25R3916_REG_AMPLITUDE_MEASURE_CONF_am_aew0 (1U << 1)
919#define ST25R3916_REG_AMPLITUDE_MEASURE_CONF_am_aew_mask (0x3U << 1)
920#define ST25R3916_REG_AMPLITUDE_MEASURE_CONF_am_aew_shift (1U)
921#define ST25R3916_REG_AMPLITUDE_MEASURE_CONF_am_ae (1U << 0)
922
923#define ST25R3916_REG_PHASE_MEASURE_CONF_pm_d3 (1U << 7)
924#define ST25R3916_REG_PHASE_MEASURE_CONF_pm_d2 (1U << 6)
925#define ST25R3916_REG_PHASE_MEASURE_CONF_pm_d1 (1U << 5)
926#define ST25R3916_REG_PHASE_MEASURE_CONF_pm_d0 (1U << 4)
927#define ST25R3916_REG_PHASE_MEASURE_CONF_pm_d_mask (0xfU << 4)
928#define ST25R3916_REG_PHASE_MEASURE_CONF_pm_d_shift (4U)
929#define ST25R3916_REG_PHASE_MEASURE_CONF_pm_aam (1U << 3)
930#define ST25R3916_REG_PHASE_MEASURE_CONF_pm_aew1 (1U << 2)
931#define ST25R3916_REG_PHASE_MEASURE_CONF_pm_aew0 (1U << 1)
932#define ST25R3916_REG_PHASE_MEASURE_CONF_pm_aew_mask (0x3U << 1)
933#define ST25R3916_REG_PHASE_MEASURE_CONF_pm_aew_shift (1U)
934#define ST25R3916_REG_PHASE_MEASURE_CONF_pm_ae (1U << 0)
935
936#define ST25R3916_REG_CAPACITANCE_MEASURE_CONF_cm_d3 (1U << 7)
937#define ST25R3916_REG_CAPACITANCE_MEASURE_CONF_cm_d2 (1U << 6)
938#define ST25R3916_REG_CAPACITANCE_MEASURE_CONF_cm_d1 (1U << 5)
939#define ST25R3916_REG_CAPACITANCE_MEASURE_CONF_cm_d0 (1U << 4)
940#define ST25R3916_REG_CAPACITANCE_MEASURE_CONF_cm_d_mask (0xfU << 4)
941#define ST25R3916_REG_CAPACITANCE_MEASURE_CONF_cm_d_shift (4U)
942#define ST25R3916_REG_CAPACITANCE_MEASURE_CONF_cm_aam (1U << 3)
943#define ST25R3916_REG_CAPACITANCE_MEASURE_CONF_cm_aew1 (1U << 2)
944#define ST25R3916_REG_CAPACITANCE_MEASURE_CONF_cm_aew0 (1U << 1)
945#define ST25R3916_REG_CAPACITANCE_MEASURE_CONF_cm_aew_mask (0x3U << 1)
946#define ST25R3916_REG_CAPACITANCE_MEASURE_CONF_cm_aew_shift (1U)
947#define ST25R3916_REG_CAPACITANCE_MEASURE_CONF_cm_ae (1U << 0)
948
949#define ST25R3916_REG_IC_IDENTITY_ic_type4 (1U << 7)
950#define ST25R3916_REG_IC_IDENTITY_ic_type3 (1U << 6)
951#define ST25R3916_REG_IC_IDENTITY_ic_type2 (1U << 5)
952#define ST25R3916_REG_IC_IDENTITY_ic_type1 (1U << 4)
953#define ST25R3916_REG_IC_IDENTITY_ic_type0 (1U << 3)
954#define ST25R3916_REG_IC_IDENTITY_ic_type_st25r3916 (5U << 3)
955#define ST25R3916_REG_IC_IDENTITY_ic_type_mask (0x1fU << 3)
956#define ST25R3916_REG_IC_IDENTITY_ic_type_shift (3U)
957#define ST25R3916_REG_IC_IDENTITY_ic_rev2 (1U << 2)
958#define ST25R3916_REG_IC_IDENTITY_ic_rev1 (1U << 1)
959#define ST25R3916_REG_IC_IDENTITY_ic_rev0 (1U << 0)
960#define ST25R3916_REG_IC_IDENTITY_ic_rev_v0 (0U << 0)
961#define ST25R3916_REG_IC_IDENTITY_ic_rev_mask (7U << 0)
962#define ST25R3916_REG_IC_IDENTITY_ic_rev_shift (0U)
963
970void st25r3916_read_reg(FuriHalSpiBusHandle* handle, uint8_t reg, uint8_t* val);
971
979void st25r3916_read_burst_regs(
980 FuriHalSpiBusHandle* handle,
981 uint8_t reg_start,
982 uint8_t* values,
983 uint8_t length);
984
991void st25r3916_write_reg(FuriHalSpiBusHandle* handle, uint8_t reg, uint8_t val);
992
1000void st25r3916_write_burst_regs(
1001 FuriHalSpiBusHandle* handle,
1002 uint8_t reg_start,
1003 const uint8_t* values,
1004 uint8_t length);
1005
1012void st25r3916_reg_write_fifo(FuriHalSpiBusHandle* handle, const uint8_t* buff, size_t length);
1013
1020void st25r3916_reg_read_fifo(FuriHalSpiBusHandle* handle, uint8_t* buff, size_t length);
1021
1028void st25r3916_write_pta_mem(FuriHalSpiBusHandle* handle, const uint8_t* values, size_t length);
1029
1036void st25r3916_read_pta_mem(FuriHalSpiBusHandle* handle, uint8_t* values, size_t length);
1037
1044void st25r3916_write_ptf_mem(FuriHalSpiBusHandle* handle, const uint8_t* values, size_t length);
1045
1052void st25r3916_write_pttsn_mem(FuriHalSpiBusHandle* handle, uint8_t* values, size_t length);
1053
1059void st25r3916_direct_cmd(FuriHalSpiBusHandle* handle, uint8_t cmd);
1060
1066void st25r3916_read_test_reg(FuriHalSpiBusHandle* handle, uint8_t reg, uint8_t* val);
1067
1074void st25r3916_write_test_reg(FuriHalSpiBusHandle* handle, uint8_t reg, uint8_t val);
1075
1082void st25r3916_clear_reg_bits(FuriHalSpiBusHandle* handle, uint8_t reg, uint8_t clr_mask);
1083
1090void st25r3916_set_reg_bits(FuriHalSpiBusHandle* handle, uint8_t reg, uint8_t set_mask);
1091
1099void st25r3916_change_reg_bits(
1100 FuriHalSpiBusHandle* handle,
1101 uint8_t reg,
1102 uint8_t mask,
1103 uint8_t value);
1104
1112void st25r3916_modify_reg(
1113 FuriHalSpiBusHandle* handle,
1114 uint8_t reg,
1115 uint8_t clr_mask,
1116 uint8_t set_mask);
1117
1125void st25r3916_change_test_reg_bits(
1126 FuriHalSpiBusHandle* handle,
1127 uint8_t reg,
1128 uint8_t mask,
1129 uint8_t value);
1130
1140bool st25r3916_check_reg(FuriHalSpiBusHandle* handle, uint8_t reg, uint8_t mask, uint8_t val);
1141
1142#ifdef __cplusplus
1143}
1144#endif
FuriHal spi handle.
Definition furi_hal_spi_types.h:51