struct regmap *regmap;
        struct regulator_bulk_data regulators[2];
        struct iio_mount_matrix orientation;
-       /* 4 x 32 bits for x, y z, 4 bytes align, 64 bits timestamp */
-       s32 buffer[6];
+       /* Ensure timestamp is naturally aligned */
+       struct {
+               s32 chans[3];
+               s64 timestamp __aligned(8);
+       } scan;
        struct iio_trigger *dready_trig;
        bool dready_trigger_on;
        int max_odr;
        int ret;
 
        mutex_lock(&data->mutex);
-       ret = bmc150_magn_read_xyz(data, data->buffer);
+       ret = bmc150_magn_read_xyz(data, data->scan.chans);
        if (ret < 0)
                goto err;
 
-       iio_push_to_buffers_with_timestamp(indio_dev, data->buffer,
+       iio_push_to_buffers_with_timestamp(indio_dev, &data->scan,
                                           pf->timestamp);
 
 err: