Skip to content

Commit 4314a0b

Browse files
committed
Merge tag 'iio-for-6.1b' of https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio into char-misc-next
Jonathan writes: Second set of IIO new device support, features and cleanup for the 6.1 cycle. Normal mixed bag of new device support with continuing trend that most new devices are supported by extending existing drivers - a positive sign perhaps that device manufacturers have somewhat stabilized their interfaces across product generations. The BNO055 driver was however a substantial addition including several additions to the IIO core. There are a number of significant patch sets under review, so if the 6.0 cycle runs long I may send a 3rd pull request. New device support * adi,adxl313 - Support for the ADXL312 and ADXL314 accelerometers. * bosch,bmp280 - Support for the BMP380 family of pressures sensors. Included considerable refactoring and modernization of the bmp280 driver. * bosch,bno055 - New driver for this i2c/serial attached complex IMU. * lltc,ltc2497 - Support for the LTC2499 16 channel, 24bit ADC. * st,pressure - Support for the LPS22DF pressure sensor * st,lsm6dsx - Support for the LSM6DSTX (Mainly adding the ID and WAI) Features * core - to support the bosch,bno055 requirements - Support for linear acceleration channel type (effect of gravity removed) - Pitch, yaw and roll modifiers for angle channels. - Standard serialnumber attribute documentation. - Binary attributes - to allow for calibration save and restore. * adi,ad7923 - Support extended range (wider supported input voltage range). * bosch,bmp280 - Add filter controls for some supported parts. * microchip,mcp3911 - Buffered capture support for this ADC. - Data ready interrupt support, including hiz control for line. - Oversampling ratio support. * st,stm32-adc - Support ID registers on parts where they are present, providing discoverability of some features. Fixes - late breaking fixes that I judged could wait for the merge window. * adi,ad5593r - Add a missing STOP condition between address write and data read. - Check for related i2c functionality. * adi,ad7923 - Fix shift reporting for some variants supported by the driver. * infinion,dps310 - Work around a hardware issue where a chip can hang by adding a timeout and reset path. Cleanups * Continuing work to switch to new pm macros. * MAINTAINERS - Drop duplication of wild card covered entry in ADI block and add missing entries to cover ltc294x binding files. * bosch,bma400 - Fix trivial smatch warning. * bosch,bmp280 - Fix broken links to datasheets * lltc,ltc2497 - Fix missing entry for ltc2499 * mexelis,mlx90614 - Switch to get_avail() callback for _available attributes. * microchip,mcp3911 - Move to devm_ resource management for all elements of probe() * tag 'iio-for-6.1b' of https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio: (57 commits) iio: adc: mcp3911: add support for oversampling ratio dt-bindings: iio: adc: mcp3911: add microchip,data-ready-hiz entry iio: adc: mcp3911: add support for interrupts iio: adc: mcp3911: add support for buffers iio: adc: mcp3911: use resource-managed version of iio_device_register iio: accel: bma400: Fix smatch warning based on use of unintialized value. iio: light: st_uvis25: Use EXPORT_NS_SIMPLE_DEV_PM_OPS() iio: accel: bmi088: Use EXPORT_NS_GPL_RUNTIME_DEV_PM_OPS() and pm_ptr() iio: proximity: srf04: Use pm_ptr() to remove unused struct dev_pm_ops iio: proximity: sx9360: Switch to DEFINE_SIMPLE_DEV_PM_OPS() and pm_sleep_ptr() iio: proximity: sx9324: Switch to DEFINE_SIMPLE_DEV_PM_OPS() and pm_sleep_ptr() iio: proximity: sx9310: Switch to DEFINE_SIMPLE_DEV_PM_OPS() and pm_sleep_ptr() docs: iio: add documentation for BNO055 driver iio: imu: add BNO055 I2C driver iio: imu: add BNO055 serdev driver dt-bindings: iio/imu: Add Bosch BNO055 iio: document "serialnumber" sysfs attribute iio: document bno055 private sysfs attributes iio: imu: add Bosch Sensortec BNO055 core driver iio: add support for binary attributes ...
2 parents 3e08143 + 6d96588 commit 4314a0b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

68 files changed

