diff --git a/drivers/include/sx127x.h b/drivers/include/sx127x.h
index 9d200d0a64fa2ecbc29b88a1ec8369914e713e2a..4e2d5d77edd85e9feb38edabfd430e9f2abcee4b 100644
--- a/drivers/include/sx127x.h
+++ b/drivers/include/sx127x.h
@@ -83,17 +83,8 @@ extern "C" {
 #define SX127X_TX_TIMEOUT_DEFAULT        (1000U * 1000U * 30UL) /**< TX timeout, 30s */
 #define SX127X_RX_SINGLE                 (false)                /**< Single byte receive mode => continuous by default */
 #define SX127X_RX_BUFFER_SIZE            (256)                  /**< RX buffer size */
-
 #define SX127X_RADIO_TX_POWER            (14U)                  /**< Radio power in dBm */
 
-#ifndef SX1272_DEFAULT_PASELECT
-/** @brief   Default PA selection config (1: RFO, 0: PABOOST)
- *
- * This depends on the module configuration.
- */
-#define SX1272_DEFAULT_PASELECT          (1U)
-#endif
-
 #define SX127X_EVENT_HANDLER_STACK_SIZE  (2048U) /**< Stack size event handler */
 #define SX127X_IRQ_DIO0                  (1<<0)  /**< DIO0 IRQ */
 #define SX127X_IRQ_DIO1                  (1<<1)  /**< DIO1 IRQ */
@@ -144,6 +135,18 @@ enum {
     SX127X_CAD_DONE,                   /**< Channel activity detection complete */
 };
 
+/**
+ * @brief Power amplifier modes
+ *
+ * Default value is SX127X_PA_RFO.
+ *
+ * The power amplifier mode depends on the module hardware configuration.
+ */
+enum {
+    SX127X_PA_RFO = 0,                 /**< RFO HF or RFO LF */
+    SX127X_PA_BOOST,                   /**< Power amplifier boost (high power) */
+};
+
 /**
  * @name    SX127X device descriptor boolean flags
  * @{
@@ -205,6 +208,7 @@ typedef struct {
     gpio_t dio3_pin;                   /**< Interrupt line DIO3 (CAD done) */
     gpio_t dio4_pin;                   /**< Interrupt line DIO4 (not used) */
     gpio_t dio5_pin;                   /**< Interrupt line DIO5 (not used) */
+    uint8_t paselect;                  /**< Power amplifier mode (RFO or PABOOST) */
 } sx127x_params_t;
 
 /**
diff --git a/drivers/sx127x/include/sx127x_params.h b/drivers/sx127x/include/sx127x_params.h
index e74ec69a0d32d19293ea955953b26e3b68c63a97..15763b4a9e424b4589fac0bfb585f5ee7273bf7a 100644
--- a/drivers/sx127x/include/sx127x_params.h
+++ b/drivers/sx127x/include/sx127x_params.h
@@ -60,6 +60,10 @@ extern "C" {
 #define SX127X_PARAM_DIO3                   GPIO_PIN(1, 4)       /* D5 */
 #endif
 
+#ifndef SX127X_PARAM_PASELECT
+#define SX127X_PARAM_PASELECT               (SX127X_PA_RFO)
+#endif
+
 #ifndef SX127X_PARAMS
 #define SX127X_PARAMS                       { .spi       = SX127X_PARAM_SPI,     \
                                               .nss_pin   = SX127X_PARAM_SPI_NSS, \
@@ -67,7 +71,8 @@ extern "C" {
                                               .dio0_pin  = SX127X_PARAM_DIO0,    \
                                               .dio1_pin  = SX127X_PARAM_DIO1,    \
                                               .dio2_pin  = SX127X_PARAM_DIO2,    \
-                                              .dio3_pin  = SX127X_PARAM_DIO3 }
+                                              .dio3_pin  = SX127X_PARAM_DIO3,    \
+                                              .paselect  = SX127X_PARAM_PASELECT }
 #endif
 /**@}*/
 
diff --git a/drivers/sx127x/sx127x_getset.c b/drivers/sx127x/sx127x_getset.c
index fe1d429f7aee40e62e50b4675ac62efd7696e35f..6887631daf5bdb1e37512be96f6a0e58fa69c046 100644
--- a/drivers/sx127x/sx127x_getset.c
+++ b/drivers/sx127x/sx127x_getset.c
@@ -707,23 +707,13 @@ void sx127x_set_payload_length(sx127x_t *dev, uint8_t len)
     sx127x_reg_write(dev, SX127X_REG_LR_PAYLOADLENGTH, len);
 }
 
-static inline uint8_t sx127x_get_pa_select(uint32_t channel)
+static inline uint8_t sx127x_get_pa_select(const sx127x_t *dev)
 {
-#if defined(MODULE_SX1272)
-    (void) channel;
-#if SX1272_DEFAULT_PASELECT
-    return SX127X_RF_PACONFIG_PASELECT_RFO;
-#else
-    return SX127X_RF_PACONFIG_PASELECT_PABOOST;
-#endif
-#else /* MODULE_SX1276 */
-    if (channel < SX127X_RF_MID_BAND_THRESH) {
+    if (dev->params.paselect == SX127X_PA_BOOST) {
         return SX127X_RF_PACONFIG_PASELECT_PABOOST;
     }
-    else {
-        return SX127X_RF_PACONFIG_PASELECT_RFO;
-    }
-#endif
+
+    return SX127X_RF_PACONFIG_PASELECT_RFO;
 }
 
 uint8_t sx127x_get_tx_power(const sx127x_t *dev)
@@ -745,7 +735,7 @@ void sx127x_set_tx_power(sx127x_t *dev, int8_t power)
 #endif
 
     pa_config = ((pa_config & SX127X_RF_PACONFIG_PASELECT_MASK) |
-                 sx127x_get_pa_select(dev->settings.channel));
+                 sx127x_get_pa_select(dev));
 
 #if defined(MODULE_SX1276)
     /* max power is 14dBm */