50
50
#define CM36651_CS_CONF2_DEFAULT_BIT 0x08
51
51
52
52
/* CS_CONF3 channel integration time */
53
- #define CM36651_CS_IT1 0x00 /* Integration time 80000 usec */
54
- #define CM36651_CS_IT2 0x40 /* Integration time 160000 usec */
55
- #define CM36651_CS_IT3 0x80 /* Integration time 320000 usec */
56
- #define CM36651_CS_IT4 0xC0 /* Integration time 640000 usec */
53
+ #define CM36651_CS_IT1 0x00 /* Integration time 80 msec */
54
+ #define CM36651_CS_IT2 0x40 /* Integration time 160 msec */
55
+ #define CM36651_CS_IT3 0x80 /* Integration time 320 msec */
56
+ #define CM36651_CS_IT4 0xC0 /* Integration time 640 msec */
57
57
58
58
/* PS_CONF1 command code */
59
59
#define CM36651_PS_ENABLE 0x00
64
64
#define CM36651_PS_PERS4 0x0C
65
65
66
66
/* PS_CONF1 command code: integration time */
67
- #define CM36651_PS_IT1 0x00 /* Integration time 320 usec */
68
- #define CM36651_PS_IT2 0x10 /* Integration time 420 usec */
69
- #define CM36651_PS_IT3 0x20 /* Integration time 520 usec */
70
- #define CM36651_PS_IT4 0x30 /* Integration time 640 usec */
67
+ #define CM36651_PS_IT1 0x00 /* Integration time 0.32 msec */
68
+ #define CM36651_PS_IT2 0x10 /* Integration time 0.42 msec */
69
+ #define CM36651_PS_IT3 0x20 /* Integration time 0.52 msec */
70
+ #define CM36651_PS_IT4 0x30 /* Integration time 0.64 msec */
71
71
72
72
/* PS_CONF1 command code: duty ratio */
73
73
#define CM36651_PS_DR1 0x00 /* Duty ratio 1/80 */
93
93
#define CM36651_CLOSE_PROXIMITY 0x32
94
94
#define CM36651_FAR_PROXIMITY 0x33
95
95
96
- #define CM36651_CS_INT_TIME_AVAIL "80000 160000 320000 640000 "
97
- #define CM36651_PS_INT_TIME_AVAIL "320 420 520 640 "
96
+ #define CM36651_CS_INT_TIME_AVAIL "0.08 0.16 0.32 0.64 "
97
+ #define CM36651_PS_INT_TIME_AVAIL "0.000320 0.000420 0.000520 0.000640 "
98
98
99
99
enum cm36651_operation_mode {
100
100
CM36651_LIGHT_EN ,
@@ -356,38 +356,38 @@ static int cm36651_read_channel(struct cm36651_data *cm36651,
356
356
}
357
357
358
358
static int cm36651_read_int_time (struct cm36651_data * cm36651 ,
359
- struct iio_chan_spec const * chan , int * val )
359
+ struct iio_chan_spec const * chan , int * val2 )
360
360
{
361
361
switch (chan -> type ) {
362
362
case IIO_LIGHT :
363
363
if (cm36651 -> cs_int_time [chan -> address ] == CM36651_CS_IT1 )
364
- * val = 80000 ;
364
+ * val2 = 80000 ;
365
365
else if (cm36651 -> cs_int_time [chan -> address ] == CM36651_CS_IT2 )
366
- * val = 160000 ;
366
+ * val2 = 160000 ;
367
367
else if (cm36651 -> cs_int_time [chan -> address ] == CM36651_CS_IT3 )
368
- * val = 320000 ;
368
+ * val2 = 320000 ;
369
369
else if (cm36651 -> cs_int_time [chan -> address ] == CM36651_CS_IT4 )
370
- * val = 640000 ;
370
+ * val2 = 640000 ;
371
371
else
372
372
return - EINVAL ;
373
373
break ;
374
374
case IIO_PROXIMITY :
375
375
if (cm36651 -> ps_int_time == CM36651_PS_IT1 )
376
- * val = 320 ;
376
+ * val2 = 320 ;
377
377
else if (cm36651 -> ps_int_time == CM36651_PS_IT2 )
378
- * val = 420 ;
378
+ * val2 = 420 ;
379
379
else if (cm36651 -> ps_int_time == CM36651_PS_IT3 )
380
- * val = 520 ;
380
+ * val2 = 520 ;
381
381
else if (cm36651 -> ps_int_time == CM36651_PS_IT4 )
382
- * val = 640 ;
382
+ * val2 = 640 ;
383
383
else
384
384
return - EINVAL ;
385
385
break ;
386
386
default :
387
387
return - EINVAL ;
388
388
}
389
389
390
- return IIO_VAL_INT ;
390
+ return IIO_VAL_INT_PLUS_MICRO ;
391
391
}
392
392
393
393
static int cm36651_write_int_time (struct cm36651_data * cm36651 ,
@@ -459,7 +459,8 @@ static int cm36651_read_raw(struct iio_dev *indio_dev,
459
459
ret = cm36651_read_channel (cm36651 , chan , val );
460
460
break ;
461
461
case IIO_CHAN_INFO_INT_TIME :
462
- ret = cm36651_read_int_time (cm36651 , chan , val );
462
+ * val = 0 ;
463
+ ret = cm36651_read_int_time (cm36651 , chan , val2 );
463
464
break ;
464
465
default :
465
466
ret = - EINVAL ;
@@ -479,7 +480,7 @@ static int cm36651_write_raw(struct iio_dev *indio_dev,
479
480
int ret = - EINVAL ;
480
481
481
482
if (mask == IIO_CHAN_INFO_INT_TIME ) {
482
- ret = cm36651_write_int_time (cm36651 , chan , val );
483
+ ret = cm36651_write_int_time (cm36651 , chan , val2 );
483
484
if (ret < 0 )
484
485
dev_err (& client -> dev , "Integration time write failed\n" );
485
486
}
0 commit comments