@@ -130,13 +130,15 @@ struct yas5xx;
130
130
* @version_names: version letters or namings
131
131
* @volatile_reg: device-specific volatile registers
132
132
* @volatile_reg_qty: quantity of device-specific volatile registers
133
+ * @scaling_val2: scaling value for IIO_CHAN_INFO_SCALE
133
134
*/
134
135
struct yas5xx_chip_info {
135
136
unsigned int devid ;
136
137
char * product_name ;
137
138
char * version_names [2 ];
138
139
const int * volatile_reg ;
139
140
int volatile_reg_qty ;
141
+ u32 scaling_val2 ;
140
142
};
141
143
142
144
/**
@@ -504,27 +506,8 @@ static int yas5xx_read_raw(struct iio_dev *indio_dev,
504
506
}
505
507
return IIO_VAL_INT ;
506
508
case IIO_CHAN_INFO_SCALE :
507
- switch (ci -> devid ) {
508
- case YAS530_DEVICE_ID :
509
- /*
510
- * Raw values of YAS530 are in picotesla. Divide by
511
- * 100000000 (10^8) to get Gauss.
512
- */
513
- * val = 1 ;
514
- * val2 = 100000000 ;
515
- break ;
516
- case YAS532_DEVICE_ID :
517
- /*
518
- * Raw values of YAS532 are in nanotesla. Divide by
519
- * 100000 (10^5) to get Gauss.
520
- */
521
- * val = 1 ;
522
- * val2 = 100000 ;
523
- break ;
524
- default :
525
- dev_err (yas5xx -> dev , "unknown device type\n" );
526
- return - EINVAL ;
527
- }
509
+ * val = 1 ;
510
+ * val2 = ci -> scaling_val2 ;
528
511
return IIO_VAL_FRACTIONAL ;
529
512
default :
530
513
/* Unknown request */
@@ -951,20 +934,23 @@ static const struct yas5xx_chip_info yas5xx_chip_info_tbl[] = {
951
934
.version_names = { "A" , "B" },
952
935
.volatile_reg = yas530_volatile_reg ,
953
936
.volatile_reg_qty = ARRAY_SIZE (yas530_volatile_reg ),
937
+ .scaling_val2 = 100000000 , /* picotesla to Gauss */
954
938
},
955
939
[yas532 ] = {
956
940
.devid = YAS532_DEVICE_ID ,
957
941
.product_name = "YAS532 MS-3R" ,
958
942
.version_names = { "AB" , "AC" },
959
943
.volatile_reg = yas530_volatile_reg ,
960
944
.volatile_reg_qty = ARRAY_SIZE (yas530_volatile_reg ),
945
+ .scaling_val2 = 100000 , /* nanotesla to Gauss */
961
946
},
962
947
[yas533 ] = {
963
948
.devid = YAS532_DEVICE_ID ,
964
949
.product_name = "YAS533 MS-3F" ,
965
950
.version_names = { "AB" , "AC" },
966
951
.volatile_reg = yas530_volatile_reg ,
967
952
.volatile_reg_qty = ARRAY_SIZE (yas530_volatile_reg ),
953
+ .scaling_val2 = 100000 , /* nanotesla to Gauss */
968
954
},
969
955
};
970
956
0 commit comments