32#ifndef _oslmic_types_h_
33# include "oslmic_types.h"
45typedef void LMIC_ABI_STD lmic_hal_failure_handler_t(
const char*
const file,
const uint16_t line);
52void lmic_hal_init (
void);
58void lmic_hal_init_ex (
const void *pContext);
64void lmic_hal_pin_rxtx (u1_t val);
69void lmic_hal_pin_rst (u1_t val);
76void lmic_hal_spi_write(u1_t cmd,
const u1_t* buf,
size_t len);
83void lmic_hal_spi_read(u1_t cmd, u1_t* buf,
size_t len);
92#if (defined(CFG_sx1261_radio) || defined(CFG_sx1262_radio))
93void lmic_hal_spi_read_sx126x(u1_t cmd, u1_t* addr,
size_t addr_len, u1_t* buf,
size_t buf_len);
101void lmic_hal_disableIRQs (
void);
106void lmic_hal_enableIRQs (
void);
111uint8_t lmic_hal_getIrqLevel (
void);
116void lmic_hal_sleep (
void);
121u4_t lmic_hal_ticks (
void);
127u4_t lmic_hal_waitUntil (u4_t time);
134u1_t lmic_hal_checkTimer (u4_t targettime);
141void lmic_hal_failed (
const char *file, u2_t line);
147void lmic_hal_set_failure_handler (lmic_hal_failure_handler_t*);
152s1_t lmic_hal_getRssiCal (
void);
160ostime_t lmic_hal_setModuleActive (bit_t val);
163bit_t lmic_hal_queryUsingTcxo(
void);
166bit_t lmic_hal_queryUsingDcdc(
void);
169bit_t lmic_hal_queryUsingDIO2AsRfSwitch(
void);
172bit_t lmic_hal_queryUsingDIO3AsTCXOSwitch(
void);
176#define LMIC_HAL_SX126X_XTAL_TRIM_USE_DEFAULT UINT8_C(0xFF)
180uint8_t lmic_hal_querySX126xXTATrim(
void);
184uint8_t lmic_hal_querySX126xXTBTrim(
void);
188 LMICHAL_radio_tx_power_policy_rfo = 0,
189 LMICHAL_radio_tx_power_policy_paboost = 1,
190 LMICHAL_radio_tx_power_policy_20dBm = 2,
198uint8_t lmic_hal_getTxPowerPolicy(
204void lmic_hal_pollPendingIRQs_helper();
205void lmic_hal_processPendingIRQs(
void);
206bit_t lmic_hal_radio_spi_is_busy();
209static inline void lmic_hal_pollPendingIRQs(
void)
211#if !defined(LMIC_USE_INTERRUPTS)
212 lmic_hal_pollPendingIRQs_helper();