@@ -433,9 +433,9 @@ static int adxl362_sample_fetch(struct device *dev, enum sensor_channel chan)
433433
434434 z = (buf [1 ] << 8 ) + buf [0 ];
435435
436- data -> acc_x = (s32_t )x * (adxl362_data .selected_range / 2 );
437- data -> acc_y = (s32_t )y * (adxl362_data .selected_range / 2 );
438- data -> acc_z = (s32_t )z * (adxl362_data .selected_range / 2 );
436+ data -> acc_x = (s32_t )x * (adxl362_data .selected_range );
437+ data -> acc_y = (s32_t )y * (adxl362_data .selected_range );
438+ data -> acc_z = (s32_t )z * (adxl362_data .selected_range );
439439
440440 ret = adxl362_read_temperature (dev , & data -> temp );
441441 if (ret ) {
@@ -445,6 +445,14 @@ static int adxl362_sample_fetch(struct device *dev, enum sensor_channel chan)
445445 return 0 ;
446446}
447447
448+ static void adxl362_accel_convert (struct sensor_value * val , s16_t value )
449+ {
450+ s32_t micro_ms2 = value * (SENSOR_G / (16 * 1000 ));
451+
452+ val -> val1 = micro_ms2 / 100000 ;
453+ val -> val2 = micro_ms2 % 100000 ;
454+ }
455+
448456static int adxl362_channel_get (struct device * dev ,
449457 enum sensor_channel chan ,
450458 struct sensor_value * val )
@@ -453,16 +461,13 @@ static int adxl362_channel_get(struct device *dev,
453461
454462 switch (chan ) {
455463 case SENSOR_CHAN_ACCEL_X : /* Acceleration on the X axis, in m/s^2. */
456- val -> val1 = data -> acc_x / 1000 ;
457- val -> val2 = (data -> acc_x % 1000 ) * 1000 ;
464+ adxl362_accel_convert (val , data -> acc_x );
458465 break ;
459466 case SENSOR_CHAN_ACCEL_Y : /* Acceleration on the Y axis, in m/s^2. */
460- val -> val1 = data -> acc_y / 1000 ;
461- val -> val2 = (data -> acc_y % 1000 ) * 1000 ;
467+ adxl362_accel_convert (val , data -> acc_y );
462468 break ;
463469 case SENSOR_CHAN_ACCEL_Z : /* Acceleration on the Z axis, in m/s^2. */
464- val -> val1 = data -> acc_z / 1000 ;
465- val -> val2 = (data -> acc_z % 1000 ) * 1000 ;
470+ adxl362_accel_convert (val , data -> acc_z );
466471 break ;
467472 case SENSOR_CHAN_DIE_TEMP : /* Temperature in degrees Celsius. */
468473 val -> val1 = data -> temp / 1000 ;
0 commit comments