@@ -63,13 +63,6 @@ extern "C" {
6363# define SX126X_PARAM_DIO1 GPIO_PIN(1, 4) /* D5 */
6464#endif
6565
66- #if !defined(SX126X_PARAM_DIO1_IRQ_MASK ) || defined(DOXYGEN )
67- /**
68- * @brief Interrupt mask of events that should trigger an interrupt on DIO1
69- */
70- # define SX126X_PARAM_DIO1_IRQ_MASK SX126X_IRQ_MASK_ALL
71- #endif
72-
7366#if !defined(SX126X_PARAM_REGULATOR ) || defined(DOXYGEN )
7467/**
7568 * @brief Regulator type which can be
@@ -91,61 +84,41 @@ extern "C" {
9184 * @brief DIO2 pin mode which can be
9285 * SX126X_DIO2_UNUSED, SX126X_DIO2_IRQ or SX126X_DIO2_RF_SWITCH
9386 */
94- # define SX126X_PARAM_DIO2_MODE SX126X_DIO2_IRQ
95- #endif
96-
97- #if !defined(SX126X_PARAM_DIO2 ) || defined(DOXYGEN )
98- /**
99- * @brief DIO2 pin if mode is SX126X_DIO2_IRQ or SX126X_DIO2_RF_SWITCH
100- */
101- # define SX126X_PARAM_DIO2 GPIO_UNDEF
102- #endif
103-
104- #if !defined(SX126X_PARAM_DIO2_IRQ_MASK ) || defined(DOXYGEN )
105- /**
106- * @brief Interrupt mask of events that should trigger an interrupt on DIO2
107- * if mode is SX126X_DIO2_IRQ
108- */
109- # define SX126X_PARAM_DIO2_IRQ_MASK 0
110- #endif
111-
112- #if !defined(SX126X_PARAM_DIO2_ARG ) || defined(DOXYGEN )
113- /**
114- * @brief DIO2 argument if mode is SX126X_DIO2_IRQ or SX126X_DIO2_RF_SWITCH
115- */
116- # define SX126X_PARAM_DIO2_ARG { .dio2_pin = SX126X_PARAM_DIO2, \
117- .dio2_irq_mask = SX126X_PARAM_DIO2_IRQ_MASK }
87+ # define SX126X_PARAM_DIO2_MODE SX126X_DIO2_RF_SWITCH
11888#endif
11989
12090#if !defined(SX126X_PARAM_DIO3_MODE ) || defined(DOXYGEN )
12191/**
12292 * @brief DIO3 pin mode which can be
12393 * SX126X_DIO3_UNUSED, SX126X_DIO3_IRQ or SX126X_DIO3_TCXO
12494 */
125- # define SX126X_PARAM_DIO3_MODE SX126X_DIO3_IRQ
95+ # define SX126X_PARAM_DIO3_MODE SX126X_DIO3_TCXO
12696#endif
12797
128- #if !defined(SX126X_PARAM_DIO3 ) || defined(DOXYGEN )
98+ #if !defined(SX126X_PARAM_TCXO_VOLTAGE ) || defined(DOXYGEN )
12999/**
130- * @brief DIO3 pin if mode is SX126X_DIO3_IRQ or SX126X_DIO3_TCXO
100+ * @brief TCXO voltage is configured to be 200 mV below the supply voltage.
101+ *
102+ * This means that even if tcxoVoltage is configured above the supply voltage,
103+ * the supply voltage will be limited by: VDDop > VTCXO + 200 mV
131104 */
132- # define SX126X_PARAM_DIO3 GPIO_UNDEF
105+ # define SX126X_PARAM_TCXO_VOLTAGE SX126X_TCXO_CTRL_3_0V
133106#endif
134107
135- #if !defined(SX126X_PARAM_DIO3_IRQ_MASK ) || defined(DOXYGEN )
108+ #if !defined(SX126X_PARAM_TCXO_TIMEOUT ) || defined(DOXYGEN )
136109/**
137- * @brief Interrupt mask of events that should trigger an interrupt on DIO3
138- * if mode is SX126X_DIO3_IRQ
110+ * @brief Timeout for tcxo stabilization in 15.625 µs steps
111+ * The default value is 256 (4ms).
139112 */
140- # define SX126X_PARAM_DIO3_IRQ_MASK 0
113+ # define SX126X_PARAM_TCXO_TIMEOUT 256
141114#endif
142115
143116#if !defined(SX126X_PARAM_DIO3_ARG ) || defined(DOXYGEN )
144117/**
145- * @brief DIO3 argument if mode is SX126X_DIO3_IRQ or SX126X_DIO3_TCXO
118+ * @brief DIO3 argument if mode is SX126X_DIO3_TCXO
146119 */
147- # define SX126X_PARAM_DIO3_ARG { .dio3_pin = SX126X_PARAM_DIO3 , \
148- .dio3_irq_mask = SX126X_PARAM_DIO3_IRQ_MASK }
120+ # define SX126X_PARAM_DIO3_ARG { .tcxo_volt = SX126X_PARAM_TCXO_VOLTAGE , \
121+ .tcxo_timeout = SX126X_PARAM_TCXO_TIMEOUT }
149122#endif
150123
151124#ifndef SX126X_PARAM_TYPE
@@ -177,13 +150,8 @@ extern "C" {
177150 * @brief DIO2 pin mode
178151 */
179152# define SX126X_DIO2_MODE .dio2_mode = SX126X_PARAM_DIO2_MODE,
180- /**
181- * @brief DIO2 pin argument
182- */
183- # define SX126X_DIO2_PIN .dio2_arg = SX126X_PARAM_DIO2_ARG,
184153#else
185154# define SX126X_DIO2_MODE
186- # define SX126X_DIO2_PIN
187155#endif
188156
189157#if IS_USED (MODULE_SX126X_DIO3 ) || defined(DOXYGEN )
@@ -194,10 +162,10 @@ extern "C" {
194162/**
195163 * @brief DIO3 pin argument
196164 */
197- # define SX126X_DIO3_PIN .u_dio3_arg = SX126X_PARAM_DIO3_ARG,
165+ # define SX126X_DIO3_ARG .dio3_arg = SX126X_PARAM_DIO3_ARG,
198166#else
199167# define SX126X_DIO3_MODE
200- # define SX126X_DIO3_PIN
168+ # define SX126X_DIO3_ARG
201169#endif
202170
203171#ifndef SX126X_PARAMS
@@ -206,15 +174,13 @@ extern "C" {
206174 .reset_pin = SX126X_PARAM_RESET, \
207175 .busy_pin = SX126X_PARAM_BUSY, \
208176 .dio1_pin = SX126X_PARAM_DIO1, \
209- .dio1_irq_mask = SX126X_PARAM_DIO1_IRQ_MASK, \
210177 .type = SX126X_PARAM_TYPE, \
211178 .regulator = SX126X_PARAM_REGULATOR, \
212179 SX126X_SET_RF_MODE \
213180 SX126X_TX_PA_MODE \
214181 SX126X_DIO2_MODE \
215- SX126X_DIO2_PIN \
216182 SX126X_DIO3_MODE \
217- SX126X_DIO3_PIN \
183+ SX126X_DIO3_ARG \
218184 }
219185#endif
220186
0 commit comments