+4815
-519
lines changed

Documentation/ABI/testing/sysfs-bus-iio

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,15 @@ Description:
260260
Has all of the equivalent parameters as per voltageY. Units
261261
after application of scale and offset are m/s^2.
262262

263+
What: /sys/bus/iio/devices/iio:deviceX/in_accel_linear_x_raw
264+
What: /sys/bus/iio/devices/iio:deviceX/in_accel_linear_y_raw
265+
What: /sys/bus/iio/devices/iio:deviceX/in_accel_linear_z_raw
266+
KernelVersion: 6.1
267+
Contact: linux-iio@vger.kernel.org
268+
Description:
269+
As per in_accel_X_raw attributes, but minus the
270+
acceleration due to gravity.
271+
263272
What: /sys/bus/iio/devices/iio:deviceX/in_gravity_x_raw
264273
What: /sys/bus/iio/devices/iio:deviceX/in_gravity_y_raw
265274
What: /sys/bus/iio/devices/iio:deviceX/in_gravity_z_raw
@@ -2137,3 +2146,19 @@ Contact: linux-iio@vger.kernel.org
21372146
Description:
21382147
Lists all available time values between upper peak to lower
21392148
peak. Units in seconds.
2149+
2150+
What: /sys/bus/iio/devices/iio:deviceX/in_rot_yaw_raw
2151+
What: /sys/bus/iio/devices/iio:deviceX/in_rot_pitch_raw
2152+
What: /sys/bus/iio/devices/iio:deviceX/in_rot_roll_raw
2153+
KernelVersion: 6.1
2154+
Contact: linux-iio@vger.kernel.org
2155+
Description:
2156+
Raw (unscaled) euler angles readings. Units after
2157+
application of scale are deg.
2158+
2159+
What: /sys/bus/iio/devices/iio:deviceX/serialnumber
2160+
KernelVersion: 6.1
2161+
Contact: linux-iio@vger.kernel.org
2162+
Description:
2163+
An example format is 16-bytes, 2-digits-per-byte, HEX-string
2164+
representing the sensor unique ID number.
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
What: /sys/bus/iio/devices/iio:deviceX/in_accel_raw_range
2+
KernelVersion: 6.1
3+
Contact: linux-iio@vger.kernel.org
4+
Description:
5+
Raw (unscaled) range for acceleration readings. Unit after
6+
application of scale is m/s^2. Note that this doesn't affects
7+
the scale (which should be used when changing the maximum and
8+
minimum readable value affects also the reading scaling factor).
9+
10+
What: /sys/bus/iio/devices/iio:deviceX/in_anglvel_raw_range
11+
KernelVersion: 6.1
12+
Contact: linux-iio@vger.kernel.org
13+
Description:
14+
Range for angular velocity readings in radians per second. Note
15+
that this does not affects the scale (which should be used when
16+
changing the maximum and minimum readable value affects also the
17+
reading scaling factor).
18+
19+
What: /sys/bus/iio/devices/iio:deviceX/in_accel_raw_range_available
20+
KernelVersion: 6.1
21+
Contact: linux-iio@vger.kernel.org
22+
Description:
23+
List of allowed values for in_accel_raw_range attribute
24+
25+
What: /sys/bus/iio/devices/iio:deviceX/in_anglvel_raw_range_available
26+
KernelVersion: 6.1
27+
Contact: linux-iio@vger.kernel.org
28+
Description:
29+
List of allowed values for in_anglvel_raw_range attribute
30+
31+
What: /sys/bus/iio/devices/iio:deviceX/in_magn_calibration_fast_enable
32+
KernelVersion: 6.1
33+
Contact: linux-iio@vger.kernel.org
34+
Description:
35+
Can be 1 or 0. Enables/disables the "Fast Magnetometer
36+
Calibration" HW function.
37+
38+
What: /sys/bus/iio/devices/iio:deviceX/fusion_enable
39+
KernelVersion: 6.1
40+
Contact: linux-iio@vger.kernel.org
41+
Description:
42+
Can be 1 or 0. Enables/disables the "sensor fusion" (a.k.a.
43+
NDOF) HW function.
44+
45+
What: /sys/bus/iio/devices/iio:deviceX/calibration_data
46+
KernelVersion: 6.1
47+
Contact: linux-iio@vger.kernel.org
48+
Description:
49+
Reports the binary calibration data blob for the IMU sensors.
50+
51+
What: /sys/bus/iio/devices/iio:deviceX/in_accel_calibration_auto_status
52+
KernelVersion: 6.1
53+
Contact: linux-iio@vger.kernel.org
54+
Description:
55+
Reports the autocalibration status for the accelerometer sensor.
56+
Can be 0 (calibration non even enabled) or 1 to 5 where the greater
57+
the number, the better the calibration status.
58+
59+
What: /sys/bus/iio/devices/iio:deviceX/in_gyro_calibration_auto_status
60+
KernelVersion: 6.1
61+
Contact: linux-iio@vger.kernel.org
62+
Description:
63+
Reports the autocalibration status for the gyroscope sensor.
64+
Can be 0 (calibration non even enabled) or 1 to 5 where the greater
65+
the number, the better the calibration status.
66+
67+
What: /sys/bus/iio/devices/iio:deviceX/in_magn_calibration_auto_status
68+
KernelVersion: 6.1
69+
Contact: linux-iio@vger.kernel.org
70+
Description:
71+
Reports the autocalibration status for the magnetometer sensor.
72+
Can be 0 (calibration non even enabled) or 1 to 5 where the greater
73+
the number, the better the calibration status.
74+
75+
What: /sys/bus/iio/devices/iio:deviceX/sys_calibration_auto_status
76+
KernelVersion: 6.1
77+
Contact: linux-iio@vger.kernel.org
78+
Description:
79+
Reports the status for the IMU overall autocalibration.
80+
Can be 0 (calibration non even enabled) or 1 to 5 where the greater
81+
the number, the better the calibration status.

