diff --git a/drivers/lsm303dlhc/lsm303dlhc_saul.c b/drivers/lsm303dlhc/lsm303dlhc_saul.c
index c5278d27b75bb83d891773bca66def8fcab48dd4..8b34e423c587038de46fc5d9e915f60d423b3ec8 100644
--- a/drivers/lsm303dlhc/lsm303dlhc_saul.c
+++ b/drivers/lsm303dlhc/lsm303dlhc_saul.c
@@ -26,7 +26,7 @@
 static int read_acc(const void *dev, phydat_t *res)
 {
     const lsm303dlhc_t *d = (const lsm303dlhc_t *)dev;
-    lsm303dlhc_read_acc(d, (lsm303dlhc_3d_data_t *)res);
+    lsm303dlhc_read_acc(d, (lsm303dlhc_3d_data_t *)res->val);
 
     /* normalize result */
     int fac = (1 << (d->params.acc_scale >> 4));
@@ -43,7 +43,7 @@ static int read_mag(const void *dev, phydat_t *res)
 {
     const lsm303dlhc_t *d = (const lsm303dlhc_t *)dev;
 
-    lsm303dlhc_read_mag(d, (lsm303dlhc_3d_data_t *)res);
+    lsm303dlhc_read_mag(d, (lsm303dlhc_3d_data_t *)res->val);
 
     /* normalize results */
     int gain;
diff --git a/drivers/mag3110/mag3110_saul.c b/drivers/mag3110/mag3110_saul.c
index 96306f0f798b3ddbe010f1222720a97282778cdb..42ea36e6f67858c6477a092b5f670ba3d7c3c1d1 100644
--- a/drivers/mag3110/mag3110_saul.c
+++ b/drivers/mag3110/mag3110_saul.c
@@ -26,7 +26,7 @@
 
 static int read_mag(const void *dev, phydat_t *res)
 {
-    mag3110_read((const mag3110_t *)dev, (mag3110_data_t *)res);
+    mag3110_read((const mag3110_t *)dev, (mag3110_data_t *)res->val);
 
     res->unit = UNIT_GS;
     res->scale = 2;
diff --git a/drivers/mma7660/mma7660_saul.c b/drivers/mma7660/mma7660_saul.c
index ef0014ae66ec5c023efa9314f9f584b5b10e6a30..5d202e1d9c0e4289cbea7c12aabc693ffd40c5ba 100644
--- a/drivers/mma7660/mma7660_saul.c
+++ b/drivers/mma7660/mma7660_saul.c
@@ -26,7 +26,7 @@
 
 static int read_acc(const void *dev, phydat_t *res)
 {
-    mma7660_read((const mma7660_t *)dev, (mma7660_data_t *)res);
+    mma7660_read((const mma7660_t *)dev, (mma7660_data_t *)res->val);
 
     res->unit = UNIT_G;
     res->scale = -3;
diff --git a/drivers/mma8x5x/mma8x5x_saul.c b/drivers/mma8x5x/mma8x5x_saul.c
index c9933855540dba1429bba3590ebfa13f744713c0..27d85890bb0d46cc765b15c3ebcc92d0805a33f7 100644
--- a/drivers/mma8x5x/mma8x5x_saul.c
+++ b/drivers/mma8x5x/mma8x5x_saul.c
@@ -27,7 +27,7 @@
 
 static int read_acc(const void *dev, phydat_t *res)
 {
-    mma8x5x_read((const mma8x5x_t *)dev, (mma8x5x_data_t *)res);
+    mma8x5x_read((const mma8x5x_t *)dev, (mma8x5x_data_t *)res->val);
 
     res->unit = UNIT_G;
     res->scale = -3;
diff --git a/drivers/mpu9150/mpu9150_saul.c b/drivers/mpu9150/mpu9150_saul.c
index 96514a7c725efcbd9627003d839e5863a17363aa..0b6d078519c24ddd219e4cfe481f979bba15babe 100644
--- a/drivers/mpu9150/mpu9150_saul.c
+++ b/drivers/mpu9150/mpu9150_saul.c
@@ -25,7 +25,7 @@
 
 static int read_acc(const void *dev, phydat_t *res)
 {
-    int ret = mpu9150_read_accel((const mpu9150_t *)dev, (mpu9150_results_t *)res);
+    int ret = mpu9150_read_accel((const mpu9150_t *)dev, (mpu9150_results_t *)res->val);
     if (ret < 0) {
         return -ECANCELED;
     }
@@ -38,7 +38,7 @@ static int read_acc(const void *dev, phydat_t *res)
 
 static int read_gyro(const void *dev, phydat_t *res)
 {
-    int ret = mpu9150_read_gyro((const mpu9150_t *)dev, (mpu9150_results_t *)res);
+    int ret = mpu9150_read_gyro((const mpu9150_t *)dev, (mpu9150_results_t *)res->val);
     if (ret < 0) {
         return -ECANCELED;
     }
@@ -51,7 +51,7 @@ static int read_gyro(const void *dev, phydat_t *res)
 
 static int read_mag(const void *dev, phydat_t *res)
 {
-    int ret = mpu9150_read_compass((const mpu9150_t *)dev, (mpu9150_results_t *)res);
+    int ret = mpu9150_read_compass((const mpu9150_t *)dev, (mpu9150_results_t *)res->val);
     if (ret < 0) {
         return -ECANCELED;
     }