lr1121 comment tidy (#3015)
[ExpressLRS.git] / src / lib / LR1121Driver / LR1121_Regs.h
blob2cea01ce70deecfc84e79d3cfde5133f9d5511e4
1 /*!
2 * @file lr11xx_radio_types.h
4 * @brief Radio driver types for LR11XX
6 * The Clear BSD License
7 * Copyright Semtech Corporation 2021. All rights reserved.
9 * Redistribution and use in source and binary forms, with or without
10 * modification, are permitted (subject to the limitations in the disclaimer
11 * below) provided that the following conditions are met:
12 * * Redistributions of source code must retain the above copyright
13 * notice, this list of conditions and the following disclaimer.
14 * * Redistributions in binary form must reproduce the above copyright
15 * notice, this list of conditions and the following disclaimer in the
16 * documentation and/or other materials provided with the distribution.
17 * * Neither the name of the Semtech corporation nor the
18 * names of its contributors may be used to endorse or promote products
19 * derived from this software without specific prior written permission.
21 * NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY
22 * THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
23 * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT
24 * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
25 * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SEMTECH CORPORATION BE
26 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
27 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
28 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
29 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
30 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
31 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
32 * POSSIBILITY OF SUCH DAMAGE.
35 #pragma once
37 #define LR1121_XTAL_FREQ 32000000
38 #define FREQ_STEP 61.03515625 // TODO check and fix... this is a cut and past from sx1276
40 #define LR1121_POWER_MIN_LP_PA (-17) // Low Power PA
41 #define LR1121_POWER_MAX_LP_PA (14)
42 #define LR1121_POWER_MIN_HP_PA (-9) // High Power PA
43 #define LR1121_POWER_MAX_HP_PA (22)
44 #define LR1121_POWER_MIN_HF_PA (-18) // High Frequency PA
45 #define LR1121_POWER_MAX_HF_PA (13)
47 #define LR1121_IRQ_TX_DONE 0x00000004
48 #define LR1121_IRQ_RX_DONE 0x00000008
49 #define LR1121_IRQ_RADIO_NONE 0
50 // #define LR1121_IRQ_RADIO_ALL 0xFFFFFFFF
52 /*!
53 * @brief Length in byte of the LR11XX version blob
55 #define LR11XX_BL_VERSION_LENGTH ( 4 )
57 /*!
58 * @brief Length in bytes of a PIN
60 #define LR11XX_BL_PIN_LENGTH ( 4 )
62 /*!
63 * @brief Length in bytes of a chip EUI
65 #define LR11XX_BL_CHIP_EUI_LENGTH ( 8 )
67 /*!
68 * @brief Length in bytes of a join EUI
70 #define LR11XX_BL_JOIN_EUI_LENGTH ( 8 )
72 typedef enum
74 LR1121_LORA_PACKET_VARIABLE_LENGTH = 0x00, //!< The packet length is variable size, header included in the packet
75 LR1121_LORA_PACKET_FIXED_LENGTH = 0x01, //!< The packet length is known on both sides, no header included in the packet
76 LR1121_LORA_PACKET_EXPLICIT = LR1121_LORA_PACKET_VARIABLE_LENGTH,
77 LR1121_LORA_PACKET_IMPLICIT = LR1121_LORA_PACKET_FIXED_LENGTH,
78 } lr11xx_RadioLoRaPacketLengthsModes_t;
80 typedef enum
82 LR1121_MODE_SLEEP = 0x00, //! The radio is in sleep mode
83 LR1121_MODE_STDBY_RC, //! The radio is in standby mode with RC oscillator
84 LR1121_MODE_STDBY_XOSC, //! The radio is in standby mode with XOSC oscillator
85 LR1121_MODE_FS, //! The radio is in frequency synthesis mode
86 LR1121_MODE_RX, //! The radio is in receive mode
87 LR1121_MODE_RX_CONT, //! The radio is in continuous receive mode
88 LR1121_MODE_TX, //! The radio is in transmit mode
89 LR1121_MODE_CAD //! The radio is in channel activity detection mode
90 } lr11xx_RadioOperatingModes_t;
92 enum
94 LR11XX_RADIO_RESET_STATS_OC = 0x0200,
95 LR11XX_RADIO_GET_STATS_OC = 0x0201,
96 LR11XX_RADIO_GET_PKT_TYPE_OC = 0x0202,
97 LR11XX_RADIO_GET_RXBUFFER_STATUS_OC = 0x0203,
98 LR11XX_RADIO_GET_PKT_STATUS_OC = 0x0204,
99 LR11XX_RADIO_GET_RSSI_INST_OC = 0x0205,
100 LR11XX_RADIO_SET_GFSK_SYNC_WORD_OC = 0x0206,
101 LR11XX_RADIO_SET_LORA_PUBLIC_NETWORK_OC = 0x0208,
102 LR11XX_RADIO_SET_RX_OC = 0x0209,
103 LR11XX_RADIO_SET_TX_OC = 0x020A,
104 LR11XX_RADIO_SET_RF_FREQUENCY_OC = 0x020B,
105 LR11XX_RADIO_AUTOTXRX_OC = 0x020C,
106 LR11XX_RADIO_SET_CAD_PARAMS_OC = 0x020D,
107 LR11XX_RADIO_SET_PKT_TYPE_OC = 0x020E,
108 LR11XX_RADIO_SET_MODULATION_PARAM_OC = 0x020F,
109 LR11XX_RADIO_SET_PKT_PARAM_OC = 0x0210,
110 LR11XX_RADIO_SET_TX_PARAMS_OC = 0x0211,
111 LR11XX_RADIO_SET_PKT_ADRS_OC = 0x0212,
112 LR11XX_RADIO_SET_RX_TX_FALLBACK_MODE_OC = 0x0213,
113 LR11XX_RADIO_SET_RX_DUTY_CYCLE_OC = 0x0214,
114 LR11XX_RADIO_SET_PA_CFG_OC = 0x0215,
115 LR11XX_RADIO_STOP_TIMEOUT_ON_PREAMBLE_OC = 0x0217,
116 LR11XX_RADIO_SET_CAD_OC = 0x0218,
117 LR11XX_RADIO_SET_TX_CW_OC = 0x0219,
118 LR11XX_RADIO_SET_TX_INFINITE_PREAMBLE_OC = 0x021A,
119 LR11XX_RADIO_SET_LORA_SYNC_TIMEOUT_OC = 0x021B,
120 LR11XX_RADIO_SET_GFSK_CRC_PARAMS_OC = 0x0224,
121 LR11XX_RADIO_SET_GFSK_WHITENING_PARAMS_OC = 0x0225,
122 LR11XX_RADIO_SET_RX_BOOSTED_OC = 0x0227,
123 LR11XX_RADIO_SET_RSSI_CALIBRATION_OC = 0x0229,
124 LR11XX_RADIO_SET_LORA_SYNC_WORD_OC = 0x022B,
125 LR11XX_RADIO_SET_LR_FHSS_SYNC_WORD_OC = 0x022D,
126 LR11XX_RADIO_CFG_BLE_BEACON_OC = 0x022E,
127 LR11XX_RADIO_GET_LORA_RX_INFO_OC = 0x0230,
128 LR11XX_RADIO_BLE_BEACON_SEND_OC = 0x0231,
131 enum
133 LR11XX_SYSTEM_GET_STATUS_OC = 0x0100,
134 LR11XX_SYSTEM_GET_VERSION_OC = 0x0101,
135 LR11XX_SYSTEM_GET_ERRORS_OC = 0x010D,
136 LR11XX_SYSTEM_CLEAR_ERRORS_OC = 0x010E,
137 LR11XX_SYSTEM_CALIBRATE_OC = 0x010F,
138 LR11XX_SYSTEM_SET_REGMODE_OC = 0x0110,
139 LR11XX_SYSTEM_CALIBRATE_IMAGE_OC = 0x0111,
140 LR11XX_SYSTEM_SET_DIO_AS_RF_SWITCH_OC = 0x0112,
141 LR11XX_SYSTEM_SET_DIOIRQPARAMS_OC = 0x0113,
142 LR11XX_SYSTEM_CLEAR_IRQ_OC = 0x0114,
143 LR11XX_SYSTEM_CFG_LFCLK_OC = 0x0116,
144 LR11XX_SYSTEM_SET_TCXO_MODE_OC = 0x0117,
145 LR11XX_SYSTEM_REBOOT_OC = 0x0118,
146 LR11XX_SYSTEM_GET_VBAT_OC = 0x0119,
147 LR11XX_SYSTEM_GET_TEMP_OC = 0x011A,
148 LR11XX_SYSTEM_SET_SLEEP_OC = 0x011B,
149 LR11XX_SYSTEM_SET_STANDBY_OC = 0x011C,
150 LR11XX_SYSTEM_SET_FS_OC = 0x011D,
151 LR11XX_SYSTEM_GET_RANDOM_OC = 0x0120,
152 LR11XX_SYSTEM_ERASE_INFOPAGE_OC = 0x0121,
153 LR11XX_SYSTEM_WRITE_INFOPAGE_OC = 0x0122,
154 LR11XX_SYSTEM_READ_INFOPAGE_OC = 0x0123,
155 LR11XX_SYSTEM_READ_UID_OC = 0x0125,
156 LR11XX_SYSTEM_READ_JOIN_EUI_OC = 0x0126,
157 LR11XX_SYSTEM_READ_PIN_OC = 0x0127,
158 LR11XX_SYSTEM_ENABLE_SPI_CRC_OC = 0x0128,
159 LR11XX_SYSTEM_DRIVE_DIO_IN_SLEEP_MODE_OC = 0x012A,
162 enum
164 LR11XX_REGMEM_WRITE_REGMEM32_OC = 0x0105,
165 LR11XX_REGMEM_READ_REGMEM32_OC = 0x0106,
166 LR11XX_REGMEM_WRITE_MEM8_OC = 0x0107,
167 LR11XX_REGMEM_READ_MEM8_OC = 0x0108,
168 LR11XX_REGMEM_WRITE_BUFFER8_OC = 0x0109,
169 LR11XX_REGMEM_READ_BUFFER8_OC = 0x010A,
170 LR11XX_REGMEM_CLEAR_RXBUFFER_OC = 0x010B,
171 LR11XX_REGMEM_WRITE_REGMEM32_MASK_OC = 0x010C,
174 enum
176 LR11XX_BL_GET_STATUS_OC = 0x0100,
177 LR11XX_BL_GET_VERSION_OC = 0x0101,
178 LR11XX_BL_ERASE_FLASH_OC = 0x8000,
179 LR11XX_BL_WRITE_FLASH_ENCRYPTED_OC = 0x8003,
180 LR11XX_BL_REBOOT_OC = 0x8005,
181 LR11XX_BL_GET_PIN_OC = 0x800B,
182 LR11XX_BL_READ_CHIP_EUI_OC = 0x800C,
183 LR11XX_BL_READ_JOIN_EUI_OC = 0x800D,
186 typedef enum
188 LR11XX_RADIO_PA_SEL_LP = 0x00, //!< Low-power Power Amplifier
189 LR11XX_RADIO_PA_SEL_HP = 0x01, //!< High-power Power Amplifier
190 LR11XX_RADIO_PA_SEL_HF = 0x02, //!< High-frequency Power Amplifier
191 } lr11xx_radio_pa_selection_t;
193 typedef enum
195 LR11XX_RADIO_FALLBACK_STDBY_RC = 0x01, //!< Standby RC (Default)
196 LR11XX_RADIO_FALLBACK_STDBY_XOSC = 0x02, //!< Standby XOSC
197 LR11XX_RADIO_FALLBACK_FS = 0x03 //!< FS
198 } lr11xx_radio_fallback_modes_t;
200 typedef enum
202 LR11XX_RADIO_RAMP_16_US = 0x00, //!< 16 us Ramp Time
203 LR11XX_RADIO_RAMP_32_US = 0x01, //!< 32 us Ramp Time
204 LR11XX_RADIO_RAMP_48_US = 0x02, //!< 48 us Ramp Time (Default)
205 LR11XX_RADIO_RAMP_64_US = 0x03, //!< 64 us Ramp Time
206 LR11XX_RADIO_RAMP_80_US = 0x04, //!< 80 us Ramp Time
207 LR11XX_RADIO_RAMP_96_US = 0x05, //!< 96 us Ramp Time
208 LR11XX_RADIO_RAMP_112_US = 0x06, //!< 112 us Ramp Time
209 LR11XX_RADIO_RAMP_128_US = 0x07, //!< 128 us Ramp Time
210 LR11XX_RADIO_RAMP_144_US = 0x08, //!< 144 us Ramp Time
211 LR11XX_RADIO_RAMP_160_US = 0x09, //!< 160 us Ramp Time
212 LR11XX_RADIO_RAMP_176_US = 0x0A, //!< 176 us Ramp Time
213 LR11XX_RADIO_RAMP_192_US = 0x0B, //!< 192 us Ramp Time
214 LR11XX_RADIO_RAMP_208_US = 0x0C, //!< 208 us Ramp Time
215 LR11XX_RADIO_RAMP_240_US = 0x0D, //!< 240 us Ramp Time
216 LR11XX_RADIO_RAMP_272_US = 0x0E, //!< 272 us Ramp Time
217 LR11XX_RADIO_RAMP_304_US = 0x0F, //!< 304 us Ramp Time
218 } lr11xx_radio_ramp_time_t;
220 typedef enum
222 LR11XX_RADIO_LORA_NETWORK_PRIVATE = 0x00, //!< LoRa private network
223 LR11XX_RADIO_LORA_NETWORK_PUBLIC = 0x01, //!< LoRa public network
224 } lr11xx_radio_lora_network_type_t;
226 typedef enum
228 LR11XX_RADIO_LORA_SF5 = 0x05, //!< Spreading Factor 5
229 LR11XX_RADIO_LORA_SF6 = 0x06, //!< Spreading Factor 6
230 LR11XX_RADIO_LORA_SF7 = 0x07, //!< Spreading Factor 7
231 LR11XX_RADIO_LORA_SF8 = 0x08, //!< Spreading Factor 8
232 LR11XX_RADIO_LORA_SF9 = 0x09, //!< Spreading Factor 9
233 LR11XX_RADIO_LORA_SF10 = 0x0A, //!< Spreading Factor 10
234 LR11XX_RADIO_LORA_SF11 = 0x0B, //!< Spreading Factor 11
235 LR11XX_RADIO_LORA_SF12 = 0x0C, //!< Spreading Factor 12
236 } lr11xx_radio_lora_sf_t;
238 typedef enum
240 LR11XX_RADIO_LORA_BW_10 = 0x08, //!< Bandwidth 10.42 kHz
241 LR11XX_RADIO_LORA_BW_15 = 0x01, //!< Bandwidth 15.63 kHz
242 LR11XX_RADIO_LORA_BW_20 = 0x09, //!< Bandwidth 20.83 kHz
243 LR11XX_RADIO_LORA_BW_31 = 0x02, //!< Bandwidth 31.25 kHz
244 LR11XX_RADIO_LORA_BW_41 = 0x0A, //!< Bandwidth 41.67 kHz
245 LR11XX_RADIO_LORA_BW_62 = 0x03, //!< Bandwidth 62.50 kHz
246 LR11XX_RADIO_LORA_BW_125 = 0x04, //!< Bandwidth 125.00 kHz
247 LR11XX_RADIO_LORA_BW_250 = 0x05, //!< Bandwidth 250.00 kHz
248 LR11XX_RADIO_LORA_BW_500 = 0x06, //!< Bandwidth 500.00 kHz
249 LR11XX_RADIO_LORA_BW_200 = 0x0D, //!< Bandwidth 203.00 kHz, 2G4 and compatible with LR112x chips only
250 LR11XX_RADIO_LORA_BW_400 = 0x0E, //!< Bandwidth 406.00 kHz, 2G4 and compatible with LR112x chips only
251 LR11XX_RADIO_LORA_BW_800 = 0x0F, //!< Bandwidth 812.00 kHz, 2G4 and compatible with LR112x chips only
252 } lr11xx_radio_lora_bw_t;
254 typedef enum
256 LR11XX_RADIO_LORA_NO_CR = 0x00, //!< No Coding Rate
257 LR11XX_RADIO_LORA_CR_4_5 = 0x01, //!< Coding Rate 4/5 Short Interleaver
258 LR11XX_RADIO_LORA_CR_4_6 = 0x02, //!< Coding Rate 4/6 Short Interleaver
259 LR11XX_RADIO_LORA_CR_4_7 = 0x03, //!< Coding Rate 4/7 Short Interleaver
260 LR11XX_RADIO_LORA_CR_4_8 = 0x04, //!< Coding Rate 4/8 Short Interleaver
261 LR11XX_RADIO_LORA_CR_LI_4_5 = 0x05, //!< Coding Rate 4/5 Long Interleaver
262 LR11XX_RADIO_LORA_CR_LI_4_6 = 0x06, //!< Coding Rate 4/6 Long Interleaver
263 LR11XX_RADIO_LORA_CR_LI_4_8 = 0x07, //!< Coding Rate 4/8 Long Interleaver
264 } lr11xx_radio_lora_cr_t;
266 typedef enum
268 LR11XX_RADIO_MODE_SLEEP = 0x00, //!< Sleep / Not recommended with LR1110 FW from 0x0303 to 0x0307 and LR1120 FW
269 //!< 0x0101 in case of transition from Rx to Tx in LoRa
270 LR11XX_RADIO_MODE_STANDBY_RC = 0x01, //!< Standby RC
271 LR11XX_RADIO_MODE_STANDBY_XOSC = 0x02, //!< Standby XOSC
272 LR11XX_RADIO_MODE_FS = 0x03 //!< Frequency Synthesis
273 } lr11xx_radio_intermediary_mode_t;
275 typedef enum
277 LR11XX_RADIO_LORA_CRC_OFF = 0x00, //!< CRC deactivated
278 LR11XX_RADIO_LORA_CRC_ON = 0x01, //!< CRC activated
279 } lr11xx_radio_lora_crc_t;
281 typedef enum
283 LR11XX_RADIO_LORA_PKT_EXPLICIT = 0x00, //!< Explicit header: transmitted over the air
284 LR11XX_RADIO_LORA_PKT_IMPLICIT = 0x01, //!< Implicit header: not transmitted over the air
285 } lr11xx_radio_lora_pkt_len_modes_t;
287 typedef enum
289 LR11XX_RADIO_LORA_IQ_STANDARD = 0x00, //!< IQ standard
290 LR11XX_RADIO_LORA_IQ_INVERTED = 0x01, //!< IQ inverted
291 } lr11xx_radio_lora_iq_t;
293 typedef enum
295 LR11XX_RADIO_PKT_NONE = 0x00, //!< State after cold start, Wi-Fi or GNSS capture
296 LR11XX_RADIO_PKT_TYPE_GFSK = 0x01, //!< GFSK modulation
297 LR11XX_RADIO_PKT_TYPE_LORA = 0x02, //!< LoRa modulation
298 LR11XX_RADIO_PKT_TYPE_BPSK = 0x03, //!< BPSK modulation
299 LR11XX_RADIO_PKT_TYPE_LR_FHSS = 0x04, //!< LR-FHSS modulation
300 LR11XX_RADIO_PKT_TYPE_RANGING = 0x05, //!< Ranging packet
301 } lr11xx_radio_pkt_type_t;
303 typedef enum
305 LR11XX_RADIO_PA_REG_SUPPLY_VREG = 0x00, //!< Power amplifier supplied by the main regulator
306 LR11XX_RADIO_PA_REG_SUPPLY_VBAT = 0x01 //!< Power amplifier supplied by the battery
307 } lr11xx_radio_pa_reg_supply_t;
309 typedef enum
311 LR11XX_RADIO_RX_DUTY_CYCLE_MODE_RX = 0x00, //!< LoRa/GFSK: Uses Rx for listening to packets
312 LR11XX_RADIO_RX_DUTY_CYCLE_MODE_CAD = 0x01, //!< Only in LoRa: Uses CAD to listen for over-the-air activity
313 } lr11xx_radio_rx_duty_cycle_mode_t;
315 typedef enum
317 LR11XX_RADIO_GFSK_CRC_OFF = 0x01, //!< CRC check deactivated
318 LR11XX_RADIO_GFSK_CRC_1_BYTE = 0x00,
319 LR11XX_RADIO_GFSK_CRC_2_BYTES = 0x02,
320 LR11XX_RADIO_GFSK_CRC_1_BYTE_INV = 0x04,
321 LR11XX_RADIO_GFSK_CRC_2_BYTES_INV = 0x06,
322 } lr11xx_radio_gfsk_crc_type_t;
324 typedef enum
326 LR11XX_RADIO_GFSK_DC_FREE_OFF = 0x00, //!< Whitening deactivated
327 LR11XX_RADIO_GFSK_DC_FREE_WHITENING = 0x01, //!< Whitening enabled
328 LR11XX_RADIO_GFSK_DC_FREE_WHITENING_SX128X_COMP = 0x03, //!< Whitening enabled - SX128x compatibility
329 } lr11xx_radio_gfsk_dc_free_t;
331 typedef enum
333 LR11XX_RADIO_GFSK_PKT_FIX_LEN = 0x00, //!< Payload length is not sent/read over the air
334 LR11XX_RADIO_GFSK_PKT_VAR_LEN = 0x01, //!< Payload length is sent/read over the air
335 LR11XX_RADIO_GFSK_PKT_VAR_LEN_SX128X_COMP =
336 0x02, //!< Payload length is sent/read over the air - SX128x compatibility
337 } lr11xx_radio_gfsk_pkt_len_modes_t;
339 typedef enum
341 LR11XX_RADIO_GFSK_ADDRESS_FILTERING_DISABLE = 0x00, //!< Filter deactivated
342 LR11XX_RADIO_GFSK_ADDRESS_FILTERING_NODE_ADDRESS = 0x01, //!< Filter on Node Address
343 LR11XX_RADIO_GFSK_ADDRESS_FILTERING_NODE_AND_BROADCAST_ADDRESSES =
344 0x02, //!< Filtering on Node and Broadcast addresses
345 } lr11xx_radio_gfsk_address_filtering_t;
347 typedef enum
349 LR11XX_RADIO_GFSK_PREAMBLE_DETECTOR_OFF = 0x00,
350 LR11XX_RADIO_GFSK_PREAMBLE_DETECTOR_MIN_8BITS = 0x04,
351 LR11XX_RADIO_GFSK_PREAMBLE_DETECTOR_MIN_16BITS = 0x05,
352 LR11XX_RADIO_GFSK_PREAMBLE_DETECTOR_MIN_24BITS = 0x06,
353 LR11XX_RADIO_GFSK_PREAMBLE_DETECTOR_MIN_32BITS = 0x07
354 } lr11xx_radio_gfsk_preamble_detector_t;
356 typedef enum
358 LR11XX_RADIO_GFSK_BW_4800 = 0x1F, //!< Bandwidth 4.8 kHz DSB
359 LR11XX_RADIO_GFSK_BW_5800 = 0x17, //!< Bandwidth 5.8 kHz DSB
360 LR11XX_RADIO_GFSK_BW_7300 = 0x0F, //!< Bandwidth 7.3 kHz DSB
361 LR11XX_RADIO_GFSK_BW_9700 = 0x1E, //!< Bandwidth 9.7 kHz DSB
362 LR11XX_RADIO_GFSK_BW_11700 = 0x16, //!< Bandwidth 11.7 kHz DSB
363 LR11XX_RADIO_GFSK_BW_14600 = 0x0E, //!< Bandwidth 14.6 kHz DSB
364 LR11XX_RADIO_GFSK_BW_19500 = 0x1D, //!< Bandwidth 19.5 kHz DSB
365 LR11XX_RADIO_GFSK_BW_23400 = 0x15, //!< Bandwidth 23.4 kHz DSB
366 LR11XX_RADIO_GFSK_BW_29300 = 0x0D, //!< Bandwidth 29.3 kHz DSB
367 LR11XX_RADIO_GFSK_BW_39000 = 0x1C, //!< Bandwidth 39.0 kHz DSB
368 LR11XX_RADIO_GFSK_BW_46900 = 0x14, //!< Bandwidth 46.9 kHz DSB
369 LR11XX_RADIO_GFSK_BW_58600 = 0x0C, //!< Bandwidth 58.6 kHz DSB
370 LR11XX_RADIO_GFSK_BW_78200 = 0x1B, //!< Bandwidth 78.2 kHz DSB
371 LR11XX_RADIO_GFSK_BW_93800 = 0x13, //!< Bandwidth 93.8 kHz DSB
372 LR11XX_RADIO_GFSK_BW_117300 = 0x0B, //!< Bandwidth 117.3 kHz DSB
373 LR11XX_RADIO_GFSK_BW_156200 = 0x1A, //!< Bandwidth 156.2 kHz DSB
374 LR11XX_RADIO_GFSK_BW_187200 = 0x12, //!< Bandwidth 187.2 kHz DSB
375 LR11XX_RADIO_GFSK_BW_234300 = 0x0A, //!< Bandwidth 232.3 kHz DSB
376 LR11XX_RADIO_GFSK_BW_312000 = 0x19, //!< Bandwidth 312.0 kHz DSB
377 LR11XX_RADIO_GFSK_BW_373600 = 0x11, //!< Bandwidth 373.6 kHz DSB
378 LR11XX_RADIO_GFSK_BW_467000 = 0x09 //!< Bandwidth 467.0 kHz DSB
379 } lr11xx_radio_gfsk_bw_t;
381 typedef enum
383 LR11XX_RADIO_GFSK_PULSE_SHAPE_OFF = 0x00, //!< No filter applied
384 LR11XX_RADIO_GFSK_PULSE_SHAPE_BT_03 = 0x08, //!< Gaussian BT 0.3
385 LR11XX_RADIO_GFSK_PULSE_SHAPE_BT_05 = 0x09, //!< Gaussian BT 0.5
386 LR11XX_RADIO_GFSK_PULSE_SHAPE_BT_07 = 0x0A, //!< Gaussian BT 0.7
387 LR11XX_RADIO_GFSK_PULSE_SHAPE_BT_1 = 0x0B //!< Gaussian BT 1.0
388 } lr11xx_radio_gfsk_pulse_shape_t;
390 typedef enum
392 LR11XX_RADIO_GFSK_BITRATE_200k = 20,
393 LR11XX_RADIO_GFSK_BITRATE_300k = 30
394 } lr11xx_radio_gfsk_bitrate_t;
396 typedef enum
398 LR11XX_RADIO_GFSK_FDEV_100k = 100
399 } lr11xx_radio_gfsk_fdev_t;