Documentation/devicetree/bindings/iio/accel/adi,adxl313.yaml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,24 @@
44
$id: http://devicetree.org/schemas/iio/accel/adi,adxl313.yaml#
55
$schema: http://devicetree.org/meta-schemas/core.yaml#
66

7-
title: Analog Devices ADXL313 3-Axis Digital Accelerometer
7+
title: Analog Devices ADXL312, ADXL313, and ADXL314 3-Axis Digital Accelerometers
88

99
maintainers:
1010
- Lucas Stankus <lucas.p.stankus@gmail.com>
1111

1212
description: |
13-
Analog Devices ADXL313 3-Axis Digital Accelerometer that supports
14-
both I2C & SPI interfaces.
13+
Analog Devices ADXL312, ADXL313, and ADXL314 3-Axis Digital Accelerometer that
14+
support both I2C & SPI interfaces.
15+
https://www.analog.com/en/products/adxl312.html
1516
https://www.analog.com/en/products/adxl313.html
17+
https://www.analog.com/en/products/adxl314.html
1618
1719
properties:
1820
compatible:
1921
enum:
22+
- adi,adxl312
2023
- adi,adxl313
24+
- adi,adxl314
2125

2226
reg:
2327
maxItems: 1

Documentation/devicetree/bindings/iio/adc/adi,ad7923.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,10 @@ properties:
3636
description: |
3737
The regulator supply for ADC reference voltage.
3838
39+
adi,range-double:
40+
description: Sets the analog input range from 0 to 2xVREF.
41+
type: boolean
42+
3943
'#address-cells':
4044
const: 1
4145

Documentation/devicetree/bindings/iio/adc/lltc,ltc2497.yaml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,14 @@ description: |
1313
16bit ADC supporting up to 16 single ended or 8 differential inputs.
1414
I2C interface.
1515
16+
https://www.analog.com/media/en/technical-documentation/data-sheets/2497fb.pdf
17+
https://www.analog.com/media/en/technical-documentation/data-sheets/2499fe.pdf
18+
1619
properties:
1720
compatible:
18-
const:
19-
lltc,ltc2497
21+
enum:
22+
- lltc,ltc2497
23+
- lltc,ltc2499
2024

2125
reg: true
2226
vref-supply: true

Documentation/devicetree/bindings/iio/adc/microchip,mcp3911.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,13 @@ properties:
3636
description: IRQ line of the ADC
3737
maxItems: 1
3838

