rfal_analogConfig.h 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435
  1. /******************************************************************************
  2. * \attention
  3. *
  4. * <h2><center>&copy; COPYRIGHT 2020 STMicroelectronics</center></h2>
  5. *
  6. * Licensed under ST MYLIBERTY SOFTWARE LICENSE AGREEMENT (the "License");
  7. * You may not use this file except in compliance with the License.
  8. * You may obtain a copy of the License at:
  9. *
  10. * www.st.com/myliberty
  11. *
  12. * Unless required by applicable law or agreed to in writing, software
  13. * distributed under the License is distributed on an "AS IS" BASIS,
  14. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied,
  15. * AND SPECIFICALLY DISCLAIMING THE IMPLIED WARRANTIES OF MERCHANTABILITY,
  16. * FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
  17. * See the License for the specific language governing permissions and
  18. * limitations under the License.
  19. *
  20. ******************************************************************************/
  21. /*
  22. * PROJECT: ST25R391x firmware
  23. * Revision:
  24. * LANGUAGE: ISO C99
  25. */
  26. /*! \file rfal_AnalogConfig.h
  27. *
  28. * \author bkam
  29. *
  30. * \brief RF Chip Analog Configuration Settings
  31. *
  32. *
  33. * \addtogroup RFAL
  34. * @{
  35. *
  36. * \addtogroup RFAL-HAL
  37. * \brief RFAL Hardware Abstraction Layer
  38. * @{
  39. *
  40. * \addtogroup AnalogConfig
  41. * \brief RFAL Analog Config Module
  42. * @{
  43. *
  44. */
  45. #ifndef RFAL_ANALOG_CONFIG_H
  46. #define RFAL_ANALOG_CONFIG_H
  47. /*
  48. ******************************************************************************
  49. * INCLUDES
  50. ******************************************************************************
  51. */
  52. #include "../platform.h"
  53. #include "../st_errno.h"
  54. #include "rfal_rf.h"
  55. /*
  56. ******************************************************************************
  57. * DEFINES
  58. ******************************************************************************
  59. */
  60. #define RFAL_ANALOG_CONFIG_LUT_SIZE \
  61. (87U) /*!< Maximum number of Configuration IDs in the Loop Up Table */
  62. #define RFAL_ANALOG_CONFIG_LUT_NOT_FOUND \
  63. (0xFFU) /*!< Index value indicating no Configuration IDs found */
  64. #define RFAL_ANALOG_CONFIG_TBL_SIZE \
  65. (1024U) /*!< Maximum number of Register-Mask-Value in the Setting List */
  66. #define RFAL_ANALOG_CONFIG_POLL_LISTEN_MODE_MASK \
  67. (0x8000U) /*!< Mask bit of Poll Mode in Analog Configuration ID */
  68. #define RFAL_ANALOG_CONFIG_TECH_MASK \
  69. (0x7F00U) /*!< Mask bits for Technology in Analog Configuration ID */
  70. #define RFAL_ANALOG_CONFIG_BITRATE_MASK \
  71. (0x00F0U) /*!< Mask bits for Bit rate in Analog Configuration ID */
  72. #define RFAL_ANALOG_CONFIG_DIRECTION_MASK \
  73. (0x000FU) /*!< Mask bits for Direction in Analog Configuration ID */
  74. #define RFAL_ANALOG_CONFIG_CHIP_SPECIFIC_MASK \
  75. (0x00FFU) /*!< Mask bits for Chip Specific Technology */
  76. #define RFAL_ANALOG_CONFIG_POLL_LISTEN_MODE_SHIFT \
  77. (15U) /*!< Shift value of Poll Mode in Analog Configuration ID */
  78. #define RFAL_ANALOG_CONFIG_TECH_SHIFT \
  79. (8U) /*!< Shift value for Technology in Analog Configuration ID */
  80. #define RFAL_ANALOG_CONFIG_BITRATE_SHIFT \
  81. (4U) /*!< Shift value for Technology in Analog Configuration ID */
  82. #define RFAL_ANALOG_CONFIG_DIRECTION_SHIFT \
  83. (0U) /*!< Shift value for Direction in Analog Configuration ID */
  84. #define RFAL_ANALOG_CONFIG_POLL \
  85. (0x0000U) /*!< Poll Mode bit setting in Analog Configuration ID */
  86. #define RFAL_ANALOG_CONFIG_LISTEN \
  87. (0x8000U) /*!< Listen Mode bit setting in Analog Configuration ID */
  88. #define RFAL_ANALOG_CONFIG_TECH_CHIP \
  89. (0x0000U) /*!< Chip-Specific bit setting in Analog Configuration ID */
  90. #define RFAL_ANALOG_CONFIG_TECH_NFCA \
  91. (0x0100U) /*!< NFC-A Technology bits setting in Analog Configuration ID */
  92. #define RFAL_ANALOG_CONFIG_TECH_NFCB \
  93. (0x0200U) /*!< NFC-B Technology bits setting in Analog Configuration ID */
  94. #define RFAL_ANALOG_CONFIG_TECH_NFCF \
  95. (0x0400U) /*!< NFC-F Technology bits setting in Analog Configuration ID */
  96. #define RFAL_ANALOG_CONFIG_TECH_AP2P \
  97. (0x0800U) /*!< AP2P Technology bits setting in Analog Configuration ID */
  98. #define RFAL_ANALOG_CONFIG_TECH_NFCV \
  99. (0x1000U) /*!< NFC-V Technology bits setting in Analog Configuration ID */
  100. #define RFAL_ANALOG_CONFIG_TECH_RFU (0x2000U) /*!< RFU for Technology bits */
  101. #define RFAL_ANALOG_CONFIG_BITRATE_COMMON \
  102. (0x0000U) /*!< Common settings for all bit rates in Analog Configuration ID */
  103. #define RFAL_ANALOG_CONFIG_BITRATE_106 \
  104. (0x0010U) /*!< 106kbits/s settings in Analog Configuration ID */
  105. #define RFAL_ANALOG_CONFIG_BITRATE_212 \
  106. (0x0020U) /*!< 212kbits/s settings in Analog Configuration ID */
  107. #define RFAL_ANALOG_CONFIG_BITRATE_424 \
  108. (0x0030U) /*!< 424kbits/s settings in Analog Configuration ID */
  109. #define RFAL_ANALOG_CONFIG_BITRATE_848 \
  110. (0x0040U) /*!< 848kbits/s settings in Analog Configuration ID */
  111. #define RFAL_ANALOG_CONFIG_BITRATE_1695 \
  112. (0x0050U) /*!< 1695kbits/s settings in Analog Configuration ID */
  113. #define RFAL_ANALOG_CONFIG_BITRATE_3390 \
  114. (0x0060U) /*!< 3390kbits/s settings in Analog Configuration ID */
  115. #define RFAL_ANALOG_CONFIG_BITRATE_6780 \
  116. (0x0070U) /*!< 6780kbits/s settings in Analog Configuration ID */
  117. #define RFAL_ANALOG_CONFIG_BITRATE_1OF4 \
  118. (0x00C0U) /*!< 1 out of 4 for NFC-V setting in Analog Configuration ID */
  119. #define RFAL_ANALOG_CONFIG_BITRATE_1OF256 \
  120. (0x00D0U) /*!< 1 out of 256 for NFC-V setting in Analog Configuration ID */
  121. #define RFAL_ANALOG_CONFIG_NO_DIRECTION \
  122. (0x0000U) /*!< No direction setting in Analog Conf ID (Chip Specific only) */
  123. #define RFAL_ANALOG_CONFIG_TX \
  124. (0x0001U) /*!< Transmission bit setting in Analog Configuration ID */
  125. #define RFAL_ANALOG_CONFIG_RX \
  126. (0x0002U) /*!< Reception bit setting in Analog Configuration ID */
  127. #define RFAL_ANALOG_CONFIG_ANTICOL \
  128. (0x0003U) /*!< Anticollision setting in Analog Configuration ID */
  129. #define RFAL_ANALOG_CONFIG_DPO \
  130. (0x0004U) /*!< DPO setting in Analog Configuration ID */
  131. #define RFAL_ANALOG_CONFIG_CHIP_INIT \
  132. (0x0000U) /*!< Chip-Specific event: Startup;Reset;Initialize */
  133. #define RFAL_ANALOG_CONFIG_CHIP_DEINIT \
  134. (0x0001U) /*!< Chip-Specific event: Deinitialize */
  135. #define RFAL_ANALOG_CONFIG_CHIP_FIELD_ON \
  136. (0x0002U) /*!< Chip-Specific event: Field On */
  137. #define RFAL_ANALOG_CONFIG_CHIP_FIELD_OFF \
  138. (0x0003U) /*!< Chip-Specific event: Field Off */
  139. #define RFAL_ANALOG_CONFIG_CHIP_WAKEUP_ON \
  140. (0x0004U) /*!< Chip-Specific event: Wake-up On */
  141. #define RFAL_ANALOG_CONFIG_CHIP_WAKEUP_OFF \
  142. (0x0005U) /*!< Chip-Specific event: Wake-up Off */
  143. #define RFAL_ANALOG_CONFIG_CHIP_LISTEN_ON \
  144. (0x0006U) /*!< Chip-Specific event: Listen On */
  145. #define RFAL_ANALOG_CONFIG_CHIP_LISTEN_OFF \
  146. (0x0007U) /*!< Chip-Specific event: Listen Off */
  147. #define RFAL_ANALOG_CONFIG_CHIP_POLL_COMMON \
  148. (0x0008U) /*!< Chip-Specific event: Poll common */
  149. #define RFAL_ANALOG_CONFIG_CHIP_LISTEN_COMMON \
  150. (0x0009U) /*!< Chip-Specific event: Listen common */
  151. #define RFAL_ANALOG_CONFIG_CHIP_LOWPOWER_ON \
  152. (0x000AU) /*!< Chip-Specific event: Low Power On */
  153. #define RFAL_ANALOG_CONFIG_CHIP_LOWPOWER_OFF \
  154. (0x000BU) /*!< Chip-Specific event: Low Power Off */
  155. #define RFAL_ANALOG_CONFIG_UPDATE_LAST \
  156. (0x00U) /*!< Value indicating Last configuration set during update */
  157. #define RFAL_ANALOG_CONFIG_UPDATE_MORE \
  158. (0x01U) /*!< Value indicating More configuration set coming during update */
  159. /*
  160. ******************************************************************************
  161. * GLOBAL MACROS
  162. ******************************************************************************
  163. */
  164. #define RFAL_ANALOG_CONFIG_ID_GET_POLL_LISTEN(id) \
  165. (RFAL_ANALOG_CONFIG_POLL_LISTEN_MODE_MASK & (id)) /*!< Check if id indicates Listen mode */
  166. #define RFAL_ANALOG_CONFIG_ID_GET_TECH(id) \
  167. (RFAL_ANALOG_CONFIG_TECH_MASK & (id)) /*!< Get the technology of Configuration ID */
  168. #define RFAL_ANALOG_CONFIG_ID_IS_CHIP(id) \
  169. (RFAL_ANALOG_CONFIG_TECH_MASK & (id)) /*!< Check if ID indicates Chip-specific */
  170. #define RFAL_ANALOG_CONFIG_ID_IS_NFCA(id) \
  171. (RFAL_ANALOG_CONFIG_TECH_NFCA & (id)) /*!< Check if ID indicates NFC-A */
  172. #define RFAL_ANALOG_CONFIG_ID_IS_NFCB(id) \
  173. (RFAL_ANALOG_CONFIG_TECH_NFCB & (id)) /*!< Check if ID indicates NFC-B */
  174. #define RFAL_ANALOG_CONFIG_ID_IS_NFCF(id) \
  175. (RFAL_ANALOG_CONFIG_TECH_NFCF & (id)) /*!< Check if ID indicates NFC-F */
  176. #define RFAL_ANALOG_CONFIG_ID_IS_AP2P(id) \
  177. (RFAL_ANALOG_CONFIG_TECH_AP2P & (id)) /*!< Check if ID indicates AP2P */
  178. #define RFAL_ANALOG_CONFIG_ID_IS_NFCV(id) \
  179. (RFAL_ANALOG_CONFIG_TECH_NFCV & (id)) /*!< Check if ID indicates NFC-V */
  180. #define RFAL_ANALOG_CONFIG_ID_GET_BITRATE(id) \
  181. (RFAL_ANALOG_CONFIG_BITRATE_MASK & (id)) /*!< Get Bitrate of Configuration ID */
  182. #define RFAL_ANALOG_CONFIG_ID_IS_COMMON(id) \
  183. (RFAL_ANALOG_CONFIG_BITRATE_MASK & (id)) /*!< Check if ID indicates common bitrate */
  184. #define RFAL_ANALOG_CONFIG_ID_IS_106(id) \
  185. (RFAL_ANALOG_CONFIG_BITRATE_106 & (id)) /*!< Check if ID indicates 106kbits/s */
  186. #define RFAL_ANALOG_CONFIG_ID_IS_212(id) \
  187. (RFAL_ANALOG_CONFIG_BITRATE_212 & (id)) /*!< Check if ID indicates 212kbits/s */
  188. #define RFAL_ANALOG_CONFIG_ID_IS_424(id) \
  189. (RFAL_ANALOG_CONFIG_BITRATE_424 & (id)) /*!< Check if ID indicates 424kbits/s */
  190. #define RFAL_ANALOG_CONFIG_ID_IS_848(id) \
  191. (RFAL_ANALOG_CONFIG_BITRATE_848 & (id)) /*!< Check if ID indicates 848kbits/s */
  192. #define RFAL_ANALOG_CONFIG_ID_IS_1695(id) \
  193. (RFAL_ANALOG_CONFIG_BITRATE_1695 & (id)) /*!< Check if ID indicates 1695kbits/s */
  194. #define RFAL_ANALOG_CONFIG_ID_IS_3390(id) \
  195. (RFAL_ANALOG_CONFIG_BITRATE_3390 & (id)) /*!< Check if ID indicates 3390kbits/s */
  196. #define RFAL_ANALOG_CONFIG_ID_IS_6780(id) \
  197. (RFAL_ANALOG_CONFIG_BITRATE_6780 & (id)) /*!< Check if ID indicates 6780kbits/s */
  198. #define RFAL_ANALOG_CONFIG_ID_IS_1OF4(id) \
  199. (RFAL_ANALOG_CONFIG_BITRATE_1OF4 & (id)) /*!< Check if ID indicates 1 out of 4 bitrate */
  200. #define RFAL_ANALOG_CONFIG_ID_IS_1OF256(id) \
  201. (RFAL_ANALOG_CONFIG_BITRATE_1OF256 & (id)) /*!< Check if ID indicates 1 out of 256 bitrate */
  202. #define RFAL_ANALOG_CONFIG_ID_GET_DIRECTION(id) \
  203. (RFAL_ANALOG_CONFIG_DIRECTION_MASK & (id)) /*!< Get Direction of Configuration ID */
  204. #define RFAL_ANALOG_CONFIG_ID_IS_TX(id) \
  205. (RFAL_ANALOG_CONFIG_TX & (id)) /*!< Check if id indicates TX */
  206. #define RFAL_ANALOG_CONFIG_ID_IS_RX(id) \
  207. (RFAL_ANALOG_CONFIG_RX & (id)) /*!< Check if id indicates RX */
  208. #define RFAL_ANALOG_CONFIG_CONFIG_NUM(x) \
  209. (sizeof(x) / sizeof((x)[0])) /*!< Get Analog Config number */
  210. /*! Set Analog Config ID value by: Mode, Technology, Bitrate and Direction */
  211. #define RFAL_ANALOG_CONFIG_ID_SET(mode, tech, br, direction) \
  212. (RFAL_ANALOG_CONFIG_ID_GET_POLL_LISTEN(mode) | RFAL_ANALOG_CONFIG_ID_GET_TECH(tech) | \
  213. RFAL_ANALOG_CONFIG_ID_GET_BITRATE(br) | RFAL_ANALOG_CONFIG_ID_GET_DIRECTION(direction))
  214. /*
  215. ******************************************************************************
  216. * GLOBAL DATA TYPES
  217. ******************************************************************************
  218. */
  219. typedef uint8_t
  220. rfalAnalogConfigMode; /*!< Polling or Listening Mode of Configuration */
  221. typedef uint8_t
  222. rfalAnalogConfigTech; /*!< Technology of Configuration */
  223. typedef uint8_t
  224. rfalAnalogConfigBitrate; /*!< Bitrate of Configuration */
  225. typedef uint8_t
  226. rfalAnalogConfigDirection; /*!< Transmit/Receive direction of Configuration */
  227. typedef uint8_t
  228. rfalAnalogConfigRegAddr[2]; /*!< Register Address to ST Chip */
  229. typedef uint8_t
  230. rfalAnalogConfigRegMask; /*!< Register Mask Value */
  231. typedef uint8_t
  232. rfalAnalogConfigRegVal; /*!< Register Value */
  233. typedef uint16_t
  234. rfalAnalogConfigId; /*!< Analog Configuration ID */
  235. typedef uint16_t
  236. rfalAnalogConfigOffset; /*!< Analog Configuration offset address in the table */
  237. typedef uint8_t
  238. rfalAnalogConfigNum; /*!< Number of Analog settings for the respective Configuration ID */
  239. /*! Struct that contain the Register-Mask-Value set. Make sure that the whole structure size is even and unaligned! */
  240. typedef struct {
  241. rfalAnalogConfigRegAddr addr; /*!< Register Address */
  242. rfalAnalogConfigRegMask mask; /*!< Register Mask Value */
  243. rfalAnalogConfigRegVal val; /*!< Register Value */
  244. } rfalAnalogConfigRegAddrMaskVal;
  245. /*! Struct that represents the Analog Configs */
  246. typedef struct {
  247. uint8_t id[sizeof(rfalAnalogConfigId)]; /*!< Configuration ID */
  248. rfalAnalogConfigNum num; /*!< Number of Config Sets to follow */
  249. rfalAnalogConfigRegAddrMaskVal regSet[];
  250. /*!< Register-Mask-Value sets */ /* PRQA S 1060 # MISRA 18.7 - Flexible Array Members are the only meaningful way of denoting a variable length input buffer which follows a fixed header structure. */
  251. } rfalAnalogConfig;
  252. /*
  253. ******************************************************************************
  254. * GLOBAL FUNCTION PROTOTYPES
  255. ******************************************************************************
  256. */
  257. /*!
  258. *****************************************************************************
  259. * \brief Initialize the Analog Configuration
  260. *
  261. * Reset the Analog Configuration LUT pointer to reference to default settings.
  262. *
  263. *****************************************************************************
  264. */
  265. void rfalAnalogConfigInitialize(void);
  266. /*!
  267. *****************************************************************************
  268. * \brief Indicate if the current Analog Configuration Table is complete and ready to be used.
  269. *
  270. * \return true if current Analog Configuration Table is complete and ready to be used.
  271. * \return false if current Analog Configuration Table is incomplete
  272. *
  273. *****************************************************************************
  274. */
  275. bool rfalAnalogConfigIsReady(void);
  276. /*!
  277. *****************************************************************************
  278. * \brief Write the whole Analog Configuration table in raw format
  279. *
  280. * Writes the Analog Configuration and Look Up Table with the given raw table
  281. *
  282. * NOTE: Function does not check the validity of the given Table contents
  283. *
  284. * \param[in] configTbl: location of config Table to be loaded
  285. * \param[in] configTblSize: size of the config Table to be loaded
  286. *
  287. * \return ERR_NONE : if setting is updated
  288. * \return ERR_PARAM : if configTbl is invalid
  289. * \return ERR_NOMEM : if the given Table is bigger exceeds the max size
  290. * \return ERR_REQUEST : if the update Configuration Id is disabled
  291. *
  292. *****************************************************************************
  293. */
  294. ReturnCode rfalAnalogConfigListWriteRaw(const uint8_t* configTbl, uint16_t configTblSize);
  295. /*!
  296. *****************************************************************************
  297. * \brief Write the Analog Configuration table with new analog settings.
  298. *
  299. * Writes the Analog Configuration and Look Up Table with the new list of register-mask-value
  300. * and Configuration ID respectively.
  301. *
  302. * NOTE: Function does not check for the validity of the Register Address.
  303. *
  304. * \param[in] more: 0x00 indicates it is last Configuration ID settings;
  305. * 0x01 indicates more Configuration ID setting(s) are coming.
  306. * \param[in] *config: reference to the configuration list of current Configuration ID.
  307. *
  308. * \return ERR_PARAM : if Configuration ID or parameter is invalid
  309. * \return ERR_NOMEM : if LUT is full
  310. * \return ERR_REQUEST : if the update Configuration Id is disabled
  311. * \return ERR_NONE : if setting is updated
  312. *
  313. *****************************************************************************
  314. */
  315. ReturnCode rfalAnalogConfigListWrite(uint8_t more, const rfalAnalogConfig* config);
  316. /*!
  317. *****************************************************************************
  318. * \brief Read the whole Analog Configuration table in raw format
  319. *
  320. * Reads the whole Analog Configuration Table in raw format
  321. *
  322. * \param[out] tblBuf: location to the buffer to place the Config Table
  323. * \param[in] tblBufLen: length of the buffer to place the Config Table
  324. * \param[out] configTblSize: Config Table size
  325. *
  326. * \return ERR_PARAM : if configTbl or configTblSize is invalid
  327. * \return ERR_NOMEM : if configTblSize is not enough for the whole table
  328. * \return ERR_NONE : if read is successful
  329. *
  330. *****************************************************************************
  331. */
  332. ReturnCode
  333. rfalAnalogConfigListReadRaw(uint8_t* tblBuf, uint16_t tblBufLen, uint16_t* configTblSize);
  334. /*!
  335. *****************************************************************************
  336. * \brief Read the Analog Configuration table.
  337. *
  338. * Read the Analog Configuration Table
  339. *
  340. * \param[in] configOffset: offset to the next Configuration ID in the List Table to be read.
  341. * \param[out] more: 0x00 indicates it is last Configuration ID settings;
  342. * 0x01 indicates more Configuration ID setting(s) are coming.
  343. * \param[out] config: configuration id, number of configuration sets and register-mask-value sets
  344. * \param[in] numConfig: the remaining configuration settings space available;
  345. *
  346. * \return ERR_NOMEM : if number of Configuration for respective Configuration ID is greater the the remaining configuration setting space available
  347. * \return ERR_NONE : if read is successful
  348. *
  349. *****************************************************************************
  350. */
  351. ReturnCode rfalAnalogConfigListRead(
  352. rfalAnalogConfigOffset* configOffset,
  353. uint8_t* more,
  354. rfalAnalogConfig* config,
  355. rfalAnalogConfigNum numConfig);
  356. /*!
  357. *****************************************************************************
  358. * \brief Set the Analog settings of indicated Configuration ID.
  359. *
  360. * Update the chip with indicated analog settings of indicated Configuration ID.
  361. *
  362. * \param[in] configId: configuration ID
  363. *
  364. * \return ERR_PARAM if Configuration ID is invalid
  365. * \return ERR_INTERNAL if error updating setting to chip
  366. * \return ERR_NONE if new settings is applied to chip
  367. *
  368. *****************************************************************************
  369. */
  370. ReturnCode rfalSetAnalogConfig(rfalAnalogConfigId configId);
  371. /*!
  372. *****************************************************************************
  373. * \brief Generates Analog Config mode ID
  374. *
  375. * Converts RFAL mode and bitrate into Analog Config Mode ID.
  376. *
  377. * Update the chip with indicated analog settings of indicated Configuration ID.
  378. *
  379. * \param[in] md: RFAL mode format
  380. * \param[in] br: RFAL bit rate format
  381. * \param[in] dir: Analog Config communication direction
  382. *
  383. * \return Analog Config Mode ID
  384. *
  385. *****************************************************************************
  386. */
  387. uint16_t rfalAnalogConfigGenModeID(rfalMode md, rfalBitRate br, uint16_t dir);
  388. #endif /* RFAL_ANALOG_CONFIG_H */
  389. /**
  390. * @}
  391. *
  392. * @}
  393. *
  394. * @}
  395. */