struct hid_sensor_hub_callbacks callbacks;
        struct hid_sensor_common common_attributes;
        struct hid_sensor_hub_attribute_info accel[ACCEL_3D_CHANNEL_MAX];
-       /* Reserve for 3 channels + padding + timestamp */
-       u32 accel_val[ACCEL_3D_CHANNEL_MAX + 3];
+       /* Ensure timestamp is naturally aligned */
+       struct {
+               u32 accel_val[3];
+               s64 timestamp __aligned(8);
+       } scan;
        int scale_pre_decml;
        int scale_post_decml;
        int scale_precision;
                        accel_state->timestamp = iio_get_time_ns(indio_dev);
 
                hid_sensor_push_data(indio_dev,
-                                    accel_state->accel_val,
-                                    sizeof(accel_state->accel_val),
+                                    &accel_state->scan,
+                                    sizeof(accel_state->scan),
                                     accel_state->timestamp);
 
                accel_state->timestamp = 0;
        case HID_USAGE_SENSOR_ACCEL_Y_AXIS:
        case HID_USAGE_SENSOR_ACCEL_Z_AXIS:
                offset = usage_id - HID_USAGE_SENSOR_ACCEL_X_AXIS;
-               accel_state->accel_val[CHANNEL_SCAN_INDEX_X + offset] =
+               accel_state->scan.accel_val[CHANNEL_SCAN_INDEX_X + offset] =
                                                *(u32 *)raw_data;
                ret = 0;
        break;