diff --git a/sys/auto_init/auto_init.c b/sys/auto_init/auto_init.c
index 0a91baa15789379fdca0e6c02a814882ab5efcd0..6b868eb9d0ae40ddc202da5ca350b9f5be03807d 100644
--- a/sys/auto_init/auto_init.c
+++ b/sys/auto_init/auto_init.c
@@ -295,9 +295,9 @@ void auto_init(void)
     extern void auto_init_bmp180(void);
     auto_init_bmp180();
 #endif
-#ifdef MODULE_BME280
-    extern void auto_init_bme280(void);
-    auto_init_bme280();
+#if defined(MODULE_BME280) || defined(MODULE_BMP280)
+    extern void auto_init_bmx280(void);
+    auto_init_bmx280();
 #endif
 #ifdef MODULE_JC42
     extern void auto_init_jc42(void);
diff --git a/sys/auto_init/saul/auto_init_bme280.c b/sys/auto_init/saul/auto_init_bme280.c
deleted file mode 100644
index 94fd1e2c4a604cf791e78f977823ec62c716878c..0000000000000000000000000000000000000000
--- a/sys/auto_init/saul/auto_init_bme280.c
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright (C) 2016 Kees Bakker, SODAQ
- *
- * This file is subject to the terms and conditions of the GNU Lesser
- * General Public License v2.1. See the file LICENSE in the top level
- * directory for more details.
- */
-
-/**
- * @ingroup     auto_init_saul
- * @{
- *
- * @file
- * @brief       Auto initialization of BME280 driver.
- *
- * @author      Kees Bakker <kees@sodaq.com>
- *
- * @}
- */
-
-#ifdef MODULE_BME280
-
-#include "log.h"
-#include "saul_reg.h"
-#include "bme280.h"
-#include "bme280_params.h"
-
-/**
- * @brief   Allocation of memory for device descriptors
- */
-static bme280_t bme280_devs[BME280_NUMOF];
-
-/**
- * @brief   Memory for the SAUL registry entries
- */
-static saul_reg_t saul_entries[BME280_NUMOF * 3];
-
-void auto_init_bme280(void)
-{
-    size_t se_ix = 0;
-    for (size_t i = 0; i < BME280_NUMOF; i++) {
-        LOG_DEBUG("[auto_init_saul] initializing BME280 #%u\n", i);
-        int res = bme280_init(&bme280_devs[i], &bme280_params[i]);
-        if (res < 0) {
-            LOG_ERROR("[auto_init_saul] error initializing BME280 #%i\n", i);
-            continue;
-        }
-
-        /* temperature */
-        saul_entries[se_ix].dev = &bme280_devs[i];
-        saul_entries[se_ix].name = bme280_saul_reg_info[i][0].name;
-        saul_entries[se_ix].driver = &bme280_temperature_saul_driver;
-        saul_reg_add(&saul_entries[se_ix]);
-        se_ix++;
-
-        /* relative humidity */
-        saul_entries[se_ix].dev = &bme280_devs[i];
-        saul_entries[se_ix].name = bme280_saul_reg_info[i][1].name;
-        saul_entries[se_ix].driver = &bme280_relative_humidity_saul_driver;
-        saul_reg_add(&saul_entries[se_ix]);
-        se_ix++;
-
-        /* pressure */
-        saul_entries[se_ix].dev = &bme280_devs[i];
-        saul_entries[se_ix].name = bme280_saul_reg_info[i][2].name;
-        saul_entries[se_ix].driver = &bme280_pressure_saul_driver;
-        saul_reg_add(&saul_entries[se_ix]);
-        se_ix++;
-    }
-}
-
-#else
-typedef int dont_be_pedantic;
-#endif /* MODULE_BME280 */
diff --git a/sys/auto_init/saul/auto_init_bmx280.c b/sys/auto_init/saul/auto_init_bmx280.c
new file mode 100644
index 0000000000000000000000000000000000000000..b3b8275907c69e4fa5e4449d20569dae5261c176
--- /dev/null
+++ b/sys/auto_init/saul/auto_init_bmx280.c
@@ -0,0 +1,95 @@
+/*
+ * Copyright (C) 2016 Kees Bakker, SODAQ
+ *               2017 Inria
+ *
+ * This file is subject to the terms and conditions of the GNU Lesser
+ * General Public License v2.1. See the file LICENSE in the top level
+ * directory for more details.
+ */
+
+/**
+ * @ingroup     auto_init_saul
+ * @{
+ *
+ * @file
+ * @brief       Auto initialization of BMX280 driver.
+ *
+ * @author      Kees Bakker <kees@sodaq.com>
+ * @author      Alexandre Abadie <alexandre.abadie@inria.fr>
+ *
+ * @}
+ */
+
+#if defined(MODULE_BME280) || defined(MODULE_BMP280)
+
+#include "log.h"
+#include "saul_reg.h"
+
+#include "bmx280_params.h"
+#include "bmx280.h"
+
+/**
+ * @brief   Allocation of memory for device descriptors
+ */
+static bmx280_t bmx280_devs[BMX280_NUMOF];
+
+/**
+ * @brief   Reference the driver structs.
+ * @{
+ */
+extern const saul_driver_t bmx280_temperature_saul_driver;
+extern const saul_driver_t bmx280_pressure_saul_driver;
+#if defined(MODULE_BME280)
+extern const saul_driver_t bme280_relative_humidity_saul_driver;
+#endif
+/** @} */
+
+/**
+ * @brief   Memory for the SAUL registry entries
+ */
+#if defined(MODULE_BME280)
+#define SENSORS_NUMOF 3
+#else
+#define SENSORS_NUMOF 2
+#endif
+static saul_reg_t saul_entries[BMX280_NUMOF * SENSORS_NUMOF];
+
+void auto_init_bmx280(void)
+{
+    size_t se_ix = 0;
+    for (size_t i = 0; i < BMX280_NUMOF; i++) {
+        LOG_DEBUG("[auto_init_saul] initializing BMX280 #%u\n", i);
+        int res = bmx280_init(&bmx280_devs[i], &bmx280_params[i]);
+        if (res < 0) {
+            LOG_ERROR("[auto_init_saul] error initializing BMX280 #%i\n", i);
+            continue;
+        }
+
+        /* temperature */
+        saul_entries[se_ix].dev = &bmx280_devs[i];
+        saul_entries[se_ix].name = bmx280_saul_reg_info[i][0].name;
+        saul_entries[se_ix].driver = &bmx280_temperature_saul_driver;
+        saul_reg_add(&saul_entries[se_ix]);
+        se_ix++;
+
+        /* pressure */
+        saul_entries[se_ix].dev = &bmx280_devs[i];
+        saul_entries[se_ix].name = bmx280_saul_reg_info[i][1].name;
+        saul_entries[se_ix].driver = &bmx280_pressure_saul_driver;
+        saul_reg_add(&saul_entries[se_ix]);
+        se_ix++;
+
+#if defined(MODULE_BME280)
+        /* relative humidity */
+        saul_entries[se_ix].dev = &bmx280_devs[i];
+        saul_entries[se_ix].name = bmx280_saul_reg_info[i][2].name;
+        saul_entries[se_ix].driver = &bme280_relative_humidity_saul_driver;
+        saul_reg_add(&saul_entries[se_ix]);
+        se_ix++;
+#endif
+    }
+}
+
+#else
+typedef int dont_be_pedantic;
+#endif /* MODULE_BMX280 */