Char/Misc/IIO/Binder changes for 6.18-rc1
Here is the big set of char/misc/iio and other driver subsystem changes for 6.18-rc1. Loads of different stuff in here, it was a busy development cycle in lots of different subsystems, with over 27k new lines added to the tree. Included in here are: - IIO updates including new drivers, reworking of existing apis, and other goodness in the sensor subsystems - MEI driver updates and additions - NVMEM driver updates - slimbus removal for an unused driver and some other minor updates - coresight driver updates and additions - MHI driver updates - comedi driver updates and fixes - extcon driver updates - interconnect driver additions - eeprom driver updates and fixes - minor UIO driver updates - tiny W1 driver updates But the majority of new code is in the rust bindings and additions, which includes: - misc driver rust binding updates for read/write support, we can now write "normal" misc drivers in rust fully, and the sample driver shows how this can be done. - Initial framework for USB driver rust bindings, which are disabled for now in the build, due to limited support, but coming in through this tree due to dependencies on other rust binding changes that were in here. I'll be enabling these back on in the build in the usb.git tree after -rc1 is out so that developers can continue to work on these in linux-next over the next development cycle. - Android Binder driver implemented in Rust. This is the big one, and was driving a huge majority of the rust binding work over the past years. Right now there are 2 binder drivers in the kernel, selected only at build time as to which one to use as binder wants to be included in the system at boot time. The binder C maintainers all agreed on this, as eventually, they want the C code to be removed from the tree, but it will take a few releases to get there while both are maintained to ensure that the rust implementation is fully stable and compliant with the existing userspace apis. All of these have been in linux-next for a while, with only minor merge issues showing up (you will hit them as well.) Just accept both sides of the merge, it's just some header and include file lines, nothing major. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -----BEGIN PGP SIGNATURE----- iG0EABECAC0WIQT0tgzFv3jCIUoxPcsxR9QN2y37KQUCaOEffA8cZ3JlZ0Brcm9h aC5jb20ACgkQMUfUDdst+ynI/wCgjLFWH9B+huZI5JQb06NShggZod4AnjFFJ4ID macHNv5/SjpAh7H5ssBU =cjWS -----END PGP SIGNATURE----- Merge tag 'char-misc-6.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc Pull Char/Misc/IIO/Binder updates from Greg KH: "Here is the big set of char/misc/iio and other driver subsystem changes for 6.18-rc1. Loads of different stuff in here, it was a busy development cycle in lots of different subsystems, with over 27k new lines added to the tree. Included in here are: - IIO updates including new drivers, reworking of existing apis, and other goodness in the sensor subsystems - MEI driver updates and additions - NVMEM driver updates - slimbus removal for an unused driver and some other minor updates - coresight driver updates and additions - MHI driver updates - comedi driver updates and fixes - extcon driver updates - interconnect driver additions - eeprom driver updates and fixes - minor UIO driver updates - tiny W1 driver updates But the majority of new code is in the rust bindings and additions, which includes: - misc driver rust binding updates for read/write support, we can now write "normal" misc drivers in rust fully, and the sample driver shows how this can be done. - Initial framework for USB driver rust bindings, which are disabled for now in the build, due to limited support, but coming in through this tree due to dependencies on other rust binding changes that were in here. I'll be enabling these back on in the build in the usb.git tree after -rc1 is out so that developers can continue to work on these in linux-next over the next development cycle. - Android Binder driver implemented in Rust. This is the big one, and was driving a huge majority of the rust binding work over the past years. Right now there are two binder drivers in the kernel, selected only at build time as to which one to use as binder wants to be included in the system at boot time. The binder C maintainers all agreed on this, as eventually, they want the C code to be removed from the tree, but it will take a few releases to get there while both are maintained to ensure that the rust implementation is fully stable and compliant with the existing userspace apis. All of these have been in linux-next for a while" * tag 'char-misc-6.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (320 commits) rust: usb: keep usb::Device private for now rust: usb: don't retain device context for the interface parent USB: disable rust bindings from the build for now samples: rust: add a USB driver sample rust: usb: add basic USB abstractions coresight: Add label sysfs node support dt-bindings: arm: Add label in the coresight components coresight: tnoc: add new AMBA ID to support Trace Noc V2 coresight: Fix incorrect handling for return value of devm_kzalloc coresight: tpda: fix the logic to setup the element size coresight: trbe: Return NULL pointer for allocation failures coresight: Refactor runtime PM coresight: Make clock sequence consistent coresight: Refactor driver data allocation coresight: Consolidate clock enabling coresight: Avoid enable programming clock duplicately coresight: Appropriately disable trace bus clocks coresight: Appropriately disable programming clocks coresight: etm4x: Support atclk coresight: catu: Support atclk ...
This commit is contained in:
commit
6093a688a0
|
@ -239,3 +239,9 @@ Date: March 2020
|
|||
KernelVersion: 5.7
|
||||
Contact: Mike Leach or Mathieu Poirier
|
||||
Description: (Write) Clear all channel / trigger programming.
|
||||
|
||||
What: /sys/bus/coresight/devices/<cti-name>/label
|
||||
Date: Aug 2025
|
||||
KernelVersion 6.18
|
||||
Contact: Mao Jinlong <quic_jinlmao@quicinc.com>
|
||||
Description: (Read) Show hardware context information of device.
|
||||
|
|
|
@ -13,3 +13,9 @@ KernelVersion: 6.14
|
|||
Contact: Mao Jinlong <quic_jinlmao@quicinc.com>
|
||||
Description: (R) Show the trace ID that will appear in the trace stream
|
||||
coming from this trace entity.
|
||||
|
||||
What: /sys/bus/coresight/devices/dummy_source<N>/label
|
||||
Date: Aug 2025
|
||||
KernelVersion 6.18
|
||||
Contact: Mao Jinlong <quic_jinlmao@quicinc.com>
|
||||
Description: (Read) Show hardware context information of device.
|
||||
|
|
|
@ -19,6 +19,12 @@ Description: (RW) Disables write access to the Trace RAM by stopping the
|
|||
into the Trace RAM following the trigger event is equal to the
|
||||
value stored in this register+1 (from ARM ETB-TRM).
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etb/label
|
||||
Date: Aug 2025
|
||||
KernelVersion 6.18
|
||||
Contact: Mao Jinlong <quic_jinlmao@quicinc.com>
|
||||
Description: (Read) Show hardware context information of device.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.etb/mgmt/rdp
|
||||
Date: March 2016
|
||||
KernelVersion: 4.7
|
||||
|
|
|
@ -251,6 +251,12 @@ KernelVersion: 4.4
|
|||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (RO) Holds the cpu number this tracer is affined to.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.[etm|ptm]/label
|
||||
Date: Aug 2025
|
||||
KernelVersion 6.18
|
||||
Contact: Mao Jinlong <quic_jinlmao@quicinc.com>
|
||||
Description: (Read) Show hardware context information of device.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.[etm|ptm]/mgmt/etmccr
|
||||
Date: September 2015
|
||||
KernelVersion: 4.4
|
||||
|
|
|
@ -329,6 +329,12 @@ Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
|||
Description: (RW) Access the selected single show PE comparator control
|
||||
register.
|
||||
|
||||
What: /sys/bus/coresight/devices/etm<N>/label
|
||||
Date: Aug 2025
|
||||
KernelVersion 6.18
|
||||
Contact: Mao Jinlong <quic_jinlmao@quicinc.com>
|
||||
Description: (Read) Show hardware context information of device.
|
||||
|
||||
What: /sys/bus/coresight/devices/etm<N>/mgmt/trcoslsr
|
||||
Date: April 2015
|
||||
KernelVersion: 4.01
|
||||
|
|
|
@ -10,3 +10,9 @@ Date: November 2014
|
|||
KernelVersion: 3.19
|
||||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (RW) Defines input port priority order.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.funnel/label
|
||||
Date: Aug 2025
|
||||
KernelVersion 6.18
|
||||
Contact: Mao Jinlong <quic_jinlmao@quicinc.com>
|
||||
Description: (Read) Show hardware context information of device.
|
||||
|
|
|
@ -51,3 +51,9 @@ KernelVersion: 4.7
|
|||
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
|
||||
Description: (RW) Holds the trace ID that will appear in the trace stream
|
||||
coming from this trace entity.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.stm/label
|
||||
Date: Aug 2025
|
||||
KernelVersion 6.18
|
||||
Contact: Mao Jinlong <quic_jinlmao@quicinc.com>
|
||||
Description: (Read) Show hardware context information of device.
|
||||
|
|
|
@ -107,3 +107,9 @@ Contact: Anshuman Khandual <anshuman.khandual@arm.com>
|
|||
Description: (RW) Current Coresight TMC-ETR buffer mode selected. But user could
|
||||
only provide a mode which is supported for a given ETR device. This
|
||||
file is available only for TMC ETR devices.
|
||||
|
||||
What: /sys/bus/coresight/devices/<memory_map>.tmc/label
|
||||
Date: Aug 2025
|
||||
KernelVersion 6.18
|
||||
Contact: Mao Jinlong <quic_jinlmao@quicinc.com>
|
||||
Description: (Read) Show hardware context information of device.
|
||||
|
|
|
@ -272,3 +272,9 @@ KernelVersion 6.15
|
|||
Contact: Jinlong Mao (QUIC) <quic_jinlmao@quicinc.com>, Tao Zhang (QUIC) <quic_taozha@quicinc.com>
|
||||
Description:
|
||||
(RW) Set/Get the enablement of the individual lane.
|
||||
|
||||
What: /sys/bus/coresight/devices/<tpdm-name>/label
|
||||
Date: Aug 2025
|
||||
KernelVersion 6.18
|
||||
Contact: Mao Jinlong <quic_jinlmao@quicinc.com>
|
||||
Description: (Read) Show hardware context information of device.
|
||||
|
|
|
@ -12,3 +12,9 @@ Contact: Anshuman Khandual <anshuman.khandual@arm.com>
|
|||
Description: (Read) Shows if TRBE updates in the memory are with access
|
||||
and dirty flag updates as well. This value is fetched from
|
||||
the TRBIDR register.
|
||||
|
||||
What: /sys/bus/coresight/devices/trbe<cpu>/label
|
||||
Date: Aug 2025
|
||||
KernelVersion 6.18
|
||||
Contact: Mao Jinlong <quic_jinlmao@quicinc.com>
|
||||
Description: (Read) Show hardware context information of device.
|
||||
|
|
|
@ -309,26 +309,26 @@ Description:
|
|||
|
||||
What: /sys/bus/counter/devices/counterX/cascade_counts_enable_component_id
|
||||
What: /sys/bus/counter/devices/counterX/external_input_phase_clock_select_component_id
|
||||
What: /sys/bus/counter/devices/counterX/countY/compare_component_id
|
||||
What: /sys/bus/counter/devices/counterX/countY/capture_component_id
|
||||
What: /sys/bus/counter/devices/counterX/countY/ceiling_component_id
|
||||
What: /sys/bus/counter/devices/counterX/countY/floor_component_id
|
||||
What: /sys/bus/counter/devices/counterX/countY/compare_component_id
|
||||
What: /sys/bus/counter/devices/counterX/countY/count_mode_component_id
|
||||
What: /sys/bus/counter/devices/counterX/countY/direction_component_id
|
||||
What: /sys/bus/counter/devices/counterX/countY/enable_component_id
|
||||
What: /sys/bus/counter/devices/counterX/countY/error_noise_component_id
|
||||
What: /sys/bus/counter/devices/counterX/countY/floor_component_id
|
||||
What: /sys/bus/counter/devices/counterX/countY/num_overflows_component_id
|
||||
What: /sys/bus/counter/devices/counterX/countY/prescaler_component_id
|
||||
What: /sys/bus/counter/devices/counterX/countY/preset_component_id
|
||||
What: /sys/bus/counter/devices/counterX/countY/preset_enable_component_id
|
||||
What: /sys/bus/counter/devices/counterX/countY/signalZ_action_component_id
|
||||
What: /sys/bus/counter/devices/counterX/countY/num_overflows_component_id
|
||||
What: /sys/bus/counter/devices/counterX/signalY/cable_fault_component_id
|
||||
What: /sys/bus/counter/devices/counterX/signalY/cable_fault_enable_component_id
|
||||
What: /sys/bus/counter/devices/counterX/signalY/filter_clock_prescaler_component_id
|
||||
What: /sys/bus/counter/devices/counterX/signalY/frequency_component_id
|
||||
What: /sys/bus/counter/devices/counterX/signalY/index_polarity_component_id
|
||||
What: /sys/bus/counter/devices/counterX/signalY/polarity_component_id
|
||||
What: /sys/bus/counter/devices/counterX/signalY/synchronous_mode_component_id
|
||||
What: /sys/bus/counter/devices/counterX/signalY/frequency_component_id
|
||||
KernelVersion: 5.16
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
|
|
|
@ -0,0 +1,100 @@
|
|||
What: /sys/bus/i2c/devices/<busnum>-<primary-addr>/unlock
|
||||
Date: 2025-07-04
|
||||
KernelVersion: 6.17
|
||||
Contact: Abd-Alrhman Masalkhi <abd.masalkhi@gmail.com>
|
||||
Description:
|
||||
Write-only attribute used to present a password and unlock
|
||||
access to protected areas of the M24LR chip, including
|
||||
configuration registers such as the Sector Security Status
|
||||
(SSS) bytes. A valid password must be written to enable write
|
||||
access to these regions via the I2C interface.
|
||||
|
||||
Format:
|
||||
- Hexadecimal string representing a 32-bit (4-byte) password
|
||||
- Accepts 1 to 8 hex digits (e.g., "c", "1F", "a1b2c3d4")
|
||||
- No "0x" prefix, whitespace, or trailing newline
|
||||
- Case-insensitive
|
||||
|
||||
Behavior:
|
||||
- If the password matches the internal stored value,
|
||||
access to protected memory/configuration is granted
|
||||
- If the password does not match the internally stored value,
|
||||
it will fail silently
|
||||
|
||||
What: /sys/bus/i2c/devices/<busnum>-<primary-addr>/new_pass
|
||||
Date: 2025-07-04
|
||||
KernelVersion: 6.17
|
||||
Contact: Abd-Alrhman Masalkhi <abd.masalkhi@gmail.com>
|
||||
Description:
|
||||
Write-only attribute used to update the password required to
|
||||
unlock the M24LR chip.
|
||||
|
||||
Format:
|
||||
- Hexadecimal string representing a new 32-bit password
|
||||
- Accepts 1 to 8 hex digits (e.g., "1A", "ffff", "c0ffee00")
|
||||
- No "0x" prefix, whitespace, or trailing newline
|
||||
- Case-insensitive
|
||||
|
||||
Behavior:
|
||||
- Overwrites the current password stored in the I2C password
|
||||
register
|
||||
- Requires the device to be unlocked before changing the
|
||||
password
|
||||
- If the device is locked, the write silently fails
|
||||
|
||||
What: /sys/bus/i2c/devices/<busnum>-<primary-addr>/uid
|
||||
Date: 2025-07-04
|
||||
KernelVersion: 6.17
|
||||
Contact: Abd-Alrhman Masalkhi <abd.masalkhi@gmail.com>
|
||||
Description:
|
||||
Read-only attribute that exposes the 8-byte unique identifier
|
||||
programmed into the M24LR chip at the factory.
|
||||
|
||||
Format:
|
||||
- Lowercase hexadecimal string representing a 64-bit value
|
||||
- 1 to 16 hex digits (e.g., "e00204f12345678")
|
||||
- No "0x" prefix
|
||||
- Includes a trailing newline
|
||||
|
||||
What: /sys/bus/i2c/devices/<busnum>-<primary-addr>/total_sectors
|
||||
Date: 2025-07-04
|
||||
KernelVersion: 6.17
|
||||
Contact: Abd-Alrhman Masalkhi <abd.masalkhi@gmail.com>
|
||||
Description:
|
||||
Read-only attribute that exposes the total number of EEPROM
|
||||
sectors available in the M24LR chip.
|
||||
|
||||
Format:
|
||||
- 1 to 2 hex digits (e.g. "F")
|
||||
- No "0x" prefix
|
||||
- Includes a trailing newline
|
||||
|
||||
Notes:
|
||||
- Value is encoded by the chip and corresponds to the EEPROM
|
||||
size (e.g., 3 = 4 kbit for M24LR04E-R)
|
||||
|
||||
What: /sys/bus/i2c/devices/<busnum>-<primary-addr>/sss
|
||||
Date: 2025-07-04
|
||||
KernelVersion: 6.17
|
||||
Contact: Abd-Alrhman Masalkhi <abd.masalkhi@gmail.com>
|
||||
Description:
|
||||
Read/write binary attribute representing the Sector Security
|
||||
Status (SSS) bytes for all EEPROM sectors in STMicroelectronics
|
||||
M24LR chips.
|
||||
|
||||
Each EEPROM sector has one SSS byte, which controls I2C and
|
||||
RF access through protection bits and optional password
|
||||
authentication.
|
||||
|
||||
Format:
|
||||
- The file contains one byte per EEPROM sector
|
||||
- Byte at offset N corresponds to sector N
|
||||
- Binary access only; use tools like dd, Python, or C that
|
||||
support byte-level I/O and offset control.
|
||||
|
||||
Notes:
|
||||
- The number of valid bytes in this file is equal to the
|
||||
value exposed by 'total_sectors' file
|
||||
- Write access requires prior password authentication in
|
||||
I2C mode
|
||||
- Refer to the M24LR datasheet for full SSS bit layout
|
|
@ -167,7 +167,18 @@ Description:
|
|||
is required is a consistent labeling. Units after application
|
||||
of scale and offset are millivolts.
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_altvoltageY_rms_raw
|
||||
KernelVersion: 6.18
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
Raw (unscaled) Root Mean Square (RMS) voltage measurement from
|
||||
channel Y. Units after application of scale and offset are
|
||||
millivolts.
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_powerY_raw
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_powerY_active_raw
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_powerY_reactive_raw
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_powerY_apparent_raw
|
||||
KernelVersion: 4.5
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
|
@ -176,6 +187,13 @@ Description:
|
|||
unique to allow association with event codes. Units after
|
||||
application of scale and offset are milliwatts.
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_powerY_powerfactor
|
||||
KernelVersion: 6.18
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
Power factor measurement from channel Y. Power factor is the
|
||||
ratio of active power to apparent power. The value is unitless.
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_capacitanceY_raw
|
||||
KernelVersion: 3.2
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
|
@ -1569,6 +1587,9 @@ Description:
|
|||
|
||||
What: /sys/.../iio:deviceX/in_energy_input
|
||||
What: /sys/.../iio:deviceX/in_energy_raw
|
||||
What: /sys/.../iio:deviceX/in_energyY_active_raw
|
||||
What: /sys/.../iio:deviceX/in_energyY_reactive_raw
|
||||
What: /sys/.../iio:deviceX/in_energyY_apparent_raw
|
||||
KernelVersion: 4.0
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
|
@ -1707,6 +1728,14 @@ Description:
|
|||
component of the signal while the 'q' channel contains the quadrature
|
||||
component.
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_altcurrentY_rms_raw
|
||||
KernelVersion: 6.18
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
Raw (unscaled no bias removal etc.) Root Mean Square (RMS) current
|
||||
measurement from channel Y. Units after application of scale and
|
||||
offset are milliamps.
|
||||
|
||||
What: /sys/.../iio:deviceX/in_energy_en
|
||||
What: /sys/.../iio:deviceX/in_distance_en
|
||||
What: /sys/.../iio:deviceX/in_velocity_sqrt(x^2+y^2+z^2)_en
|
||||
|
@ -2281,21 +2310,28 @@ Description:
|
|||
conversion time. Poor noise performance.
|
||||
* "sinc3" - The digital sinc3 filter. Moderate 1st
|
||||
conversion time. Good noise performance.
|
||||
* "sinc4" - Sinc 4. Excellent noise performance. Long
|
||||
1st conversion time.
|
||||
* "sinc5" - The digital sinc5 filter. Excellent noise
|
||||
performance
|
||||
* "sinc4+sinc1" - Sinc4 + averaging by 8. Low 1st conversion
|
||||
time.
|
||||
* "sinc3+rej60" - Sinc3 + 60Hz rejection.
|
||||
* "sinc3+sinc1" - Sinc3 + averaging by 8. Low 1st conversion
|
||||
time.
|
||||
* "sinc3+pf1" - Sinc3 + device specific Post Filter 1.
|
||||
* "sinc3+pf2" - Sinc3 + device specific Post Filter 2.
|
||||
* "sinc3+pf3" - Sinc3 + device specific Post Filter 3.
|
||||
* "sinc3+pf4" - Sinc3 + device specific Post Filter 4.
|
||||
* "sinc5+pf1" - Sinc5 + device specific Post Filter 1.
|
||||
* "sinc3+rej60" - Sinc3 + 60Hz rejection.
|
||||
* "sinc3+sinc1" - Sinc3 + averaging by 8. Low 1st conversion
|
||||
time.
|
||||
* "sinc4" - Sinc 4. Excellent noise performance. Long
|
||||
1st conversion time.
|
||||
* "sinc4+lp" - Sinc4 + Low Pass Filter.
|
||||
* "sinc4+sinc1" - Sinc4 + averaging by 8. Low 1st conversion
|
||||
time.
|
||||
* "sinc4+rej60" - Sinc4 + 60Hz rejection.
|
||||
* "sinc5" - The digital sinc5 filter. Excellent noise
|
||||
performance
|
||||
* "sinc5+avg" - Sinc5 + averaging by 4.
|
||||
* "sinc5+pf1" - Sinc5 + device specific Post Filter 1.
|
||||
* "sinc5+sinc1" - Sinc5 + Sinc1.
|
||||
* "sinc5+sinc1+pf1" - Sinc5 + Sinc1 + device specific Post Filter 1.
|
||||
* "sinc5+sinc1+pf2" - Sinc5 + Sinc1 + device specific Post Filter 2.
|
||||
* "sinc5+sinc1+pf3" - Sinc5 + Sinc1 + device specific Post Filter 3.
|
||||
* "sinc5+sinc1+pf4" - Sinc5 + Sinc1 + device specific Post Filter 4.
|
||||
* "wideband" - filter with wideband low ripple passband
|
||||
and sharp transition band.
|
||||
|
||||
|
|
|
@ -7,16 +7,6 @@ Description:
|
|||
corresponding calibration offsets can be read from `*_calibbias`
|
||||
entries.
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/location
|
||||
Date: July 2015
|
||||
KernelVersion: 4.7
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
This attribute returns a string with the physical location where
|
||||
the motion sensor is placed. For example, in a laptop a motion
|
||||
sensor can be located on the base or on the lid. Current valid
|
||||
values are 'base' and 'lid'.
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/id
|
||||
Date: September 2017
|
||||
KernelVersion: 4.14
|
||||
|
|
|
@ -98,6 +98,10 @@ properties:
|
|||
power-domains:
|
||||
maxItems: 1
|
||||
|
||||
label:
|
||||
description:
|
||||
Description of a coresight device.
|
||||
|
||||
arm,cti-ctm-id:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description:
|
||||
|
|
|
@ -39,6 +39,10 @@ properties:
|
|||
enum:
|
||||
- arm,coresight-dummy-sink
|
||||
|
||||
label:
|
||||
description:
|
||||
Description of a coresight device.
|
||||
|
||||
in-ports:
|
||||
$ref: /schemas/graph.yaml#/properties/ports
|
||||
|
||||
|
|
|
@ -38,6 +38,10 @@ properties:
|
|||
enum:
|
||||
- arm,coresight-dummy-source
|
||||
|
||||
label:
|
||||
description:
|
||||
Description of a coresight device.
|
||||
|
||||
arm,static-trace-id:
|
||||
description: If dummy source needs static id support, use this to set trace id.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
|
|
|
@ -57,6 +57,10 @@ properties:
|
|||
power-domains:
|
||||
maxItems: 1
|
||||
|
||||
label:
|
||||
description:
|
||||
Description of a coresight device.
|
||||
|
||||
in-ports:
|
||||
$ref: /schemas/graph.yaml#/properties/ports
|
||||
|
||||
|
|
|
@ -54,6 +54,10 @@ properties:
|
|||
- const: apb_pclk
|
||||
- const: atclk
|
||||
|
||||
label:
|
||||
description:
|
||||
Description of a coresight device.
|
||||
|
||||
power-domains:
|
||||
maxItems: 1
|
||||
|
||||
|
|
|
@ -54,6 +54,10 @@ properties:
|
|||
- const: apb_pclk
|
||||
- const: atclk
|
||||
|
||||
label:
|
||||
description:
|
||||
Description of a coresight device.
|
||||
|
||||
power-domains:
|
||||
maxItems: 1
|
||||
|
||||
|
|
|
@ -85,6 +85,10 @@ properties:
|
|||
CPU powers down the coresight component also powers down and loses its
|
||||
context.
|
||||
|
||||
label:
|
||||
description:
|
||||
Description of a coresight device.
|
||||
|
||||
arm,cp14:
|
||||
type: boolean
|
||||
description:
|
||||
|
|
|
@ -30,6 +30,10 @@ properties:
|
|||
power-domains:
|
||||
maxItems: 1
|
||||
|
||||
label:
|
||||
description:
|
||||
Description of a coresight device.
|
||||
|
||||
in-ports:
|
||||
$ref: /schemas/graph.yaml#/properties/ports
|
||||
|
||||
|
|
|
@ -43,6 +43,10 @@ properties:
|
|||
- const: dbg_trc
|
||||
- const: dbg_apb
|
||||
|
||||
label:
|
||||
description:
|
||||
Description of a coresight device.
|
||||
|
||||
in-ports:
|
||||
$ref: /schemas/graph.yaml#/properties/ports
|
||||
additionalProperties: false
|
||||
|
|
|
@ -55,6 +55,10 @@ properties:
|
|||
- const: apb_pclk
|
||||
- const: atclk
|
||||
|
||||
label:
|
||||
description:
|
||||
Description of a coresight device.
|
||||
|
||||
iommus:
|
||||
maxItems: 1
|
||||
|
||||
|
|
|
@ -54,6 +54,10 @@ properties:
|
|||
- const: apb_pclk
|
||||
- const: atclk
|
||||
|
||||
label:
|
||||
description:
|
||||
Description of a coresight device.
|
||||
|
||||
power-domains:
|
||||
maxItems: 1
|
||||
|
||||
|
|
|
@ -39,6 +39,10 @@ properties:
|
|||
items:
|
||||
- const: apb
|
||||
|
||||
label:
|
||||
description:
|
||||
Description of a coresight device.
|
||||
|
||||
in-ports:
|
||||
$ref: /schemas/graph.yaml#/properties/ports
|
||||
|
||||
|
|
|
@ -20,6 +20,10 @@ properties:
|
|||
compatible:
|
||||
const: qcom,coresight-remote-etm
|
||||
|
||||
label:
|
||||
description:
|
||||
Description of a coresight device.
|
||||
|
||||
out-ports:
|
||||
$ref: /schemas/graph.yaml#/properties/ports
|
||||
additionalProperties: false
|
||||
|
|
|
@ -0,0 +1,113 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/arm/qcom,coresight-tnoc.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Qualcomm Trace Network On Chip - TNOC
|
||||
|
||||
maintainers:
|
||||
- Yuanfang Zhang <quic_yuanfang@quicinc.com>
|
||||
|
||||
description: >
|
||||
The Trace Network On Chip (TNOC) is an integration hierarchy hardware
|
||||
component that integrates the functionalities of TPDA and funnels.
|
||||
|
||||
It sits in the different subsystem of SOC and aggregates the trace and
|
||||
transports it to Aggregation TNOC or to coresight trace sink eventually.
|
||||
TNOC embeds bridges for all the interfaces APB, ATB, TPDA and NTS (Narrow
|
||||
Time Stamp).
|
||||
|
||||
TNOC can take inputs from different trace sources i.e. ATB, TPDM.
|
||||
|
||||
Note this binding is specifically intended for Aggregator TNOC instances.
|
||||
|
||||
# Need a custom select here or 'arm,primecell' will match on lots of nodes
|
||||
select:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- qcom,coresight-tnoc
|
||||
required:
|
||||
- compatible
|
||||
|
||||
properties:
|
||||
$nodename:
|
||||
pattern: "^tn(@[0-9a-f]+)$"
|
||||
|
||||
compatible:
|
||||
items:
|
||||
- const: qcom,coresight-tnoc
|
||||
- const: arm,primecell
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: apb_pclk
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: APB register access clock
|
||||
|
||||
in-ports:
|
||||
$ref: /schemas/graph.yaml#/properties/ports
|
||||
|
||||
patternProperties:
|
||||
'^port(@[0-9a-f]{1,2})?$':
|
||||
description: Input connections from CoreSight Trace Bus
|
||||
$ref: /schemas/graph.yaml#/properties/port
|
||||
|
||||
out-ports:
|
||||
$ref: /schemas/graph.yaml#/properties/ports
|
||||
additionalProperties: false
|
||||
|
||||
properties:
|
||||
port:
|
||||
description:
|
||||
Output connection to CoreSight Trace Bus
|
||||
$ref: /schemas/graph.yaml#/properties/port
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
- clock-names
|
||||
- in-ports
|
||||
- out-ports
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
tn@109ab000 {
|
||||
compatible = "qcom,coresight-tnoc", "arm,primecell";
|
||||
reg = <0x109ab000 0x4200>;
|
||||
|
||||
clocks = <&aoss_qmp>;
|
||||
clock-names = "apb_pclk";
|
||||
|
||||
in-ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
|
||||
tn_ag_in_tpdm_gcc: endpoint {
|
||||
remote-endpoint = <&tpdm_gcc_out_tn_ag>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
out-ports {
|
||||
port {
|
||||
tn_ag_out_funnel_in1: endpoint {
|
||||
remote-endpoint = <&funnel_in1_in_tn_ag>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
...
|
|
@ -64,6 +64,10 @@ properties:
|
|||
items:
|
||||
- const: apb_pclk
|
||||
|
||||
label:
|
||||
description:
|
||||
Description of a coresight device.
|
||||
|
||||
in-ports:
|
||||
description: |
|
||||
Input connections from TPDM to TPDA
|
||||
|
|
|
@ -76,6 +76,10 @@ properties:
|
|||
minimum: 0
|
||||
maximum: 32
|
||||
|
||||
label:
|
||||
description:
|
||||
Description of a coresight device.
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
|
|
|
@ -56,6 +56,7 @@ properties:
|
|||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description:
|
||||
Total eeprom size in bytes.
|
||||
Also used for FRAMs without device ID where the size cannot be detected.
|
||||
|
||||
address-width:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
|
@ -146,4 +147,11 @@ examples:
|
|||
reg = <1>;
|
||||
spi-max-frequency = <40000000>;
|
||||
};
|
||||
|
||||
fram@2 {
|
||||
compatible = "cypress,fm25", "atmel,at25";
|
||||
reg = <2>;
|
||||
spi-max-frequency = <20000000>;
|
||||
size = <2048>;
|
||||
};
|
||||
};
|
||||
|
|
|
@ -0,0 +1,52 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/eeprom/st,m24lr.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: STMicroelectronics M24LR NFC/RFID EEPROM
|
||||
|
||||
maintainers:
|
||||
- Abd-Alrhman Masalkhi <abd.masalkhi@gmail.com>
|
||||
|
||||
description:
|
||||
STMicroelectronics M24LR series are dual-interface (RF + I2C)
|
||||
EEPROM chips. These devices support I2C-based access to both
|
||||
memory and a system area that controls authentication and configuration.
|
||||
They expose two I2C addresses, one for the system parameter sector and
|
||||
one for the EEPROM.
|
||||
|
||||
allOf:
|
||||
- $ref: /schemas/nvmem/nvmem.yaml#
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- st,m24lr04e-r
|
||||
- st,m24lr16e-r
|
||||
- st,m24lr64e-r
|
||||
|
||||
reg:
|
||||
items:
|
||||
- description: I2C address used for control/system registers
|
||||
- description: I2C address used for EEPROM memory access
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
eeprom@57 {
|
||||
compatible = "st,m24lr04e-r";
|
||||
reg = <0x57>, /* primary-device */
|
||||
<0x53>; /* secondary-device */
|
||||
};
|
||||
};
|
||||
...
|
|
@ -1,23 +0,0 @@
|
|||
|
||||
* Richtek RT8973A - Micro USB Switch device
|
||||
|
||||
The Richtek RT8973A is Micro USB Switch with OVP and I2C interface. The RT8973A
|
||||
is a USB port accessory detector and switch that is optimized to protect low
|
||||
voltage system from abnormal high input voltage (up to 28V) and supports high
|
||||
speed USB operation. Also, RT8973A support 'auto-configuration' mode.
|
||||
If auto-configuration mode is enabled, RT8973A would control internal h/w patch
|
||||
for USB D-/D+ switching.
|
||||
|
||||
Required properties:
|
||||
- compatible: Should be "richtek,rt8973a-muic"
|
||||
- reg: Specifies the I2C slave address of the MUIC block. It should be 0x14
|
||||
- interrupts: Interrupt specifiers for detection interrupt sources.
|
||||
|
||||
Example:
|
||||
|
||||
rt8973a@14 {
|
||||
compatible = "richtek,rt8973a-muic";
|
||||
interrupt-parent = <&gpx1>;
|
||||
interrupts = <5 0>;
|
||||
reg = <0x14>;
|
||||
};
|
|
@ -25,6 +25,12 @@ properties:
|
|||
required:
|
||||
- compatible
|
||||
|
||||
anyOf:
|
||||
- required:
|
||||
- id-gpios
|
||||
- required:
|
||||
- vbus-gpios
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
|
|
|
@ -0,0 +1,80 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/extcon/maxim,max14526.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Maxim MAX14526 MicroUSB Integrated Circuit (MUIC)
|
||||
|
||||
maintainers:
|
||||
- Svyatoslav Ryhel <clamor95@gmail.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: maxim,max14526
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
connector:
|
||||
$ref: /schemas/connector/usb-connector.yaml#
|
||||
|
||||
port:
|
||||
$ref: /schemas/graph.yaml#/properties/port
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- connector
|
||||
- port
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
muic@44 {
|
||||
compatible = "maxim,max14526";
|
||||
reg = <0x44>;
|
||||
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupts = <72 IRQ_TYPE_EDGE_FALLING>;
|
||||
|
||||
connector {
|
||||
compatible = "usb-b-connector";
|
||||
label = "micro-USB";
|
||||
type = "micro";
|
||||
};
|
||||
|
||||
port {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
muic_to_charger: endpoint@0 {
|
||||
reg = <0>;
|
||||
remote-endpoint = <&charger_input>;
|
||||
};
|
||||
|
||||
muic_to_usb: endpoint@1 {
|
||||
reg = <1>;
|
||||
remote-endpoint = <&usb_input>;
|
||||
};
|
||||
|
||||
muic_to_mhl: endpoint@2 {
|
||||
reg = <2>;
|
||||
remote-endpoint = <&mhl_input>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
...
|
|
@ -0,0 +1,49 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/extcon/richtek,rt8973a-muic.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Richtek RT8973A MUIC
|
||||
|
||||
maintainers:
|
||||
- Chanwoo Choi <cw00.choi@samsung.com>
|
||||
|
||||
description:
|
||||
The Richtek RT8973A is Micro USB Switch with OVP and I2C interface. The RT8973A
|
||||
is a USB port accessory detector and switch that is optimized to protect low
|
||||
voltage system from abnormal high input voltage (up to 28V) and supports high
|
||||
speed USB operation. Also, RT8973A support 'auto-configuration' mode.
|
||||
If auto-configuration mode is enabled, RT8973A would control internal h/w patch
|
||||
for USB D-/D+ switching.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: richtek,rt8973a-muic
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
usb-switch@14 {
|
||||
compatible = "richtek,rt8973a-muic";
|
||||
reg = <0x14>;
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
|
||||
};
|
||||
};
|
|
@ -7,7 +7,8 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
|
|||
title: ADIS16240 Programmable Impact Sensor and Recorder driver
|
||||
|
||||
maintainers:
|
||||
- Alexandru Tachici <alexandru.tachici@analog.com>
|
||||
- Marcelo Schmitt <marcelo.schmitt@analog.com>
|
||||
- Nuno Sá <nuno.sa@analog.com>
|
||||
|
||||
description: |
|
||||
ADIS16240 Programmable Impact Sensor and Recorder driver that supports
|
||||
|
@ -37,7 +38,6 @@ unevaluatedProperties: false
|
|||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
|
|
|
@ -57,7 +57,6 @@ unevaluatedProperties: false
|
|||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
|
@ -73,7 +72,6 @@ examples:
|
|||
};
|
||||
};
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
|
|
|
@ -56,7 +56,6 @@ unevaluatedProperties: false
|
|||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
|
@ -72,7 +71,6 @@ examples:
|
|||
};
|
||||
};
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
|
|
|
@ -58,7 +58,6 @@ unevaluatedProperties: false
|
|||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
|
@ -74,7 +73,6 @@ examples:
|
|||
};
|
||||
};
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
|
|
|
@ -7,7 +7,8 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
|
|||
title: Analog Devices ADXL372 3-Axis, +/-(200g) Digital Accelerometer
|
||||
|
||||
maintainers:
|
||||
- Stefan Popa <stefan.popa@analog.com>
|
||||
- Marcelo Schmitt <marcelo.schmitt@analog.com>
|
||||
- Nuno Sá <nuno.sa@analog.com>
|
||||
|
||||
description: |
|
||||
Analog Devices ADXL372 3-Axis, +/-(200g) Digital Accelerometer that supports
|
||||
|
@ -37,7 +38,6 @@ unevaluatedProperties: false
|
|||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
|
@ -52,7 +52,6 @@ examples:
|
|||
};
|
||||
};
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
|
|
|
@ -107,7 +107,6 @@ examples:
|
|||
};
|
||||
};
|
||||
- |
|
||||
# include <dt-bindings/interrupt-controller/irq.h>
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
|
|
@ -40,7 +40,6 @@ additionalProperties: false
|
|||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
|
|
|
@ -57,7 +57,6 @@ examples:
|
|||
};
|
||||
};
|
||||
- |
|
||||
# include <dt-bindings/interrupt-controller/irq.h>
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
|
|
@ -93,7 +93,6 @@ unevaluatedProperties: false
|
|||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
|
|
|
@ -8,7 +8,8 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
|
|||
title: Analog Devices AD7124 ADC device driver
|
||||
|
||||
maintainers:
|
||||
- Stefan Popa <stefan.popa@analog.com>
|
||||
- Marcelo Schmitt <marcelo.schmitt@analog.com>
|
||||
- Nuno Sá <nuno.sa@analog.com>
|
||||
|
||||
description: |
|
||||
Bindings for the Analog Devices AD7124 ADC device. Datasheet can be
|
||||
|
@ -27,12 +28,21 @@ properties:
|
|||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
description: phandle to the master clock (mclk)
|
||||
description: Optional external clock connected to the CLK pin.
|
||||
|
||||
clock-names:
|
||||
deprecated: true
|
||||
description:
|
||||
MCLK is an internal counter in the ADC. Do not use this property.
|
||||
items:
|
||||
- const: mclk
|
||||
|
||||
'#clock-cells':
|
||||
description:
|
||||
The CLK pin can be used as an output. When that is the case, include
|
||||
this property.
|
||||
const: 0
|
||||
|
||||
interrupts:
|
||||
description: IRQ line for the ADC
|
||||
maxItems: 1
|
||||
|
@ -66,10 +76,14 @@ properties:
|
|||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
- clock-names
|
||||
- interrupts
|
||||
|
||||
# Can't have both clock input and output at the same time.
|
||||
not:
|
||||
required:
|
||||
- '#clock-cells'
|
||||
- clocks
|
||||
|
||||
patternProperties:
|
||||
"^channel@([0-9]|1[0-5])$":
|
||||
$ref: adc.yaml
|
||||
|
@ -135,8 +149,6 @@ examples:
|
|||
interrupt-parent = <&gpio>;
|
||||
rdy-gpios = <&gpio 25 GPIO_ACTIVE_LOW>;
|
||||
refin1-supply = <&adc_vref>;
|
||||
clocks = <&ad7124_mclk>;
|
||||
clock-names = "mclk";
|
||||
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
|
|
@ -379,7 +379,6 @@ unevaluatedProperties: false
|
|||
examples:
|
||||
# Example AD7173-8 with external reference connected to REF+/REF-:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
|
||||
spi {
|
||||
|
|
|
@ -41,6 +41,7 @@ properties:
|
|||
- adi,ad7910
|
||||
- adi,ad7920
|
||||
- adi,ad7940
|
||||
- rohm,bd79105
|
||||
- ti,adc081s
|
||||
- ti,adc101s
|
||||
- ti,adc121s
|
||||
|
@ -55,6 +56,11 @@ properties:
|
|||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
description:
|
||||
The data-ready interrupt. Provided via DOUT pin.
|
||||
maxItems: 1
|
||||
|
||||
vcc-supply:
|
||||
description:
|
||||
Main powersupply voltage for the chips, sometimes referred to as VDD on
|
||||
|
@ -75,6 +81,10 @@ properties:
|
|||
description: A GPIO used to trigger the start of a conversion
|
||||
maxItems: 1
|
||||
|
||||
rdy-gpios:
|
||||
description: A GPIO for detecting the data-ready.
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
@ -82,6 +92,20 @@ required:
|
|||
allOf:
|
||||
- $ref: /schemas/spi/spi-peripheral-props.yaml#
|
||||
|
||||
# Devices with an IRQ
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- rohm,bd79105
|
||||
then:
|
||||
properties:
|
||||
interrupts: true
|
||||
else:
|
||||
properties:
|
||||
interrupts: false
|
||||
|
||||
# Devices where reference is vcc
|
||||
- if:
|
||||
properties:
|
||||
|
@ -106,19 +130,18 @@ allOf:
|
|||
- vcc-supply
|
||||
# Devices with a vref
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- adi,ad7091r
|
||||
- adi,ad7273
|
||||
- adi,ad7274
|
||||
- adi,ad7475
|
||||
- lltc,ltc2314-14
|
||||
not:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- adi,ad7091r
|
||||
- adi,ad7273
|
||||
- adi,ad7274
|
||||
- adi,ad7475
|
||||
- lltc,ltc2314-14
|
||||
- rohm,bd79105
|
||||
then:
|
||||
properties:
|
||||
vref-supply: true
|
||||
else:
|
||||
properties:
|
||||
vref-supply: false
|
||||
# Devices with a vref where it is not optional
|
||||
|
@ -131,35 +154,58 @@ allOf:
|
|||
- adi,ad7274
|
||||
- adi,ad7475
|
||||
- lltc,ltc2314-14
|
||||
- rohm,bd79105
|
||||
then:
|
||||
required:
|
||||
- vref-supply
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- adi,ad7475
|
||||
- adi,ad7495
|
||||
not:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- adi,ad7475
|
||||
- adi,ad7495
|
||||
- rohm,bd79105
|
||||
then:
|
||||
properties:
|
||||
vdrive-supply: true
|
||||
else:
|
||||
properties:
|
||||
vdrive-supply: false
|
||||
|
||||
# Devices which support polling the data-ready via GPIO
|
||||
- if:
|
||||
not:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- rohm,bd79105
|
||||
then:
|
||||
properties:
|
||||
rdy-gpios: false
|
||||
|
||||
- if:
|
||||
not:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- adi,ad7091
|
||||
- adi,ad7091r
|
||||
- rohm,bd79105
|
||||
then:
|
||||
properties:
|
||||
adi,conversion-start-gpios: false
|
||||
|
||||
# Devices with a convstart GPIO where it is not optional
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- adi,ad7091
|
||||
- adi,ad7091r
|
||||
- rohm,bd79105
|
||||
then:
|
||||
properties:
|
||||
adi,conversion-start-gpios: true
|
||||
else:
|
||||
properties:
|
||||
adi,conversion-start-gpios: false
|
||||
required:
|
||||
- adi,conversion-start-gpios
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
|
|
|
@ -80,11 +80,36 @@ properties:
|
|||
reset-gpios:
|
||||
maxItems: 1
|
||||
|
||||
io-backends:
|
||||
maxItems: 1
|
||||
|
||||
adi,num-lanes:
|
||||
description:
|
||||
Number of lanes on which the data is sent on the output when the data
|
||||
output interface is used.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
enum: [1, 2, 4]
|
||||
default: 4
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
- interrupts
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
not:
|
||||
required:
|
||||
- io-backends
|
||||
then:
|
||||
properties:
|
||||
adi,num-lanes: false
|
||||
|
||||
oneOf:
|
||||
- required:
|
||||
- interrupts
|
||||
- required:
|
||||
- io-backends
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
|
@ -107,4 +132,21 @@ examples:
|
|||
clocks = <&adc_clk>;
|
||||
};
|
||||
};
|
||||
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
adc@0 {
|
||||
compatible = "adi,ad7779";
|
||||
reg = <0>;
|
||||
start-gpios = <&gpio0 87 GPIO_ACTIVE_LOW>;
|
||||
reset-gpios = <&gpio0 93 GPIO_ACTIVE_LOW>;
|
||||
clocks = <&adc_clk>;
|
||||
io-backends = <&iio_backend>;
|
||||
adi,num-lanes = <4>;
|
||||
};
|
||||
};
|
||||
...
|
||||
|
|
|
@ -0,0 +1,95 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
# Copyright 2025 Analog Devices Inc.
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/adc/adi,ade9000.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Analog Devices ADE9000 High Performance, Polyphase Energy Metering
|
||||
|
||||
maintainers:
|
||||
- Antoniu Miclaus <antoniu.miclaus@analog.com>
|
||||
|
||||
description: |
|
||||
The ADE9000 is a highly accurate, fully integrated, multiphase energy and power
|
||||
quality monitoring device. Superior analog performance and a digital signal
|
||||
processing (DSP) core enable accurate energy monitoring over a wide dynamic
|
||||
range. An integrated high end reference ensures low drift over temperature
|
||||
with a combined drift of less than ±25 ppm/°C maximum for the entire channel
|
||||
including a programmable gain amplifier (PGA) and an analog-to-digital
|
||||
converter (ADC).
|
||||
|
||||
https://www.analog.com/media/en/technical-documentation/data-sheets/ADE9000.pdf
|
||||
|
||||
$ref: /schemas/spi/spi-peripheral-props.yaml#
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- adi,ade9000
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
spi-max-frequency:
|
||||
maximum: 20000000
|
||||
|
||||
interrupts:
|
||||
maxItems: 3
|
||||
|
||||
interrupt-names:
|
||||
items:
|
||||
enum: [irq0, irq1, dready]
|
||||
minItems: 1
|
||||
maxItems: 3
|
||||
|
||||
reset-gpios:
|
||||
description:
|
||||
Must be the device tree identifier of the RESET pin. As the line is
|
||||
active low, it should be marked GPIO_ACTIVE_LOW.
|
||||
maxItems: 1
|
||||
|
||||
vdd-supply: true
|
||||
|
||||
vref-supply: true
|
||||
|
||||
clocks:
|
||||
description: External clock source when not using crystal
|
||||
maxItems: 1
|
||||
|
||||
|
||||
"#clock-cells":
|
||||
description:
|
||||
ADE9000 can provide clock output via CLKOUT pin with external buffer.
|
||||
const: 0
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- vdd-supply
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
adc@0 {
|
||||
compatible = "adi,ade9000";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <7000000>;
|
||||
|
||||
#clock-cells = <0>;
|
||||
reset-gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
|
||||
interrupts = <2 IRQ_TYPE_EDGE_FALLING>, <3 IRQ_TYPE_EDGE_FALLING>, <4 IRQ_TYPE_EDGE_FALLING>;
|
||||
interrupt-names = "irq0", "irq1", "dready";
|
||||
interrupt-parent = <&gpio>;
|
||||
clocks = <&ext_clock_24576khz>;
|
||||
vdd-supply = <&vdd_reg>;
|
||||
};
|
||||
};
|
|
@ -9,7 +9,6 @@ title: Linear Technology / Analog Devices LTC2496 ADC
|
|||
maintainers:
|
||||
- Lars-Peter Clausen <lars@metafoo.de>
|
||||
- Michael Hennerich <Michael.Hennerich@analog.com>
|
||||
- Stefan Popa <stefan.popa@analog.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
|
|
|
@ -53,6 +53,9 @@ properties:
|
|||
reg:
|
||||
maxItems: 1
|
||||
|
||||
"#io-channel-cells":
|
||||
const: 1
|
||||
|
||||
vcc-supply: true
|
||||
vref-supply:
|
||||
description: Optional external reference. If not supplied, internal
|
||||
|
|
|
@ -63,6 +63,6 @@ examples:
|
|||
vdd-supply = <&adc_vdd>;
|
||||
vref-supply = <&adc_vref>;
|
||||
spi-max-frequency = <1000000>;
|
||||
shutdown-gpios = <&gpio 26 1>;
|
||||
shutdown-gpios = <&gpio 26 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
|
|
|
@ -278,7 +278,6 @@ examples:
|
|||
- |
|
||||
#include <dt-bindings/iio/qcom,spmi-adc7-pmk8350.h>
|
||||
#include <dt-bindings/iio/qcom,spmi-adc7-pm8350.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
|
||||
pmic {
|
||||
#address-cells = <1>;
|
||||
|
|
|
@ -47,6 +47,9 @@ properties:
|
|||
- const: saradc
|
||||
- const: apb_pclk
|
||||
|
||||
power-domains:
|
||||
maxItems: 1
|
||||
|
||||
resets:
|
||||
maxItems: 1
|
||||
|
||||
|
|
|
@ -14,7 +14,15 @@ description: |
|
|||
|
||||
properties:
|
||||
compatible:
|
||||
const: rohm,bd79104
|
||||
oneOf:
|
||||
- enum:
|
||||
- rohm,bd79100
|
||||
- rohm,bd79101
|
||||
- rohm,bd79102
|
||||
- rohm,bd79104
|
||||
- items:
|
||||
- const: rohm,bd79103
|
||||
- const: rohm,bd79104
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
@ -50,7 +58,6 @@ unevaluatedProperties: false
|
|||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
|
|
@ -0,0 +1,104 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/adc/rohm,bd79112.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: ROHM BD79112 ADC/GPO
|
||||
|
||||
maintainers:
|
||||
- Matti Vaittinen <mazziesaccount@gmail.com>
|
||||
|
||||
description: |
|
||||
The ROHM BD79112 is a 12-bit, 32-channel, SAR ADC. ADC input pins can be
|
||||
also configured as general purpose inputs/outputs. SPI should use MODE 3.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: rohm,bd79112
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
spi-cpha: true
|
||||
spi-cpol: true
|
||||
|
||||
gpio-controller: true
|
||||
"#gpio-cells":
|
||||
const: 2
|
||||
|
||||
vdd-supply: true
|
||||
|
||||
iovdd-supply: true
|
||||
|
||||
"#address-cells":
|
||||
const: 1
|
||||
|
||||
"#size-cells":
|
||||
const: 0
|
||||
|
||||
patternProperties:
|
||||
"^channel@([0-9]|[12][0-9]|3[01])$":
|
||||
type: object
|
||||
$ref: /schemas/iio/adc/adc.yaml#
|
||||
description: Represents ADC channel. Omitted channels' inputs are GPIOs.
|
||||
|
||||
properties:
|
||||
reg:
|
||||
description: AIN pin number
|
||||
minimum: 0
|
||||
maximum: 31
|
||||
|
||||
required:
|
||||
- reg
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- iovdd-supply
|
||||
- vdd-supply
|
||||
- spi-cpha
|
||||
- spi-cpol
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
adc: adc@0 {
|
||||
compatible = "rohm,bd79112";
|
||||
reg = <0x0>;
|
||||
|
||||
spi-cpha;
|
||||
spi-cpol;
|
||||
|
||||
vdd-supply = <&dummyreg>;
|
||||
iovdd-supply = <&dummyreg>;
|
||||
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
|
||||
channel@0 {
|
||||
reg = <0>;
|
||||
};
|
||||
channel@1 {
|
||||
reg = <1>;
|
||||
};
|
||||
channel@2 {
|
||||
reg = <2>;
|
||||
};
|
||||
channel@16 {
|
||||
reg = <16>;
|
||||
};
|
||||
channel@20 {
|
||||
reg = <20>;
|
||||
};
|
||||
};
|
||||
};
|
|
@ -81,7 +81,7 @@ examples:
|
|||
reg = <0x10>;
|
||||
|
||||
interrupt-parent = <&gpio1>;
|
||||
interrupts = <29 8>;
|
||||
interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
|
||||
|
||||
vdd-supply = <&dummyreg>;
|
||||
iovdd-supply = <&dummyreg>;
|
||||
|
|
|
@ -18,10 +18,6 @@ properties:
|
|||
- samsung,exynos3250-adc
|
||||
- samsung,exynos4212-adc # Exynos4212 and Exynos4412
|
||||
- samsung,exynos7-adc
|
||||
- samsung,s3c2410-adc
|
||||
- samsung,s3c2416-adc
|
||||
- samsung,s3c2440-adc
|
||||
- samsung,s3c2443-adc
|
||||
- samsung,s3c6410-adc
|
||||
- samsung,s5pv210-adc
|
||||
- items:
|
||||
|
@ -46,8 +42,6 @@ properties:
|
|||
maxItems: 2
|
||||
|
||||
interrupts:
|
||||
description:
|
||||
ADC interrupt followed by optional touchscreen interrupt.
|
||||
minItems: 1
|
||||
maxItems: 2
|
||||
|
||||
|
@ -62,11 +56,6 @@ properties:
|
|||
Phandle to the PMU system controller node (to access the ADC_PHY
|
||||
register on Exynos3250/4x12/5250/5420/5800).
|
||||
|
||||
has-touchscreen:
|
||||
description:
|
||||
If present, indicates that a touchscreen is connected and usable.
|
||||
type: boolean
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
@ -118,20 +107,29 @@ allOf:
|
|||
- const: adc
|
||||
|
||||
- if:
|
||||
required:
|
||||
- has-touchscreen
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: samsung,s5pv210-adc
|
||||
then:
|
||||
properties:
|
||||
interrupts:
|
||||
minItems: 2
|
||||
maxItems: 2
|
||||
items:
|
||||
- description: main (ADC)
|
||||
- description: pending (PENDN)
|
||||
else:
|
||||
properties:
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
|
||||
adc: adc@12d10000 {
|
||||
compatible = "samsung,exynos-adc-v1";
|
||||
reg = <0x12d10000 0x100>;
|
||||
interrupts = <0 106 0>;
|
||||
interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
|
||||
#io-channel-cells = <1>;
|
||||
|
||||
clocks = <&clock 303>;
|
||||
|
@ -152,11 +150,12 @@ examples:
|
|||
|
||||
- |
|
||||
#include <dt-bindings/clock/exynos3250.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
|
||||
adc@126c0000 {
|
||||
compatible = "samsung,exynos3250-adc";
|
||||
reg = <0x126c0000 0x100>;
|
||||
interrupts = <0 137 0>;
|
||||
interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>;
|
||||
#io-channel-cells = <1>;
|
||||
|
||||
clocks = <&cmu CLK_TSADC>,
|
||||
|
|
|
@ -44,7 +44,6 @@ unevaluatedProperties: false
|
|||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
|
|
@ -59,7 +59,6 @@ unevaluatedProperties: false
|
|||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
|
|
|
@ -7,7 +7,8 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
|
|||
title: Xilinx Zynq Ultrascale AMS controller
|
||||
|
||||
maintainers:
|
||||
- Anand Ashok Dumbre <anand.ashok.dumbre@xilinx.com>
|
||||
- Salih Erim <salih.erim@amd.com>
|
||||
- Conall O'Griofa <conall.ogriofa@amd.com>
|
||||
|
||||
description: |
|
||||
The AMS (Analog Monitoring System) includes an ADC as well as on-chip sensors
|
||||
|
|
|
@ -24,6 +24,9 @@ properties:
|
|||
description: |
|
||||
Channel node of a voltage io-channel.
|
||||
|
||||
"#io-channel-cells":
|
||||
const: 0
|
||||
|
||||
sense-resistor-micro-ohms:
|
||||
description: The sense resistance.
|
||||
|
||||
|
@ -46,6 +49,7 @@ examples:
|
|||
- |
|
||||
sysi {
|
||||
compatible = "current-sense-amplifier";
|
||||
#io-channel-cells = <0>;
|
||||
io-channels = <&tiadc 0>;
|
||||
|
||||
sense-resistor-micro-ohms = <20000>;
|
||||
|
|
|
@ -8,7 +8,8 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
|
|||
title: Analog Devices AD5770R DAC device driver
|
||||
|
||||
maintainers:
|
||||
- Alexandru Tachici <alexandru.tachici@analog.com>
|
||||
- Marcelo Schmitt <marcelo.schmitt@analog.com>
|
||||
- Nuno Sá <nuno.sa@analog.com>
|
||||
|
||||
description: |
|
||||
Bindings for the Analog Devices AD5770R current DAC device. Datasheet can be
|
||||
|
|
|
@ -174,7 +174,7 @@ examples:
|
|||
|
||||
channel@1 {
|
||||
reg = <1>;
|
||||
output-range-microvolt= <0 10000000>;
|
||||
output-range-microvolt = <0 10000000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
@ -7,7 +7,8 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
|
|||
title: Analog Devices ADF4371/ADF4372 Wideband Synthesizers
|
||||
|
||||
maintainers:
|
||||
- Popa Stefan <stefan.popa@analog.com>
|
||||
- Marcelo Schmitt <marcelo.schmitt@analog.com>
|
||||
- Nuno Sá <nuno.sa@analog.com>
|
||||
|
||||
description: |
|
||||
Analog Devices ADF4371/ADF4372 SPI Wideband Synthesizers
|
||||
|
|
|
@ -44,7 +44,6 @@ unevaluatedProperties: false
|
|||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
|
|
|
@ -7,7 +7,8 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
|
|||
title: Analog Devices ADIS16480 and similar IMUs
|
||||
|
||||
maintainers:
|
||||
- Alexandru Tachici <alexandru.tachici@analog.com>
|
||||
- Marcelo Schmitt <marcelo.schmitt@analog.com>
|
||||
- Nuno Sá <nuno.sa@analog.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
|
|
|
@ -74,7 +74,6 @@ unevaluatedProperties: false
|
|||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
|
@ -91,7 +90,6 @@ examples:
|
|||
};
|
||||
};
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
|
|
|
@ -47,7 +47,6 @@ unevaluatedProperties: false
|
|||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
|
@ -63,7 +62,6 @@ examples:
|
|||
};
|
||||
};
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
|
|
|
@ -42,6 +42,6 @@ examples:
|
|||
compatible = "dynaimage,al3010";
|
||||
reg = <0x1c>;
|
||||
vdd-supply = <&vdd_reg>;
|
||||
interrupts = <0 99 4>;
|
||||
interrupts = <99 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
};
|
||||
|
|
|
@ -40,6 +40,6 @@ examples:
|
|||
compatible = "dynaimage,al3320a";
|
||||
reg = <0x1c>;
|
||||
vdd-supply = <&vdd_reg>;
|
||||
interrupts = <0 99 4>;
|
||||
interrupts = <99 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
};
|
||||
|
|
|
@ -32,7 +32,6 @@ required:
|
|||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
|
|
@ -0,0 +1,51 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/light/vishay,veml6046x00.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Vishay VEML6046X00 High accuracy RGBIR color sensor
|
||||
|
||||
maintainers:
|
||||
- Andreas Klinger <ak@it-klinger.de>
|
||||
|
||||
description:
|
||||
VEML6046X00 datasheet at https://www.vishay.com/docs/80173/veml6046x00.pdf
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- vishay,veml6046x00
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
vdd-supply: true
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- vdd-supply
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
color-sensor@29 {
|
||||
compatible = "vishay,veml6046x00";
|
||||
reg = <0x29>;
|
||||
vdd-supply = <&vdd_reg>;
|
||||
interrupt-parent = <&gpio2>;
|
||||
interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
|
||||
};
|
||||
};
|
||||
...
|
|
@ -0,0 +1,45 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/magnetometer/infineon,tlv493d-a1b6.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Infineon Technologies TLV493D Low-Power 3D Magnetic Sensor
|
||||
|
||||
maintainers:
|
||||
- Dixit Parmar <dixitparmar19@gmail.com>
|
||||
|
||||
properties:
|
||||
$nodename:
|
||||
pattern: '^magnetometer@[0-9a-f]+$'
|
||||
|
||||
compatible:
|
||||
const: infineon,tlv493d-a1b6
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
vdd-supply:
|
||||
description: 2.8V to 3.5V VDD supply
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- vdd-supply
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
magnetometer@5e {
|
||||
compatible = "infineon,tlv493d-a1b6";
|
||||
reg = <0x5e>;
|
||||
vdd-supply = <&hall_vcc>;
|
||||
};
|
||||
};
|
|
@ -44,7 +44,6 @@ additionalProperties: false
|
|||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
|
|
|
@ -109,7 +109,6 @@ examples:
|
|||
};
|
||||
- |
|
||||
# include <dt-bindings/gpio/gpio.h>
|
||||
# include <dt-bindings/interrupt-controller/irq.h>
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
|
|
@ -0,0 +1,52 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/pressure/invensense,icp10100.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: InvenSense ICP-101xx Barometric Pressure Sensors
|
||||
|
||||
maintainers:
|
||||
- Jean-Baptiste Maneyrol <jean-baptiste.maneyrol@tdk.com>
|
||||
|
||||
description: |
|
||||
Support for ICP-101xx family: ICP-10100, ICP-10101, ICP-10110, ICP-10111.
|
||||
Those devices uses a simple I2C communication bus, measuring the pressure
|
||||
in a ultra-low noise at the lowest power.
|
||||
Datasheet: https://product.tdk.com/system/files/dam/doc/product/sensor/pressure/capacitive-pressure/data_sheet/ds-000186-icp-101xx.pdf
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
oneOf:
|
||||
- items:
|
||||
- enum:
|
||||
- invensense,icp10101
|
||||
- invensense,icp10110
|
||||
- invensense,icp10111
|
||||
- const: invensense,icp10100
|
||||
- const: invensense,icp10100
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
vdd-supply: true
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- vdd-supply
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
pressure@63 {
|
||||
compatible = "invensense,icp10101", "invensense,icp10100";
|
||||
reg = <0x63>;
|
||||
vdd-supply = <&vdd_1v8>;
|
||||
};
|
||||
};
|
||||
...
|
|
@ -4,7 +4,7 @@
|
|||
$id: http://devicetree.org/schemas/iio/temperature/microchip,mcp9600.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Microchip MCP9600 thermocouple EMF converter
|
||||
title: Microchip MCP9600 and similar thermocouple EMF converters
|
||||
|
||||
maintainers:
|
||||
- Andrew Hepp <andrew.hepp@ahepp.dev>
|
||||
|
@ -14,7 +14,11 @@ description:
|
|||
|
||||
properties:
|
||||
compatible:
|
||||
const: microchip,mcp9600
|
||||
oneOf:
|
||||
- const: microchip,mcp9600
|
||||
- items:
|
||||
- const: microchip,mcp9601
|
||||
- const: microchip,mcp9600
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
@ -37,13 +41,43 @@ properties:
|
|||
|
||||
thermocouple-type:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
default: 3
|
||||
description:
|
||||
Type of thermocouple (THERMOCOUPLE_TYPE_K if omitted).
|
||||
Use defines in dt-bindings/iio/temperature/thermocouple.h.
|
||||
Supported types are B, E, J, K, N, R, S, T.
|
||||
|
||||
microchip,vsense:
|
||||
type: boolean
|
||||
description:
|
||||
This flag indicates that the chip has been wired with VSENSE to
|
||||
enable open and short circuit detect.
|
||||
|
||||
vdd-supply: true
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
not:
|
||||
contains:
|
||||
const: microchip,mcp9601
|
||||
then:
|
||||
properties:
|
||||
interrupts:
|
||||
minItems: 1
|
||||
maxItems: 4
|
||||
interrupt-names:
|
||||
minItems: 1
|
||||
maxItems: 4
|
||||
items:
|
||||
enum:
|
||||
- alert1
|
||||
- alert2
|
||||
- alert3
|
||||
- alert4
|
||||
microchip,vsense: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
@ -63,8 +97,24 @@ examples:
|
|||
reg = <0x60>;
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupts = <25 IRQ_TYPE_EDGE_RISING>;
|
||||
interrupt-names = "open-circuit";
|
||||
interrupt-names = "alert1";
|
||||
thermocouple-type = <THERMOCOUPLE_TYPE_K>;
|
||||
vdd-supply = <&vdd>;
|
||||
};
|
||||
};
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
temperature-sensor@62 {
|
||||
compatible = "microchip,mcp9601", "microchip,mcp9600";
|
||||
reg = <0x62>;
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupts = <22 IRQ_TYPE_EDGE_RISING>, <23 IRQ_TYPE_EDGE_RISING>;
|
||||
interrupt-names = "open-circuit", "short-circuit";
|
||||
vdd-supply = <&vdd>;
|
||||
microchip,vsense;
|
||||
};
|
||||
};
|
||||
|
|
|
@ -0,0 +1,172 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/interconnect/qcom,glymur-rpmh.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Qualcomm RPMh Network-On-Chip Interconnect on GLYMUR
|
||||
|
||||
maintainers:
|
||||
- Raviteja Laggyshetty <raviteja.laggyshetty@oss.qualcomm.com>
|
||||
|
||||
description: |
|
||||
RPMh interconnect providers support system bandwidth requirements through
|
||||
RPMh hardware accelerators known as Bus Clock Manager (BCM). The provider is
|
||||
able to communicate with the BCM through the Resource State Coordinator (RSC)
|
||||
associated with each execution environment. Provider nodes must point to at
|
||||
least one RPMh device child node pertaining to their RSC and each provider
|
||||
can map to multiple RPMh resources.
|
||||
|
||||
See also: include/dt-bindings/interconnect/qcom,glymur-rpmh.h
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- qcom,glymur-aggre1-noc
|
||||
- qcom,glymur-aggre2-noc
|
||||
- qcom,glymur-aggre3-noc
|
||||
- qcom,glymur-aggre4-noc
|
||||
- qcom,glymur-clk-virt
|
||||
- qcom,glymur-cnoc-cfg
|
||||
- qcom,glymur-cnoc-main
|
||||
- qcom,glymur-hscnoc
|
||||
- qcom,glymur-lpass-ag-noc
|
||||
- qcom,glymur-lpass-lpiaon-noc
|
||||
- qcom,glymur-lpass-lpicx-noc
|
||||
- qcom,glymur-mc-virt
|
||||
- qcom,glymur-mmss-noc
|
||||
- qcom,glymur-nsinoc
|
||||
- qcom,glymur-nsp-noc
|
||||
- qcom,glymur-oobm-ss-noc
|
||||
- qcom,glymur-pcie-east-anoc
|
||||
- qcom,glymur-pcie-east-slv-noc
|
||||
- qcom,glymur-pcie-west-anoc
|
||||
- qcom,glymur-pcie-west-slv-noc
|
||||
- qcom,glymur-system-noc
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
minItems: 1
|
||||
maxItems: 4
|
||||
|
||||
required:
|
||||
- compatible
|
||||
|
||||
allOf:
|
||||
- $ref: qcom,rpmh-common.yaml#
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- qcom,glymur-clk-virt
|
||||
- qcom,glymur-mc-virt
|
||||
then:
|
||||
properties:
|
||||
reg: false
|
||||
else:
|
||||
required:
|
||||
- reg
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- qcom,glymur-pcie-west-anoc
|
||||
then:
|
||||
properties:
|
||||
clocks:
|
||||
items:
|
||||
- description: aggre PCIE_3A WEST AXI clock
|
||||
- description: aggre PCIE_3B WEST AXI clock
|
||||
- description: aggre PCIE_4 WEST AXI clock
|
||||
- description: aggre PCIE_6 WEST AXI clock
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- qcom,glymur-pcie-east-anoc
|
||||
then:
|
||||
properties:
|
||||
clocks:
|
||||
items:
|
||||
- description: aggre PCIE_5 EAST AXI clock
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- qcom,glymur-aggre2-noc
|
||||
then:
|
||||
properties:
|
||||
clocks:
|
||||
items:
|
||||
- description: aggre USB3 TERT AXI clock
|
||||
- description: aggre USB4_2 AXI clock
|
||||
- description: aggre UFS PHY AXI clock
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- qcom,glymur-aggre4-noc
|
||||
then:
|
||||
properties:
|
||||
clocks:
|
||||
items:
|
||||
- description: aggre USB3 PRIM AXI clock
|
||||
- description: aggre USB3 SEC AXI clock
|
||||
- description: aggre USB4_0 AXI clock
|
||||
- description: aggre USB4_1 AXI clock
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- qcom,glymur-pcie-west-anoc
|
||||
- qcom,glymur-pcie-east-anoc
|
||||
- qcom,glymur-aggre2-noc
|
||||
- qcom,glymur-aggre4-noc
|
||||
then:
|
||||
required:
|
||||
- clocks
|
||||
else:
|
||||
properties:
|
||||
clocks: false
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/qcom,glymur-gcc.h>
|
||||
clk_virt: interconnect-0 {
|
||||
compatible = "qcom,glymur-clk-virt";
|
||||
#interconnect-cells = <2>;
|
||||
qcom,bcm-voters = <&apps_bcm_voter>;
|
||||
};
|
||||
|
||||
aggre1_noc: interconnect@16e0000 {
|
||||
compatible = "qcom,glymur-aggre1-noc";
|
||||
reg = <0x016e0000 0x14400>;
|
||||
#interconnect-cells = <2>;
|
||||
qcom,bcm-voters = <&apps_bcm_voter>;
|
||||
};
|
||||
|
||||
aggre4_noc: interconnect@1740000 {
|
||||
compatible = "qcom,glymur-aggre4-noc";
|
||||
reg = <0x01740000 0x14400>;
|
||||
#interconnect-cells = <2>;
|
||||
qcom,bcm-voters = <&apps_bcm_voter>;
|
||||
clocks = <&gcc GCC_AGGRE_USB3_PRIM_AXI_CLK>,
|
||||
<&gcc GCC_AGGRE_USB3_SEC_AXI_CLK>,
|
||||
<&gcc GCC_AGGRE_USB4_0_AXI_CLK>,
|
||||
<&gcc GCC_AGGRE_USB4_1_AXI_CLK>;
|
||||
};
|
|
@ -41,6 +41,11 @@ properties:
|
|||
- qcom,qcs8300-epss-l3
|
||||
- const: qcom,sa8775p-epss-l3
|
||||
- const: qcom,epss-l3
|
||||
- items:
|
||||
- enum:
|
||||
- qcom,qcs615-osm-l3
|
||||
- const: qcom,sm8150-osm-l3
|
||||
- const: qcom,osm-l3
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
|
|
@ -35,6 +35,9 @@ properties:
|
|||
description: LDO or buck regulator.
|
||||
unevaluatedProperties: false
|
||||
|
||||
'#io-channel-cells':
|
||||
const: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
@ -53,6 +56,7 @@ examples:
|
|||
reg = <0x30>;
|
||||
interrupts = <0 4 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-parent = <&gic>;
|
||||
#io-channel-cells = <1>;
|
||||
wakeup-source;
|
||||
|
||||
regulators {
|
||||
|
|
|
@ -27,6 +27,8 @@ properties:
|
|||
- sdsp
|
||||
- cdsp
|
||||
- cdsp1
|
||||
- gdsp0
|
||||
- gdsp1
|
||||
|
||||
memory-region:
|
||||
maxItems: 1
|
||||
|
|
|
@ -0,0 +1,123 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/nvmem/airoha,an8855-efuse.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Airoha AN8855 Switch EFUSE
|
||||
|
||||
maintainers:
|
||||
- Christian Marangi <ansuelsmth@gmail.com>
|
||||
|
||||
description:
|
||||
Airoha AN8855 EFUSE used to calibrate internal PHYs and store additional
|
||||
configuration info.
|
||||
|
||||
$ref: nvmem.yaml#
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: airoha,an8855-efuse
|
||||
|
||||
'#nvmem-cell-cells':
|
||||
const: 0
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- '#nvmem-cell-cells'
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
efuse {
|
||||
compatible = "airoha,an8855-efuse";
|
||||
|
||||
#nvmem-cell-cells = <0>;
|
||||
|
||||
nvmem-layout {
|
||||
compatible = "fixed-layout";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
shift_sel_port0_tx_a: shift-sel-port0-tx-a@c {
|
||||
reg = <0xc 0x4>;
|
||||
};
|
||||
|
||||
shift_sel_port0_tx_b: shift-sel-port0-tx-b@10 {
|
||||
reg = <0x10 0x4>;
|
||||
};
|
||||
|
||||
shift_sel_port0_tx_c: shift-sel-port0-tx-c@14 {
|
||||
reg = <0x14 0x4>;
|
||||
};
|
||||
|
||||
shift_sel_port0_tx_d: shift-sel-port0-tx-d@18 {
|
||||
reg = <0x18 0x4>;
|
||||
};
|
||||
|
||||
shift_sel_port1_tx_a: shift-sel-port1-tx-a@1c {
|
||||
reg = <0x1c 0x4>;
|
||||
};
|
||||
|
||||
shift_sel_port1_tx_b: shift-sel-port1-tx-b@20 {
|
||||
reg = <0x20 0x4>;
|
||||
};
|
||||
|
||||
shift_sel_port1_tx_c: shift-sel-port1-tx-c@24 {
|
||||
reg = <0x24 0x4>;
|
||||
};
|
||||
|
||||
shift_sel_port1_tx_d: shift-sel-port1-tx-d@28 {
|
||||
reg = <0x28 0x4>;
|
||||
};
|
||||
|
||||
shift_sel_port2_tx_a: shift-sel-port2-tx-a@2c {
|
||||
reg = <0x2c 0x4>;
|
||||
};
|
||||
|
||||
shift_sel_port2_tx_b: shift-sel-port2-tx-b@30 {
|
||||
reg = <0x30 0x4>;
|
||||
};
|
||||
|
||||
shift_sel_port2_tx_c: shift-sel-port2-tx-c@34 {
|
||||
reg = <0x34 0x4>;
|
||||
};
|
||||
|
||||
shift_sel_port2_tx_d: shift-sel-port2-tx-d@38 {
|
||||
reg = <0x38 0x4>;
|
||||
};
|
||||
|
||||
shift_sel_port3_tx_a: shift-sel-port3-tx-a@4c {
|
||||
reg = <0x4c 0x4>;
|
||||
};
|
||||
|
||||
shift_sel_port3_tx_b: shift-sel-port3-tx-b@50 {
|
||||
reg = <0x50 0x4>;
|
||||
};
|
||||
|
||||
shift_sel_port3_tx_c: shift-sel-port3-tx-c@54 {
|
||||
reg = <0x54 0x4>;
|
||||
};
|
||||
|
||||
shift_sel_port3_tx_d: shift-sel-port3-tx-d@58 {
|
||||
reg = <0x58 0x4>;
|
||||
};
|
||||
|
||||
shift_sel_port4_tx_a: shift-sel-port4-tx-a@5c {
|
||||
reg = <0x5c 0x4>;
|
||||
};
|
||||
|
||||
shift_sel_port4_tx_b: shift-sel-port4-tx-b@60 {
|
||||
reg = <0x60 0x4>;
|
||||
};
|
||||
|
||||
shift_sel_port4_tx_c: shift-sel-port4-tx-c@64 {
|
||||
reg = <0x64 0x4>;
|
||||
};
|
||||
|
||||
shift_sel_port4_tx_d: shift-sel-port4-tx-d@68 {
|
||||
reg = <0x68 0x4>;
|
||||
};
|
||||
};
|
||||
};
|
|
@ -19,7 +19,12 @@ select: false
|
|||
|
||||
properties:
|
||||
compatible:
|
||||
const: kontron,sl28-vpd
|
||||
oneOf:
|
||||
- items:
|
||||
- enum:
|
||||
- kontron,sa67-vpd
|
||||
- const: kontron,sl28-vpd
|
||||
- const: kontron,sl28-vpd
|
||||
|
||||
serial-number:
|
||||
type: object
|
||||
|
|
|
@ -0,0 +1,45 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/nvmem/nxp,s32g-ocotp-nvmem.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: NXP S32G OCOTP NVMEM driver
|
||||
|
||||
maintainers:
|
||||
- Ciprian Costea <ciprianmarian.costea@nxp.com>
|
||||
|
||||
description:
|
||||
The drivers provides an interface to access One Time
|
||||
Programmable memory pages, such as TMU fuse values.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
oneOf:
|
||||
- enum:
|
||||
- nxp,s32g2-ocotp
|
||||
- items:
|
||||
- enum:
|
||||
- nxp,s32g3-ocotp
|
||||
- nxp,s32r45-ocotp
|
||||
- const: nxp,s32g2-ocotp
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
allOf:
|
||||
- $ref: nvmem.yaml#
|
||||
|
||||
examples:
|
||||
- |
|
||||
nvmem@400a4000 {
|
||||
compatible = "nxp,s32g2-ocotp";
|
||||
reg = <0x400a4000 0x400>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
};
|
|
@ -1,86 +0,0 @@
|
|||
# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/slimbus/qcom,slim.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Qualcomm SoC SLIMbus controller
|
||||
|
||||
maintainers:
|
||||
- Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
|
||||
- Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
|
||||
|
||||
description:
|
||||
SLIMbus controller used when applications processor controls SLIMbus master
|
||||
component.
|
||||
|
||||
allOf:
|
||||
- $ref: slimbus.yaml#
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
items:
|
||||
- enum:
|
||||
- qcom,apq8064-slim
|
||||
- const: qcom,slim
|
||||
|
||||
reg:
|
||||
items:
|
||||
- description: Physical address of controller register blocks
|
||||
- description: SLEW RATE register
|
||||
|
||||
reg-names:
|
||||
items:
|
||||
- const: ctrl
|
||||
- const: slew
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: Interface clock for this controller
|
||||
- description: Interrupt for controller core's BAM
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: iface
|
||||
- const: core
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- reg-names
|
||||
- clocks
|
||||
- clock-names
|
||||
- interrupts
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/qcom,gcc-msm8960.h>
|
||||
#include <dt-bindings/clock/qcom,lcc-msm8960.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
|
||||
soc {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges;
|
||||
|
||||
slim@28080000 {
|
||||
compatible = "qcom,apq8064-slim", "qcom,slim";
|
||||
reg = <0x28080000 0x2000>, <0x80207c 4>;
|
||||
reg-names = "ctrl", "slew";
|
||||
interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&lcc SLIMBUS_SRC>, <&lcc AUDIO_SLIMBUS_CLK>;
|
||||
clock-names = "iface", "core";
|
||||
#address-cells = <2>;
|
||||
#size-cells = <0>;
|
||||
|
||||
audio-codec@1,0 {
|
||||
compatible = "slim217,60";
|
||||
reg = <1 0>;
|
||||
};
|
||||
};
|
||||
};
|
|
@ -68,8 +68,6 @@ additionalProperties: true
|
|||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/qcom,gcc-msm8960.h>
|
||||
#include <dt-bindings/clock/qcom,lcc-msm8960.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
|
||||
soc {
|
||||
|
@ -78,17 +76,14 @@ examples:
|
|||
ranges;
|
||||
|
||||
slim@28080000 {
|
||||
compatible = "qcom,apq8064-slim", "qcom,slim";
|
||||
reg = <0x28080000 0x2000>, <0x80207c 4>;
|
||||
reg-names = "ctrl", "slew";
|
||||
interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&lcc SLIMBUS_SRC>, <&lcc AUDIO_SLIMBUS_CLK>;
|
||||
clock-names = "iface", "core";
|
||||
compatible = "qcom,slim-ngd-v1.5.0";
|
||||
reg = <0x091c0000 0x2c000>;
|
||||
interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>;
|
||||
#address-cells = <2>;
|
||||
#size-cells = <0>;
|
||||
|
||||
audio-codec@1,0 {
|
||||
compatible = "slim217,60";
|
||||
compatible = "slim217,1a0";
|
||||
reg = <1 0>;
|
||||
};
|
||||
};
|
||||
|
|
|
@ -133,8 +133,6 @@ properties:
|
|||
- infineon,ir36021
|
||||
# Infineon IRPS5401 Voltage Regulator (PMIC)
|
||||
- infineon,irps5401
|
||||
# Infineon TLV493D-A1B6 I2C 3D Magnetic Sensor
|
||||
- infineon,tlv493d-a1b6
|
||||
# Infineon Hot-swap controller xdp710
|
||||
- infineon,xdp710
|
||||
# Infineon Multi-phase Digital VR Controller xdpe11280
|
||||
|
|
|
@ -24,6 +24,9 @@ properties:
|
|||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
|
@ -40,5 +43,6 @@ examples:
|
|||
owire@63fa4000 {
|
||||
compatible = "fsl,imx53-owire", "fsl,imx21-owire";
|
||||
reg = <0x63fa4000 0x4000>;
|
||||
interrupts = <88>;
|
||||
clocks = <&clks IMX5_CLK_OWIRE_GATE>;
|
||||
};
|
||||
|
|
|
@ -64,7 +64,8 @@ specific debugfs path ``/sys/kernel/debug/iio/iio:deviceX``.
|
|||
Usage examples
|
||||
--------------
|
||||
|
||||
. code-block:: bash
|
||||
.. code-block:: bash
|
||||
|
||||
root:/sys/bus/iio/devices/iio:device0# cat data_source
|
||||
normal
|
||||
root:/sys/bus/iio/devices/iio:device0# echo -n ramp-16bit > data_source
|
||||
|
|
|
@ -0,0 +1,268 @@
|
|||
.. SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
===============
|
||||
ADE9000 driver
|
||||
===============
|
||||
|
||||
This driver supports Analog Device's ADE9000 energy measurement IC on SPI bus.
|
||||
|
||||
1. Supported devices
|
||||
====================
|
||||
|
||||
* `ADE9000 <https://www.analog.com/media/en/technical-documentation/data-sheets/ADE9000.pdf>`_
|
||||
|
||||
The ADE9000 is a highly accurate, fully integrated, multiphase energy and power
|
||||
quality monitoring device. Superior analog performance and a digital signal
|
||||
processing (DSP) core enable accurate energy monitoring over a wide dynamic
|
||||
range. An integrated high end reference ensures low drift over temperature
|
||||
with a combined drift of less than ±25 ppm/°C maximum for the entire channel
|
||||
including a programmable gain amplifier (PGA) and an analog-to-digital
|
||||
converter (ADC).
|
||||
|
||||
2. Device attributes
|
||||
====================
|
||||
|
||||
Power and energy measurements are provided for voltage, current, active power,
|
||||
reactive power, apparent power, and power factor across three phases.
|
||||
|
||||
Each IIO device has a device folder under ``/sys/bus/iio/devices/iio:deviceX``,
|
||||
where X is the IIO index of the device. Under these folders reside a set of
|
||||
device files, depending on the characteristics and features of the hardware
|
||||
device in question. These files are consistently generalized and documented in
|
||||
the IIO ABI documentation.
|
||||
|
||||
The following tables show the ADE9000 related device files, found in the
|
||||
specific device folder path ``/sys/bus/iio/devices/iio:deviceX``.
|
||||
|
||||
+---------------------------------------------------+----------------------------------------------------------+
|
||||
| Current measurement related device files | Description |
|
||||
+---------------------------------------------------+----------------------------------------------------------+
|
||||
| in_current[0-2]_raw | Raw current measurement for phases A, B, C. |
|
||||
+---------------------------------------------------+----------------------------------------------------------+
|
||||
| in_current[0-2]_scale | Scale for current channels. |
|
||||
+---------------------------------------------------+----------------------------------------------------------+
|
||||
| in_current[0-2]_calibscale | Calibration gain for current channels (AIGAIN reg). |
|
||||
+---------------------------------------------------+----------------------------------------------------------+
|
||||
| in_altcurrent[0-2]_rms_raw | RMS current measurement for phases A, B, C. |
|
||||
+---------------------------------------------------+----------------------------------------------------------+
|
||||
| in_altcurrent[0-2]_rms_scale | Scale for RMS current channels. |
|
||||
+---------------------------------------------------+----------------------------------------------------------+
|
||||
| in_altcurrent[0-2]_rms_calibbias | RMS offset correction for current channels (IRMSOS reg). |
|
||||
+---------------------------------------------------+----------------------------------------------------------+
|
||||
|
||||
+---------------------------------------------------+----------------------------------------------------------+
|
||||
| Voltage measurement related device files | Description |
|
||||
+---------------------------------------------------+----------------------------------------------------------+
|
||||
| in_voltage[0-2]_raw | Raw voltage measurement for phases A, B, C. |
|
||||
+---------------------------------------------------+----------------------------------------------------------+
|
||||
| in_voltage[0-2]_scale | Scale for voltage channels. |
|
||||
+---------------------------------------------------+----------------------------------------------------------+
|
||||
| in_voltage[0-2]_calibscale | Calibration gain for voltage channels (AVGAIN reg). |
|
||||
+---------------------------------------------------+----------------------------------------------------------+
|
||||
| in_voltage[0-2]_frequency | Measured line frequency from instantaneous voltage. |
|
||||
+---------------------------------------------------+----------------------------------------------------------+
|
||||
| in_altvoltage[0-2]_rms_raw | RMS voltage measurement for phases A, B, C. |
|
||||
+---------------------------------------------------+----------------------------------------------------------+
|
||||
| in_altvoltage[0-2]_rms_scale | Scale for RMS voltage channels. |
|
||||
+---------------------------------------------------+----------------------------------------------------------+
|
||||
| in_altvoltage[0-2]_rms_calibbias | RMS offset correction for voltage channels (VRMSOS reg). |
|
||||
+---------------------------------------------------+----------------------------------------------------------+
|
||||
|
||||
+---------------------------------------------------+----------------------------------------------------------+
|
||||
| Power measurement related device files | Description |
|
||||
+---------------------------------------------------+----------------------------------------------------------+
|
||||
| in_power[0-2]_active_raw | Active power measurement for phases A, B, C. |
|
||||
+---------------------------------------------------+----------------------------------------------------------+
|
||||
| in_power[0-2]_active_scale | Scale for active power channels. |
|
||||
+---------------------------------------------------+----------------------------------------------------------+
|
||||
| in_power[0-2]_active_calibbias | Calibration offset for active power (xWATTOS regs). |
|
||||
+---------------------------------------------------+----------------------------------------------------------+
|
||||
| in_power[0-2]_active_calibscale | Calibration gain for active power (APGAIN reg). |
|
||||
+---------------------------------------------------+----------------------------------------------------------+
|
||||
| in_power[0-2]_reactive_raw | Reactive power measurement for phases A, B, C. |
|
||||
+---------------------------------------------------+----------------------------------------------------------+
|
||||
| in_power[0-2]_reactive_scale | Scale for reactive power channels. |
|
||||
+---------------------------------------------------+----------------------------------------------------------+
|
||||
| in_power[0-2]_reactive_calibbias | Calibration offset for reactive power (xVAROS regs). |
|
||||
+---------------------------------------------------+----------------------------------------------------------+
|
||||
| in_power[0-2]_apparent_raw | Apparent power measurement for phases A, B, C. |
|
||||
+---------------------------------------------------+----------------------------------------------------------+
|
||||
| in_power[0-2]_apparent_scale | Scale for apparent power channels. |
|
||||
+---------------------------------------------------+----------------------------------------------------------+
|
||||
| in_power[0-2]_powerfactor | Power factor for phases A, B, C. |
|
||||
+---------------------------------------------------+----------------------------------------------------------+
|
||||
|
||||
+---------------------------------------------------+----------------------------------------------------------+
|
||||
| Energy measurement related device files | Description |
|
||||
+---------------------------------------------------+----------------------------------------------------------+
|
||||
| in_energy[0-2]_active_raw | Active energy measurement for phases A, B, C. |
|
||||
+---------------------------------------------------+----------------------------------------------------------+
|
||||
| in_energy[0-2]_reactive_raw | Reactive energy measurement for phases A, B, C. |
|
||||
+---------------------------------------------------+----------------------------------------------------------+
|
||||
| in_energy[0-2]_apparent_raw | Apparent energy measurement for phases A, B, C. |
|
||||
+---------------------------------------------------+----------------------------------------------------------+
|
||||
|
||||
+------------------------------+------------------------------------------------------------------+
|
||||
| Shared device attributes | Description |
|
||||
+------------------------------+------------------------------------------------------------------+
|
||||
| name | Name of the IIO device. |
|
||||
+------------------------------+------------------------------------------------------------------+
|
||||
| filter_type | Waveform buffer filter type (sinc4, sinc4+lp). |
|
||||
+------------------------------+------------------------------------------------------------------+
|
||||
| filter_type_available | Available filter types for waveform buffer. |
|
||||
+------------------------------+------------------------------------------------------------------+
|
||||
|
||||
3. Calibration and scaling
|
||||
===========================
|
||||
|
||||
The ADE9000 provides multiple levels of gain and offset correction:
|
||||
|
||||
**Calibration Gain (per-channel)**
|
||||
Fine-tuning calibration gains applied in the digital domain for each channel type.
|
||||
Controlled via ``calibscale`` attributes (AIGAIN, AVGAIN, APGAIN registers).
|
||||
|
||||
**Calibration Bias (per-channel)**
|
||||
Hardware calibration offsets applied by the device internally:
|
||||
|
||||
- Power measurements: Controlled via ``calibbias`` attributes for power channels (xWATTOS, xVAROS registers).
|
||||
- RMS measurements: Controlled via ``calibbias`` attributes for RMS channels (IRMSOS, VRMSOS registers).
|
||||
|
||||
These are internal chip calibrations, not userspace-applied offsets.
|
||||
|
||||
4. Event attributes
|
||||
===================
|
||||
|
||||
The ADE9000 provides various interrupts that are mapped to IIO events.
|
||||
Event functionality is only available if the corresponding interrupts are
|
||||
connected in the device tree.
|
||||
|
||||
+---------------------------------------------------+----------------------------------------------------------+
|
||||
| IIO Event Attribute | ADE9000 Datasheet Equivalent |
|
||||
+---------------------------------------------------+----------------------------------------------------------+
|
||||
| in_voltage[0-2]_thresh_either_en | Zero crossing detection interrupt (ZXVx) |
|
||||
+---------------------------------------------------+----------------------------------------------------------+
|
||||
| in_altvoltage[0-2]_rms_thresh_rising_en | RMS swell detection interrupt (SWELLx) |
|
||||
+---------------------------------------------------+----------------------------------------------------------+
|
||||
| in_altvoltage[0-2]_rms_thresh_rising_value | RMS swell threshold (SWELL_LVL register) |
|
||||
+---------------------------------------------------+----------------------------------------------------------+
|
||||
| in_altvoltage[0-2]_rms_thresh_falling_en | RMS sag/dip detection interrupt (DIPx) |
|
||||
+---------------------------------------------------+----------------------------------------------------------+
|
||||
| in_altvoltage[0-2]_rms_thresh_falling_value | RMS sag/dip threshold (DIP_LVL register) |
|
||||
+---------------------------------------------------+----------------------------------------------------------+
|
||||
| in_current[0-2]_thresh_either_en | Current zero crossing detection interrupt (ZXIx) |
|
||||
+---------------------------------------------------+----------------------------------------------------------+
|
||||
|
||||
Event directions:
|
||||
|
||||
- ``rising``: Upper threshold crossing (swell detection)
|
||||
- ``falling``: Lower threshold crossing (sag/dip detection)
|
||||
- ``either``: Any threshold crossing (zero crossing detection)
|
||||
- ``none``: Timeout or non-directional events
|
||||
|
||||
**Note**: Event attributes are only available if the corresponding interrupts
|
||||
(irq0, irq1, dready) are specified in the device tree. The driver works without
|
||||
interrupts but with reduced functionality.
|
||||
|
||||
5. Device buffers
|
||||
=================
|
||||
|
||||
This driver supports IIO buffers for waveform capture. Buffer functionality
|
||||
requires the dready interrupt to be connected.
|
||||
|
||||
The device supports capturing voltage and current waveforms for power quality
|
||||
analysis. The waveform buffer can be configured to capture data from different
|
||||
channel combinations.
|
||||
|
||||
Supported channel combinations for buffered capture:
|
||||
|
||||
- Phase A: voltage and current (IA + VA)
|
||||
- Phase B: voltage and current (IB + VB)
|
||||
- Phase C: voltage and current (IC + VC)
|
||||
- All phases: all voltage and current channels
|
||||
- Individual channels: IA, VA, IB, VB, IC, VC
|
||||
|
||||
Usage examples
|
||||
--------------
|
||||
|
||||
Enable waveform capture for Phase A:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
root:/sys/bus/iio/devices/iio:device0> echo 1 > scan_elements/in_current0_en
|
||||
root:/sys/bus/iio/devices/iio:device0> echo 1 > scan_elements/in_voltage0_en
|
||||
|
||||
Set buffer length and enable:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
root:/sys/bus/iio/devices/iio:device0> echo 100 > buffer/length
|
||||
root:/sys/bus/iio/devices/iio:device0> echo 1 > buffer/enable
|
||||
|
||||
6. Clock output
|
||||
===============
|
||||
|
||||
The ADE9000 can provide a clock output via the CLKOUT pin when using an external
|
||||
crystal/clock source. This feature is enabled by specifying ``#clock-cells = <0>``
|
||||
in the device tree. The output clock will be registered as "clkout" and can be
|
||||
referenced by other devices.
|
||||
|
||||
7. Usage examples
|
||||
=================
|
||||
|
||||
Show device name:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
root:/sys/bus/iio/devices/iio:device0> cat name
|
||||
ade9000
|
||||
|
||||
Read voltage measurements:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
root:/sys/bus/iio/devices/iio:device0> cat in_voltage0_raw
|
||||
12345
|
||||
root:/sys/bus/iio/devices/iio:device0> cat in_voltage0_scale
|
||||
0.000030517
|
||||
|
||||
- Phase A voltage = in_voltage0_raw * in_voltage0_scale = 0.3769 V
|
||||
|
||||
Read power measurements:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
root:/sys/bus/iio/devices/iio:device0> cat in_power0_active_raw
|
||||
5678
|
||||
root:/sys/bus/iio/devices/iio:device0> cat in_power0_scale
|
||||
0.000244140
|
||||
|
||||
- Phase A active power = in_power0_active_raw * in_power0_scale = 1.386 W
|
||||
|
||||
Configure calibration gains:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
# Set current channel 0 calibration gain
|
||||
root:/sys/bus/iio/devices/iio:device0> echo 0x800000 > in_current0_calibscale
|
||||
# Set voltage channel 0 calibration gain
|
||||
root:/sys/bus/iio/devices/iio:device0> echo 0x7FFFFF > in_voltage0_calibscale
|
||||
|
||||
Configure RMS voltage event thresholds (requires interrupts):
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
# Set RMS sag detection threshold
|
||||
root:/sys/bus/iio/devices/iio:device0> echo 180000 > events/in_altvoltage0_rms_thresh_falling_value
|
||||
# Enable RMS sag detection
|
||||
root:/sys/bus/iio/devices/iio:device0> echo 1 > events/in_altvoltage0_rms_thresh_falling_en
|
||||
|
||||
# Set RMS swell detection threshold
|
||||
root:/sys/bus/iio/devices/iio:device0> echo 260000 > events/in_altvoltage0_rms_thresh_rising_value
|
||||
# Enable RMS swell detection
|
||||
root:/sys/bus/iio/devices/iio:device0> echo 1 > events/in_altvoltage0_rms_thresh_rising_en
|
||||
|
||||
8. IIO Interfacing Tools
|
||||
========================
|
||||
|
||||
See ``Documentation/iio/iio_tools.rst`` for the description of the available IIO
|
||||
interfacing tools.
|
|
@ -0,0 +1,443 @@
|
|||
.. SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
===============
|
||||
ADXL345 driver
|
||||
===============
|
||||
|
||||
This driver supports Analog Device's ADXL345/375 on SPI/I2C bus.
|
||||
|
||||
1. Supported Devices
|
||||
====================
|
||||
|
||||
* `ADXL345 <https://www.analog.com/ADXL345>`_
|
||||
* `ADXL375 <https://www.analog.com/ADXL375>`_
|
||||
|
||||
The ADXL345 is a generic purpose low power, 3-axis accelerometer with selectable
|
||||
measurement ranges. The ADXL345 supports the ±2 g, ±4 g, ±8 g, and ±16 g ranges.
|
||||
|
||||
2. Device Attributes
|
||||
====================
|
||||
|
||||
Each IIO device, has a device folder under ``/sys/bus/iio/devices/iio:deviceX``,
|
||||
where X is the IIO index of the device. Under these folders reside a set of
|
||||
device files, depending on the characteristics and features of the hardware
|
||||
device in questions. These files are consistently generalized and documented in
|
||||
the IIO ABI documentation.
|
||||
|
||||
The following table shows the ADXL345 related device files, found in the
|
||||
specific device folder path ``/sys/bus/iio/devices/iio:deviceX``.
|
||||
|
||||
+-------------------------------------------+----------------------------------------------------------+
|
||||
| 3-Axis Accelerometer related device files | Description |
|
||||
+-------------------------------------------+----------------------------------------------------------+
|
||||
| in_accel_sampling_frequency | Currently selected sample rate. |
|
||||
+-------------------------------------------+----------------------------------------------------------+
|
||||
| in_accel_sampling_frequency_available | Available sampling frequency configurations. |
|
||||
+-------------------------------------------+----------------------------------------------------------+
|
||||
| in_accel_scale | Scale/range for the accelerometer channels. |
|
||||
+-------------------------------------------+----------------------------------------------------------+
|
||||
| in_accel_scale_available | Available scale ranges for the accelerometer channel. |
|
||||
+-------------------------------------------+----------------------------------------------------------+
|
||||
| in_accel_x_calibbias | Calibration offset for the X-axis accelerometer channel. |
|
||||
+-------------------------------------------+----------------------------------------------------------+
|
||||
| in_accel_x_raw | Raw X-axis accelerometer channel value. |
|
||||
+-------------------------------------------+----------------------------------------------------------+
|
||||
| in_accel_y_calibbias | y-axis acceleration offset correction |
|
||||
+-------------------------------------------+----------------------------------------------------------+
|
||||
| in_accel_y_raw | Raw Y-axis accelerometer channel value. |
|
||||
+-------------------------------------------+----------------------------------------------------------+
|
||||
| in_accel_z_calibbias | Calibration offset for the Z-axis accelerometer channel. |
|
||||
+-------------------------------------------+----------------------------------------------------------+
|
||||
| in_accel_z_raw | Raw Z-axis accelerometer channel value. |
|
||||
+-------------------------------------------+----------------------------------------------------------+
|
||||
|
||||
Channel Processed Values
|
||||
-------------------------
|
||||
|
||||
A channel value can be read from its _raw attribute. The value returned is the
|
||||
raw value as reported by the devices. To get the processed value of the channel,
|
||||
apply the following formula:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
processed value = (_raw + _offset) * _scale
|
||||
|
||||
Where _offset and _scale are device attributes. If no _offset attribute is
|
||||
present, simply assume its value is 0.
|
||||
|
||||
+-------------------------------------+---------------------------+
|
||||
| Channel type | Measurement unit |
|
||||
+-------------------------------------+---------------------------+
|
||||
| Acceleration on X, Y, and Z axis | Meters per second squared |
|
||||
+-------------------------------------+---------------------------+
|
||||
|
||||
Sensor Events
|
||||
-------------
|
||||
|
||||
Specific IIO events are triggered by their corresponding interrupts. The sensor
|
||||
driver supports either none or a single active interrupt (INT) line, selectable
|
||||
from the two available options: INT1 or INT2. The active INT line should be
|
||||
specified in the device tree. If no INT line is configured, the sensor defaults
|
||||
to FIFO bypass mode, where event detection is disabled and only X, Y, and Z axis
|
||||
measurements are available.
|
||||
|
||||
The table below lists the ADXL345-related device files located in the
|
||||
device-specific path: ``/sys/bus/iio/devices/iio:deviceX/events``.
|
||||
Note that activity and inactivity detection are DC-coupled by default;
|
||||
therefore, only the AC-coupled activity and inactivity events are explicitly
|
||||
listed.
|
||||
|
||||
+---------------------------------------------+---------------------------------------------+
|
||||
| Event handle | Description |
|
||||
+---------------------------------------------+---------------------------------------------+
|
||||
| in_accel_gesture_doubletap_en | Enable double tap detection on all axis |
|
||||
+---------------------------------------------+---------------------------------------------+
|
||||
| in_accel_gesture_doubletap_reset_timeout | Double tap window in [us] |
|
||||
+---------------------------------------------+---------------------------------------------+
|
||||
| in_accel_gesture_doubletap_tap2_min_delay | Double tap latent in [us] |
|
||||
+---------------------------------------------+---------------------------------------------+
|
||||
| in_accel_gesture_singletap_timeout | Single tap duration in [us] |
|
||||
+---------------------------------------------+---------------------------------------------+
|
||||
| in_accel_gesture_singletap_value | Single tap threshold value in 62.5/LSB |
|
||||
+---------------------------------------------+---------------------------------------------+
|
||||
| in_accel_mag_falling_period | Inactivity time in seconds |
|
||||
+---------------------------------------------+---------------------------------------------+
|
||||
| in_accel_mag_falling_value | Inactivity threshold value in 62.5/LSB |
|
||||
+---------------------------------------------+---------------------------------------------+
|
||||
| in_accel_mag_adaptive_rising_en | Enable AC coupled activity on X axis |
|
||||
+---------------------------------------------+---------------------------------------------+
|
||||
| in_accel_mag_adaptive_falling_period | AC coupled inactivity time in seconds |
|
||||
+---------------------------------------------+---------------------------------------------+
|
||||
| in_accel_mag_adaptive_falling_value | AC coupled inactivity threshold in 62.5/LSB |
|
||||
+---------------------------------------------+---------------------------------------------+
|
||||
| in_accel_mag_adaptive_rising_value | AC coupled activity threshold in 62.5/LSB |
|
||||
+---------------------------------------------+---------------------------------------------+
|
||||
| in_accel_mag_rising_en | Enable activity detection on X axis |
|
||||
+---------------------------------------------+---------------------------------------------+
|
||||
| in_accel_mag_rising_value | Activity threshold value in 62.5/LSB |
|
||||
+---------------------------------------------+---------------------------------------------+
|
||||
| in_accel_x_gesture_singletap_en | Enable single tap detection on X axis |
|
||||
+---------------------------------------------+---------------------------------------------+
|
||||
| in_accel_x&y&z_mag_falling_en | Enable inactivity detection on all axis |
|
||||
+---------------------------------------------+---------------------------------------------+
|
||||
| in_accel_x&y&z_mag_adaptive_falling_en | Enable AC coupled inactivity on all axis |
|
||||
+---------------------------------------------+---------------------------------------------+
|
||||
| in_accel_y_gesture_singletap_en | Enable single tap detection on Y axis |
|
||||
+---------------------------------------------+---------------------------------------------+
|
||||
| in_accel_z_gesture_singletap_en | Enable single tap detection on Z axis |
|
||||
+---------------------------------------------+---------------------------------------------+
|
||||
|
||||
Please refer to the sensor's datasheet for a detailed description of this
|
||||
functionality.
|
||||
|
||||
Manually setting the **ODR** will cause the driver to estimate default values
|
||||
for inactivity detection timing, where higher ODR values correspond to longer
|
||||
default wait times, and lower ODR values to shorter ones. If these defaults do
|
||||
not meet your application’s needs, you can explicitly configure the inactivity
|
||||
wait time. Setting this value to 0 will revert to the default behavior.
|
||||
|
||||
When changing the **g range** configuration, the driver attempts to estimate
|
||||
appropriate activity and inactivity thresholds by scaling the default values
|
||||
based on the ratio of the previous range to the new one. The resulting threshold
|
||||
will never be zero and will always fall between 1 and 255, corresponding to up
|
||||
to 62.5 g/LSB as specified in the datasheet. However, you can override these
|
||||
estimated thresholds by setting explicit values.
|
||||
|
||||
When **activity** and **inactivity** events are enabled, the driver
|
||||
automatically manages hysteresis behavior by setting the **link** and
|
||||
**auto-sleep** bits. The link bit connects the activity and inactivity
|
||||
functions, so that one follows the other. The auto-sleep function puts the
|
||||
sensor into sleep mode when inactivity is detected, reducing power consumption
|
||||
to the sub-12.5 Hz rate.
|
||||
|
||||
The inactivity time is configurable between 1 and 255 seconds. In addition to
|
||||
inactivity detection, the sensor also supports free-fall detection, which, from
|
||||
the IIO perspective, is treated as a fall in magnitude across all axes. In
|
||||
sensor terms, free-fall is defined using an inactivity period ranging from 0.000
|
||||
to 1.000 seconds.
|
||||
|
||||
The driver behaves as follows:
|
||||
|
||||
* If the configured inactivity period is 1 second or more, the driver uses the
|
||||
sensor's inactivity register. This allows the event to be linked with
|
||||
activity detection, use auto-sleep, and be either AC- or DC-coupled.
|
||||
|
||||
* If the inactivity period is less than 1 second, the event is treated as plain
|
||||
inactivity or free-fall detection. In this case, auto-sleep and coupling
|
||||
(AC/DC) are not applied.
|
||||
|
||||
* If an inactivity time of 0 seconds is configured, the driver selects a
|
||||
heuristically determined default period (greater than 1 second) to optimize
|
||||
power consumption. This also uses the inactivity register.
|
||||
|
||||
Note: According to the datasheet, the optimal ODR for detecting activity,
|
||||
or inactivity (or when operating with the free-fall register) should fall within
|
||||
the range of 12.5 Hz to 400 Hz. The recommended free-fall threshold is between
|
||||
300 mg and 600 mg (register values 0x05 to 0x09).
|
||||
|
||||
In DC-coupled mode, the current acceleration magnitude is directly compared to
|
||||
the values in the THRESH_ACT and THRESH_INACT registers to determine activity or
|
||||
inactivity. In contrast, AC-coupled activity detection uses the acceleration
|
||||
value at the start of detection as a reference point, and subsequent samples are
|
||||
compared against this reference. While DC-coupling is the default mode-comparing
|
||||
live values to fixed thresholds-AC-coupling relies on an internal filter
|
||||
relative to the configured threshold.
|
||||
|
||||
AC and DC coupling modes are configured separately for activity and inactivity
|
||||
detection, but only one mode can be active at a time for each. For example, if
|
||||
AC-coupled activity detection is enabled and then DC-coupled mode is set, only
|
||||
DC-coupled activity detection will be active. In other words, only the most
|
||||
recent configuration is applied.
|
||||
|
||||
**Single tap** detection can be configured per the datasheet by setting the
|
||||
threshold and duration parameters. When only single tap detection is enabled,
|
||||
the single tap interrupt triggers as soon as the acceleration exceeds the
|
||||
threshold (marking the start of the duration) and then falls below it, provided
|
||||
the duration limit is not exceeded. If both single tap and double tap detections
|
||||
are enabled, the single tap interrupt is triggered only after the double tap
|
||||
event has been either confirmed or dismissed.
|
||||
|
||||
To configure **double tap** detection, you must also set the window and latency
|
||||
parameters in microseconds (µs). The latency period begins once the single tap
|
||||
signal drops below the threshold and acts as a waiting time during which any
|
||||
spikes are ignored for double tap detection. After the latency period ends, the
|
||||
detection window starts. If the acceleration rises above the threshold and then
|
||||
falls below it again within this window, a double tap event is triggered upon
|
||||
the fall below the threshold.
|
||||
|
||||
Double tap event detection is thoroughly explained in the datasheet. After a
|
||||
single tap event is detected, a double tap event may follow, provided the signal
|
||||
meets certain criteria. However, double tap detection can be invalidated for
|
||||
three reasons:
|
||||
|
||||
* If the **suppress bit** is set, any acceleration spike above the tap
|
||||
threshold during the tap latency period immediately invalidates the double tap
|
||||
detection. In other words, no spikes are allowed during latency when the
|
||||
suppress bit is active.
|
||||
|
||||
* The double tap event is invalid if the acceleration is above the threshold at
|
||||
the start of the double tap window.
|
||||
|
||||
* Double tap detection is also invalidated if the acceleration duration exceeds
|
||||
the limit set by the duration register.
|
||||
|
||||
For double tap detection, the same duration applies as for single tap: the
|
||||
acceleration must rise above the threshold and then fall below it within the
|
||||
specified duration. Note that the suppress bit is typically enabled when double
|
||||
tap detection is active.
|
||||
|
||||
Usage Examples
|
||||
--------------
|
||||
|
||||
Show device name:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
root:/sys/bus/iio/devices/iio:device0> cat name
|
||||
adxl345
|
||||
|
||||
Show accelerometer channels value:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
root:/sys/bus/iio/devices/iio:device0> cat in_accel_x_raw
|
||||
-1
|
||||
root:/sys/bus/iio/devices/iio:device0> cat in_accel_y_raw
|
||||
2
|
||||
root:/sys/bus/iio/devices/iio:device0> cat in_accel_z_raw
|
||||
-253
|
||||
|
||||
Set calibration offset for accelerometer channels:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
root:/sys/bus/iio/devices/iio:device0> cat in_accel_x_calibbias
|
||||
0
|
||||
|
||||
root:/sys/bus/iio/devices/iio:device0> echo 50 > in_accel_x_calibbias
|
||||
root:/sys/bus/iio/devices/iio:device0> cat in_accel_x_calibbias
|
||||
50
|
||||
|
||||
Given the 13-bit full resolution, the available ranges are calculated by the
|
||||
following formula:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
(g * 2 * 9.80665) / (2^(resolution) - 1) * 100; for g := 2|4|8|16
|
||||
|
||||
Scale range configuration:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
root:/sys/bus/iio/devices/iio:device0> cat ./in_accel_scale
|
||||
0.478899
|
||||
root:/sys/bus/iio/devices/iio:device0> cat ./in_accel_scale_available
|
||||
0.478899 0.957798 1.915595 3.831190
|
||||
|
||||
root:/sys/bus/iio/devices/iio:device0> echo 1.915595 > ./in_accel_scale
|
||||
root:/sys/bus/iio/devices/iio:device0> cat ./in_accel_scale
|
||||
1.915595
|
||||
|
||||
Set output data rate (ODR):
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
root:/sys/bus/iio/devices/iio:device0> cat ./in_accel_sampling_frequency
|
||||
200.000000
|
||||
|
||||
root:/sys/bus/iio/devices/iio:device0> cat ./in_accel_sampling_frequency_available
|
||||
0.097000 0.195000 0.390000 0.781000 1.562000 3.125000 6.250000 12.500000 25.000000 50.000000 100.000000 200.000000 400.000000 800.000000 1600.000000 3200.000000
|
||||
|
||||
root:/sys/bus/iio/devices/iio:device0> echo 1.562000 > ./in_accel_sampling_frequency
|
||||
root:/sys/bus/iio/devices/iio:device0> cat ./in_accel_sampling_frequency
|
||||
1.562000
|
||||
|
||||
Configure one or several events:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
root:> cd /sys/bus/iio/devices/iio:device0
|
||||
|
||||
root:/sys/bus/iio/devices/iio:device0> echo 1 > ./buffer0/in_accel_x_en
|
||||
root:/sys/bus/iio/devices/iio:device0> echo 1 > ./buffer0/in_accel_y_en
|
||||
root:/sys/bus/iio/devices/iio:device0> echo 1 > ./buffer0/in_accel_z_en
|
||||
|
||||
root:/sys/bus/iio/devices/iio:device0> echo 1 > ./scan_elements/in_accel_x_en
|
||||
root:/sys/bus/iio/devices/iio:device0> echo 1 > ./scan_elements/in_accel_y_en
|
||||
root:/sys/bus/iio/devices/iio:device0> echo 1 > ./scan_elements/in_accel_z_en
|
||||
|
||||
root:/sys/bus/iio/devices/iio:device0> echo 14 > ./in_accel_x_calibbias
|
||||
root:/sys/bus/iio/devices/iio:device0> echo 2 > ./in_accel_y_calibbias
|
||||
root:/sys/bus/iio/devices/iio:device0> echo -250 > ./in_accel_z_calibbias
|
||||
|
||||
root:/sys/bus/iio/devices/iio:device0> echo 24 > ./buffer0/length
|
||||
|
||||
## AC coupled activity, threshold [62.5/LSB]
|
||||
root:/sys/bus/iio/devices/iio:device0> echo 6 > ./events/in_accel_mag_adaptive_rising_value
|
||||
|
||||
## AC coupled inactivity, threshold, [62.5/LSB]
|
||||
root:/sys/bus/iio/devices/iio:device0> echo 4 > ./events/in_accel_mag_adaptive_falling_value
|
||||
|
||||
## AC coupled inactivity, time [s]
|
||||
root:/sys/bus/iio/devices/iio:device0> echo 3 > ./events/in_accel_mag_adaptive_falling_period
|
||||
|
||||
## singletap, threshold
|
||||
root:/sys/bus/iio/devices/iio:device0> echo 35 > ./events/in_accel_gesture_singletap_value
|
||||
|
||||
## singletap, duration [us]
|
||||
root:/sys/bus/iio/devices/iio:device0> echo 0.001875 > ./events/in_accel_gesture_singletap_timeout
|
||||
|
||||
## doubletap, window [us]
|
||||
root:/sys/bus/iio/devices/iio:device0> echo 0.025 > ./events/in_accel_gesture_doubletap_reset_timeout
|
||||
|
||||
## doubletap, latent [us]
|
||||
root:/sys/bus/iio/devices/iio:device0> echo 0.025 > ./events/in_accel_gesture_doubletap_tap2_min_delay
|
||||
|
||||
## AC coupled activity, enable
|
||||
root:/sys/bus/iio/devices/iio:device0> echo 1 > ./events/in_accel_mag_adaptive_rising_en
|
||||
|
||||
## AC coupled inactivity, enable
|
||||
root:/sys/bus/iio/devices/iio:device0> echo 1 > ./events/in_accel_x\&y\&z_mag_adaptive_falling_en
|
||||
|
||||
## singletap, enable
|
||||
root:/sys/bus/iio/devices/iio:device0> echo 1 > ./events/in_accel_x_gesture_singletap_en
|
||||
root:/sys/bus/iio/devices/iio:device0> echo 1 > ./events/in_accel_y_gesture_singletap_en
|
||||
root:/sys/bus/iio/devices/iio:device0> echo 1 > ./events/in_accel_z_gesture_singletap_en
|
||||
|
||||
## doubletap, enable
|
||||
root:/sys/bus/iio/devices/iio:device0> echo 1 > ./events/in_accel_gesture_doubletap_en
|
||||
|
||||
Verify incoming events:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
root:# iio_event_monitor adxl345
|
||||
Found IIO device with name adxl345 with device number 0
|
||||
Event: time: 1739063415957073383, type: accel(z), channel: 0, evtype: mag, direction: rising
|
||||
Event: time: 1739063415963770218, type: accel(z), channel: 0, evtype: mag, direction: rising
|
||||
Event: time: 1739063416002563061, type: accel(z), channel: 0, evtype: gesture, direction: singletap
|
||||
Event: time: 1739063426271128739, type: accel(x&y&z), channel: 0, evtype: mag, direction: falling
|
||||
Event: time: 1739063436539080713, type: accel(x&y&z), channel: 0, evtype: mag, direction: falling
|
||||
Event: time: 1739063438357970381, type: accel(z), channel: 0, evtype: mag, direction: rising
|
||||
Event: time: 1739063446726161586, type: accel(z), channel: 0, evtype: mag, direction: rising
|
||||
Event: time: 1739063446727892670, type: accel(z), channel: 0, evtype: mag, direction: rising
|
||||
Event: time: 1739063446743019768, type: accel(z), channel: 0, evtype: mag, direction: rising
|
||||
Event: time: 1739063446744650696, type: accel(z), channel: 0, evtype: mag, direction: rising
|
||||
Event: time: 1739063446763559386, type: accel(z), channel: 0, evtype: gesture, direction: singletap
|
||||
Event: time: 1739063448818126480, type: accel(x&y&z), channel: 0, evtype: mag, direction: falling
|
||||
...
|
||||
|
||||
Activity and inactivity belong together and indicate state changes as follows
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
root:# iio_event_monitor adxl345
|
||||
Found IIO device with name adxl345 with device number 0
|
||||
Event: time: 1744648001133946293, type: accel(x), channel: 0, evtype: mag, direction: rising
|
||||
<after inactivity time elapsed>
|
||||
Event: time: 1744648057724775499, type: accel(x&y&z), channel: 0, evtype: mag, direction: falling
|
||||
...
|
||||
|
||||
3. Device Buffers
|
||||
=================
|
||||
|
||||
This driver supports IIO buffers.
|
||||
|
||||
All devices support retrieving the raw acceleration and temperature measurements
|
||||
using buffers.
|
||||
|
||||
Usage examples
|
||||
--------------
|
||||
|
||||
Select channels for buffer read:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
root:/sys/bus/iio/devices/iio:device0> echo 1 > scan_elements/in_accel_x_en
|
||||
root:/sys/bus/iio/devices/iio:device0> echo 1 > scan_elements/in_accel_y_en
|
||||
root:/sys/bus/iio/devices/iio:device0> echo 1 > scan_elements/in_accel_z_en
|
||||
|
||||
Set the number of samples to be stored in the buffer:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
root:/sys/bus/iio/devices/iio:device0> echo 10 > buffer/length
|
||||
|
||||
Enable buffer readings:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
root:/sys/bus/iio/devices/iio:device0> echo 1 > buffer/enable
|
||||
|
||||
Obtain buffered data:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
root:> iio_readdev -b 16 -s 1024 adxl345 | hexdump -d
|
||||
WARNING: High-speed mode not enabled
|
||||
0000000 00003 00012 00013 00005 00010 00011 00005 00011
|
||||
0000010 00013 00004 00012 00011 00003 00012 00014 00007
|
||||
0000020 00011 00013 00004 00013 00014 00003 00012 00013
|
||||
0000030 00004 00012 00013 00005 00011 00011 00005 00012
|
||||
0000040 00014 00005 00012 00014 00004 00010 00012 00004
|
||||
0000050 00013 00011 00003 00011 00012 00005 00011 00013
|
||||
0000060 00003 00012 00012 00003 00012 00012 00004 00012
|
||||
0000070 00012 00003 00013 00013 00003 00013 00012 00005
|
||||
0000080 00012 00013 00003 00011 00012 00005 00012 00013
|
||||
0000090 00003 00013 00011 00005 00013 00014 00003 00012
|
||||
00000a0 00012 00003 00012 00013 00004 00012 00015 00004
|
||||
00000b0 00014 00011 00003 00014 00013 00004 00012 00011
|
||||
00000c0 00004 00012 00013 00004 00014 00011 00004 00013
|
||||
00000d0 00012 00002 00014 00012 00005 00012 00013 00005
|
||||
00000e0 00013 00013 00003 00013 00013 00005 00012 00013
|
||||
00000f0 00004 00014 00015 00005 00012 00011 00005 00012
|
||||
...
|
||||
|
||||
See ``Documentation/iio/iio_devbuf.rst`` for more information about how buffered
|
||||
data is structured.
|
||||
|
||||
4. IIO Interfacing Tools
|
||||
========================
|
||||
|
||||
See ``Documentation/iio/iio_tools.rst`` for the description of the available IIO
|
||||
interfacing tools.
|
|
@ -9,11 +9,11 @@ BNO055 driver
|
|||
|
||||
This driver supports Bosch BNO055 IMUs (on both serial and I2C busses).
|
||||
|
||||
Accelerometer, magnetometer and gyroscope measures are always provided.
|
||||
Accelerometer, magnetometer and gyroscope measurements are always available.
|
||||
When "fusion_enable" sysfs attribute is set to 1, orientation (both Euler
|
||||
angles and quaternion), linear velocity and gravity vector are also
|
||||
provided, but some sensor settings (e.g. low pass filtering and range)
|
||||
became locked (the IMU firmware controls them).
|
||||
become locked (the IMU firmware controls them).
|
||||
|
||||
This driver supports also IIO buffers.
|
||||
|
||||
|
@ -24,14 +24,14 @@ The IMU continuously performs an autocalibration procedure if (and only if)
|
|||
operating in fusion mode. The magnetometer autocalibration can however be
|
||||
disabled by writing 0 in the sysfs in_magn_calibration_fast_enable attribute.
|
||||
|
||||
The driver provides access to autocalibration flags (i.e. you can known if
|
||||
the IMU has successfully autocalibrated) and to the calibration data blob.
|
||||
The driver provides access to autocalibration flags (i.e. you can determine
|
||||
if the IMU has successfully autocalibrated) and to the calibration data blob.
|
||||
|
||||
The user can save this blob in a firmware file (i.e. in /lib/firmware) that
|
||||
the driver looks for at probe time. If found, then the IMU is initialized
|
||||
with this calibration data. This saves the user from performing the
|
||||
calibration procedure every time (which consist of moving the IMU in
|
||||
various way).
|
||||
calibration procedure every time (which consists of moving the IMU in
|
||||
various ways).
|
||||
|
||||
The driver looks for calibration data file using two different names: first
|
||||
a file whose name is suffixed with the IMU unique ID (exposed in sysfs as
|
||||
|
|
|
@ -28,11 +28,13 @@ Industrial I/O Kernel Drivers
|
|||
ad7606
|
||||
ad7625
|
||||
ad7944
|
||||
ade9000
|
||||
adis16475
|
||||
adis16480
|
||||
adis16550
|
||||
adxl313
|
||||
adxl380
|
||||
adxl345
|
||||
bno055
|
||||
ep93xx_adc
|
||||
opt4060
|
||||
|
|
|
@ -0,0 +1,93 @@
|
|||
# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
|
||||
#
|
||||
# Copyright 2025 Google LLC
|
||||
#
|
||||
---
|
||||
name: binder
|
||||
protocol: genetlink
|
||||
uapi-header: linux/android/binder_netlink.h
|
||||
doc: Binder interface over generic netlink
|
||||
|
||||
attribute-sets:
|
||||
-
|
||||
name: report
|
||||
doc: |
|
||||
Attributes included within a transaction failure report. The elements
|
||||
correspond directly with the specific transaction that failed, along
|
||||
with the error returned to the sender e.g. BR_DEAD_REPLY.
|
||||
|
||||
attributes:
|
||||
-
|
||||
name: error
|
||||
type: u32
|
||||
doc: The enum binder_driver_return_protocol returned to the sender.
|
||||
-
|
||||
name: context
|
||||
type: string
|
||||
doc: The binder context where the transaction occurred.
|
||||
-
|
||||
name: from-pid
|
||||
type: u32
|
||||
doc: The PID of the sender process.
|
||||
-
|
||||
name: from-tid
|
||||
type: u32
|
||||
doc: The TID of the sender thread.
|
||||
-
|
||||
name: to-pid
|
||||
type: u32
|
||||
doc: |
|
||||
The PID of the recipient process. This attribute may not be present
|
||||
if the target could not be determined.
|
||||
-
|
||||
name: to-tid
|
||||
type: u32
|
||||
doc: |
|
||||
The TID of the recipient thread. This attribute may not be present
|
||||
if the target could not be determined.
|
||||
-
|
||||
name: is-reply
|
||||
type: flag
|
||||
doc: When present, indicates the failed transaction is a reply.
|
||||
-
|
||||
name: flags
|
||||
type: u32
|
||||
doc: The bitmask of enum transaction_flags from the transaction.
|
||||
-
|
||||
name: code
|
||||
type: u32
|
||||
doc: The application-defined code from the transaction.
|
||||
-
|
||||
name: data-size
|
||||
type: u32
|
||||
doc: The transaction payload size in bytes.
|
||||
|
||||
operations:
|
||||
list:
|
||||
-
|
||||
name: report
|
||||
doc: |
|
||||
A multicast event sent to userspace subscribers to notify them about
|
||||
binder transaction failures. The generated report provides the full
|
||||
details of the specific transaction that failed. The intention is for
|
||||
programs to monitor these events and react to the failures as needed.
|
||||
|
||||
attribute-set: report
|
||||
mcgrp: report
|
||||
event:
|
||||
attributes:
|
||||
- error
|
||||
- context
|
||||
- from-pid
|
||||
- from-tid
|
||||
- to-pid
|
||||
- to-tid
|
||||
- is-reply
|
||||
- flags
|
||||
- code
|
||||
- data-size
|
||||
|
||||
mcast-groups:
|
||||
list:
|
||||
-
|
||||
name: report
|
35
MAINTAINERS
35
MAINTAINERS
|
@ -458,6 +458,11 @@ F: Documentation/devicetree/bindings/iio/adc/adi,ad7380.yaml
|
|||
F: Documentation/iio/ad7380.rst
|
||||
F: drivers/iio/adc/ad7380.c
|
||||
|
||||
AD7476 ADC DRIVER FOR VARIOUS SIMPLE 1-CHANNEL SPI ADCs
|
||||
M: Matti Vaittinen <mazziesaccount@gmail.com>
|
||||
S: Maintained
|
||||
F: drivers/iio/adc/ad7476.c
|
||||
|
||||
AD7877 TOUCHSCREEN DRIVER
|
||||
M: Michael Hennerich <michael.hennerich@analog.com>
|
||||
S: Supported
|
||||
|
@ -1810,6 +1815,7 @@ M: Suren Baghdasaryan <surenb@google.com>
|
|||
L: linux-kernel@vger.kernel.org
|
||||
S: Supported
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git
|
||||
F: Documentation/netlink/specs/binder.yaml
|
||||
F: drivers/android/
|
||||
|
||||
ANDROID GOLDFISH PIC DRIVER
|
||||
|
@ -12204,6 +12210,14 @@ S: Maintained
|
|||
F: Documentation/devicetree/bindings/sound/infineon,peb2466.yaml
|
||||
F: sound/soc/codecs/peb2466.c
|
||||
|
||||
INFINEON TLV493D Driver
|
||||
M: Dixit Parmar <dixitparmar19@gmail.com>
|
||||
L: linux-iio@vger.kernel.org
|
||||
S: Maintained
|
||||
W: https://www.infineon.com/part/TLV493D-A1B6
|
||||
F: Documentation/devicetree/bindings/iio/magnetometer/infineon,tlv493d-a1b6.yaml
|
||||
F: drivers/iio/magnetometer/tlv493d.c
|
||||
|
||||
INFINIBAND SUBSYSTEM
|
||||
M: Jason Gunthorpe <jgg@nvidia.com>
|
||||
M: Leon Romanovsky <leonro@nvidia.com>
|
||||
|
@ -14925,6 +14939,11 @@ F: drivers/regulator/88pm886-regulator.c
|
|||
F: drivers/rtc/rtc-88pm886.c
|
||||
F: include/linux/mfd/88pm886.h
|
||||
|
||||
MARVELL 88PM886 PMIC GPADC DRIVER
|
||||
M: Duje Mihanović <duje@dujemihanovic.xyz>
|
||||
S: Maintained
|
||||
F: drivers/iio/adc/88pm886-gpadc.c
|
||||
|
||||
MARVELL ARMADA 3700 PHY DRIVERS
|
||||
M: Miquel Raynal <miquel.raynal@bootlin.com>
|
||||
S: Maintained
|
||||
|
@ -15232,9 +15251,9 @@ F: Documentation/devicetree/bindings/regulator/maxim,max20086.yaml
|
|||
F: drivers/regulator/max20086-regulator.c
|
||||
|
||||
MAXIM MAX30208 TEMPERATURE SENSOR DRIVER
|
||||
M: Rajat Khandelwal <rajat.khandelwal@linux.intel.com>
|
||||
M: Marcelo Schmitt <marcelo.schmitt@analog.com>
|
||||
L: linux-iio@vger.kernel.org
|
||||
S: Maintained
|
||||
S: Supported
|
||||
F: drivers/iio/temperature/max30208.c
|
||||
|
||||
MAXIM MAX7360 KEYPAD LED MFD DRIVER
|
||||
|
@ -22251,9 +22270,10 @@ S: Supported
|
|||
F: drivers/power/supply/bd99954-charger.c
|
||||
F: drivers/power/supply/bd99954-charger.h
|
||||
|
||||
ROHM BD79124 ADC / GPO IC
|
||||
ROHM BD791xx ADC / GPO IC
|
||||
M: Matti Vaittinen <mazziesaccount@gmail.com>
|
||||
S: Supported
|
||||
F: drivers/iio/adc/rohm-bd79112.c
|
||||
F: drivers/iio/adc/rohm-bd79124.c
|
||||
|
||||
ROHM BH1745 COLOUR SENSOR
|
||||
|
@ -27241,6 +27261,12 @@ S: Maintained
|
|||
F: Documentation/devicetree/bindings/iio/light/vishay,veml6030.yaml
|
||||
F: drivers/iio/light/veml6030.c
|
||||
|
||||
VISHAY VEML6046X00 RGBIR COLOR SENSOR DRIVER
|
||||
M: Andreas Klinger <ak@it-klinger.de>
|
||||
S: Maintained
|
||||
F: Documentation/devicetree/bindings/iio/light/vishay,veml6046x00.yaml
|
||||
F: drivers/iio/light/veml6046x00.c
|
||||
|
||||
VISHAY VEML6075 UVA AND UVB LIGHT SENSOR DRIVER
|
||||
M: Javier Carrasco <javier.carrasco.cruz@gmail.com>
|
||||
S: Maintained
|
||||
|
@ -27972,7 +27998,8 @@ F: include/uapi/linux/dqblk_xfs.h
|
|||
F: include/uapi/linux/fsmap.h
|
||||
|
||||
XILINX AMS DRIVER
|
||||
M: Anand Ashok Dumbre <anand.ashok.dumbre@xilinx.com>
|
||||
M: Salih Erim <salih.erim@amd.com>
|
||||
M: Conall O'Griofa <conall.ogriofa@amd.com>
|
||||
L: linux-iio@vger.kernel.org
|
||||
S: Maintained
|
||||
F: Documentation/devicetree/bindings/iio/adc/xlnx,zynqmp-ams.yaml
|
||||
|
|
|
@ -28,7 +28,6 @@
|
|||
* #define APC_DEBUG_LED
|
||||
*/
|
||||
|
||||
#define APC_MINOR MISC_DYNAMIC_MINOR
|
||||
#define APC_OBPNAME "power-management"
|
||||
#define APC_DEVNAME "apc"
|
||||
|
||||
|
@ -138,7 +137,7 @@ static const struct file_operations apc_fops = {
|
|||
.llseek = noop_llseek,
|
||||
};
|
||||
|
||||
static struct miscdevice apc_miscdev = { APC_MINOR, APC_DEVNAME, &apc_fops };
|
||||
static struct miscdevice apc_miscdev = { MISC_DYNAMIC_MINOR, APC_DEVNAME, &apc_fops };
|
||||
|
||||
static int apc_probe(struct platform_device *op)
|
||||
{
|
||||
|
|
|
@ -4,6 +4,7 @@ menu "Android"
|
|||
config ANDROID_BINDER_IPC
|
||||
bool "Android Binder IPC Driver"
|
||||
depends on MMU
|
||||
depends on NET
|
||||
default n
|
||||
help
|
||||
Binder is used in Android for both communication between processes,
|
||||
|
@ -13,6 +14,19 @@ config ANDROID_BINDER_IPC
|
|||
Android process, using Binder to identify, invoke and pass arguments
|
||||
between said processes.
|
||||
|
||||
config ANDROID_BINDER_IPC_RUST
|
||||
bool "Rust version of Android Binder IPC Driver"
|
||||
depends on RUST && MMU && !ANDROID_BINDER_IPC
|
||||
help
|
||||
This enables the Rust implementation of the Binder driver.
|
||||
|
||||
Binder is used in Android for both communication between processes,
|
||||
and remote method invocation.
|
||||
|
||||
This means one Android process can call a method/routine in another
|
||||
Android process, using Binder to identify, invoke and pass arguments
|
||||
between said processes.
|
||||
|
||||
config ANDROID_BINDERFS
|
||||
bool "Android Binderfs filesystem"
|
||||
depends on ANDROID_BINDER_IPC
|
||||
|
@ -27,7 +41,7 @@ config ANDROID_BINDERFS
|
|||
|
||||
config ANDROID_BINDER_DEVICES
|
||||
string "Android Binder devices"
|
||||
depends on ANDROID_BINDER_IPC
|
||||
depends on ANDROID_BINDER_IPC || ANDROID_BINDER_IPC_RUST
|
||||
default "binder,hwbinder,vndbinder"
|
||||
help
|
||||
Default value for the binder.devices parameter.
|
||||
|
|
|
@ -2,5 +2,6 @@
|
|||
ccflags-y += -I$(src) # needed for trace events
|
||||
|
||||
obj-$(CONFIG_ANDROID_BINDERFS) += binderfs.o
|
||||
obj-$(CONFIG_ANDROID_BINDER_IPC) += binder.o binder_alloc.o
|
||||
obj-$(CONFIG_ANDROID_BINDER_IPC) += binder.o binder_alloc.o binder_netlink.o
|
||||
obj-$(CONFIG_ANDROID_BINDER_ALLOC_KUNIT_TEST) += tests/
|
||||
obj-$(CONFIG_ANDROID_BINDER_IPC_RUST) += binder/
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue