summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2023-08-11 21:22:33 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2023-08-11 21:22:33 +0200
commit43fbd506498aefb696e4e338a517883fbd8b39ce (patch)
tree78cf3261ec2a44d8470683025f0622054a959d53
parentf90bebb36a0831f5769b65e45e39dd7bc5621a7e (diff)
parent14b7447cec15ee8dfdfe0da66ba1e280ded7e00a (diff)
downloadlinux-43fbd506498aefb696e4e338a517883fbd8b39ce.tar.gz
linux-43fbd506498aefb696e4e338a517883fbd8b39ce.tar.bz2
linux-43fbd506498aefb696e4e338a517883fbd8b39ce.zip
Merge tag 'iio-for-6.6a' of https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio into char-misc-next
Jonathan writes: 1st set of IIO new device support, features and cleanup for 6.6 New device support * adi,ad8366 - Add support for the HMC792 digital attenuator (mostly chip specific data) * alwinner,sun20i-gpadc - New driver for the integrated ADC on a number of allwinner SoCs including dt-binding documentation. * microchip,mcp4728 - New driver for this quad channel DAC. Includes dt-bindings. * miramems, da280 - Add ID for DA217 accelerometer which is compatible with the da280. * murata,irs-d200 - New driver for this passive infrared sensor typically used for human detection. Includes bindings and a few pieces of new ABI to cover a case of needing to count a number of repeats of an event before reporting it. * rohm,bu27008 - Add initial support for the BU27010 RGB + flickering sensor to this driver. Substantial refactoring was needed to enable this. Features * adi,admv8818 - Add mode that bypasses the input and output filters. * amlogic,meson - Support control of the MUX on channel 7, exposed as multiple channels. - Support channel labels. * sensirion,scd4x - Add pressure compensation. Controlled via an 'output' pressure channel. * ti,lmp92040 - Add IIO buffered supported (read via chrdev). * vishay,vcnl4000 - Add proximity interrupt support for vcnl4200. - Add proximity integration time control for vcnl4200. - Add illuminance integration time control for vcnl4040 and vcnl4200. - Add calibration bias, proximity and illuminance event period, and oversampling ratio control for vcnl4040 and vncl4200. Cleanup and minor fixes * core - Tidy up handling of set_trigger_state() callback return values to consistently assume no positive return values. - Use min() rather than min_t() in a case where types were clearly the same. - Drop some else statements that follow continue with a loop or a returns. - White space and comment format cleanup. - Use sysfs_match_string() helper to improve readability. - Use krealloc_array() to make it explicit a krealloc is for an array of structures, not just one. * tools - Tidy up potential overflow in array index. * tree wide - Fix up includes for DT related headers. - Drop some error prints in places where as similar error message is printed by the function being called. - Tidy up handling of return value from platform_get_irq() to no longer take into account 0 as a value that might be returned. Similar for fwnode_irq_get(). * adi,ad7192 - Add missing error check and improved debug logging. - Use sysfs_emit_at() rather than open coded variant. * adi,adis16475 - Drop unused scan element enum entries. - Specify that a few more devices support burst32 mode. * adi,admv1013 - Enable all required regulators and document as required in the dt-binding. * adi,admv1014 - Make all regulators required in the dt-binding as the device needs them all enabled. * adi,adxl313 - Fix wrong enum values being used in the i2c_device_id table. - Use i2c_get_match_data() to reduce open coded handling of the various id tables. * allwinner,gpadc - Make the kconfig text more specific to make space for separate drivers for other Allwinner devices. * amlogic,meson - Drop unused timestamp channels as no buffer support. - Various minor reorganizations to enable addition of support channel 7 MUX. - Initialize some default values to account for potential previous user since reboot. * qcom,spmi-adc5 - Add ADC5_GPIO2_100K_PU support to driver to line up with bindings. * qcom,spmi-adc7 - Use predefined channel ID definitions rather than values. * invensense, common - Factor out the timestamp handling to a module used by both mpu6050 and icm42600. * invensense,mpu6050 - Read as many FIFO elements as possible in one bus access. * men,s188 - Drop redundant initialization of driver owner field. * microchip,mcp4018 and mcp4531 - Use i2c_get_match_data() instead of open coding. Includes making the data format the same for the i2c_device_id and firmware match tables. * semtech,sx9310 - dt-bindings: Add reference to IIO schema to provide the label property. * semtech,sx9324 - dt-bindings: Add reference to IIO schema to provide the label property. * st,stm32-adc - Use devm_platform_get_and_ioremap_resource() instead of open coded version. * st,stm-lptimer-trigger - Drop setting platform drvdata as it wasn't then used. * ti,ads1015 - Fix wrong dt binding description of ti,datarate for some devices. * vishay,vcnl4200 - Move to switch statements for channel type checking to make later additions simpler. * tag 'iio-for-6.6a' of https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio: (73 commits) Documentation: ABI: testing: admv8818: add bypass drivers: iio: filter: admv8818: add bypass mode iio: light: bd27008: Support BD27010 RGB iio: light: bu27008: add chip info dt-bindings: iio: ROHM BU27010 RGBC + flickering sensor iio: add MCP4728 I2C DAC driver dt-bindings: iio: dac: add mcp4728.yaml drivers: iio: admv1013: add vcc regulators dt-bindings: iio: admv1013: add vcc regulators iio: trigger: stm32-lptimer-trigger: remove unneeded platform_set_drvdata() iio: adc: men_z188_adc: Remove redundant initialization owner in men_z188_driver dt-bindings: iio: admv1014: make all regs required iio: cdc: ad7150: relax return value check for IRQ get iio: mb1232: relax return value check for IRQ get iio: adc: fix the return value handle for platform_get_irq() tools: iio: iio_generic_buffer: Fix some integer type and calculation iio: potentiometer: mcp4531: Use i2c_get_match_data() iio: potentiometer: mcp4018: Use i2c_get_match_data() iio: core: Fix issues and style of the comments iio: core: Switch to krealloc_array() ...
-rw-r--r--Documentation/ABI/testing/sysfs-bus-iio16
-rw-r--r--Documentation/ABI/testing/sysfs-bus-iio-filter-admv88182
-rw-r--r--Documentation/devicetree/bindings/iio/adc/allwinner,sun20i-d1-gpadc.yaml91
-rw-r--r--Documentation/devicetree/bindings/iio/adc/ti,ads1015.yaml15
-rw-r--r--Documentation/devicetree/bindings/iio/dac/microchip,mcp4728.yaml49
-rw-r--r--Documentation/devicetree/bindings/iio/frequency/adi,admv1013.yaml60
-rw-r--r--Documentation/devicetree/bindings/iio/frequency/adi,admv1014.yaml8
-rw-r--r--Documentation/devicetree/bindings/iio/light/rohm,bu27010.yaml49
-rw-r--r--Documentation/devicetree/bindings/iio/proximity/murata,irsd200.yaml60
-rw-r--r--Documentation/devicetree/bindings/iio/proximity/semtech,sx9310.yaml5
-rw-r--r--Documentation/devicetree/bindings/iio/proximity/semtech,sx9324.yaml5
-rw-r--r--drivers/iio/accel/adxl313_i2c.c8
-rw-r--r--drivers/iio/accel/adxl355_i2c.c15
-rw-r--r--drivers/iio/accel/adxl372_spi.c1
-rw-r--r--drivers/iio/accel/bma180.c1
-rw-r--r--drivers/iio/accel/da280.c11
-rw-r--r--drivers/iio/accel/kxsd9-spi.c1
-rw-r--r--drivers/iio/accel/mma8452.c2
-rw-r--r--drivers/iio/adc/Kconfig12
-rw-r--r--drivers/iio/adc/Makefile1
-rw-r--r--drivers/iio/adc/ab8500-gpadc.c6
-rw-r--r--drivers/iio/adc/ad7124.c2
-rw-r--r--drivers/iio/adc/ad7192.c31
-rw-r--r--drivers/iio/adc/ad9467.c2
-rw-r--r--drivers/iio/adc/adi-axi-adc.c3
-rw-r--r--drivers/iio/adc/at91_adc.c1
-rw-r--r--drivers/iio/adc/bcm_iproc_adc.c4
-rw-r--r--drivers/iio/adc/cc10001_adc.c1
-rw-r--r--drivers/iio/adc/imx7d_adc.c2
-rw-r--r--drivers/iio/adc/ina2xx-adc.c2
-rw-r--r--drivers/iio/adc/lpc32xx_adc.c4
-rw-r--r--drivers/iio/adc/men_z188_adc.c1
-rw-r--r--drivers/iio/adc/meson_saradc.c243
-rw-r--r--drivers/iio/adc/npcm_adc.c4
-rw-r--r--drivers/iio/adc/palmas_gpadc.c7
-rw-r--r--drivers/iio/adc/qcom-spmi-adc5.c2
-rw-r--r--drivers/iio/adc/qcom-spmi-iadc.c1
-rw-r--r--drivers/iio/adc/rockchip_saradc.c3
-rw-r--r--drivers/iio/adc/sc27xx_adc.c1
-rw-r--r--drivers/iio/adc/spear_adc.c4
-rw-r--r--drivers/iio/adc/stm32-adc-core.c5
-rw-r--r--drivers/iio/adc/stm32-dfsdm-adc.c3
-rw-r--r--drivers/iio/adc/stm32-dfsdm-core.c4
-rw-r--r--drivers/iio/adc/stmpe-adc.c2
-rw-r--r--drivers/iio/adc/sun20i-gpadc-iio.c276
-rw-r--r--drivers/iio/adc/sun4i-gpadc-iio.c1
-rw-r--r--drivers/iio/adc/ti-lmp92064.c53
-rw-r--r--drivers/iio/adc/ti_am335x_adc.c1
-rw-r--r--drivers/iio/amplifiers/Kconfig1
-rw-r--r--drivers/iio/amplifiers/ad8366.c15
-rw-r--r--drivers/iio/cdc/ad7150.c10
-rw-r--r--drivers/iio/chemical/scd4x.c79
-rw-r--r--drivers/iio/common/Kconfig1
-rw-r--r--drivers/iio/common/Makefile1
-rw-r--r--drivers/iio/common/inv_sensors/Kconfig7
-rw-r--r--drivers/iio/common/inv_sensors/Makefile6
-rw-r--r--drivers/iio/common/inv_sensors/inv_sensors_timestamp.c (renamed from drivers/iio/imu/inv_icm42600/inv_icm42600_timestamp.c)100
-rw-r--r--drivers/iio/dac/Kconfig11
-rw-r--r--drivers/iio/dac/Makefile1
-rw-r--r--drivers/iio/dac/mcp4728.c618
-rw-r--r--drivers/iio/filter/admv8818.c65
-rw-r--r--drivers/iio/frequency/admv1013.c14
-rw-r--r--drivers/iio/imu/adis16475.c5
-rw-r--r--drivers/iio/imu/inv_icm42600/Kconfig1
-rw-r--r--drivers/iio/imu/inv_icm42600/Makefile1
-rw-r--r--drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c35
-rw-r--r--drivers/iio/imu/inv_icm42600/inv_icm42600_buffer.c33
-rw-r--r--drivers/iio/imu/inv_icm42600/inv_icm42600_core.c14
-rw-r--r--drivers/iio/imu/inv_icm42600/inv_icm42600_gyro.c35
-rw-r--r--drivers/iio/imu/inv_icm42600/inv_icm42600_timestamp.h85
-rw-r--r--drivers/iio/imu/inv_mpu6050/Kconfig1
-rw-r--r--drivers/iio/imu/inv_mpu6050/inv_mpu_core.c33
-rw-r--r--drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h22
-rw-r--r--drivers/iio/imu/inv_mpu6050/inv_mpu_ring.c102
-rw-r--r--drivers/iio/imu/inv_mpu6050/inv_mpu_trigger.c6
-rw-r--r--drivers/iio/industrialio-core.c161
-rw-r--r--drivers/iio/industrialio-event.c2
-rw-r--r--drivers/iio/industrialio-trigger.c2
-rw-r--r--drivers/iio/light/cm3605.c2
-rw-r--r--drivers/iio/light/rohm-bu27008.c630
-rw-r--r--drivers/iio/light/vcnl4000.c710
-rw-r--r--drivers/iio/potentiometer/mcp4018.c35
-rw-r--r--drivers/iio/potentiometer/mcp4531.c139
-rw-r--r--drivers/iio/proximity/Kconfig12
-rw-r--r--drivers/iio/proximity/Makefile1
-rw-r--r--drivers/iio/proximity/irsd200.c958
-rw-r--r--drivers/iio/proximity/isl29501.c2
-rw-r--r--drivers/iio/proximity/mb1232.c7
-rw-r--r--drivers/iio/temperature/mlx90614.c2
-rw-r--r--drivers/iio/trigger/stm32-lptimer-trigger.c9
-rw-r--r--include/dt-bindings/iio/qcom,spmi-adc7-pm8350.h88
-rw-r--r--include/dt-bindings/iio/qcom,spmi-adc7-pm8350b.h124
-rw-r--r--include/dt-bindings/iio/qcom,spmi-adc7-pmk8350.h50
-rw-r--r--include/dt-bindings/iio/qcom,spmi-adc7-pmr735a.h22
-rw-r--r--include/dt-bindings/iio/qcom,spmi-adc7-pmr735b.h22
-rw-r--r--include/linux/iio/common/inv_sensors_timestamp.h95
-rw-r--r--include/linux/iio/types.h2
-rw-r--r--tools/iio/iio_generic_buffer.c17
98 files changed, 4535 insertions, 940 deletions
diff --git a/Documentation/ABI/testing/sysfs-bus-iio b/Documentation/ABI/testing/sysfs-bus-iio
index 7140e8e7313f..a2854dc9a839 100644
--- a/Documentation/ABI/testing/sysfs-bus-iio
+++ b/Documentation/ABI/testing/sysfs-bus-iio
@@ -2163,3 +2163,19 @@ Contact: linux-iio@vger.kernel.org
Description:
An example format is 16-bytes, 2-digits-per-byte, HEX-string
representing the sensor unique ID number.
+
+What: /sys/.../events/in_proximity_thresh_either_runningperiod
+KernelVersion: 6.6
+Contact: linux-iio@vger.kernel.org
+Description:
+ A running period of time (in seconds) for which
+ in_proximity_thresh_either_runningcount amount of conditions
+ must occur before an event is generated. If direction is not
+ specified then this period applies to both directions.
+
+What: /sys/.../events/in_proximity_thresh_either_runningcount
+KernelVersion: 6.6
+Contact: linux-iio@vger.kernel.org
+Description:
+ Number of conditions that must occur, during a running
+ period, before an event is generated.
diff --git a/Documentation/ABI/testing/sysfs-bus-iio-filter-admv8818 b/Documentation/ABI/testing/sysfs-bus-iio-filter-admv8818
index f6c035752639..31dbb390573f 100644
--- a/Documentation/ABI/testing/sysfs-bus-iio-filter-admv8818
+++ b/Documentation/ABI/testing/sysfs-bus-iio-filter-admv8818
@@ -7,6 +7,8 @@ Description:
- auto -> Adjust bandpass filter to track changes in input clock rate.
- manual -> disable/unregister the clock rate notifier / input clock tracking.
+ - bypass -> bypass low pass filter, high pass filter and disable/unregister
+ the clock rate notifier
What: /sys/bus/iio/devices/iio:deviceX/filter_mode
KernelVersion:
diff --git a/Documentation/devicetree/bindings/iio/adc/allwinner,sun20i-d1-gpadc.yaml b/Documentation/devicetree/bindings/iio/adc/allwinner,sun20i-d1-gpadc.yaml
new file mode 100644
index 000000000000..7ef46c90ebc8
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/adc/allwinner,sun20i-d1-gpadc.yaml
@@ -0,0 +1,91 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/adc/allwinner,sun20i-d1-gpadc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Allwinner D1 General Purpose ADC
+
+maintainers:
+ - Maksim Kiselev <bigunclemax@gmail.com>
+
+properties:
+ compatible:
+ enum:
+ - allwinner,sun20i-d1-gpadc
+
+ "#io-channel-cells":
+ const: 1
+
+ "#address-cells":
+ const: 1
+
+ "#size-cells":
+ const: 0
+
+ clocks:
+ maxItems: 1
+
+ interrupts:
+ maxItems: 1
+
+ reg:
+ maxItems: 1
+
+ resets:
+ maxItems: 1
+
+patternProperties:
+ "^channel@[0-9a-f]+$":
+ $ref: adc.yaml
+ type: object
+ description:
+ Represents the internal channels of the ADC.
+
+ properties:
+ reg:
+ items:
+ minimum: 0
+ maximum: 15
+
+ required:
+ - reg
+
+ unevaluatedProperties: false
+
+required:
+ - "#io-channel-cells"
+ - clocks
+ - compatible
+ - interrupts
+ - reg
+ - resets
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/clock/sun20i-d1-ccu.h>
+ #include <dt-bindings/reset/sun20i-d1-ccu.h>
+ #include <dt-bindings/interrupt-controller/irq.h>
+
+ gpadc: adc@2009000 {
+ compatible = "allwinner,sun20i-d1-gpadc";
+ reg = <0x2009000 0x400>;
+ clocks = <&ccu CLK_BUS_GPADC>;
+ resets = <&ccu RST_BUS_GPADC>;
+ interrupts = <73 IRQ_TYPE_LEVEL_HIGH>;
+ #io-channel-cells = <1>;
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ channel@0 {
+ reg = <0>;
+ };
+
+ channel@1 {
+ reg = <1>;
+ };
+ };
+...
diff --git a/Documentation/devicetree/bindings/iio/adc/ti,ads1015.yaml b/Documentation/devicetree/bindings/iio/adc/ti,ads1015.yaml
index 2127d639a768..e004659099c1 100644
--- a/Documentation/devicetree/bindings/iio/adc/ti,ads1015.yaml
+++ b/Documentation/devicetree/bindings/iio/adc/ti,ads1015.yaml
@@ -78,9 +78,9 @@ patternProperties:
ti,datarate:
$ref: /schemas/types.yaml#/definitions/uint32
minimum: 0
- maximum: 6
+ maximum: 7
description: |
- Data acquisition rate in samples per second
+ Data acquisition rate in samples per second for ADS1015, TLA2024
0: 128
1: 250
2: 490
@@ -88,6 +88,17 @@ patternProperties:
4: 1600 (default)
5: 2400
6: 3300
+ 7: 3300
+
+ Data acquisition rate in samples per second for ADS1115
+ 0: 8
+ 1: 16
+ 2: 32
+ 3: 64
+ 4: 128 (default)
+ 5: 250
+ 6: 475
+ 7: 860
required:
- reg
diff --git a/Documentation/devicetree/bindings/iio/dac/microchip,mcp4728.yaml b/Documentation/devicetree/bindings/iio/dac/microchip,mcp4728.yaml
new file mode 100644
index 000000000000..99831d7f1c16
--- /dev/null
+++ b/