.realbits = 12,                                         \
                .storagebits = 16,                                      \
                .shift = 4,                                             \
-               .endianness = IIO_CPU,                                  \
+               .endianness = IIO_LE,                                   \
        },                                                              \
        .event_spec = &kxcjk1013_event,                         \
        .num_event_specs = 1                                            \
        struct iio_poll_func *pf = p;
        struct iio_dev *indio_dev = pf->indio_dev;
        struct kxcjk1013_data *data = iio_priv(indio_dev);
-       int bit, ret, i = 0;
+       int ret;
 
        mutex_lock(&data->mutex);
-
-       for (bit = 0; bit < AXIS_MAX; bit++) {
-               ret = kxcjk1013_get_acc_reg(data, bit);
-               if (ret < 0) {
-                       mutex_unlock(&data->mutex);
-                       goto err;
-               }
-               data->buffer[i++] = ret;
-       }
+       ret = i2c_smbus_read_i2c_block_data_or_emulated(data->client,
+                                                       KXCJK1013_REG_XOUT_L,
+                                                       AXIS_MAX * 2,
+                                                       (u8 *)data->buffer);
        mutex_unlock(&data->mutex);
+       if (ret < 0)
+               goto err;
 
        iio_push_to_buffers_with_timestamp(indio_dev, data->buffer,
                                           data->timestamp);