Loading...
Searching...
No Matches
sx126x_params.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2021 Inria
3 *
4 * This file is subject to the terms and conditions of the GNU Lesser
5 * General Public License v2.1. See the file LICENSE in the top level
6 * directory for more details.
7 */
8
19#ifndef SX126X_PARAMS_H
20#define SX126X_PARAMS_H
21
22#include "board.h"
23#include "sx126x.h"
24#include "sx126x_driver.h"
25
26#ifdef __cplusplus
27extern "C" {
28#endif
29
36#ifndef SX126X_PARAM_SPI
37#define SX126X_PARAM_SPI SPI_DEV(0)
38#endif
39
40#ifndef SX126X_PARAM_SPI_NSS
41#define SX126X_PARAM_SPI_NSS GPIO_PIN(0, 8) /* D7 */
42#endif
43
44#ifndef SX126X_PARAM_RESET
45#define SX126X_PARAM_RESET GPIO_PIN(0, 0) /* A0 */
46#endif
47
48#ifndef SX126X_PARAM_BUSY
49#define SX126X_PARAM_BUSY GPIO_PIN(1, 3) /* D3 */
50#endif
51
52#ifndef SX126X_PARAM_DIO1
53#define SX126X_PARAM_DIO1 GPIO_PIN(1, 4) /* D5 */
54#endif
55
56#ifndef SX126X_PARAM_REGULATOR
57#define SX126X_PARAM_REGULATOR SX126X_REG_MODE_DCDC
58#endif
59
60#ifndef SX126X_PARAM_SET_RF_MODE_CB
61#define SX126X_PARAM_SET_RF_MODE_CB NULL
62#endif
63
64#ifndef SX126X_PARAM_TX_PA_MODE
65#define SX126X_PARAM_TX_PA_MODE SX126X_RF_MODE_TX_LPA
66#endif
67
68#ifndef SX126X_PARAM_TYPE
69# if IS_USED(MODULE_SX1261)
70# define SX126X_PARAM_TYPE SX126X_TYPE_SX1261
71# elif IS_USED(MODULE_SX1262)
72# define SX126X_PARAM_TYPE SX126X_TYPE_SX1262
73# elif IS_USED(MODULE_SX1268)
74# define SX126X_PARAM_TYPE SX126X_TYPE_SX1268
75# elif IS_USED(MODULE_LLCC68)
76# define SX126X_PARAM_TYPE SX126X_TYPE_LLCC68
77# elif IS_USED(MODULE_SX126X_STM32WL)
78# define SX126X_PARAM_TYPE SX126X_TYPE_STM32WL
79# else
80# error "You should select at least one of the SX126x variants."
81# endif
82#endif
83
84#if IS_USED(MODULE_SX126X_RF_SWITCH)
85#define SX126X_SET_RF_MODE .set_rf_mode = SX126X_PARAM_SET_RF_MODE_CB,
86#define SX126X_TX_PA_MODE .tx_pa_mode = SX126X_PARAM_TX_PA_MODE
87#else
88#define SX126X_SET_RF_MODE
89#define SX126X_TX_PA_MODE
90#endif
91
92#define SX126X_PARAMS { .spi = SX126X_PARAM_SPI, \
93 .nss_pin = SX126X_PARAM_SPI_NSS, \
94 .reset_pin = SX126X_PARAM_RESET, \
95 .busy_pin = SX126X_PARAM_BUSY, \
96 .dio1_pin = SX126X_PARAM_DIO1, \
97 .type = SX126X_PARAM_TYPE, \
98 .regulator = SX126X_PARAM_REGULATOR, \
99 SX126X_SET_RF_MODE \
100 SX126X_TX_PA_MODE}
101
108{
109 SX126X_PARAMS
110};
111
112#ifdef __cplusplus
113}
114#endif
115
116#endif /* SX126X_PARAMS_H */
Device initialization parameters.
Definition sx126x.h:85
static const sx126x_params_t sx126x_params[]
Configuration struct.