39+
microchip,data-ready-hiz:
40+
description:
41+
Data Ready Pin Inactive State Control
42+
true = The DR pin state is high-impedance
43+
false = The DR pin state is logic high
44+
type: boolean
45+
3946
microchip,device-addr:
4047
description: Device address when multiple MCP3911 chips are present on the same SPI bus.
4148
$ref: /schemas/types.yaml#/definitions/uint32
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/iio/imu/bosch,bno055.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Bosch BNO055
8+
9+
maintainers:
10+
- Andrea Merello <andrea.merello@iit.it>
11+
12+
description: |
13+
Inertial Measurement Unit with Accelerometer, Gyroscope, Magnetometer and
14+
internal MCU for sensor fusion
15+
https://www.bosch-sensortec.com/products/smart-sensors/bno055/
16+
17+
properties:
18+
compatible:
19+
enum:
20+
- bosch,bno055
21+
22+
reg:
23+
maxItems: 1
24+
25+
reset-gpios:
26+
maxItems: 1
27+
28+
clocks:
29+
maxItems: 1
30+
31+
required:
32+
- compatible
33+
34+
additionalProperties: false
35+
36+
examples:
37+
- |
38+
#include <dt-bindings/gpio/gpio.h>
39+
serial {
40+
imu {
41+
compatible = "bosch,bno055";
42+
reset-gpios = <&gpio0 54 GPIO_ACTIVE_LOW>;
43+
clocks = <&imu_clk>;
44+
};
45+
};
46+
47+
- |
48+
#include <dt-bindings/gpio/gpio.h>
49+
i2c {
50+
#address-cells = <1>;
51+
#size-cells = <0>;
52+
53+
imu@28 {
54+
compatible = "bosch,bno055";
55+
reg = <0x28>;
56+
reset-gpios = <&gpio0 54 GPIO_ACTIVE_LOW>;
57+
clocks = <&imu_clk>;
58+
};
59+
};

Documentation/devicetree/bindings/iio/imu/st,lsm6dsx.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@ properties:
3535
- items:
3636
- const: st,asm330lhhx
3737
- const: st,lsm6dsr
38+
- items:
39+
- const: st,lsm6dstx
40+
- const: st,lsm6dst
3841

3942
reg:
4043
maxItems: 1

Documentation/devicetree/bindings/iio/pressure/bmp085.yaml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
$id: http://devicetree.org/schemas/iio/pressure/bmp085.yaml#
55
$schema: http://devicetree.org/meta-schemas/core.yaml#
66

7-
title: BMP085/BMP180/BMP280/BME280 pressure iio sensors
7+
title: BMP085/BMP180/BMP280/BME280/BMP380 pressure iio sensors
88

99
maintainers:
1010
- Andreas Klinger <ak@it-klinger.de>
@@ -16,6 +16,7 @@ description: |
1616
https://www.bosch-sensortec.com/bst/products/all_products/bmp180
1717
https://www.bosch-sensortec.com/bst/products/all_products/bmp280
1818
https://www.bosch-sensortec.com/bst/products/all_products/bme280
19+
https://www.bosch-sensortec.com/bst/products/all_products/bmp380
1920
2021
properties:
2122
compatible:
@@ -24,6 +25,7 @@ properties:
2425
- bosch,bmp180
2526
- bosch,bmp280
2627
- bosch,bme280
28+
- bosch,bmp380
2729

2830
reg:
2931
maxItems: 1

Documentation/devicetree/bindings/iio/st,st-sensors.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ properties:
7373
- description: STMicroelectronics Pressure Sensors
7474
enum:
7575
- st,lps001wp-press
76+
- st,lps22df
7677
- st,lps22hb-press
7778
- st,lps22hh
7879
- st,lps25h-press
@@ -141,6 +142,7 @@ allOf:
141142
- st,lis2mdl
142143
- st,lis3l02dq
143144
- st,lis3lv02dl-accel
145+
- st,lps22df
144146
- st,lps22hb-press
145147
- st,lps22hh
146148
- st,lps25h-press

0 commit comments

Comments
 (0)