Skip to content

Commit 11031d7

Browse files
masneybjic23
authored andcommitted
staging: iio: tsl2x7x: use IIO_CONST_ATTR for calibscale_available
The in_intensity0_calibscale_available sysfs attribute has code that checks the device type to determine which calibration scales are available. This check is not necessary since all of the supported ALS device types use the scales 1 8 16 120. This patch converts the sysfs attribute to use IIO_CONST_ATTR. The following device datasheets were checked: tsl2571, tsl2771, tmd2771, tsl2572, tsl2772, tmd2772. Signed-off-by: Brian Masney <[email protected]> Signed-off-by: Jonathan Cameron <[email protected]>
1 parent 7775e1d commit 11031d7

File tree

1 file changed

+4
-42
lines changed

1 file changed

+4
-42
lines changed

drivers/staging/iio/light/tsl2x7x.c

Lines changed: 4 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -776,24 +776,7 @@ static int tsl2x7x_prox_cal(struct iio_dev *indio_dev)
776776
return tsl2x7x_invoke_change(indio_dev);
777777
}
778778

779-
static ssize_t
780-
in_intensity0_calibscale_available_show(struct device *dev,
781-
struct device_attribute *attr,
782-
char *buf)
783-
{
784-
struct tsl2X7X_chip *chip = iio_priv(dev_to_iio_dev(dev));
785-
786-
switch (chip->id) {
787-
case tsl2571:
788-
case tsl2671:
789-
case tmd2671:
790-
case tsl2771:
791-
case tmd2771:
792-
return snprintf(buf, PAGE_SIZE, "%s\n", "1 8 16 128");
793-
}
794-
795-
return snprintf(buf, PAGE_SIZE, "%s\n", "1 8 16 120");
796-
}
779+
static IIO_CONST_ATTR(in_intensity0_calibscale_available, "1 8 16 120");
797780

798781
static IIO_CONST_ATTR(in_proximity0_calibscale_available, "1 2 4 8");
799782

@@ -1190,25 +1173,6 @@ static int tsl2x7x_write_raw(struct iio_dev *indio_dev,
11901173
chip->settings.als_gain = 2;
11911174
break;
11921175
case 120:
1193-
switch (chip->id) {
1194-
case tsl2572:
1195-
case tsl2672:
1196-
case tmd2672:
1197-
case tsl2772:
1198-
case tmd2772:
1199-
return -EINVAL;
1200-
}
1201-
chip->settings.als_gain = 3;
1202-
break;
1203-
case 128:
1204-
switch (chip->id) {
1205-
case tsl2571:
1206-
case tsl2671:
1207-
case tmd2671:
1208-
case tsl2771:
1209-
case tmd2771:
1210-
return -EINVAL;
1211-
}
12121176
chip->settings.als_gain = 3;
12131177
break;
12141178
default:
@@ -1247,8 +1211,6 @@ static int tsl2x7x_write_raw(struct iio_dev *indio_dev,
12471211
return tsl2x7x_invoke_change(indio_dev);
12481212
}
12491213

1250-
static DEVICE_ATTR_RO(in_intensity0_calibscale_available);
1251-
12521214
static DEVICE_ATTR_RW(in_illuminance0_target_input);
12531215

12541216
static DEVICE_ATTR_WO(in_illuminance0_calibrate);
@@ -1321,7 +1283,7 @@ static irqreturn_t tsl2x7x_event_handler(int irq, void *private)
13211283
}
13221284

13231285
static struct attribute *tsl2x7x_ALS_device_attrs[] = {
1324-
&dev_attr_in_intensity0_calibscale_available.attr,
1286+
&iio_const_attr_in_intensity0_calibscale_available.dev_attr.attr,
13251287
&iio_const_attr_in_intensity0_integration_time_available.dev_attr.attr,
13261288
&dev_attr_in_illuminance0_target_input.attr,
13271289
&dev_attr_in_illuminance0_calibrate.attr,
@@ -1335,7 +1297,7 @@ static struct attribute *tsl2x7x_PRX_device_attrs[] = {
13351297
};
13361298

13371299
static struct attribute *tsl2x7x_ALSPRX_device_attrs[] = {
1338-
&dev_attr_in_intensity0_calibscale_available.attr,
1300+
&iio_const_attr_in_intensity0_calibscale_available.dev_attr.attr,
13391301
&iio_const_attr_in_intensity0_integration_time_available.dev_attr.attr,
13401302
&dev_attr_in_illuminance0_target_input.attr,
13411303
&dev_attr_in_illuminance0_calibrate.attr,
@@ -1350,7 +1312,7 @@ static struct attribute *tsl2x7x_PRX2_device_attrs[] = {
13501312
};
13511313

13521314
static struct attribute *tsl2x7x_ALSPRX2_device_attrs[] = {
1353-
&dev_attr_in_intensity0_calibscale_available.attr,
1315+
&iio_const_attr_in_intensity0_calibscale_available.dev_attr.attr,
13541316
&iio_const_attr_in_intensity0_integration_time_available.dev_attr.attr,
13551317
&dev_attr_in_illuminance0_target_input.attr,
13561318
&dev_attr_in_illuminance0_calibrate.attr,

0 commit comments

Comments
 (0)