@@ -63,7 +63,11 @@ extern "C" {
6363# define SX126X_PARAM_DIO1 GPIO_PIN(1, 4) /* D5 */
6464#endif
6565
66- #ifndef SX126X_PARAM_REGULATOR
66+ #if !defined(SX126X_PARAM_REGULATOR ) || defined(DOXYGEN )
67+ /**
68+ * @brief Regulator type which can be
69+ * SX126X_REG_MODE_LDO or SX126X_REG_MODE_DCDC
70+ */
6771# define SX126X_PARAM_REGULATOR SX126X_REG_MODE_DCDC
6872#endif
6973
@@ -75,6 +79,48 @@ extern "C" {
7579# define SX126X_PARAM_TX_PA_MODE SX126X_RF_MODE_TX_LPA
7680#endif
7781
82+ #if !defined(SX126X_PARAM_DIO2_MODE ) || defined(DOXYGEN )
83+ /**
84+ * @brief DIO2 pin mode which can be
85+ * SX126X_DIO2_UNUSED, SX126X_DIO2_IRQ or SX126X_DIO2_RF_SWITCH
86+ */
87+ # define SX126X_PARAM_DIO2_MODE SX126X_DIO2_UNUSED
88+ #endif
89+
90+ #if !defined(SX126X_PARAM_DIO3_MODE ) || defined(DOXYGEN )
91+ /**
92+ * @brief DIO3 pin mode which can be
93+ * SX126X_DIO3_UNUSED, SX126X_DIO3_IRQ or SX126X_DIO3_TCXO
94+ */
95+ # define SX126X_PARAM_DIO3_MODE SX126X_DIO3_UNUSED
96+ #endif
97+
98+ #if !defined(SX126X_PARAM_TCXO_VOLTAGE ) || defined(DOXYGEN )
99+ /**
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
104+ */
105+ # define SX126X_PARAM_TCXO_VOLTAGE SX126X_TCXO_CTRL_3_0V
106+ #endif
107+
108+ #if !defined(SX126X_PARAM_TCXO_TIMEOUT ) || defined(DOXYGEN )
109+ /**
110+ * @brief Timeout for tcxo stabilization in 15.625 µs steps
111+ * The default value is 256 (4ms).
112+ */
113+ # define SX126X_PARAM_TCXO_TIMEOUT 256
114+ #endif
115+
116+ #if !defined(SX126X_PARAM_DIO3_ARG ) || defined(DOXYGEN )
117+ /**
118+ * @brief DIO3 argument if mode is SX126X_DIO3_TCXO
119+ */
120+ # define SX126X_PARAM_DIO3_ARG { .tcxo_volt = SX126X_PARAM_TCXO_VOLTAGE, \
121+ .tcxo_timeout = SX126X_PARAM_TCXO_TIMEOUT }
122+ #endif
123+
78124#ifndef SX126X_PARAM_TYPE
79125# if IS_USED (MODULE_SX1261 )
80126# define SX126X_PARAM_TYPE SX126X_TYPE_SX1261
@@ -93,22 +139,49 @@ extern "C" {
93139
94140#if IS_USED (MODULE_SX126X_RF_SWITCH )
95141# define SX126X_SET_RF_MODE .set_rf_mode = SX126X_PARAM_SET_RF_MODE_CB,
96- # define SX126X_TX_PA_MODE .tx_pa_mode = SX126X_PARAM_TX_PA_MODE
142+ # define SX126X_TX_PA_MODE .tx_pa_mode = SX126X_PARAM_TX_PA_MODE,
97143#else
98144# define SX126X_SET_RF_MODE
99145# define SX126X_TX_PA_MODE
100146#endif
101147
148+ #if IS_USED (MODULE_SX126X_DIO2 ) || defined(DOXYGEN )
149+ /**
150+ * @brief DIO2 pin mode
151+ */
152+ # define SX126X_DIO2_MODE .dio2_mode = SX126X_PARAM_DIO2_MODE,
153+ #else
154+ # define SX126X_DIO2_MODE
155+ #endif
156+
157+ #if IS_USED (MODULE_SX126X_DIO3 ) || defined(DOXYGEN )
158+ /**
159+ * @brief DIO3 pin mode
160+ */
161+ # define SX126X_DIO3_MODE .dio3_mode = SX126X_PARAM_DIO3_MODE,
162+ /**
163+ * @brief DIO3 pin argument
164+ */
165+ # define SX126X_DIO3_ARG .dio3_arg = SX126X_PARAM_DIO3_ARG,
166+ #else
167+ # define SX126X_DIO3_MODE
168+ # define SX126X_DIO3_ARG
169+ #endif
170+
102171#ifndef SX126X_PARAMS
103- # define SX126X_PARAMS { .spi = SX126X_PARAM_SPI, \
104- .nss_pin = SX126X_PARAM_SPI_NSS, \
105- .reset_pin = SX126X_PARAM_RESET, \
106- .busy_pin = SX126X_PARAM_BUSY, \
107- .dio1_pin = SX126X_PARAM_DIO1, \
108- .type = SX126X_PARAM_TYPE, \
109- .regulator = SX126X_PARAM_REGULATOR, \
110- SX126X_SET_RF_MODE \
111- SX126X_TX_PA_MODE}
172+ # define SX126X_PARAMS { .spi = SX126X_PARAM_SPI, \
173+ .nss_pin = SX126X_PARAM_SPI_NSS, \
174+ .reset_pin = SX126X_PARAM_RESET, \
175+ .busy_pin = SX126X_PARAM_BUSY, \
176+ .dio1_pin = SX126X_PARAM_DIO1, \
177+ .type = SX126X_PARAM_TYPE, \
178+ .regulator = SX126X_PARAM_REGULATOR, \
179+ SX126X_SET_RF_MODE \
180+ SX126X_TX_PA_MODE \
181+ SX126X_DIO2_MODE \
182+ SX126X_DIO3_MODE \
183+ SX126X_DIO3_ARG \
184+ }
112185#endif
113186
114187/**@}*/
0 commit comments