Loading...
Searching...
No Matches
sx127x_registers.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2016 Unwired Devices <info@unwds.com>
3 * 2016 Inria Chile
4 * 2017 Inria
5 *
6 * This file is subject to the terms and conditions of the GNU Lesser
7 * General Public License v2.1. See the file LICENSE in the top level
8 * directory for more details.
9 */
10
24#ifndef SX127X_REGISTERS_H
25#define SX127X_REGISTERS_H
26
27#ifdef __cplusplus
28extern "C" {
29#endif
30
36/* Common settings */
37#define SX127X_REG_LR_OPMODE (0x01)
38#define SX127X_REG_LR_FRFMSB (0x06)
39#define SX127X_REG_LR_FRFMID (0x07)
40#define SX127X_REG_LR_FRFLSB (0x08)
41
42/* Tx settings */
43#define SX127X_REG_LR_PACONFIG (0x09)
44#define SX127X_REG_LR_PARAMP (0x0A)
45#define SX127X_REG_LR_OCP (0x0B)
46
47/* Rx settings */
48#define SX127X_REG_LR_LNA (0x0C)
49
50/* LoRa registers */
51#define SX127X_REG_LR_FIFOADDRPTR (0x0D)
52#define SX127X_REG_LR_FIFOTXBASEADDR (0x0E)
53#define SX127X_REG_LR_FIFORXBASEADDR (0x0F)
54#define SX127X_REG_LR_FIFORXCURRENTADDR (0x10)
55#define SX127X_REG_LR_IRQFLAGSMASK (0x11)
56#define SX127X_REG_LR_IRQFLAGS (0x12)
57#define SX127X_REG_LR_RXNBBYTES (0x13)
58#define SX127X_REG_LR_RXHEADERCNTVALUEMSB (0x14)
59#define SX127X_REG_LR_RXHEADERCNTVALUELSB (0x15)
60#define SX127X_REG_LR_RXPACKETCNTVALUEMSB (0x16)
61#define SX127X_REG_LR_RXPACKETCNTVALUELSB (0x17)
62#define SX127X_REG_LR_MODEMSTAT (0x18)
63#define SX127X_REG_LR_PKTSNRVALUE (0x19)
64#define SX127X_REG_LR_PKTRSSIVALUE (0x1A)
65#define SX127X_REG_LR_RSSIVALUE (0x1B)
66#define SX127X_REG_LR_HOPCHANNEL (0x1C)
67#define SX127X_REG_LR_MODEMCONFIG1 (0x1D)
68#define SX127X_REG_LR_MODEMCONFIG2 (0x1E)
69#define SX127X_REG_LR_SYMBTIMEOUTLSB (0x1F)
70#define SX127X_REG_LR_PREAMBLEMSB (0x20)
71#define SX127X_REG_LR_PREAMBLELSB (0x21)
72#define SX127X_REG_LR_PAYLOADLENGTH (0x22)
73#define SX127X_REG_LR_PAYLOADMAXLENGTH (0x23)
74#define SX127X_REG_LR_HOPPERIOD (0x24)
75#define SX127X_REG_LR_FIFORXBYTEADDR (0x25)
76#define SX127X_REG_LR_MODEMCONFIG3 (0x26)
77#define SX127X_REG_LR_FEIMSB (0x28)
78#define SX127X_REG_LR_FEIMID (0x29)
79#define SX127X_REG_LR_FEILSB (0x2A)
80#define SX127X_REG_LR_RSSIWIDEBAND (0x2C)
81#define SX127X_REG_LR_TEST2F (0x2F)
82#define SX127X_REG_LR_TEST30 (0x30)
83#define SX127X_REG_LR_DETECTOPTIMIZE (0x31)
84#define SX127X_REG_LR_INVERTIQ (0x33)
85#define SX127X_REG_LR_TEST36 (0x36)
86#define SX127X_REG_LR_DETECTIONTHRESHOLD (0x37)
87#define SX127X_REG_LR_SYNCWORD (0x39)
88#define SX127X_REG_LR_TEST3A (0x3A)
89#define SX127X_REG_LR_INVERTIQ2 (0x3B)
90
91/* I/O settings */
92#define SX127X_REG_LR_DIOMAPPING1 (0x40)
93#define SX127X_REG_LR_DIOMAPPING2 (0x41)
94
95/* Version */
96#define SX127X_REG_LR_VERSION (0x42)
97
98/* Additional settings */
99#define SX127X_REG_LR_PLLHOP (0x44)
100#define SX127X_REG_LR_TCXO (0x4B)
101#define SX127X_REG_LR_PADAC (0x4D)
102#define SX127X_REG_LR_FORMERTEMP (0x5B)
103#define SX127X_REG_LR_BITRATEFRAC (0x5D)
104#define SX127X_REG_LR_AGCREF (0x61)
105#define SX127X_REG_LR_AGCTHRESH1 (0x62)
106#define SX127X_REG_LR_AGCTHRESH2 (0x63)
107#define SX127X_REG_LR_AGCTHRESH3 (0x64)
108#define SX127X_REG_LR_PLL (0x70)
115#define SX127X_RNG_REG_MODEM_CONFIG1 (0x0A)
116#define SX127X_RNG_REG_MODEM_CONFIG2 (0x70)
124/* RegFifo */
125#define SX127X_REG_LR_FIFO (0x00)
126
127/* RegOpMode */
128#define SX127X_RF_LORA_OPMODE_LONGRANGEMODE_MASK (0x7F)
129#define SX127X_RF_LORA_OPMODE_LONGRANGEMODE_OFF (0x00) /* Default */
130#define SX127X_RF_LORA_OPMODE_LONGRANGEMODE_ON (0x80)
131
132#define SX127X_RF_LORA_OPMODE_ACCESSSHAREDSX127X_REG_MASK (0xBF)
133#define SX127X_RF_LORA_OPMODE_ACCESSSHAREDSX127X_REG_ENABLE (0x40)
134#define SX127X_RF_LORA_OPMODE_ACCESSSHAREDSX127X_REG_DISABLE (0x00) /* Default */
135
136#define SX127X_RF_LORA_OPMODE_FREQMODE_ACCESS_MASK (0xF7)
137#define SX127X_RF_LORA_OPMODE_FREQMODE_ACCESS_LF (0x08) /* Default */
138#define SX127X_RF_LORA_OPMODE_FREQMODE_ACCESS_HF (0x00)
139
140#define SX127X_RF_LORA_OPMODE_MASK (0xF8)
141#define SX127X_RF_LORA_OPMODE_SLEEP (0x00)
142#define SX127X_RF_LORA_OPMODE_STANDBY (0x01) /* Default */
143#define SX127X_RF_LORA_OPMODE_SYNTHESIZER_TX (0x02)
144#define SX127X_RF_LORA_OPMODE_TRANSMITTER (0x03)
145#define SX127X_RF_LORA_OPMODE_SYNTHESIZER_RX (0x04)
146#define SX127X_RF_LORA_OPMODE_RECEIVER (0x05)
147
148/* LoRa specific modes */
149#define SX127X_RF_LORA_OPMODE_RECEIVER_SINGLE (0x06)
150#define SX127X_RF_LORA_OPMODE_CAD (0x07)
151
152/* RegFrf (MHz) */
153#define SX127X_RF_LORA_FRFMSB_434_MHZ (0x6C) /* Default */
154#define SX127X_RF_LORA_FRFMID_434_MHZ (0x80) /* Default */
155#define SX127X_RF_LORA_FRFLSB_434_MHZ (0x00) /* Default */
156
157/* RegPaConfig */
158#define SX127X_RF_LORA_PACONFIG_PASELECT_MASK (0x7F)
159#define SX127X_RF_LORA_PACONFIG_PASELECT_PABOOST (0x80)
160#define SX127X_RF_LORA_PACONFIG_PASELECT_RFO (0x00) /* Default */
161
162#define SX127X_RF_LORA_PACONFIG_MAX_POWER_MASK (0x8F)
163
164#define SX127X_RF_LORA_PACONFIG_OUTPUTPOWER_MASK (0xF0)
165
166/* RegPaRamp */
167#define SX127X_RF_LORA_PARAMP_TXBANDFORCE_MASK (0xEF)
168#define SX127X_RF_LORA_PARAMP_TXBANDFORCE_BAND_SEL (0x10)
169#define SX127X_RF_LORA_PARAMP_TXBANDFORCE_AUTO (0x00) /* Default */
170
171#define SX127X_RF_LORA_PARAMP_MASK (0xF0)
172#define SX127X_RF_LORA_PARAMP_3400_US (0x00)
173#define SX127X_RF_LORA_PARAMP_2000_US (0x01)
174#define SX127X_RF_LORA_PARAMP_1000_US (0x02)
175#define SX127X_RF_LORA_PARAMP_0500_US (0x03)
176#define SX127X_RF_LORA_PARAMP_0250_US (0x04)
177#define SX127X_RF_LORA_PARAMP_0125_US (0x05)
178#define SX127X_RF_LORA_PARAMP_0100_US (0x06)
179#define SX127X_RF_LORA_PARAMP_0062_US (0x07)
180#define SX127X_RF_LORA_PARAMP_0050_US (0x08)
181#define SX127X_RF_LORA_PARAMP_0040_US (0x09) /* Default */
182#define SX127X_RF_LORA_PARAMP_0031_US (0x0A)
183#define SX127X_RF_LORA_PARAMP_0025_US (0x0B)
184#define SX127X_RF_LORA_PARAMP_0020_US (0x0C)
185#define SX127X_RF_LORA_PARAMP_0015_US (0x0D)
186#define SX127X_RF_LORA_PARAMP_0012_US (0x0E)
187#define SX127X_RF_LORA_PARAMP_0010_US (0x0F)
188
189/* RegOcp */
190#define SX127X_RF_LORA_OCP_MASK (0xDF)
191#define SX127X_RF_LORA_OCP_ON (0x20) /* Default */
192#define SX127X_RF_LORA_OCP_OFF (0x00)
193
194#define SX127X_RF_LORA_OCP_TRIM_MASK (0xE0)
195#define SX127X_RF_LORA_OCP_TRIM_045_MA (0x00)
196#define SX127X_RF_LORA_OCP_TRIM_050_MA (0x01)
197#define SX127X_RF_LORA_OCP_TRIM_055_MA (0x02)
198#define SX127X_RF_LORA_OCP_TRIM_060_MA (0x03)
199#define SX127X_RF_LORA_OCP_TRIM_065_MA (0x04)
200#define SX127X_RF_LORA_OCP_TRIM_070_MA (0x05)
201#define SX127X_RF_LORA_OCP_TRIM_075_MA (0x06)
202#define SX127X_RF_LORA_OCP_TRIM_080_MA (0x07)
203#define SX127X_RF_LORA_OCP_TRIM_085_MA (0x08)
204#define SX127X_RF_LORA_OCP_TRIM_090_MA (0x09)
205#define SX127X_RF_LORA_OCP_TRIM_095_MA (0x0A)
206#define SX127X_RF_LORA_OCP_TRIM_100_MA (0x0B) /* Default */
207#define SX127X_RF_LORA_OCP_TRIM_105_MA (0x0C)
208#define SX127X_RF_LORA_OCP_TRIM_110_MA (0x0D)
209#define SX127X_RF_LORA_OCP_TRIM_115_MA (0x0E)
210#define SX127X_RF_LORA_OCP_TRIM_120_MA (0x0F)
211#define SX127X_RF_LORA_OCP_TRIM_130_MA (0x10)
212#define SX127X_RF_LORA_OCP_TRIM_140_MA (0x11)
213#define SX127X_RF_LORA_OCP_TRIM_150_MA (0x12)
214#define SX127X_RF_LORA_OCP_TRIM_160_MA (0x13)
215#define SX127X_RF_LORA_OCP_TRIM_170_MA (0x14)
216#define SX127X_RF_LORA_OCP_TRIM_180_MA (0x15)
217#define SX127X_RF_LORA_OCP_TRIM_190_MA (0x16)
218#define SX127X_RF_LORA_OCP_TRIM_200_MA (0x17)
219#define SX127X_RF_LORA_OCP_TRIM_210_MA (0x18)
220#define SX127X_RF_LORA_OCP_TRIM_220_MA (0x19)
221#define SX127X_RF_LORA_OCP_TRIM_230_MA (0x1A)
222#define SX127X_RF_LORA_OCP_TRIM_240_MA (0x1B)
223
224/* RegLna */
225#define SX127X_RF_LORA_LNA_GAIN_MASK (0x1F)
226#define SX127X_RF_LORA_LNA_GAIN_G1 (0x20) /* Default */
227#define SX127X_RF_LORA_LNA_GAIN_G2 (0x40)
228#define SX127X_RF_LORA_LNA_GAIN_G3 (0x60)
229#define SX127X_RF_LORA_LNA_GAIN_G4 (0x80)
230#define SX127X_RF_LORA_LNA_GAIN_G5 (0xA0)
231#define SX127X_RF_LORA_LNA_GAIN_G6 (0xC0)
232
233#define SX127X_RF_LORA_LNA_BOOST_LF_MASK (0xE7)
234#define SX127X_RF_LORA_LNA_BOOST_LF_DEFAULT (0x00) /* Default */
235
236#define SX127X_RF_LORA_LNA_BOOST_HF_MASK (0xFC)
237#define SX127X_RF_LORA_LNA_BOOST_HF_OFF (0x00) /* Default */
238#define SX127X_RF_LORA_LNA_BOOST_HF_ON (0x03)
239
240/* RegFifoAddrPtr */
241#define SX127X_RF_LORA_FIFOADDRPTR (0x00) /* Default */
242
243/* RegFifoTxBaseAddr */
244#define SX127X_RF_LORA_FIFOTXBASEADDR (0x80) /* Default */
245
246/* RegFifoTxBaseAddr */
247#define SX127X_RF_LORA_FIFORXBASEADDR (0x00) /* Default */
248
249/* RegIrqFlagsMask */
250#define SX127X_RF_LORA_IRQFLAGS_RXTIMEOUT_MASK (0x80)
251#define SX127X_RF_LORA_IRQFLAGS_RXDONE_MASK (0x40)
252#define SX127X_RF_LORA_IRQFLAGS_PAYLOADCRCERROR_MASK (0x20)
253#define SX127X_RF_LORA_IRQFLAGS_VALIDHEADER_MASK (0x10)
254#define SX127X_RF_LORA_IRQFLAGS_TXDONE_MASK (0x08)
255#define SX127X_RF_LORA_IRQFLAGS_CADDONE_MASK (0x04)
256#define SX127X_RF_LORA_IRQFLAGS_FHSSCHANGEDCHANNEL_MASK (0x02)
257#define SX127X_RF_LORA_IRQFLAGS_CADDETECTED_MASK (0x01)
258
259/* RegIrqFlags */
260#define SX127X_RF_LORA_IRQFLAGS_RXTIMEOUT (0x80)
261#define SX127X_RF_LORA_IRQFLAGS_RXDONE (0x40)
262#define SX127X_RF_LORA_IRQFLAGS_PAYLOADCRCERROR (0x20)
263#define SX127X_RF_LORA_IRQFLAGS_VALIDHEADER (0x10)
264#define SX127X_RF_LORA_IRQFLAGS_TXDONE (0x08)
265#define SX127X_RF_LORA_IRQFLAGS_CADDONE (0x04)
266#define SX127X_RF_LORA_IRQFLAGS_FHSSCHANGEDCHANNEL (0x02)
267#define SX127X_RF_LORA_IRQFLAGS_CADDETECTED (0x01)
268
269/* RegModemStat (Read Only) */
270#define SX127X_RF_LORA_MODEMSTAT_RX_CR_MASK (0x1F)
271#define SX127X_RF_LORA_MODEMSTAT_MODEM_STATUS_MASK (0xE0)
272#define SX127X_RF_LORA_MODEMSTAT_MODEM_STATUS_MODEM_CLEAR (0x10) /* Default */
273#define SX127X_RF_LORA_MODEMSTAT_MODEM_STATUS_HEADER_VALID (0x08)
274#define SX127X_RF_LORA_MODEMSTAT_MODEM_STATUS_RX_ONGOING (0x04)
275#define SX127X_RF_LORA_MODEMSTAT_MODEM_STATUS_SIGNAL_SYNCHRONIZED (0x02)
276#define SX127X_RF_LORA_MODEMSTAT_MODEM_STATUS_SIGNAL_DETECTED (0x01)
277
278/* RegHopChannel (Read Only) */
279#define SX127X_RF_LORA_HOPCHANNEL_PLL_LOCK_TIMEOUT_MASK (0x7F)
280#define SX127X_RF_LORA_HOPCHANNEL_PLL_LOCK_FAIL (0x80)
281#define SX127X_RF_LORA_HOPCHANNEL_PLL_LOCK_SUCCEED (0x00) /* Default */
282
283#define SX127X_RF_LORA_HOPCHANNEL_CRCONPAYLOAD_MASK (0xBF)
284#define SX127X_RF_LORA_HOPCHANNEL_CRCONPAYLOAD_ON (0x40)
285#define SX127X_RF_LORA_HOPCHANNEL_CRCONPAYLOAD_OFF (0x00) /* Default */
286
287#define SX127X_RF_LORA_HOPCHANNEL_CHANNEL_MASK (0x3F)
288
289/* RegModemConfig1 */
290#define SX1272_RF_LORA_MODEMCONFIG1_BW_MASK (0x3F)
291#define SX1272_RF_LORA_MODEMCONFIG1_BW_125_KHZ (0x00) /* Default */
292#define SX1272_RF_LORA_MODEMCONFIG1_BW_250_KHZ (0x40)
293#define SX1272_RF_LORA_MODEMCONFIG1_BW_500_KHZ (0x80)
294
295#define SX1276_RF_LORA_MODEMCONFIG1_BW_MASK (0x0F)
296#define SX1276_RF_LORA_MODEMCONFIG1_BW_7_81_KHZ (0x00)
297#define SX1276_RF_LORA_MODEMCONFIG1_BW_10_41_KHZ (0x10)
298#define SX1276_RF_LORA_MODEMCONFIG1_BW_15_62_KHZ (0x20)
299#define SX1276_RF_LORA_MODEMCONFIG1_BW_20_83_KHZ (0x30)
300#define SX1276_RF_LORA_MODEMCONFIG1_BW_31_25_KHZ (0x40)
301#define SX1276_RF_LORA_MODEMCONFIG1_BW_41_66_KHZ (0x50)
302#define SX1276_RF_LORA_MODEMCONFIG1_BW_62_50_KHZ (0x60)
303#define SX1276_RF_LORA_MODEMCONFIG1_BW_125_KHZ (0x70) /* Default */
304#define SX1276_RF_LORA_MODEMCONFIG1_BW_250_KHZ (0x80)
305#define SX1276_RF_LORA_MODEMCONFIG1_BW_500_KHZ (0x90)
306
307#define SX1272_RF_LORA_MODEMCONFIG1_CODINGRATE_MASK (0xC7)
308#define SX1272_RF_LORA_MODEMCONFIG1_CODINGRATE_4_5 (0x08)
309#define SX1272_RF_LORA_MODEMCONFIG1_CODINGRATE_4_6 (0x10) /* Default */
310#define SX1272_RF_LORA_MODEMCONFIG1_CODINGRATE_4_7 (0x18)
311#define SX1272_RF_LORA_MODEMCONFIG1_CODINGRATE_4_8 (0x20)
312
313#define SX1276_RF_LORA_MODEMCONFIG1_CODINGRATE_MASK (0xF1)
314#define SX1276_RF_LORA_MODEMCONFIG1_CODINGRATE_4_5 (0x02)
315#define SX1276_RF_LORA_MODEMCONFIG1_CODINGRATE_4_6 (0x04) /* Default */
316#define SX1276_RF_LORA_MODEMCONFIG1_CODINGRATE_4_7 (0x06)
317#define SX1276_RF_LORA_MODEMCONFIG1_CODINGRATE_4_8 (0x08)
318
319#define SX1272_RF_LORA_MODEMCONFIG1_IMPLICITHEADER_MASK (0xFB)
320#define SX1276_RF_LORA_MODEMCONFIG1_IMPLICITHEADER_MASK (0xFE)
321#define SX127X_RF_LORA_MODEMCONFIG1_IMPLICITHEADER_ON (0x01)
322#define SX127X_RF_LORA_MODEMCONFIG1_IMPLICITHEADER_OFF (0x00) /* Default */
323
324#define SX1272_RF_LORA_MODEMCONFIG1_RXPAYLOADCRC_MASK (0xFD)
325#define SX1272_RF_LORA_MODEMCONFIG1_RXPAYLOADCRC_ON (0x02)
326#define SX1272_RF_LORA_MODEMCONFIG1_RXPAYLOADCRC_OFF (0x00) /* Default */
327
328#define SX127X_RF_LORA_MODEMCONFIG1_LOWDATARATEOPTIMIZE_MASK (0xFE)
329
330/* RegModemConfig2 */
331#define SX127X_RF_LORA_MODEMCONFIG2_SF_MASK (0x0F)
332#define SX127X_RF_LORA_MODEMCONFIG2_SF_6 (0x60)
333#define SX127X_RF_LORA_MODEMCONFIG2_SF_7 (0x70) /* Default */
334#define SX127X_RF_LORA_MODEMCONFIG2_SF_8 (0x80)
335#define SX127X_RF_LORA_MODEMCONFIG2_SF_9 (0x90)
336#define SX127X_RF_LORA_MODEMCONFIG2_SF_10 (0xA0)
337#define SX127X_RF_LORA_MODEMCONFIG2_SF_11 (0xB0)
338#define SX127X_RF_LORA_MODEMCONFIG2_SF_12 (0xC0)
339
340#define SX127X_RF_LORA_MODEMCONFIG2_TXCONTINUOUSMODE_MASK (0xF7)
341#define SX127X_RF_LORA_MODEMCONFIG2_TXCONTINUOUSMODE_ON (0x08)
342#define SX127X_RF_LORA_MODEMCONFIG2_TXCONTINUOUSMODE_OFF (0x00)
343
344#define SX1276_RF_LORA_MODEMCONFIG2_RXPAYLOADCRC_MASK (0xFB)
345#define SX1276_RF_LORA_MODEMCONFIG2_RXPAYLOADCRC_ON (0x04)
346#define SX1276_RF_LORA_MODEMCONFIG2_RXPAYLOADCRC_OFF (0x00) /* Default */
347
348#define SX127X_RF_LORA_MODEMCONFIG2_SYMBTIMEOUTMSB_MASK (0xFC)
349#define SX127X_RF_LORA_MODEMCONFIG2_SYMBTIMEOUTMSB (0x00) /* Default */
350
351/* RegSymbTimeoutLsb */
352#define SX127X_RF_LORA_SYMBTIMEOUTLSB_SYMBTIMEOUT (0x64) /* Default */
353
354/* RegPreambleLengthMsb */
355#define SX127X_RF_LORA_PREAMBLELENGTHMSB (0x00) /* Default */
356
357/* RegPreambleLengthLsb */
358#define SX127X_RF_LORA_PREAMBLELENGTHLSB (0x08) /* Default */
359
360/* RegPayloadLength */
361#define SX127X_RF_LORA_PAYLOADLENGTH (0x0E) /* Default */
362
363/* RegPayloadMaxLength */
364#define SX127X_RF_LORA_PAYLOADMAXLENGTH (0xFF) /* Default */
365
366/* RegHopPeriod */
367#define SX127X_RF_LORA_HOPPERIOD_FREQFOPPINGPERIOD (0x00) /* Default */
368
369/* RegModemConfig3 */
370#define SX127X_RF_LORA_MODEMCONFIG3_LOWDATARATEOPTIMIZE_MASK (0xF7)
371#define SX127X_RF_LORA_MODEMCONFIG3_LOWDATARATEOPTIMIZE_ON (0x08)
372#define SX127X_RF_LORA_MODEMCONFIG3_LOWDATARATEOPTIMIZE_OFF (0x00) /* Default */
373
374#define SX127X_RF_LORA_MODEMCONFIG3_AGCAUTO_MASK (0xFB)
375#define SX127X_RF_LORA_MODEMCONFIG3_AGCAUTO_ON (0x04) /* Default */
376#define SX127X_RF_LORA_MODEMCONFIG3_AGCAUTO_OFF (0x00)
377
378/* RegDetectOptimize */
379#define SX127X_RF_LORA_DETECTIONOPTIMIZE_MASK (0xF8)
380#define SX127X_RF_LORA_DETECTIONOPTIMIZE_SF7_TO_SF12 (0x03) /* Default */
381#define SX127X_RF_LORA_DETECTIONOPTIMIZE_SF6 (0x05)
382
383/* RegInvertIQ */
384#define SX127X_RF_LORA_INVERTIQ_RX_MASK (0xBF)
385#define SX127X_RF_LORA_INVERTIQ_RX_OFF (0x00)
386#define SX127X_RF_LORA_INVERTIQ_RX_ON (0x40)
387#define SX127X_RF_LORA_INVERTIQ_TX_MASK (0xFE)
388#define SX127X_RF_LORA_INVERTIQ_TX_OFF (0x01)
389#define SX127X_RF_LORA_INVERTIQ_TX_ON (0x00)
390
391/* RegDetectionThreshold */
392#define SX127X_RF_LORA_DETECTIONTHRESH_SF7_TO_SF12 (0x0A) /* Default */
393#define SX127X_RF_LORA_DETECTIONTHRESH_SF6 (0x0C)
394
395/* RegInvertIQ2 */
396#define SX127X_RF_LORA_INVERTIQ2_ON (0x19)
397#define SX127X_RF_LORA_INVERTIQ2_OFF (0x1D)
398
399/* RegDioMapping1 */
400#define SX127X_RF_LORA_DIOMAPPING1_DIO0_MASK (0x3F)
401#define SX127X_RF_LORA_DIOMAPPING1_DIO0_00 (0x00) /* Default */
402#define SX127X_RF_LORA_DIOMAPPING1_DIO0_01 (0x40)
403#define SX127X_RF_LORA_DIOMAPPING1_DIO0_10 (0x80)
404#define SX127X_RF_LORA_DIOMAPPING1_DIO0_11 (0xC0)
405
406#define SX127X_RF_LORA_DIOMAPPING1_DIO1_MASK (0xCF)
407#define SX127X_RF_LORA_DIOMAPPING1_DIO1_00 (0x00) /* Default */
408#define SX127X_RF_LORA_DIOMAPPING1_DIO1_01 (0x10)
409#define SX127X_RF_LORA_DIOMAPPING1_DIO1_10 (0x20)
410#define SX127X_RF_LORA_DIOMAPPING1_DIO1_11 (0x30)
411
412#define SX127X_RF_LORA_DIOMAPPING1_DIO2_MASK (0xF3)
413#define SX127X_RF_LORA_DIOMAPPING1_DIO2_00 (0x00) /* Default */
414#define SX127X_RF_LORA_DIOMAPPING1_DIO2_01 (0x04)
415#define SX127X_RF_LORA_DIOMAPPING1_DIO2_10 (0x08)
416#define SX127X_RF_LORA_DIOMAPPING1_DIO2_11 (0x0C)
417
418#define SX127X_RF_LORA_DIOMAPPING1_DIO3_MASK (0xFC)
419#define SX127X_RF_LORA_DIOMAPPING1_DIO3_00 (0x00) /* Default */
420#define SX127X_RF_LORA_DIOMAPPING1_DIO3_01 (0x01)
421#define SX127X_RF_LORA_DIOMAPPING1_DIO3_10 (0x02)
422#define SX127X_RF_LORA_DIOMAPPING1_DIO3_11 (0x03)
423
424/* RegDioMapping2 */
425#define SX127X_RF_LORA_DIOMAPPING2_DIO4_MASK (0x3F)
426#define SX127X_RF_LORA_DIOMAPPING2_DIO4_00 (0x00) /* Default */
427#define SX127X_RF_LORA_DIOMAPPING2_DIO4_01 (0x40)
428#define SX127X_RF_LORA_DIOMAPPING2_DIO4_10 (0x80)
429#define SX127X_RF_LORA_DIOMAPPING2_DIO4_11 (0xC0)
430
431#define SX127X_RF_LORA_DIOMAPPING2_DIO5_MASK (0xCF)
432#define SX127X_RF_LORA_DIOMAPPING2_DIO5_00 (0x00) /* Default */
433#define SX127X_RF_LORA_DIOMAPPING2_DIO5_01 (0x10)
434#define SX127X_RF_LORA_DIOMAPPING2_DIO5_10 (0x20)
435#define SX127X_RF_LORA_DIOMAPPING2_DIO5_11 (0x30)
436
437#define SX127X_RF_LORA_DIOMAPPING2_MAP_MASK (0xFE)
438#define SX127X_RF_LORA_DIOMAPPING2_MAP_PREAMBLEDETECT (0x01)
439#define SX127X_RF_LORA_DIOMAPPING2_MAP_RSSI (0x00) /* Default */
440
441/* RegPllHop */
442#define SX127X_RF_LORA_PLLHOP_FASTHOP_MASK (0x7F)
443#define SX127X_RF_LORA_PLLHOP_FASTHOP_ON (0x80)
444#define SX127X_RF_LORA_PLLHOP_FASTHOP_OFF (0x00) /* Default */
445
446/* RegTcxo */
447#define SX127X_RF_LORA_TCXO_TCXOINPUT_MASK (0xEF)
448#define SX127X_RF_LORA_TCXO_TCXOINPUT_ON (0x10)
449#define SX127X_RF_LORA_TCXO_TCXOINPUT_OFF (0x00) /* Default */
450
451/* RegPaDac */
452#define SX127X_RF_LORA_PADAC_20DBM_MASK (0xF8)
453#define SX127X_RF_LORA_PADAC_20DBM_ON (0x07)
454#define SX127X_RF_LORA_PADAC_20DBM_OFF (0x04) /* Default */
455
456/* RegBitrateFrac */
457#define RF_BITRATEFRAC_MASK (0xF0)
458
459/* RegPll */
460#define RF_PLL_BANDWIDTH_MASK (0x3F)
461#define RF_PLL_BANDWIDTH_75 (0x00)
462#define RF_PLL_BANDWIDTH_150 (0x40)
463#define RF_PLL_BANDWIDTH_225 (0x80)
464#define RF_PLL_BANDWIDTH_300 (0xC0) /* Default */
467/* FSK modem definitions */
468
473#define SX127X_REG_FIFO (0x00)
474
475/* Common settings */
476#define SX127X_REG_OPMODE (0x01)
477#define SX127X_REG_BITRATEMSB (0x02)
478#define SX127X_REG_BITRATELSB (0x03)
479#define SX127X_REG_FDEVMSB (0x04)
480#define SX127X_REG_FDEVLSB (0x05)
481#define SX127X_REG_FRFMSB (0x06)
482#define SX127X_REG_FRFMID (0x07)
483#define SX127X_REG_FRFLSB (0x08)
484
485/* Tx settings */
486#define SX127X_REG_PACONFIG (0x09)
487#define SX127X_REG_PARAMP (0x0A)
488#define SX127X_REG_OCP (0x0B)
489
490/* Rx settings */
491#define SX127X_REG_LNA (0x0C)
492#define SX127X_REG_RXCONFIG (0x0D)
493#define SX127X_REG_RSSICONFIG (0x0E)
494#define SX127X_REG_RSSICOLLISION (0x0F)
495#define SX127X_REG_RSSITHRESH (0x10)
496#define SX127X_REG_RSSIVALUE (0x11)
497#define SX127X_REG_RXBW (0x12)
498#define SX127X_REG_AFCBW (0x13)
499#define SX127X_REG_OOKPEAK (0x14)
500#define SX127X_REG_OOKFIX (0x15)
501#define SX127X_REG_OOKAVG (0x16)
502#define SX127X_REG_RES17 (0x17)
503#define SX127X_REG_RES18 (0x18)
504#define SX127X_REG_RES19 (0x19)
505#define SX127X_REG_AFCFEI (0x1A)
506#define SX127X_REG_AFCMSB (0x1B)
507#define SX127X_REG_AFCLSB (0x1C)
508#define SX127X_REG_FEIMSB (0x1D)
509#define SX127X_REG_FEILSB (0x1E)
510#define SX127X_REG_PREAMBLEDETECT (0x1F)
511#define SX127X_REG_RXTIMEOUT1 (0x20)
512#define SX127X_REG_RXTIMEOUT2 (0x21)
513#define SX127X_REG_RXTIMEOUT3 (0x22)
514#define SX127X_REG_RXDELAY (0x23)
515
516/* Oscillator settings */
517#define SX127X_REG_OSC (0x24)
518
519/* Packet handler settings */
520#define SX127X_REG_PREAMBLEMSB (0x25)
521#define SX127X_REG_PREAMBLELSB (0x26)
522#define SX127X_REG_SYNCCONFIG (0x27)
523#define SX127X_REG_SYNCVALUE1 (0x28)
524#define SX127X_REG_SYNCVALUE2 (0x29)
525#define SX127X_REG_SYNCVALUE3 (0x2A)
526#define SX127X_REG_SYNCVALUE4 (0x2B)
527#define SX127X_REG_SYNCVALUE5 (0x2C)
528#define SX127X_REG_SYNCVALUE6 (0x2D)
529#define SX127X_REG_SYNCVALUE7 (0x2E)
530#define SX127X_REG_SYNCVALUE8 (0x2F)
531#define SX127X_REG_PACKETCONFIG1 (0x30)
532#define SX127X_REG_PACKETCONFIG2 (0x31)
533#define SX127X_REG_PAYLOADLENGTH (0x32)
534#define SX127X_REG_NODEADRS (0x33)
535#define SX127X_REG_BROADCASTADRS (0x34)
536#define SX127X_REG_FIFOTHRESH (0x35)
537
538/* SM settings */
539#define SX127X_REG_SEQCONFIG1 (0x36)
540#define SX127X_REG_SEQCONFIG2 (0x37)
541#define SX127X_REG_TIMERRESOL (0x38)
542#define SX127X_REG_TIMER1COEF (0x39)
543#define SX127X_REG_TIMER2COEF (0x3A)
544
545/* Service settings */
546#define SX127X_REG_IMAGECAL (0x3B)
547#define SX127X_REG_TEMP (0x3C)
548#define SX127X_REG_LOWBAT (0x3D)
549
550/* Status */
551#define SX127X_REG_IRQFLAGS1 (0x3E)
552#define SX127X_REG_IRQFLAGS2 (0x3F)
553
554/* I/O settings */
555#define SX127X_REG_DIOMAPPING1 (0x40)
556#define SX127X_REG_DIOMAPPING2 (0x41)
557
558/* Version */
559#define SX127X_REG_VERSION (0x42)
560#define VERSION_SX1276 (0x12)
561#define VERSION_SX1276_WLR089 (0x13)
562#define VERSION_SX1272 (0x22)
563
564/* Additional settings */
565#define SX127X_REG_PLLHOP (0x44)
566#define SX127X_REG_TCXO (0x4B)
567#define SX1276_REG_PADAC (0x4D)
568#define SX1272_REG_PADAC (0x5A)
569#define SX127X_REG_FORMERTEMP (0x5B)
570#define SX127X_REG_BITRATEFRAC (0x5D)
571#define SX127X_REG_AGCREF (0x61)
572#define SX127X_REG_AGCTHRESH1 (0x62)
573#define SX127X_REG_AGCTHRESH2 (0x63)
574#define SX127X_REG_AGCTHRESH3 (0x64)
575#define SX127X_REG_PLL (0x70)
583/* RegOpMode */
584#define SX127X_RF_OPMODE_LONGRANGEMODE_MASK (0x7F)
585#define SX127X_RF_OPMODE_LONGRANGEMODE_OFF (0x00)
586#define SX127X_RF_OPMODE_LONGRANGEMODE_ON (0x80)
587
588#define SX127X_RF_OPMODE_MODULATIONTYPE_MASK (0x9F)
589#define SX127X_RF_OPMODE_MODULATIONTYPE_FSK (0x00) /* Default */
590#define SX127X_RF_OPMODE_MODULATIONTYPE_OOK (0x20)
591
592#define SX127X_RF_OPMODE_MODULATIONSHAPING_MASK (0xE7)
593#define SX127X_RF_OPMODE_MODULATIONSHAPING_00 (0x00) /* Default */
594#define SX127X_RF_OPMODE_MODULATIONSHAPING_01 (0x08)
595#define SX127X_RF_OPMODE_MODULATIONSHAPING_10 (0x10)
596#define SX127X_RF_OPMODE_MODULATIONSHAPING_11 (0x18)
597
598#define SX127X_RF_OPMODE_MASK (0xF8)
599#define SX127X_RF_OPMODE_SLEEP (0x00)
600#define SX127X_RF_OPMODE_STANDBY (0x01) /* Default */
601#define SX127X_RF_OPMODE_SYNTHESIZER_TX (0x02)
602#define SX127X_RF_OPMODE_TRANSMITTER (0x03)
603#define SX127X_RF_OPMODE_SYNTHESIZER_RX (0x04)
604#define SX127X_RF_OPMODE_RECEIVER (0x05)
605#define SX127X_RF_OPMODE_RECEIVER_SINGLE (0x06)
606
607/* RegBitRate (bits/sec) */
608#define SX127X_RF_BITRATEMSB_1200_BPS (0x68)
609#define SX127X_RF_BITRATELSB_1200_BPS (0x2B)
610#define SX127X_RF_BITRATEMSB_2400_BPS (0x34)
611#define SX127X_RF_BITRATELSB_2400_BPS (0x15)
612#define SX127X_RF_BITRATEMSB_4800_BPS (0x1A) /* Default */
613#define SX127X_RF_BITRATELSB_4800_BPS (0x0B) /* Default */
614#define SX127X_RF_BITRATEMSB_9600_BPS (0x0D)
615#define SX127X_RF_BITRATELSB_9600_BPS (0x05)
616#define SX127X_RF_BITRATEMSB_15000_BPS (0x08)
617#define SX127X_RF_BITRATELSB_15000_BPS (0x55)
618#define SX127X_RF_BITRATEMSB_19200_BPS (0x06)
619#define SX127X_RF_BITRATELSB_19200_BPS (0x83)
620#define SX127X_RF_BITRATEMSB_38400_BPS (0x03)
621#define SX127X_RF_BITRATELSB_38400_BPS (0x41)
622#define SX127X_RF_BITRATEMSB_76800_BPS (0x01)
623#define SX127X_RF_BITRATELSB_76800_BPS (0xA1)
624#define SX127X_RF_BITRATEMSB_153600_BPS (0x00)
625#define SX127X_RF_BITRATELSB_153600_BPS (0xD0)
626#define SX127X_RF_BITRATEMSB_57600_BPS (0x02)
627#define SX127X_RF_BITRATELSB_57600_BPS (0x2C)
628#define SX127X_RF_BITRATEMSB_115200_BPS (0x01)
629#define SX127X_RF_BITRATELSB_115200_BPS (0x16)
630#define SX127X_RF_BITRATEMSB_12500_BPS (0x0A)
631#define SX127X_RF_BITRATELSB_12500_BPS (0x00)
632#define SX127X_RF_BITRATEMSB_25000_BPS (0x05)
633#define SX127X_RF_BITRATELSB_25000_BPS (0x00)
634#define SX127X_RF_BITRATEMSB_50000_BPS (0x02)
635#define SX127X_RF_BITRATELSB_50000_BPS (0x80)
636#define SX127X_RF_BITRATEMSB_100000_BPS (0x01)
637#define SX127X_RF_BITRATELSB_100000_BPS (0x40)
638#define SX127X_RF_BITRATEMSB_150000_BPS (0x00)
639#define SX127X_RF_BITRATELSB_150000_BPS (0xD5)
640#define SX127X_RF_BITRATEMSB_200000_BPS (0x00)
641#define SX127X_RF_BITRATELSB_200000_BPS (0xA0)
642#define SX127X_RF_BITRATEMSB_250000_BPS (0x00)
643#define SX127X_RF_BITRATELSB_250000_BPS (0x80)
644#define SX127X_RF_BITRATEMSB_32768_BPS (0x03)
645#define SX127X_RF_BITRATELSB_32768_BPS (0xD1)
646
647/* RegFdev (Hz) */
648#define SX127X_RF_FDEVMSB_2000_HZ (0x00)
649#define SX127X_RF_FDEVLSB_2000_HZ (0x21)
650#define SX127X_RF_FDEVMSB_5000_HZ (0x00) /* Default */
651#define SX127X_RF_FDEVLSB_5000_HZ (0x52) /* Default */
652#define SX127X_RF_FDEVMSB_10000_HZ (0x00)
653#define SX127X_RF_FDEVLSB_10000_HZ (0xA4)
654#define SX127X_RF_FDEVMSB_15000_HZ (0x00)
655#define SX127X_RF_FDEVLSB_15000_HZ (0xF6)
656#define SX127X_RF_FDEVMSB_20000_HZ (0x01)
657#define SX127X_RF_FDEVLSB_20000_HZ (0x48)
658#define SX127X_RF_FDEVMSB_25000_HZ (0x01)
659#define SX127X_RF_FDEVLSB_25000_HZ (0x9A)
660#define SX127X_RF_FDEVMSB_30000_HZ (0x01)
661#define SX127X_RF_FDEVLSB_30000_HZ (0xEC)
662#define SX127X_RF_FDEVMSB_35000_HZ (0x02)
663#define SX127X_RF_FDEVLSB_35000_HZ (0x3D)
664#define SX127X_RF_FDEVMSB_40000_HZ (0x02)
665#define SX127X_RF_FDEVLSB_40000_HZ (0x8F)
666#define SX127X_RF_FDEVMSB_45000_HZ (0x02)
667#define SX127X_RF_FDEVLSB_45000_HZ (0xE1)
668#define SX127X_RF_FDEVMSB_50000_HZ (0x03)
669#define SX127X_RF_FDEVLSB_50000_HZ (0x33)
670#define SX127X_RF_FDEVMSB_55000_HZ (0x03)
671#define SX127X_RF_FDEVLSB_55000_HZ (0x85)
672#define SX127X_RF_FDEVMSB_60000_HZ (0x03)
673#define SX127X_RF_FDEVLSB_60000_HZ (0xD7)
674#define SX127X_RF_FDEVMSB_65000_HZ (0x04)
675#define SX127X_RF_FDEVLSB_65000_HZ (0x29)
676#define SX127X_RF_FDEVMSB_70000_HZ (0x04)
677#define SX127X_RF_FDEVLSB_70000_HZ (0x7B)
678#define SX127X_RF_FDEVMSB_75000_HZ (0x04)
679#define SX127X_RF_FDEVLSB_75000_HZ (0xCD)
680#define SX127X_RF_FDEVMSB_80000_HZ (0x05)
681#define SX127X_RF_FDEVLSB_80000_HZ (0x1F)
682#define SX127X_RF_FDEVMSB_85000_HZ (0x05)
683#define SX127X_RF_FDEVLSB_85000_HZ (0x71)
684#define SX127X_RF_FDEVMSB_90000_HZ (0x05)
685#define SX127X_RF_FDEVLSB_90000_HZ (0xC3)
686#define SX127X_RF_FDEVMSB_95000_HZ (0x06)
687#define SX127X_RF_FDEVLSB_95000_HZ (0x14)
688#define SX127X_RF_FDEVMSB_100000_HZ (0x06)
689#define SX127X_RF_FDEVLSB_100000_HZ (0x66)
690#define SX127X_RF_FDEVMSB_110000_HZ (0x07)
691#define SX127X_RF_FDEVLSB_110000_HZ (0x0A)
692#define SX127X_RF_FDEVMSB_120000_HZ (0x07)
693#define SX127X_RF_FDEVLSB_120000_HZ (0xAE)
694#define SX127X_RF_FDEVMSB_130000_HZ (0x08)
695#define SX127X_RF_FDEVLSB_130000_HZ (0x52)
696#define SX127X_RF_FDEVMSB_140000_HZ (0x08)
697#define SX127X_RF_FDEVLSB_140000_HZ (0xF6)
698#define SX127X_RF_FDEVMSB_150000_HZ (0x09)
699#define SX127X_RF_FDEVLSB_150000_HZ (0x9A)
700#define SX127X_RF_FDEVMSB_160000_HZ (0x0A)
701#define SX127X_RF_FDEVLSB_160000_HZ (0x3D)
702#define SX127X_RF_FDEVMSB_170000_HZ (0x0A)
703#define SX127X_RF_FDEVLSB_170000_HZ (0xE1)
704#define SX127X_RF_FDEVMSB_180000_HZ (0x0B)
705#define SX127X_RF_FDEVLSB_180000_HZ (0x85)
706#define SX127X_RF_FDEVMSB_190000_HZ (0x0C)
707#define SX127X_RF_FDEVLSB_190000_HZ (0x29)
708#define SX127X_RF_FDEVMSB_200000_HZ (0x0C)
709#define SX127X_RF_FDEVLSB_200000_HZ (0xCD)
710
711/* RegFrf (MHz) */
712#define SX127X_RF_FRFMSB_863_MHZ (0xD7)
713#define SX127X_RF_FRFMID_863_MHZ (0xC0)
714#define SX127X_RF_FRFLSB_863_MHZ (0x00)
715#define SX127X_RF_FRFMSB_864_MHZ (0xD8)
716#define SX127X_RF_FRFMID_864_MHZ (0x00)
717#define SX127X_RF_FRFLSB_864_MHZ (0x00)
718#define SX127X_RF_FRFMSB_865_MHZ (0xD8)
719#define SX127X_RF_FRFMID_865_MHZ (0x40)
720#define SX127X_RF_FRFLSB_865_MHZ (0x00)
721#define SX127X_RF_FRFMSB_866_MHZ (0xD8)
722#define SX127X_RF_FRFMID_866_MHZ (0x80)
723#define SX127X_RF_FRFLSB_866_MHZ (0x00)
724#define SX127X_RF_FRFMSB_867_MHZ (0xD8)
725#define SX127X_RF_FRFMID_867_MHZ (0xC0)
726#define SX127X_RF_FRFLSB_867_MHZ (0x00)
727#define SX127X_RF_FRFMSB_868_MHZ (0xD9)
728#define SX127X_RF_FRFMID_868_MHZ (0x00)
729#define SX127X_RF_FRFLSB_868_MHZ (0x00)
730#define SX127X_RF_FRFMSB_869_MHZ (0xD9)
731#define SX127X_RF_FRFMID_869_MHZ (0x40)
732#define SX127X_RF_FRFLSB_869_MHZ (0x00)
733#define SX127X_RF_FRFMSB_870_MHZ (0xD9)
734#define SX127X_RF_FRFMID_870_MHZ (0x80)
735#define SX127X_RF_FRFLSB_870_MHZ (0x00)
736
737#define SX127X_RF_FRFMSB_902_MHZ (0xE1)
738#define SX127X_RF_FRFMID_902_MHZ (0x80)
739#define SX127X_RF_FRFLSB_902_MHZ (0x00)
740#define SX127X_RF_FRFMSB_903_MHZ (0xE1)
741#define SX127X_RF_FRFMID_903_MHZ (0xC0)
742#define SX127X_RF_FRFLSB_903_MHZ (0x00)
743#define SX127X_RF_FRFMSB_904_MHZ (0xE2)
744#define SX127X_RF_FRFMID_904_MHZ (0x00)
745#define SX127X_RF_FRFLSB_904_MHZ (0x00)
746#define SX127X_RF_FRFMSB_905_MHZ (0xE2)
747#define SX127X_RF_FRFMID_905_MHZ (0x40)
748#define SX127X_RF_FRFLSB_905_MHZ (0x00)
749#define SX127X_RF_FRFMSB_906_MHZ (0xE2)
750#define SX127X_RF_FRFMID_906_MHZ (0x80)
751#define SX127X_RF_FRFLSB_906_MHZ (0x00)
752#define SX127X_RF_FRFMSB_907_MHZ (0xE2)
753#define SX127X_RF_FRFMID_907_MHZ (0xC0)
754#define SX127X_RF_FRFLSB_907_MHZ (0x00)
755#define SX127X_RF_FRFMSB_908_MHZ (0xE3)
756#define SX127X_RF_FRFMID_908_MHZ (0x00)
757#define SX127X_RF_FRFLSB_908_MHZ (0x00)
758#define SX127X_RF_FRFMSB_909_MHZ (0xE3)
759#define SX127X_RF_FRFMID_909_MHZ (0x40)
760#define SX127X_RF_FRFLSB_909_MHZ (0x00)
761#define SX127X_RF_FRFMSB_910_MHZ (0xE3)
762#define SX127X_RF_FRFMID_910_MHZ (0x80)
763#define SX127X_RF_FRFLSB_910_MHZ (0x00)
764#define SX127X_RF_FRFMSB_911_MHZ (0xE3)
765#define SX127X_RF_FRFMID_911_MHZ (0xC0)
766#define SX127X_RF_FRFLSB_911_MHZ (0x00)
767#define SX127X_RF_FRFMSB_912_MHZ (0xE4)
768#define SX127X_RF_FRFMID_912_MHZ (0x00)
769#define SX127X_RF_FRFLSB_912_MHZ (0x00)
770#define SX127X_RF_FRFMSB_913_MHZ (0xE4)
771#define SX127X_RF_FRFMID_913_MHZ (0x40)
772#define SX127X_RF_FRFLSB_913_MHZ (0x00)
773#define SX127X_RF_FRFMSB_914_MHZ (0xE4)
774#define SX127X_RF_FRFMID_914_MHZ (0x80)
775#define SX127X_RF_FRFLSB_914_MHZ (0x00)
776#define SX127X_RF_FRFMSB_915_MHZ (0xE4) /* Default */
777#define SX127X_RF_FRFMID_915_MHZ (0xC0) /* Default */
778#define SX127X_RF_FRFLSB_915_MHZ (0x00) /* Default */
779#define SX127X_RF_FRFMSB_916_MHZ (0xE5)
780#define SX127X_RF_FRFMID_916_MHZ (0x00)
781#define SX127X_RF_FRFLSB_916_MHZ (0x00)
782#define SX127X_RF_FRFMSB_917_MHZ (0xE5)
783#define SX127X_RF_FRFMID_917_MHZ (0x40)
784#define SX127X_RF_FRFLSB_917_MHZ (0x00)
785#define SX127X_RF_FRFMSB_918_MHZ (0xE5)
786#define SX127X_RF_FRFMID_918_MHZ (0x80)
787#define SX127X_RF_FRFLSB_918_MHZ (0x00)
788#define SX127X_RF_FRFMSB_919_MHZ (0xE5)
789#define SX127X_RF_FRFMID_919_MHZ (0xC0)
790#define SX127X_RF_FRFLSB_919_MHZ (0x00)
791#define SX127X_RF_FRFMSB_920_MHZ (0xE6)
792#define SX127X_RF_FRFMID_920_MHZ (0x00)
793#define SX127X_RF_FRFLSB_920_MHZ (0x00)
794#define SX127X_RF_FRFMSB_921_MHZ (0xE6)
795#define SX127X_RF_FRFMID_921_MHZ (0x40)
796#define SX127X_RF_FRFLSB_921_MHZ (0x00)
797#define SX127X_RF_FRFMSB_922_MHZ (0xE6)
798#define SX127X_RF_FRFMID_922_MHZ (0x80)
799#define SX127X_RF_FRFLSB_922_MHZ (0x00)
800#define SX127X_RF_FRFMSB_923_MHZ (0xE6)
801#define SX127X_RF_FRFMID_923_MHZ (0xC0)
802#define SX127X_RF_FRFLSB_923_MHZ (0x00)
803#define SX127X_RF_FRFMSB_924_MHZ (0xE7)
804#define SX127X_RF_FRFMID_924_MHZ (0x00)
805#define SX127X_RF_FRFLSB_924_MHZ (0x00)
806#define SX127X_RF_FRFMSB_925_MHZ (0xE7)
807#define SX127X_RF_FRFMID_925_MHZ (0x40)
808#define SX127X_RF_FRFLSB_925_MHZ (0x00)
809#define SX127X_RF_FRFMSB_926_MHZ (0xE7)
810#define SX127X_RF_FRFMID_926_MHZ (0x80)
811#define SX127X_RF_FRFLSB_926_MHZ (0x00)
812#define SX127X_RF_FRFMSB_927_MHZ (0xE7)
813#define SX127X_RF_FRFMID_927_MHZ (0xC0)
814#define SX127X_RF_FRFLSB_927_MHZ (0x00)
815#define SX127X_RF_FRFMSB_928_MHZ (0xE8)
816#define SX127X_RF_FRFMID_928_MHZ (0x00)
817#define SX127X_RF_FRFLSB_928_MHZ (0x00)
818
819/* RegPaConfig */
820#define SX127X_RF_PACONFIG_PASELECT_MASK (0x7F)
821#define SX127X_RF_PACONFIG_PASELECT_PABOOST (0x80)
822#define SX127X_RF_PACONFIG_PASELECT_RFO (0x00) /* Default */
823
824#define SX127X_RF_PACONFIG_MAX_POWER_MASK (0x8F)
825
826#define SX127X_RF_PACONFIG_OUTPUTPOWER_MASK (0xF0)
827
828/* RegPaRamp */
829#define SX127X_RF_PARAMP_LOWPNTXPLL_MASK (0xE0)
830#define SX127X_RF_PARAMP_LOWPNTXPLL_OFF (0x10) /* Default */
831#define SX127X_RF_PARAMP_LOWPNTXPLL_ON (0x00)
832
833#define SX127X_RF_PARAMP_MASK (0xF0)
834#define SX127X_RF_PARAMP_3400_US (0x00)
835#define SX127X_RF_PARAMP_2000_US (0x01)
836#define SX127X_RF_PARAMP_1000_US (0x02)
837#define SX127X_RF_PARAMP_0500_US (0x03)
838#define SX127X_RF_PARAMP_0250_US (0x04)
839#define SX127X_RF_PARAMP_0125_US (0x05)
840#define SX127X_RF_PARAMP_0100_US (0x06)
841#define SX127X_RF_PARAMP_0062_US (0x07)
842#define SX127X_RF_PARAMP_0050_US (0x08)
843#define SX127X_RF_PARAMP_0040_US (0x09) /* Default */
844#define SX127X_RF_PARAMP_0031_US (0x0A)
845#define SX127X_RF_PARAMP_0025_US (0x0B)
846#define SX127X_RF_PARAMP_0020_US (0x0C)
847#define SX127X_RF_PARAMP_0015_US (0x0D)
848#define SX127X_RF_PARAMP_0012_US (0x0E)
849#define SX127X_RF_PARAMP_0010_US (0x0F)
850
851/* RegOcp */
852#define SX127X_RF_OCP_MASK (0xDF)
853#define SX127X_RF_OCP_ON (0x20) /* Default */
854#define SX127X_RF_OCP_OFF (0x00)
855
856#define SX127X_RF_OCP_TRIM_MASK (0xE0)
857#define SX127X_RF_OCP_TRIM_045_MA (0x00)
858#define SX127X_RF_OCP_TRIM_050_MA (0x01)
859#define SX127X_RF_OCP_TRIM_055_MA (0x02)
860#define SX127X_RF_OCP_TRIM_060_MA (0x03)
861#define SX127X_RF_OCP_TRIM_065_MA (0x04)
862#define SX127X_RF_OCP_TRIM_070_MA (0x05)
863#define SX127X_RF_OCP_TRIM_075_MA (0x06)
864#define SX127X_RF_OCP_TRIM_080_MA (0x07)
865#define SX127X_RF_OCP_TRIM_085_MA (0x08)
866#define SX127X_RF_OCP_TRIM_090_MA (0x09)
867#define SX127X_RF_OCP_TRIM_095_MA (0x0A)
868#define SX127X_RF_OCP_TRIM_100_MA (0x0B) /* Default */
869#define SX127X_RF_OCP_TRIM_105_MA (0x0C)
870#define SX127X_RF_OCP_TRIM_110_MA (0x0D)
871#define SX127X_RF_OCP_TRIM_115_MA (0x0E)
872#define SX127X_RF_OCP_TRIM_120_MA (0x0F)
873#define SX127X_RF_OCP_TRIM_130_MA (0x10)
874#define SX127X_RF_OCP_TRIM_140_MA (0x11)
875#define SX127X_RF_OCP_TRIM_150_MA (0x12)
876#define SX127X_RF_OCP_TRIM_160_MA (0x13)
877#define SX127X_RF_OCP_TRIM_170_MA (0x14)
878#define SX127X_RF_OCP_TRIM_180_MA (0x15)
879#define SX127X_RF_OCP_TRIM_190_MA (0x16)
880#define SX127X_RF_OCP_TRIM_200_MA (0x17)
881#define SX127X_RF_OCP_TRIM_210_MA (0x18)
882#define SX127X_RF_OCP_TRIM_220_MA (0x19)
883#define SX127X_RF_OCP_TRIM_230_MA (0x1A)
884#define SX127X_RF_OCP_TRIM_240_MA (0x1B)
885
886/* RegLna */
887#define SX127X_RF_LNA_GAIN_MASK (0x1F)
888#define SX127X_RF_LNA_GAIN_G1 (0x20) /* Default */
889#define SX127X_RF_LNA_GAIN_G2 (0x40)
890#define SX127X_RF_LNA_GAIN_G3 (0x60)
891#define SX127X_RF_LNA_GAIN_G4 (0x80)
892#define SX127X_RF_LNA_GAIN_G5 (0xA0)
893#define SX127X_RF_LNA_GAIN_G6 (0xC0)
894
895#define SX127X_RF_LNA_BOOST_MASK (0xFC)
896#define SX127X_RF_LNA_BOOST_OFF (0x00) /* Default */
897#define SX127X_RF_LNA_BOOST_ON (0x03)
898
899/* RegRxConfig */
900#define SX127X_RF_RXCONFIG_RESTARTRXONCOLLISION_MASK (0x7F)
901#define SX127X_RF_RXCONFIG_RESTARTRXONCOLLISION_ON (0x80)
902#define SX127X_RF_RXCONFIG_RESTARTRXONCOLLISION_OFF (0x00) /* Default */
903
904#define SX127X_RF_RXCONFIG_RESTARTRXWITHOUTPLLLOCK (0x40) /* Write only */
905
906#define SX127X_RF_RXCONFIG_RESTARTRXWITHPLLLOCK (0x20) /* Write only */
907
908#define SX127X_RF_RXCONFIG_AFCAUTO_MASK (0xEF)
909#define SX127X_RF_RXCONFIG_AFCAUTO_ON (0x10)
910#define SX127X_RF_RXCONFIG_AFCAUTO_OFF (0x00) /* Default */
911
912#define SX127X_RF_RXCONFIG_AGCAUTO_MASK (0xF7)
913#define SX127X_RF_RXCONFIG_AGCAUTO_ON (0x08) /* Default */
914#define SX127X_RF_RXCONFIG_AGCAUTO_OFF (0x00)
915
916#define SX127X_RF_RXCONFIG_RXTRIGER_MASK (0xF8)
917#define SX127X_RF_RXCONFIG_RXTRIGER_OFF (0x00)
918#define SX127X_RF_RXCONFIG_RXTRIGER_RSSI (0x01)
919#define SX127X_RF_RXCONFIG_RXTRIGER_PREAMBLEDETECT (0x06) /* Default */
920#define SX127X_RF_RXCONFIG_RXTRIGER_RSSI_PREAMBLEDETECT (0x07)
921
922/* RegRssiConfig */
923#define SX127X_RF_RSSICONFIG_OFFSET_MASK (0x07)
924#define SX127X_RF_RSSICONFIG_OFFSET_P_00_DB (0x00) /* Default */
925#define SX127X_RF_RSSICONFIG_OFFSET_P_01_DB (0x08)
926#define SX127X_RF_RSSICONFIG_OFFSET_P_02_DB (0x10)
927#define SX127X_RF_RSSICONFIG_OFFSET_P_03_DB (0x18)
928#define SX127X_RF_RSSICONFIG_OFFSET_P_04_DB (0x20)
929#define SX127X_RF_RSSICONFIG_OFFSET_P_05_DB (0x28)
930#define SX127X_RF_RSSICONFIG_OFFSET_P_06_DB (0x30)
931#define SX127X_RF_RSSICONFIG_OFFSET_P_07_DB (0x38)
932#define SX127X_RF_RSSICONFIG_OFFSET_P_08_DB (0x40)
933#define SX127X_RF_RSSICONFIG_OFFSET_P_09_DB (0x48)
934#define SX127X_RF_RSSICONFIG_OFFSET_P_10_DB (0x50)
935#define SX127X_RF_RSSICONFIG_OFFSET_P_11_DB (0x58)
936#define SX127X_RF_RSSICONFIG_OFFSET_P_12_DB (0x60)
937#define SX127X_RF_RSSICONFIG_OFFSET_P_13_DB (0x68)
938#define SX127X_RF_RSSICONFIG_OFFSET_P_14_DB (0x70)
939#define SX127X_RF_RSSICONFIG_OFFSET_P_15_DB (0x78)
940#define SX127X_RF_RSSICONFIG_OFFSET_M_16_DB (0x80)
941#define SX127X_RF_RSSICONFIG_OFFSET_M_15_DB (0x88)
942#define SX127X_RF_RSSICONFIG_OFFSET_M_14_DB (0x90)
943#define SX127X_RF_RSSICONFIG_OFFSET_M_13_DB (0x98)
944#define SX127X_RF_RSSICONFIG_OFFSET_M_12_DB (0xA0)
945#define SX127X_RF_RSSICONFIG_OFFSET_M_11_DB (0xA8)
946#define SX127X_RF_RSSICONFIG_OFFSET_M_10_DB (0xB0)
947#define SX127X_RF_RSSICONFIG_OFFSET_M_09_DB (0xB8)
948#define SX127X_RF_RSSICONFIG_OFFSET_M_08_DB (0xC0)
949#define SX127X_RF_RSSICONFIG_OFFSET_M_07_DB (0xC8)
950#define SX127X_RF_RSSICONFIG_OFFSET_M_06_DB (0xD0)
951#define SX127X_RF_RSSICONFIG_OFFSET_M_05_DB (0xD8)
952#define SX127X_RF_RSSICONFIG_OFFSET_M_04_DB (0xE0)
953#define SX127X_RF_RSSICONFIG_OFFSET_M_03_DB (0xE8)
954#define SX127X_RF_RSSICONFIG_OFFSET_M_02_DB (0xF0)
955#define SX127X_RF_RSSICONFIG_OFFSET_M_01_DB (0xF8)
956
957#define SX127X_RF_RSSICONFIG_SMOOTHING_MASK (0xF8)
958#define SX127X_RF_RSSICONFIG_SMOOTHING_2 (0x00)
959#define SX127X_RF_RSSICONFIG_SMOOTHING_4 (0x01)
960#define SX127X_RF_RSSICONFIG_SMOOTHING_8 (0x02) /* Default */
961#define SX127X_RF_RSSICONFIG_SMOOTHING_16 (0x03)
962#define SX127X_RF_RSSICONFIG_SMOOTHING_32 (0x04)
963#define SX127X_RF_RSSICONFIG_SMOOTHING_64 (0x05)
964#define SX127X_RF_RSSICONFIG_SMOOTHING_128 (0x06)
965#define SX127X_RF_RSSICONFIG_SMOOTHING_256 (0x07)
966
967/* RegRssiCollision */
968#define SX127X_RF_RSSICOLISION_THRESHOLD (0x0A) /* Default */
969
970/* RegRssiThresh */
971#define SX127X_RF_RSSITHRESH_THRESHOLD (0xFF) /* Default */
972
973/* RegRxBw */
974#define SX127X_RF_RXBW_MANT_MASK (0xE7)
975#define SX127X_RF_RXBW_MANT_16 (0x00)
976#define SX127X_RF_RXBW_MANT_20 (0x08)
977#define SX127X_RF_RXBW_MANT_24 (0x10) /* Default */
978
979#define SX127X_RF_RXBW_EXP_MASK (0xF8)
980#define SX127X_RF_RXBW_EXP_0 (0x00)
981#define SX127X_RF_RXBW_EXP_1 (0x01)
982#define SX127X_RF_RXBW_EXP_2 (0x02)
983#define SX127X_RF_RXBW_EXP_3 (0x03)
984#define SX127X_RF_RXBW_EXP_4 (0x04)
985#define SX127X_RF_RXBW_EXP_5 (0x05) /* Default */
986#define SX127X_RF_RXBW_EXP_6 (0x06)
987#define SX127X_RF_RXBW_EXP_7 (0x07)
988
989/* RegAfcBw */
990#define SX127X_RF_AFCBW_MANTAFC_MASK (0xE7)
991#define SX127X_RF_AFCBW_MANTAFC_16 (0x00)
992#define SX127X_RF_AFCBW_MANTAFC_20 (0x08) /* Default */
993#define SX127X_RF_AFCBW_MANTAFC_24 (0x10)
994
995#define SX127X_RF_AFCBW_EXPAFC_MASK (0xF8)
996#define SX127X_RF_AFCBW_EXPAFC_0 (0x00)
997#define SX127X_RF_AFCBW_EXPAFC_1 (0x01)
998#define SX127X_RF_AFCBW_EXPAFC_2 (0x02)
999#define SX127X_RF_AFCBW_EXPAFC_3 (0x03) /* Default */
1000#define SX127X_RF_AFCBW_EXPAFC_4 (0x04)
1001#define SX127X_RF_AFCBW_EXPAFC_5 (0x05)
1002#define SX127X_RF_AFCBW_EXPAFC_6 (0x06)
1003#define SX127X_RF_AFCBW_EXPAFC_7 (0x07)
1004
1005/* RegOokPeak */
1006#define SX127X_RF_OOKPEAK_BITSYNC_MASK (0xDF) /* Default */
1007#define SX127X_RF_OOKPEAK_BITSYNC_ON (0x20) /* Default */
1008#define SX127X_RF_OOKPEAK_BITSYNC_OFF (0x00)
1009
1010#define SX127X_RF_OOKPEAK_OOKTHRESHTYPE_MASK (0xE7)
1011#define SX127X_RF_OOKPEAK_OOKTHRESHTYPE_FIXED (0x00)
1012#define SX127X_RF_OOKPEAK_OOKTHRESHTYPE_PEAK (0x08) /* Default */
1013#define SX127X_RF_OOKPEAK_OOKTHRESHTYPE_AVERAGE (0x10)
1014
1015#define SX127X_RF_OOKPEAK_OOKPEAKTHRESHSTEP_MASK (0xF8)
1016#define SX127X_RF_OOKPEAK_OOKPEAKTHRESHSTEP_0_5_DB (0x00) /* Default */
1017#define SX127X_RF_OOKPEAK_OOKPEAKTHRESHSTEP_1_0_DB (0x01)
1018#define SX127X_RF_OOKPEAK_OOKPEAKTHRESHSTEP_1_5_DB (0x02)
1019#define SX127X_RF_OOKPEAK_OOKPEAKTHRESHSTEP_2_0_DB (0x03)
1020#define SX127X_RF_OOKPEAK_OOKPEAKTHRESHSTEP_3_0_DB (0x04)
1021#define SX127X_RF_OOKPEAK_OOKPEAKTHRESHSTEP_4_0_DB (0x05)
1022#define SX127X_RF_OOKPEAK_OOKPEAKTHRESHSTEP_5_0_DB (0x06)
1023#define SX127X_RF_OOKPEAK_OOKPEAKTHRESHSTEP_6_0_DB (0x07)
1024
1025/* RegOokFix */
1026#define SX127X_RF_OOKFIX_OOKFIXEDTHRESHOLD (0x0C) /* Default */
1027
1028/* RegOokAvg */
1029#define SX127X_RF_OOKAVG_OOKPEAKTHRESHDEC_MASK (0x1F)
1030#define SX127X_RF_OOKAVG_OOKPEAKTHRESHDEC_000 (0x00) /* Default */
1031#define SX127X_RF_OOKAVG_OOKPEAKTHRESHDEC_001 (0x20)
1032#define SX127X_RF_OOKAVG_OOKPEAKTHRESHDEC_010 (0x40)
1033#define SX127X_RF_OOKAVG_OOKPEAKTHRESHDEC_011 (0x60)
1034#define SX127X_RF_OOKAVG_OOKPEAKTHRESHDEC_100 (0x80)
1035#define SX127X_RF_OOKAVG_OOKPEAKTHRESHDEC_101 (0xA0)
1036#define SX127X_RF_OOKAVG_OOKPEAKTHRESHDEC_110 (0xC0)
1037#define SX127X_RF_OOKAVG_OOKPEAKTHRESHDEC_111 (0xE0)
1038
1039#define SX127X_RF_OOKAVG_AVERAGEOFFSET_MASK (0xF3)
1040#define SX127X_RF_OOKAVG_AVERAGEOFFSET_0_DB (0x00) /* Default */
1041#define SX127X_RF_OOKAVG_AVERAGEOFFSET_2_DB (0x04)
1042#define SX127X_RF_OOKAVG_AVERAGEOFFSET_4_DB (0x08)
1043#define SX127X_RF_OOKAVG_AVERAGEOFFSET_6_DB (0x0C)
1044
1045#define SX127X_RF_OOKAVG_OOKAVERAGETHRESHFILT_MASK (0xFC)
1046#define SX127X_RF_OOKAVG_OOKAVERAGETHRESHFILT_00 (0x00)
1047#define SX127X_RF_OOKAVG_OOKAVERAGETHRESHFILT_01 (0x01)
1048#define SX127X_RF_OOKAVG_OOKAVERAGETHRESHFILT_10 (0x02) /* Default */
1049#define SX127X_RF_OOKAVG_OOKAVERAGETHRESHFILT_11 (0x03)
1050
1051/* RegAfcFei */
1052#define SX127X_RF_AFCFEI_AGCSTART (0x10)
1053
1054#define SX127X_RF_AFCFEI_AFCCLEAR (0x02)
1055
1056#define SX127X_RF_AFCFEI_AFCAUTOCLEAR_MASK (0xFE)
1057#define SX127X_RF_AFCFEI_AFCAUTOCLEAR_ON (0x01)
1058#define SX127X_RF_AFCFEI_AFCAUTOCLEAR_OFF (0x00) /* Default */
1059
1060/* RegPreambleDetect */
1061#define SX127X_RF_PREAMBLEDETECT_DETECTOR_MASK (0x7F)
1062#define SX127X_RF_PREAMBLEDETECT_DETECTOR_ON (0x80) /* Default */
1063#define SX127X_RF_PREAMBLEDETECT_DETECTOR_OFF (0x00)
1064
1065#define SX127X_RF_PREAMBLEDETECT_DETECTORSIZE_MASK (0x9F)
1066#define SX127X_RF_PREAMBLEDETECT_DETECTORSIZE_1 (0x00)
1067#define SX127X_RF_PREAMBLEDETECT_DETECTORSIZE_2 (0x20) /* Default */
1068#define SX127X_RF_PREAMBLEDETECT_DETECTORSIZE_3 (0x40)
1069#define SX127X_RF_PREAMBLEDETECT_DETECTORSIZE_4 (0x60)
1070
1071#define SX127X_RF_PREAMBLEDETECT_DETECTORTOL_MASK (0xE0)
1072#define SX127X_RF_PREAMBLEDETECT_DETECTORTOL_0 (0x00)
1073#define SX127X_RF_PREAMBLEDETECT_DETECTORTOL_1 (0x01)
1074#define SX127X_RF_PREAMBLEDETECT_DETECTORTOL_2 (0x02)
1075#define SX127X_RF_PREAMBLEDETECT_DETECTORTOL_3 (0x03)
1076#define SX127X_RF_PREAMBLEDETECT_DETECTORTOL_4 (0x04)
1077#define SX127X_RF_PREAMBLEDETECT_DETECTORTOL_5 (0x05)
1078#define SX127X_RF_PREAMBLEDETECT_DETECTORTOL_6 (0x06)
1079#define SX127X_RF_PREAMBLEDETECT_DETECTORTOL_7 (0x07)
1080#define SX127X_RF_PREAMBLEDETECT_DETECTORTOL_8 (0x08)
1081#define SX127X_RF_PREAMBLEDETECT_DETECTORTOL_9 (0x09)
1082#define SX127X_RF_PREAMBLEDETECT_DETECTORTOL_10 (0x0A) /* Default */
1083#define SX127X_RF_PREAMBLEDETECT_DETECTORTOL_11 (0x0B)
1084#define SX127X_RF_PREAMBLEDETECT_DETECTORTOL_12 (0x0C)
1085#define SX127X_RF_PREAMBLEDETECT_DETECTORTOL_13 (0x0D)
1086#define SX127X_RF_PREAMBLEDETECT_DETECTORTOL_14 (0x0E)
1087#define SX127X_RF_PREAMBLEDETECT_DETECTORTOL_15 (0x0F)
1088#define SX127X_RF_PREAMBLEDETECT_DETECTORTOL_16 (0x10)
1089#define SX127X_RF_PREAMBLEDETECT_DETECTORTOL_17 (0x11)
1090#define SX127X_RF_PREAMBLEDETECT_DETECTORTOL_18 (0x12)
1091#define SX127X_RF_PREAMBLEDETECT_DETECTORTOL_19 (0x13)
1092#define SX127X_RF_PREAMBLEDETECT_DETECTORTOL_20 (0x14)
1093#define SX127X_RF_PREAMBLEDETECT_DETECTORTOL_21 (0x15)
1094#define SX127X_RF_PREAMBLEDETECT_DETECTORTOL_22 (0x16)
1095#define SX127X_RF_PREAMBLEDETECT_DETECTORTOL_23 (0x17)
1096#define SX127X_RF_PREAMBLEDETECT_DETECTORTOL_24 (0x18)
1097#define SX127X_RF_PREAMBLEDETECT_DETECTORTOL_25 (0x19)
1098#define SX127X_RF_PREAMBLEDETECT_DETECTORTOL_26 (0x1A)
1099#define SX127X_RF_PREAMBLEDETECT_DETECTORTOL_27 (0x1B)
1100#define SX127X_RF_PREAMBLEDETECT_DETECTORTOL_28 (0x1C)
1101#define SX127X_RF_PREAMBLEDETECT_DETECTORTOL_29 (0x1D)
1102#define SX127X_RF_PREAMBLEDETECT_DETECTORTOL_30 (0x1E)
1103#define SX127X_RF_PREAMBLEDETECT_DETECTORTOL_31 (0x1F)
1104
1105/* RegRxTimeout1 */
1106#define SX127X_RF_RXTIMEOUT1_TIMEOUTRXRSSI (0x00) /* Default */
1107
1108/* RegRxTimeout2 */
1109#define SX127X_RF_RXTIMEOUT2_TIMEOUTRXPREAMBLE (0x00) /* Default */
1110
1111/* RegRxTimeout3 */
1112#define SX127X_RF_RXTIMEOUT3_TIMEOUTSIGNALSYNC (0x00) /* Default */
1113
1114/* RegRxDelay */
1115#define SX127X_RF_RXDELAY_INTERPACKETRXDELAY (0x00) /* Default */
1116
1117/* RegOsc */
1118#define SX127X_RF_OSC_RCCALSTART (0x08)
1119
1120#define SX127X_RF_OSC_CLKOUT_MASK (0xF8)
1121#define SX127X_RF_OSC_CLKOUT_32_MHZ (0x00)
1122#define SX127X_RF_OSC_CLKOUT_16_MHZ (0x01)
1123#define SX127X_RF_OSC_CLKOUT_8_MHZ (0x02)
1124#define SX127X_RF_OSC_CLKOUT_4_MHZ (0x03)
1125#define SX127X_RF_OSC_CLKOUT_2_MHZ (0x04)
1126#define SX127X_RF_OSC_CLKOUT_1_MHZ (0x05) /* Default */
1127#define SX127X_RF_OSC_CLKOUT_RC (0x06)
1128#define SX127X_RF_OSC_CLKOUT_OFF (0x07)
1129
1130/* RegPreambleMsb/RegPreambleLsb */
1131#define SX127X_RF_PREAMBLEMSB_SIZE (0x00) /* Default */
1132#define SX127X_RF_PREAMBLELSB_SIZE (0x03) /* Default */
1133
1134/* RegSyncConfig */
1135#define SX127X_RF_SYNCCONFIG_AUTORESTARTRXMODE_MASK (0x3F)
1136#define SX127X_RF_SYNCCONFIG_AUTORESTARTRXMODE_WAITPLL_ON (0x80) /* Default */
1137#define SX127X_RF_SYNCCONFIG_AUTORESTARTRXMODE_WAITPLL_OFF (0x40)
1138#define SX127X_RF_SYNCCONFIG_AUTORESTARTRXMODE_OFF (0x00)
1139
1140#define SX127X_RF_SYNCCONFIG_PREAMBLEPOLARITY_MASK (0xDF)
1141#define SX127X_RF_SYNCCONFIG_PREAMBLEPOLARITY_55 (0x20)
1142#define SX127X_RF_SYNCCONFIG_PREAMBLEPOLARITY_AA (0x00) /* Default */
1143
1144#define SX127X_RF_SYNCCONFIG_SYNC_MASK (0xEF)
1145#define SX127X_RF_SYNCCONFIG_SYNC_ON (0x10) /* Default */
1146#define SX127X_RF_SYNCCONFIG_SYNC_OFF (0x00)
1147
1148#define SX127X_RF_SYNCCONFIG_SYNCSIZE_MASK (0xF8)
1149#define SX127X_RF_SYNCCONFIG_SYNCSIZE_1 (0x00)
1150#define SX127X_RF_SYNCCONFIG_SYNCSIZE_2 (0x01)
1151#define SX127X_RF_SYNCCONFIG_SYNCSIZE_3 (0x02)
1152#define SX127X_RF_SYNCCONFIG_SYNCSIZE_4 (0x03) /* Default */
1153#define SX127X_RF_SYNCCONFIG_SYNCSIZE_5 (0x04)
1154#define SX127X_RF_SYNCCONFIG_SYNCSIZE_6 (0x05)
1155#define SX127X_RF_SYNCCONFIG_SYNCSIZE_7 (0x06)
1156#define SX127X_RF_SYNCCONFIG_SYNCSIZE_8 (0x07)
1157
1158/* RegSyncValue1-8 */
1159#define SX127X_RF_SYNCVALUE1_SYNCVALUE (0x01) /* Default */
1160#define SX127X_RF_SYNCVALUE2_SYNCVALUE (0x01) /* Default */
1161#define SX127X_RF_SYNCVALUE3_SYNCVALUE (0x01) /* Default */
1162#define SX127X_RF_SYNCVALUE4_SYNCVALUE (0x01) /* Default */
1163#define SX127X_RF_SYNCVALUE5_SYNCVALUE (0x01) /* Default */
1164#define SX127X_RF_SYNCVALUE6_SYNCVALUE (0x01) /* Default */
1165#define SX127X_RF_SYNCVALUE7_SYNCVALUE (0x01) /* Default */
1166#define SX127X_RF_SYNCVALUE8_SYNCVALUE (0x01) /* Default */
1167
1168/* RegPacketConfig1 */
1169#define SX127X_RF_PACKETCONFIG1_PACKETFORMAT_MASK (0x7F)
1170#define SX127X_RF_PACKETCONFIG1_PACKETFORMAT_FIXED (0x00)
1171#define SX127X_RF_PACKETCONFIG1_PACKETFORMAT_VARIABLE (0x80) /* Default */
1172
1173#define SX127X_RF_PACKETCONFIG1_DCFREE_MASK (0x9F)
1174#define SX127X_RF_PACKETCONFIG1_DCFREE_OFF (0x00) /* Default */
1175#define SX127X_RF_PACKETCONFIG1_DCFREE_MANCHESTER (0x20)
1176#define SX127X_RF_PACKETCONFIG1_DCFREE_WHITENING (0x40)
1177
1178#define SX127X_RF_PACKETCONFIG1_CRC_MASK (0xEF)
1179#define SX127X_RF_PACKETCONFIG1_CRC_ON (0x10) /* Default */
1180#define SX127X_RF_PACKETCONFIG1_CRC_OFF (0x00)
1181
1182#define SX127X_RF_PACKETCONFIG1_CRCAUTOCLEAR_MASK (0xF7)
1183#define SX127X_RF_PACKETCONFIG1_CRCAUTOCLEAR_ON (0x00) /* Default */
1184#define SX127X_RF_PACKETCONFIG1_CRCAUTOCLEAR_OFF (0x08)
1185
1186#define SX127X_RF_PACKETCONFIG1_ADDRSFILTERING_MASK (0xF9)
1187#define SX127X_RF_PACKETCONFIG1_ADDRSFILTERING_OFF (0x00) /* Default */
1188#define SX127X_RF_PACKETCONFIG1_ADDRSFILTERING_NODE (0x02)
1189#define SX127X_RF_PACKETCONFIG1_ADDRSFILTERING_NODEBROADCAST (0x04)
1190
1191#define SX127X_RF_PACKETCONFIG1_CRCWHITENINGTYPE_MASK (0xFE)
1192#define SX127X_RF_PACKETCONFIG1_CRCWHITENINGTYPE_CCITT (0x00) /* Default */
1193#define SX127X_RF_PACKETCONFIG1_CRCWHITENINGTYPE_IBM (0x01)
1194
1195/* RegPacketConfig2 */
1196#define SX127X_RF_PACKETCONFIG2_WMBUS_CRC_ENABLE_MASK (0x7F)
1197#define SX127X_RF_PACKETCONFIG2_WMBUS_CRC_ENABLE (0x80)
1198#define SX127X_RF_PACKETCONFIG2_WMBUS_CRC_DISABLE (0x00) /* Default */
1199
1200#define SX127X_RF_PACKETCONFIG2_DATAMODE_MASK (0xBF)
1201#define SX127X_RF_PACKETCONFIG2_DATAMODE_CONTINUOUS (0x00)
1202#define SX127X_RF_PACKETCONFIG2_DATAMODE_PACKET (0x40) /* Default */
1203
1204#define SX127X_RF_PACKETCONFIG2_IOHOME_MASK (0xDF)
1205#define SX127X_RF_PACKETCONFIG2_IOHOME_ON (0x20)
1206#define SX127X_RF_PACKETCONFIG2_IOHOME_OFF (0x00) /* Default */
1207
1208#define SX127X_RF_PACKETCONFIG2_BEACON_MASK (0xF7)
1209#define SX127X_RF_PACKETCONFIG2_BEACON_ON (0x08)
1210#define SX127X_RF_PACKETCONFIG2_BEACON_OFF (0x00) /* Default */
1211
1212#define SX127X_RF_PACKETCONFIG2_PAYLOADLENGTH_MSB_MASK (0xF8)
1213
1214/* RegPayloadLength */
1215#define SX127X_RF_PAYLOADLENGTH_LENGTH (0x40) /* Default */
1216
1217/* RegNodeAdrs */
1218#define SX127X_RF_NODEADDRESS_ADDRESS (0x00)
1219
1220/* RegBroadcastAdrs */
1221#define SX127X_RF_BROADCASTADDRESS_ADDRESS (0x00)
1222
1223/* RegFifoThresh */
1224#define SX127X_RF_FIFOTHRESH_TXSTARTCONDITION_MASK (0x7F)
1225#define SX127X_RF_FIFOTHRESH_TXSTARTCONDITION_FIFOTHRESH (0x00) /* Default */
1226#define SX127X_RF_FIFOTHRESH_TXSTARTCONDITION_FIFONOTEMPTY (0x80)
1227
1228#define SX127X_RF_FIFOTHRESH_FIFOTHRESHOLD_MASK (0xC0)
1229#define SX127X_RF_FIFOTHRESH_FIFOTHRESHOLD_THRESHOLD (0x0F) /* Default */
1230
1231/* RegSeqConfig1 */
1232#define SX127X_RF_SEQCONFIG1_SEQUENCER_START (0x80)
1233
1234#define SX127X_RF_SEQCONFIG1_SEQUENCER_STOP (0x40)
1235
1236#define SX127X_RF_SEQCONFIG1_IDLEMODE_MASK (0xDF)
1237#define SX127X_RF_SEQCONFIG1_IDLEMODE_SLEEP (0x20)
1238#define SX127X_RF_SEQCONFIG1_IDLEMODE_STANDBY (0x00) /* Default */
1239
1240#define SX127X_RF_SEQCONFIG1_FROMSTART_MASK (0xE7)
1241#define SX127X_RF_SEQCONFIG1_FROMSTART_TOLPS (0x00) /* Default */
1242#define SX127X_RF_SEQCONFIG1_FROMSTART_TORX (0x08)
1243#define SX127X_RF_SEQCONFIG1_FROMSTART_TOTX (0x10)
1244#define SX127X_RF_SEQCONFIG1_FROMSTART_TOTX_ONFIFOLEVEL (0x18)
1245
1246#define SX127X_RF_SEQCONFIG1_LPS_MASK (0xFB)
1247#define SX127X_RF_SEQCONFIG1_LPS_SEQUENCER_OFF (0x00) /* Default */
1248#define SX127X_RF_SEQCONFIG1_LPS_IDLE (0x04)
1249
1250#define SX127X_RF_SEQCONFIG1_FROMIDLE_MASK (0xFD)
1251#define SX127X_RF_SEQCONFIG1_FROMIDLE_TOTX (0x00) /* Default */
1252#define SX127X_RF_SEQCONFIG1_FROMIDLE_TORX (0x02)
1253
1254#define SX127X_RF_SEQCONFIG1_FROMTX_MASK (0xFE)
1255#define SX127X_RF_SEQCONFIG1_FROMTX_TOLPS (0x00) /* Default */
1256#define SX127X_RF_SEQCONFIG1_FROMTX_TORX (0x01)
1257
1258/* RegSeqConfig2 */
1259#define SX127X_RF_SEQCONFIG2_FROMRX_MASK (0x1F)
1260#define SX127X_RF_SEQCONFIG2_FROMRX_TOUNUSED_000 (0x00) /* Default */
1261#define SX127X_RF_SEQCONFIG2_FROMRX_TORXPKT_ONPLDRDY (0x20)
1262#define SX127X_RF_SEQCONFIG2_FROMRX_TOLPS_ONPLDRDY (0x40)
1263#define SX127X_RF_SEQCONFIG2_FROMRX_TORXPKT_ONCRCOK (0x60)
1264#define SX127X_RF_SEQCONFIG2_FROMRX_TOSEQUENCEROFF_ONRSSI (0x80)
1265#define SX127X_RF_SEQCONFIG2_FROMRX_TOSEQUENCEROFF_ONSYNC (0xA0)
1266#define SX127X_RF_SEQCONFIG2_FROMRX_TOSEQUENCEROFF_ONPREAMBLE (0xC0)
1267#define SX127X_RF_SEQCONFIG2_FROMRX_TOUNUSED_111 (0xE0)
1268
1269#define SX127X_RF_SEQCONFIG2_FROMRXTIMEOUT_MASK (0xE7)
1270#define SX127X_RF_SEQCONFIG2_FROMRXTIMEOUT_TORXRESTART (0x00) /* Default */
1271#define SX127X_RF_SEQCONFIG2_FROMRXTIMEOUT_TOTX (0x08)
1272#define SX127X_RF_SEQCONFIG2_FROMRXTIMEOUT_TOLPS (0x10)
1273#define SX127X_RF_SEQCONFIG2_FROMRXTIMEOUT_TOSEQUENCEROFF (0x18)
1274
1275#define SX127X_RF_SEQCONFIG2_FROMRXPKT_MASK (0xF8)
1276#define SX127X_RF_SEQCONFIG2_FROMRXPKT_TOSEQUENCEROFF (0x00) /* Default */
1277#define SX127X_RF_SEQCONFIG2_FROMRXPKT_TOTX_ONFIFOEMPTY (0x01)
1278#define SX127X_RF_SEQCONFIG2_FROMRXPKT_TOLPS (0x02)
1279#define SX127X_RF_SEQCONFIG2_FROMRXPKT_TOSYNTHESIZERRX (0x03)
1280#define SX127X_RF_SEQCONFIG2_FROMRXPKT_TORX (0x04)
1281
1282/* RegTimerResol */
1283#define SX127X_RF_TIMERRESOL_TIMER1RESOL_MASK (0xF3)
1284#define SX127X_RF_TIMERRESOL_TIMER1RESOL_OFF (0x00) /* Default */
1285#define SX127X_RF_TIMERRESOL_TIMER1RESOL_000064_US (0x04)
1286#define SX127X_RF_TIMERRESOL_TIMER1RESOL_004100_US (0x08)
1287#define SX127X_RF_TIMERRESOL_TIMER1RESOL_262000_US (0x0C)
1288
1289#define SX127X_RF_TIMERRESOL_TIMER2RESOL_MASK (0xFC)
1290#define SX127X_RF_TIMERRESOL_TIMER2RESOL_OFF (0x00) /* Default */
1291#define SX127X_RF_TIMERRESOL_TIMER2RESOL_000064_US (0x01)
1292#define SX127X_RF_TIMERRESOL_TIMER2RESOL_004100_US (0x02)
1293#define SX127X_RF_TIMERRESOL_TIMER2RESOL_262000_US (0x03)
1294
1295/* RegTimer1Coef */
1296#define SX127X_RF_TIMER1COEF_TIMER1COEFFICIENT (0xF5) /* Default */
1297
1298/* RegTimer2Coef */
1299#define SX127X_RF_TIMER2COEF_TIMER2COEFFICIENT (0x20) /* Default */
1300
1301/* RegImageCal */
1302#define SX127X_RF_IMAGECAL_AUTOIMAGECAL_MASK (0x7F)
1303#define SX127X_RF_IMAGECAL_AUTOIMAGECAL_ON (0x80)
1304#define SX127X_RF_IMAGECAL_AUTOIMAGECAL_OFF (0x00) /* Default */
1305
1306#define SX127X_RF_IMAGECAL_IMAGECAL_MASK (0xBF)
1307#define SX127X_RF_IMAGECAL_IMAGECAL_START (0x40)
1308
1309#define SX127X_RF_IMAGECAL_IMAGECAL_RUNNING (0x20)
1310#define SX127X_RF_IMAGECAL_IMAGECAL_DONE (0x00) /* Default */
1311
1312#define SX127X_RF_IMAGECAL_TEMPCHANGE_HIGHER (0x08)
1313#define SX127X_RF_IMAGECAL_TEMPCHANGE_LOWER (0x00)
1314
1315#define SX127X_RF_IMAGECAL_TEMPTHRESHOLD_MASK (0xF9)
1316#define SX127X_RF_IMAGECAL_TEMPTHRESHOLD_05 (0x00)
1317#define SX127X_RF_IMAGECAL_TEMPTHRESHOLD_10 (0x02) /* Default */
1318#define SX127X_RF_IMAGECAL_TEMPTHRESHOLD_15 (0x04)
1319#define SX127X_RF_IMAGECAL_TEMPTHRESHOLD_20 (0x06)
1320
1321#define SX127X_RF_IMAGECAL_TEMPMONITOR_MASK (0xFE)
1322#define SX127X_RF_IMAGECAL_TEMPMONITOR_ON (0x00) /* Default */
1323#define SX127X_RF_IMAGECAL_TEMPMONITOR_OFF (0x01)
1324
1325/* RegLowBat */
1326#define SX127X_RF_LOWBAT_MASK (0xF7)
1327#define SX127X_RF_LOWBAT_ON (0x08)
1328#define SX127X_RF_LOWBAT_OFF (0x00) /* Default */
1329
1330#define SX127X_RF_LOWBAT_TRIM_MASK (0xF8)
1331#define SX127X_RF_LOWBAT_TRIM_1695 (0x00)
1332#define SX127X_RF_LOWBAT_TRIM_1764 (0x01)
1333#define SX127X_RF_LOWBAT_TRIM_1835 (0x02) /* Default */
1334#define SX127X_RF_LOWBAT_TRIM_1905 (0x03)
1335#define SX127X_RF_LOWBAT_TRIM_1976 (0x04)
1336#define SX127X_RF_LOWBAT_TRIM_2045 (0x05)
1337#define SX127X_RF_LOWBAT_TRIM_2116 (0x06)
1338#define SX127X_RF_LOWBAT_TRIM_2185 (0x07)
1339
1340/* RegIrqFlags1 */
1341#define SX127X_RF_IRQFLAGS1_MODEREADY (0x80)
1342#define SX127X_RF_IRQFLAGS1_RXREADY (0x40)
1343#define SX127X_RF_IRQFLAGS1_TXREADY (0x20)
1344#define SX127X_RF_IRQFLAGS1_PLLLOCK (0x10)
1345#define SX127X_RF_IRQFLAGS1_RSSI (0x08)
1346#define SX127X_RF_IRQFLAGS1_TIMEOUT (0x04)
1347#define SX127X_RF_IRQFLAGS1_PREAMBLEDETECT (0x02)
1348#define SX127X_RF_IRQFLAGS1_SYNCADDRESSMATCH (0x01)
1349
1350/* RegIrqFlags2 */
1351#define SX127X_RF_IRQFLAGS2_FIFOFULL (0x80)
1352#define SX127X_RF_IRQFLAGS2_FIFOEMPTY (0x40)
1353#define SX127X_RF_IRQFLAGS2_FIFOLEVEL (0x20)
1354#define SX127X_RF_IRQFLAGS2_FIFOOVERRUN (0x10)
1355#define SX127X_RF_IRQFLAGS2_PACKETSENT (0x08)
1356#define SX127X_RF_IRQFLAGS2_PAYLOADREADY (0x04)
1357#define SX127X_RF_IRQFLAGS2_CRCOK (0x02)
1358#define SX127X_RF_IRQFLAGS2_LOWBAT (0x01)
1359
1360/* RegDioMapping1 */
1361#define SX127X_RF_DIOMAPPING1_DIO0_MASK (0x3F)
1362#define SX127X_RF_DIOMAPPING1_DIO0_00 (0x00) /* Default */
1363#define SX127X_RF_DIOMAPPING1_DIO0_01 (0x40)
1364#define SX127X_RF_DIOMAPPING1_DIO0_10 (0x80)
1365#define SX127X_RF_DIOMAPPING1_DIO0_11 (0xC0)
1366
1367#define SX127X_RF_DIOMAPPING1_DIO1_MASK (0xCF)
1368#define SX127X_RF_DIOMAPPING1_DIO1_00 (0x00) /* Default */
1369#define SX127X_RF_DIOMAPPING1_DIO1_01 (0x10)
1370#define SX127X_RF_DIOMAPPING1_DIO1_10 (0x20)
1371#define SX127X_RF_DIOMAPPING1_DIO1_11 (0x30)
1372
1373#define SX127X_RF_DIOMAPPING1_DIO2_MASK (0xF3)
1374#define SX127X_RF_DIOMAPPING1_DIO2_00 (0x00) /* Default */
1375#define SX127X_RF_DIOMAPPING1_DIO2_01 (0x04)
1376#define SX127X_RF_DIOMAPPING1_DIO2_10 (0x08)
1377#define SX127X_RF_DIOMAPPING1_DIO2_11 (0x0C)
1378
1379#define SX127X_RF_DIOMAPPING1_DIO3_MASK (0xFC)
1380#define SX127X_RF_DIOMAPPING1_DIO3_00 (0x00) /* Default */
1381#define SX127X_RF_DIOMAPPING1_DIO3_01 (0x01)
1382#define SX127X_RF_DIOMAPPING1_DIO3_10 (0x02)
1383#define SX127X_RF_DIOMAPPING1_DIO3_11 (0x03)
1384
1385/* RegDioMapping2 */
1386#define SX127X_RF_DIOMAPPING2_DIO4_MASK (0x3F)
1387#define SX127X_RF_DIOMAPPING2_DIO4_00 (0x00) /* Default */
1388#define SX127X_RF_DIOMAPPING2_DIO4_01 (0x40)
1389#define SX127X_RF_DIOMAPPING2_DIO4_10 (0x80)
1390#define SX127X_RF_DIOMAPPING2_DIO4_11 (0xC0)
1391
1392#define SX127X_RF_DIOMAPPING2_DIO5_MASK (0xCF)
1393#define SX127X_RF_DIOMAPPING2_DIO5_00 (0x00) /* Default */
1394#define SX127X_RF_DIOMAPPING2_DIO5_01 (0x10)
1395#define SX127X_RF_DIOMAPPING2_DIO5_10 (0x20)
1396#define SX127X_RF_DIOMAPPING2_DIO5_11 (0x30)
1397
1398#define SX127X_RF_DIOMAPPING2_MAP_MASK (0xFE)
1399#define SX127X_RF_DIOMAPPING2_MAP_PREAMBLEDETECT (0x01)
1400#define SX127X_RF_DIOMAPPING2_MAP_RSSI (0x00) /* Default */
1401
1402/* RegPllHop */
1403#define SX127X_RF_PLLHOP_FASTHOP_MASK (0x7F)
1404#define SX127X_RF_PLLHOP_FASTHOP_ON (0x80)
1405#define SX127X_RF_PLLHOP_FASTHOP_OFF (0x00) /* Default */
1406
1407/* RegTcxo */
1408#define SX127X_RF_TCXO_TCXOINPUT_MASK (0xEF)
1409#define SX127X_RF_TCXO_TCXOINPUT_ON (0x10)
1410#define SX127X_RF_TCXO_TCXOINPUT_OFF (0x00) /* Default */
1411
1412/* RegPaDac */
1413#define SX127X_RF_PADAC_20DBM_MASK (0xF8)
1414#define SX127X_RF_PADAC_20DBM_ON (0x07)
1415#define SX127X_RF_PADAC_20DBM_OFF (0x04) /* Default */
1416
1417/* RegBitrateFrac */
1418#define SX127X_RF_BITRATEFRAC_MASK (0xF0)
1419
1420/* RegPll */
1421#define SX127X_RF_PLL_BANDWIDTH_MASK (0x3F)
1422#define SX127X_RF_PLL_BANDWIDTH_75 (0x00)
1423#define SX127X_RF_PLL_BANDWIDTH_150 (0x40)
1424#define SX127X_RF_PLL_BANDWIDTH_225 (0x80)
1425#define SX127X_RF_PLL_BANDWIDTH_300 (0xC0) /* Default */
1428#ifdef __cplusplus
1429}
1430#endif
1431
1432#endif /* SX127X_REGISTERS_H */