mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-07-16 17:57:38 -04:00
Merge branch 'for-6.15/amd_sfh' into for-linus
From: Mario Limonciello <mario.limonciello@amd.com> Some platforms include a human presence detection (HPD) sensor. When enabled and a user is detected a wake event will be emitted from the sensor fusion hub that software can react to. Example use cases are "wake from suspend on approach" or to "lock when leaving". This is currently enabled by default on supported systems, but users can't control it. This essentially means that wake on approach is enabled which is a really surprising behavior to users that don't expect it. Instead of defaulting to enabled add a sysfs knob that users can use to enable the feature if desirable and set it to disabled by default.
This commit is contained in:
10
.mailmap
10
.mailmap
@@ -142,13 +142,17 @@ Boris Brezillon <bbrezillon@kernel.org> <boris.brezillon@bootlin.com>
|
||||
Boris Brezillon <bbrezillon@kernel.org> <boris.brezillon@free-electrons.com>
|
||||
Brendan Higgins <brendan.higgins@linux.dev> <brendanhiggins@google.com>
|
||||
Brian Avery <b.avery@hp.com>
|
||||
Brian Cain <bcain@kernel.org> <brian.cain@oss.qualcomm.com>
|
||||
Brian Cain <bcain@kernel.org> <bcain@quicinc.com>
|
||||
Brian King <brking@us.ibm.com>
|
||||
Brian Silverman <bsilver16384@gmail.com> <brian.silverman@bluerivertech.com>
|
||||
Bryan Tan <bryan-bt.tan@broadcom.com> <bryantan@vmware.com>
|
||||
Cai Huoqing <cai.huoqing@linux.dev> <caihuoqing@baidu.com>
|
||||
Can Guo <quic_cang@quicinc.com> <cang@codeaurora.org>
|
||||
Carl Huang <quic_cjhuang@quicinc.com> <cjhuang@codeaurora.org>
|
||||
Carlos Bilbao <carlos.bilbao.osdev@gmail.com> <carlos.bilbao@amd.com>
|
||||
Carlos Bilbao <carlos.bilbao@kernel.org> <carlos.bilbao@amd.com>
|
||||
Carlos Bilbao <carlos.bilbao@kernel.org> <carlos.bilbao.osdev@gmail.com>
|
||||
Carlos Bilbao <carlos.bilbao@kernel.org> <bilbao@vt.edu>
|
||||
Changbin Du <changbin.du@intel.com> <changbin.du@gmail.com>
|
||||
Changbin Du <changbin.du@intel.com> <changbin.du@intel.com>
|
||||
Chao Yu <chao@kernel.org> <chao2.yu@samsung.com>
|
||||
@@ -165,6 +169,7 @@ Christian Brauner <brauner@kernel.org> <christian.brauner@canonical.com>
|
||||
Christian Brauner <brauner@kernel.org> <christian.brauner@ubuntu.com>
|
||||
Christian Marangi <ansuelsmth@gmail.com>
|
||||
Christophe Ricard <christophe.ricard@gmail.com>
|
||||
Christopher Obbard <christopher.obbard@linaro.org> <chris.obbard@collabora.com>
|
||||
Christoph Hellwig <hch@lst.de>
|
||||
Chuck Lever <chuck.lever@oracle.com> <cel@kernel.org>
|
||||
Chuck Lever <chuck.lever@oracle.com> <cel@netapp.com>
|
||||
@@ -261,6 +266,7 @@ Guo Ren <guoren@kernel.org> <ren_guo@c-sky.com>
|
||||
Guru Das Srinagesh <quic_gurus@quicinc.com> <gurus@codeaurora.org>
|
||||
Gustavo Padovan <gustavo@las.ic.unicamp.br>
|
||||
Gustavo Padovan <padovan@profusion.mobi>
|
||||
Hamza Mahfooz <hamzamahfooz@linux.microsoft.com> <hamza.mahfooz@amd.com>
|
||||
Hanjun Guo <guohanjun@huawei.com> <hanjun.guo@linaro.org>
|
||||
Hans Verkuil <hverkuil@xs4all.nl> <hansverk@cisco.com>
|
||||
Hans Verkuil <hverkuil@xs4all.nl> <hverkuil-cisco@xs4all.nl>
|
||||
@@ -415,6 +421,7 @@ Liam Mark <quic_lmark@quicinc.com> <lmark@codeaurora.org>
|
||||
Linas Vepstas <linas@austin.ibm.com>
|
||||
Linus Lüssing <linus.luessing@c0d3.blue> <linus.luessing@ascom.ch>
|
||||
Linus Lüssing <linus.luessing@c0d3.blue> <linus.luessing@web.de>
|
||||
Linus Lüssing <linus.luessing@c0d3.blue> <ll@simonwunderlich.de>
|
||||
<linux-hardening@vger.kernel.org> <kernel-hardening@lists.openwall.com>
|
||||
Li Yang <leoyang.li@nxp.com> <leoli@freescale.com>
|
||||
Li Yang <leoyang.li@nxp.com> <leo@zh-kernel.org>
|
||||
@@ -760,6 +767,7 @@ Wolfram Sang <wsa@kernel.org> <wsa@the-dreams.de>
|
||||
Yakir Yang <kuankuan.y@gmail.com> <ykk@rock-chips.com>
|
||||
Yanteng Si <si.yanteng@linux.dev> <siyanteng@loongson.cn>
|
||||
Ying Huang <huang.ying.caritas@gmail.com> <ying.huang@intel.com>
|
||||
Yosry Ahmed <yosry.ahmed@linux.dev> <yosryahmed@google.com>
|
||||
Yusuke Goda <goda.yusuke@renesas.com>
|
||||
Zack Rusin <zack.rusin@broadcom.com> <zackr@vmware.com>
|
||||
Zhu Yanjun <zyjzyj2000@gmail.com> <yanjunz@nvidia.com>
|
||||
|
||||
8
CREDITS
8
CREDITS
@@ -2515,11 +2515,9 @@ D: SLS distribution
|
||||
D: Initial implementation of VC's, pty's and select()
|
||||
|
||||
N: Pavel Machek
|
||||
E: pavel@ucw.cz
|
||||
E: pavel@kernel.org
|
||||
P: 4096R/92DFCE96 4FA7 9EEF FCD4 C44F C585 B8C7 C060 2241 92DF CE96
|
||||
D: Softcursor for vga, hypertech cdrom support, vcsa bugfix, nbd,
|
||||
D: sun4/330 port, capabilities for elf, speedup for rm on ext2, USB,
|
||||
D: work on suspend-to-ram/disk, killing duplicates from ioctl32,
|
||||
D: NBD, Sun4/330 port, USB, work on suspend-to-ram/disk,
|
||||
D: Altera SoCFPGA and Nokia N900 support.
|
||||
S: Czech Republic
|
||||
|
||||
@@ -4339,7 +4337,7 @@ D: Freescale Highspeed USB device driver
|
||||
D: Freescale QE SoC support and Ethernet driver
|
||||
S: B-1206 Jingmao Guojigongyu
|
||||
S: 16 Baliqiao Nanjie, Beijing 101100
|
||||
S: People's Repulic of China
|
||||
S: People's Republic of China
|
||||
|
||||
N: Vlad Yasevich
|
||||
E: vyasevich@gmail.com
|
||||
|
||||
9
Documentation/ABI/stable/sysfs-class-bluetooth
Normal file
9
Documentation/ABI/stable/sysfs-class-bluetooth
Normal file
@@ -0,0 +1,9 @@
|
||||
What: /sys/class/bluetooth/hci<index>/reset
|
||||
Date: 14-Jan-2025
|
||||
KernelVersion: 6.13
|
||||
Contact: linux-bluetooth@vger.kernel.org
|
||||
Description: This write-only attribute allows users to trigger the vendor reset
|
||||
method on the Bluetooth device when arbitrary data is written.
|
||||
The reset may or may not be done through the device transport
|
||||
(e.g., UART/USB), and can also be done through an out-of-band
|
||||
approach such as GPIO.
|
||||
@@ -0,0 +1,15 @@
|
||||
What: /sys/bus/coresight/devices/dummy_source<N>/enable_source
|
||||
Date: Dec 2024
|
||||
KernelVersion: 6.14
|
||||
Contact: Mao Jinlong <quic_jinlmao@quicinc.com>
|
||||
Description: (RW) Enable/disable tracing of dummy source. A sink should be activated
|
||||
before enabling the source. The path of coresight components linking
|
||||
the source to the sink is configured and managed automatically by the
|
||||
coresight framework.
|
||||
|
||||
What: /sys/bus/coresight/devices/dummy_source<N>/traceid
|
||||
Date: Dec 2024
|
||||
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.
|
||||
24
Documentation/ABI/testing/sysfs-bus-event_source-devices
Normal file
24
Documentation/ABI/testing/sysfs-bus-event_source-devices
Normal file
@@ -0,0 +1,24 @@
|
||||
What: /sys/bus/event_source/devices/<pmu>
|
||||
Date: 2014/02/24
|
||||
Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
|
||||
Description: Performance Monitoring Unit (<pmu>)
|
||||
|
||||
Each <pmu> directory, for a PMU device, is a name
|
||||
optionally followed by an underscore and then either a
|
||||
decimal or hexadecimal number. For example, cpu is a
|
||||
PMU name without a suffix as is intel_bts,
|
||||
uncore_imc_0 is a PMU name with a 0 numeric suffix,
|
||||
ddr_pmu_87e1b0000000 is a PMU name with a hex
|
||||
suffix. The hex suffix must be more than two
|
||||
characters long to avoid ambiguity with PMUs like the
|
||||
S390 cpum_cf.
|
||||
|
||||
Tools can treat PMUs with the same name that differ by
|
||||
suffix as instances of the same PMU for the sake of,
|
||||
for example, opening an event. For example, the PMUs
|
||||
uncore_imc_free_running_0 and
|
||||
uncore_imc_free_running_1 have an event data_read;
|
||||
opening the data_read event on a PMU specified as
|
||||
uncore_imc_free_running should be treated as opening
|
||||
the data_read event on PMU uncore_imc_free_running_0
|
||||
and PMU uncore_imc_free_running_1.
|
||||
@@ -37,11 +37,13 @@ Description: Per-pmu performance monitoring events specific to the running syste
|
||||
performance monitoring event supported by the <pmu>. The name
|
||||
of the file is the name of the event.
|
||||
|
||||
As performance monitoring event names are case
|
||||
insensitive in the perf tool, the perf tool only looks
|
||||
for lower or upper case event names in sysfs to avoid
|
||||
As performance monitoring event names are case insensitive
|
||||
in the perf tool, the perf tool only looks for all lower
|
||||
case or all upper case event names in sysfs to avoid
|
||||
scanning the directory. It is therefore required the
|
||||
name of the event here is either lower or upper case.
|
||||
name of the event here is either completely lower or upper
|
||||
case, with no mixed-case characters. Numbers, '.', '_', and
|
||||
'-' are also allowed.
|
||||
|
||||
File contents:
|
||||
|
||||
|
||||
@@ -168,18 +168,6 @@ Description:
|
||||
is required is a consistent labeling. Units after application
|
||||
of scale and offset are millivolts.
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_currentY_raw
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_currentY_supply_raw
|
||||
KernelVersion: 3.17
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
Raw (unscaled no bias removal etc.) current measurement from
|
||||
channel Y. In special cases where the channel does not
|
||||
correspond to externally available input one of the named
|
||||
versions may be used. The number must always be specified and
|
||||
unique to allow association with event codes. Units after
|
||||
application of scale and offset are milliamps.
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_powerY_raw
|
||||
KernelVersion: 4.5
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
@@ -227,7 +215,7 @@ Description:
|
||||
same scaling as _raw.
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_temp_raw
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_tempX_raw
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_tempY_raw
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_temp_x_raw
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_temp_y_raw
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_temp_ambient_raw
|
||||
@@ -416,11 +404,11 @@ Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
Scaled humidity measurement in milli percent.
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_X_mean_raw
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_Y_mean_raw
|
||||
KernelVersion: 3.5
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
Averaged raw measurement from channel X. The number of values
|
||||
Averaged raw measurement from channel Y. The number of values
|
||||
used for averaging is device specific. The converting rules for
|
||||
normal raw values also applies to the averaged raw values.
|
||||
|
||||
@@ -448,7 +436,7 @@ What: /sys/bus/iio/devices/iio:deviceX/in_humidityrelative_offset
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_magn_offset
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_rot_offset
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_angl_offset
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_capacitanceX_offset
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_capacitanceY_offset
|
||||
KernelVersion: 2.6.35
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
@@ -508,6 +496,9 @@ What: /sys/bus/iio/devices/iio:deviceX/in_angl_scale
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_intensity_x_scale
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_intensity_y_scale
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_intensity_z_scale
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_intensity_red_scale
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_intensity_green_scale
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_intensity_blue_scale
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_concentration_co2_scale
|
||||
KernelVersion: 2.6.35
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
@@ -660,10 +651,10 @@ What: /sys/.../iio:deviceX/in_magn_scale_available
|
||||
What: /sys/.../iio:deviceX/in_illuminance_scale_available
|
||||
What: /sys/.../iio:deviceX/in_intensity_scale_available
|
||||
What: /sys/.../iio:deviceX/in_proximity_scale_available
|
||||
What: /sys/.../iio:deviceX/in_voltageX_scale_available
|
||||
What: /sys/.../iio:deviceX/in_voltageY_scale_available
|
||||
What: /sys/.../iio:deviceX/in_voltage-voltage_scale_available
|
||||
What: /sys/.../iio:deviceX/out_voltageX_scale_available
|
||||
What: /sys/.../iio:deviceX/out_altvoltageX_scale_available
|
||||
What: /sys/.../iio:deviceX/out_voltageY_scale_available
|
||||
What: /sys/.../iio:deviceX/out_altvoltageY_scale_available
|
||||
What: /sys/.../iio:deviceX/in_capacitance_scale_available
|
||||
What: /sys/.../iio:deviceX/in_pressure_scale_available
|
||||
What: /sys/.../iio:deviceX/in_pressureY_scale_available
|
||||
@@ -681,6 +672,7 @@ What: /sys/bus/iio/devices/iio:deviceX/in_intensity_red_hardwaregain
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_intensity_green_hardwaregain
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_intensity_blue_hardwaregain
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_intensity_clear_hardwaregain
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_illuminance_hardwaregain
|
||||
KernelVersion: 2.6.35
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
@@ -1562,7 +1554,7 @@ Description:
|
||||
This attribute is used to read the amount of quadrature error
|
||||
present in the device at a given time.
|
||||
|
||||
What: /sys/.../iio:deviceX/in_accelX_power_mode
|
||||
What: /sys/.../iio:deviceX/in_accelY_power_mode
|
||||
KernelVersion: 3.11
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
@@ -1633,6 +1625,10 @@ What: /sys/.../iio:deviceX/in_intensityY_uv_raw
|
||||
What: /sys/.../iio:deviceX/in_intensityY_uva_raw
|
||||
What: /sys/.../iio:deviceX/in_intensityY_uvb_raw
|
||||
What: /sys/.../iio:deviceX/in_intensityY_duv_raw
|
||||
What: /sys/.../iio:deviceX/in_intensity_red_raw
|
||||
What: /sys/.../iio:deviceX/in_intensity_green_raw
|
||||
What: /sys/.../iio:deviceX/in_intensity_blue_raw
|
||||
What: /sys/.../iio:deviceX/in_intensity_clear_raw
|
||||
KernelVersion: 3.4
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
@@ -1691,16 +1687,19 @@ Description:
|
||||
Raw value of rotation from true/magnetic north measured with
|
||||
or without compensation from tilt sensors.
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_currentX_raw
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_currentX_i_raw
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_currentX_q_raw
|
||||
KernelVersion: 3.18
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_currentY_raw
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_currentY_supply_raw
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_currentY_i_raw
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_currentY_q_raw
|
||||
KernelVersion: 3.17
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
Raw current measurement from channel X. Units are in milliamps
|
||||
Raw current measurement from channel Y. Units are in milliamps
|
||||
after application of scale and offset. If no offset or scale is
|
||||
present, output should be considered as processed with the
|
||||
unit in milliamps.
|
||||
unit in milliamps. In special cases where the channel does not
|
||||
correspond to externally available input one of the named
|
||||
versions may be used.
|
||||
|
||||
Channels with 'i' and 'q' modifiers always exist in pairs and both
|
||||
channels refer to the same signal. The 'i' channel contains the in-phase
|
||||
@@ -1864,9 +1863,9 @@ Description:
|
||||
hardware fifo watermark level.
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_temp_calibemissivity
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_tempX_calibemissivity
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_tempY_calibemissivity
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_temp_object_calibemissivity
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_tempX_object_calibemissivity
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_tempY_object_calibemissivity
|
||||
KernelVersion: 4.1
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
@@ -1887,17 +1886,17 @@ Description:
|
||||
is considered as one sample for <type>[_name]_sampling_frequency.
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_concentration_raw
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_concentrationX_raw
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_concentrationY_raw
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_concentration_co2_raw
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_concentrationX_co2_raw
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_concentrationY_co2_raw
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_concentration_ethanol_raw
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_concentrationX_ethanol_raw
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_concentrationY_ethanol_raw
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_concentration_h2_raw
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_concentrationX_h2_raw
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_concentrationY_h2_raw
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_concentration_o2_raw
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_concentrationX_o2_raw
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_concentrationY_o2_raw
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_concentration_voc_raw
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_concentrationX_voc_raw
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_concentrationY_voc_raw
|
||||
KernelVersion: 4.3
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
@@ -1905,9 +1904,9 @@ Description:
|
||||
after application of scale and offset are percents.
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_resistance_raw
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_resistanceX_raw
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_resistanceY_raw
|
||||
What: /sys/bus/iio/devices/iio:deviceX/out_resistance_raw
|
||||
What: /sys/bus/iio/devices/iio:deviceX/out_resistanceX_raw
|
||||
What: /sys/bus/iio/devices/iio:deviceX/out_resistanceY_raw
|
||||
KernelVersion: 4.3
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
@@ -2096,7 +2095,7 @@ Description:
|
||||
One of the following thermocouple types: B, E, J, K, N, R, S, T.
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_temp_object_calibambient
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_tempX_object_calibambient
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_tempY_object_calibambient
|
||||
KernelVersion: 5.10
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
@@ -2172,9 +2171,9 @@ Description:
|
||||
|
||||
- a range specified as "[min step max]"
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_voltageX_sampling_frequency
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_voltageY_sampling_frequency
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_powerY_sampling_frequency
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_currentZ_sampling_frequency
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_currentY_sampling_frequency
|
||||
KernelVersion: 5.20
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
|
||||
23
Documentation/ABI/testing/sysfs-bus-iio-adc-ad-sigma-delta
Normal file
23
Documentation/ABI/testing/sysfs-bus-iio-adc-ad-sigma-delta
Normal file
@@ -0,0 +1,23 @@
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_voltageY_sys_calibration
|
||||
KernelVersion: 5.5
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
This attribute, if available, initiates the system calibration procedure. This is done on a
|
||||
single channel at a time. Write '1' to start the calibration.
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_voltageY_sys_calibration_mode_available
|
||||
KernelVersion: 5.5
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
This attribute, if available, returns a list with the possible calibration modes.
|
||||
There are two available options:
|
||||
"zero_scale" - calibrate to zero scale
|
||||
"full_scale" - calibrate to full scale
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_voltageY_sys_calibration_mode
|
||||
KernelVersion: 5.5
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
This attribute, if available, sets up the calibration mode used in the system calibration
|
||||
procedure. Reading returns the current calibration mode.
|
||||
Writing sets the system calibration mode.
|
||||
@@ -19,33 +19,9 @@ Description:
|
||||
the bridge can be disconnected (when it is not being used
|
||||
using the bridge_switch_en attribute.
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_voltagex_sys_calibration
|
||||
KernelVersion:
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
Initiates the system calibration procedure. This is done on a
|
||||
single channel at a time. Write '1' to start the calibration.
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_voltage2-voltage2_shorted_raw
|
||||
KernelVersion:
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
Measure voltage from AIN2 pin connected to AIN(+)
|
||||
and AIN(-) shorted.
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_voltagex_sys_calibration_mode_available
|
||||
KernelVersion:
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
Reading returns a list with the possible calibration modes.
|
||||
There are two available options:
|
||||
"zero_scale" - calibrate to zero scale
|
||||
"full_scale" - calibrate to full scale
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_voltagex_sys_calibration_mode
|
||||
KernelVersion:
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
Sets up the calibration mode used in the system calibration
|
||||
procedure. Reading returns the current calibration mode.
|
||||
Writing sets the system calibration mode.
|
||||
|
||||
48
Documentation/ABI/testing/sysfs-class-platform-profile
Normal file
48
Documentation/ABI/testing/sysfs-class-platform-profile
Normal file
@@ -0,0 +1,48 @@
|
||||
What: /sys/class/platform-profile/platform-profile-X/name
|
||||
Date: March 2025
|
||||
KernelVersion: 6.14
|
||||
Description: Name of the class device given by the driver.
|
||||
|
||||
RO
|
||||
|
||||
What: /sys/class/platform-profile/platform-profile-X/choices
|
||||
Date: March 2025
|
||||
KernelVersion: 6.14
|
||||
Description: This file contains a space-separated list of profiles supported
|
||||
for this device.
|
||||
|
||||
Drivers must use the following standard profile-names:
|
||||
|
||||
==================== ========================================
|
||||
low-power Low power consumption
|
||||
cool Cooler operation
|
||||
quiet Quieter operation
|
||||
balanced Balance between low power consumption
|
||||
and performance
|
||||
balanced-performance Balance between performance and low
|
||||
power consumption with a slight bias
|
||||
towards performance
|
||||
performance High performance operation
|
||||
custom Driver defined custom profile
|
||||
==================== ========================================
|
||||
|
||||
RO
|
||||
|
||||
What: /sys/class/platform-profile/platform-profile-X/profile
|
||||
Date: March 2025
|
||||
KernelVersion: 6.14
|
||||
Description: Reading this file gives the current selected profile for this
|
||||
device. Writing this file with one of the strings from
|
||||
platform_profile_choices changes the profile to the new value.
|
||||
|
||||
This file can be monitored for changes by polling for POLLPRI,
|
||||
POLLPRI will be signaled on any changes, independent of those
|
||||
changes coming from a userspace write; or coming from another
|
||||
source such as e.g. a hotkey triggered profile change handled
|
||||
either directly by the embedded-controller or fully handled
|
||||
inside the kernel.
|
||||
|
||||
This file may also emit the string 'custom' to indicate
|
||||
that the driver is using a driver defined custom profile.
|
||||
|
||||
RW
|
||||
@@ -407,10 +407,30 @@ Description:
|
||||
|
||||
Access: Read, Write
|
||||
|
||||
Reading this returns the current active value, e.g. 'Standard'.
|
||||
Check charge_types to get the values supported by the battery.
|
||||
|
||||
Valid values:
|
||||
"Unknown", "N/A", "Trickle", "Fast", "Standard",
|
||||
"Adaptive", "Custom", "Long Life", "Bypass"
|
||||
|
||||
What: /sys/class/power_supply/<supply_name>/charge_types
|
||||
Date: December 2024
|
||||
Contact: linux-pm@vger.kernel.org
|
||||
Description:
|
||||
Identical to charge_type but reading returns a list of supported
|
||||
charge-types with the currently active type surrounded by square
|
||||
brackets, e.g.: "Fast [Standard] Long_Life".
|
||||
|
||||
power_supply class devices may support both charge_type and
|
||||
charge_types for backward compatibility. In this case both will
|
||||
always have the same active value and the active value can be
|
||||
changed by writing either property.
|
||||
|
||||
Note charge-types which contain a space such as "Long Life" will
|
||||
have the space replaced by a '_' resulting in e.g. "Long_Life".
|
||||
When writing charge-types both variants are accepted.
|
||||
|
||||
What: /sys/class/power_supply/<supply_name>/charge_term_current
|
||||
Date: July 2014
|
||||
Contact: linux-pm@vger.kernel.org
|
||||
@@ -433,7 +453,7 @@ Description:
|
||||
|
||||
Valid values:
|
||||
"Unknown", "Good", "Overheat", "Dead",
|
||||
"Over voltage", "Unspecified failure", "Cold",
|
||||
"Over voltage", "Under voltage", "Unspecified failure", "Cold",
|
||||
"Watchdog timer expire", "Safety timer expire",
|
||||
"Over current", "Calibration required", "Warm",
|
||||
"Cool", "Hot", "No battery"
|
||||
@@ -793,3 +813,12 @@ Description:
|
||||
|
||||
Access: Read
|
||||
Valid values: 1-31
|
||||
|
||||
What: /sys/class/power_supply/<supply_name>/extensions/<extension_name>
|
||||
Date: March 2025
|
||||
Contact: linux-pm@vger.kernel.org
|
||||
Description:
|
||||
Reports the extensions registered to the power supply.
|
||||
Each entry is a link to the device which registered the extension.
|
||||
|
||||
Access: Read
|
||||
|
||||
32
Documentation/ABI/testing/sysfs-class-power-max1720x
Normal file
32
Documentation/ABI/testing/sysfs-class-power-max1720x
Normal file
@@ -0,0 +1,32 @@
|
||||
What: /sys/class/power_supply/max1720x/temp_ain1
|
||||
Date: January 2025
|
||||
KernelVersion: 6.14
|
||||
Contact: Dimitri Fedrau <dimitri.fedrau@liebherr.com>
|
||||
Description:
|
||||
Reports the current temperature reading from AIN1 thermistor.
|
||||
|
||||
Access: Read
|
||||
|
||||
Valid values: Represented in 1/10 Degrees Celsius
|
||||
|
||||
What: /sys/class/power_supply/max1720x/temp_ain2
|
||||
Date: January 2025
|
||||
KernelVersion: 6.14
|
||||
Contact: Dimitri Fedrau <dimitri.fedrau@liebherr.com>
|
||||
Description:
|
||||
Reports the current temperature reading from AIN2 thermistor.
|
||||
|
||||
Access: Read
|
||||
|
||||
Valid values: Represented in 1/10 Degrees Celsius
|
||||
|
||||
What: /sys/class/power_supply/max1720x/temp_int
|
||||
Date: January 2025
|
||||
KernelVersion: 6.14
|
||||
Contact: Dimitri Fedrau <dimitri.fedrau@liebherr.com>
|
||||
Description:
|
||||
Reports the current temperature reading from internal die.
|
||||
|
||||
Access: Read
|
||||
|
||||
Valid values: Represented in 1/10 Degrees Celsius
|
||||
13
Documentation/ABI/testing/sysfs-driver-amd-sfh
Normal file
13
Documentation/ABI/testing/sysfs-driver-amd-sfh
Normal file
@@ -0,0 +1,13 @@
|
||||
What: /sys/bus/pci/drivers/pcie_mp2_amd/*/hpd
|
||||
Date: April 2025
|
||||
Contact: mario.limonciello@amd.com
|
||||
Description:
|
||||
Human presence detection (HPD) enable/disable.
|
||||
When HPD is enabled, the device will be able to detect the
|
||||
presence of a human and will send an interrupt that can be
|
||||
used to wake the system from a low power state.
|
||||
When HPD is disabled, the device will not be able to detect
|
||||
the presence of a human.
|
||||
|
||||
Access: Read/Write
|
||||
Valid values: enabled/disabled
|
||||
@@ -355,10 +355,15 @@ Description: If 'target' is written to the 'type' file, writing to or
|
||||
What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/filters/<F>/matching
|
||||
Date: Dec 2022
|
||||
Contact: SeongJae Park <sj@kernel.org>
|
||||
Description: Writing 'Y' or 'N' to this file sets whether to filter out
|
||||
pages that do or do not match to the 'type' and 'memcg_path',
|
||||
respectively. Filter out means the action of the scheme will
|
||||
not be applied to.
|
||||
Description: Writing 'Y' or 'N' to this file sets whether the filter is for
|
||||
the memory of the 'type', or all except the 'type'.
|
||||
|
||||
What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/filters/<F>/allow
|
||||
Date: Jan 2025
|
||||
Contact: SeongJae Park <sj@kernel.org>
|
||||
Description: Writing 'Y' or 'N' to this file sets whether to allow or reject
|
||||
applying the scheme's action to the memory that satisfies the
|
||||
'type' and the 'matching' of the directory.
|
||||
|
||||
What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/stats/nr_tried
|
||||
Date: Mar 2022
|
||||
@@ -384,6 +389,12 @@ Contact: SeongJae Park <sj@kernel.org>
|
||||
Description: Reading this file returns the total size of regions that the
|
||||
action of the scheme has successfully applied in bytes.
|
||||
|
||||
What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/stats/sz_ops_filter_passed
|
||||
Date: Dec 2024
|
||||
Contact: SeongJae Park <sj@kernel.org>
|
||||
Description: Reading this file returns the total size of memory that passed
|
||||
DAMON operations layer-handled filters of the scheme in bytes.
|
||||
|
||||
What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/stats/qt_exceeds
|
||||
Date: Mar 2022
|
||||
Contact: SeongJae Park <sj@kernel.org>
|
||||
@@ -424,3 +435,10 @@ Contact: SeongJae Park <sj@kernel.org>
|
||||
Description: Reading this file returns the 'age' of a memory region that
|
||||
corresponding DAMON-based Operation Scheme's action has tried
|
||||
to be applied.
|
||||
|
||||
What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/tried_regions/<R>/sz_filter_passed
|
||||
Date: Dec 2024
|
||||
Contact: SeongJae Park <sj@kernel.org>
|
||||
Description: Reading this file returns the size of the memory in the region
|
||||
that passed DAMON operations layer-handled filters of the
|
||||
scheme in bytes.
|
||||
|
||||
64
Documentation/ABI/testing/sysfs-platform-mellanox-pmc
Normal file
64
Documentation/ABI/testing/sysfs-platform-mellanox-pmc
Normal file
@@ -0,0 +1,64 @@
|
||||
HID Driver Description
|
||||
MLNXBFD0 mlxbf-pmc Performance counters (BlueField-1)
|
||||
MLNXBFD1 mlxbf-pmc Performance counters (BlueField-2)
|
||||
MLNXBFD2 mlxbf-pmc Performance counters (BlueField-3)
|
||||
|
||||
What: /sys/bus/platform/devices/<HID>/hwmon/hwmonX/<block>/event_list
|
||||
Date: Dec 2020
|
||||
KernelVersion: 5.10
|
||||
Contact: "Shravan Kumar Ramani <shravankr@nvidia.com>"
|
||||
Description:
|
||||
List of events supported by the counters in the specific block.
|
||||
It is used to extract the event number or ID associated with
|
||||
each event.
|
||||
|
||||
What: /sys/bus/platform/devices/<HID>/hwmon/hwmonX/<block>/event<N>
|
||||
Date: Dec 2020
|
||||
KernelVersion: 5.10
|
||||
Contact: "Shravan Kumar Ramani <shravankr@nvidia.com>"
|
||||
Description:
|
||||
Event monitored by corresponding counter. This is used to
|
||||
program or read back the event that should be or is currently
|
||||
being monitored by counter<N>.
|
||||
|
||||
What: /sys/bus/platform/devices/<HID>/hwmon/hwmonX/<block>/counter<N>
|
||||
Date: Dec 2020
|
||||
KernelVersion: 5.10
|
||||
Contact: "Shravan Kumar Ramani <shravankr@nvidia.com>"
|
||||
Description:
|
||||
Counter value of the event being monitored. This is used to
|
||||
read the counter value of the event which was programmed using
|
||||
event<N>. This is also used to clear or reset the counter value
|
||||
by writing 0 to the counter sysfs.
|
||||
|
||||
What: /sys/bus/platform/devices/<HID>/hwmon/hwmonX/<block>/enable
|
||||
Date: Dec 2020
|
||||
KernelVersion: 5.10
|
||||
Contact: "Shravan Kumar Ramani <shravankr@nvidia.com>"
|
||||
Description:
|
||||
Start or stop counters. This is used to start the counters
|
||||
for monitoring the programmed events and also to stop the
|
||||
counters after the desired duration. Writing value 1 will
|
||||
start all the counters in the block, and writing 0 will
|
||||
stop all the counters together.
|
||||
|
||||
What: /sys/bus/platform/devices/<HID>/hwmon/hwmonX/<block>/<reg>
|
||||
Date: Dec 2020
|
||||
KernelVersion: 5.10
|
||||
Contact: "Shravan Kumar Ramani <shravankr@nvidia.com>"
|
||||
Description:
|
||||
Value of register. This is used to read or reset the registers
|
||||
where various performance statistics are counted for each block.
|
||||
Writing 0 to the sysfs will clear the counter, writing any other
|
||||
value is not allowed.
|
||||
|
||||
What: /sys/bus/platform/devices/<HID>/hwmon/hwmonX/<block>/count_clock
|
||||
Date: Mar 2025
|
||||
KernelVersion: 6.14
|
||||
Contact: "Shravan Kumar Ramani <shravankr@nvidia.com>"
|
||||
Description:
|
||||
Use a counter for counting cycles. This is used to repurpose/dedicate
|
||||
any of the counters in the block to counting cycles. Each counter is
|
||||
represented by a bit (bit 0 for counter0, bit1 for counter1 and so on)
|
||||
and setting the corresponding bit will reserve that specific counter
|
||||
for counting cycles and override the event<N> setting.
|
||||
@@ -33,3 +33,8 @@ Description: Reading this file gives the current selected profile for this
|
||||
source such as e.g. a hotkey triggered profile change handled
|
||||
either directly by the embedded-controller or fully handled
|
||||
inside the kernel.
|
||||
|
||||
This file may also emit the string 'custom' to indicate
|
||||
that multiple platform profiles drivers are in use but
|
||||
have different values. This string can not be written to
|
||||
this interface and is solely for informational purposes.
|
||||
|
||||
43
Documentation/ABI/testing/sysfs-pps-gen
Normal file
43
Documentation/ABI/testing/sysfs-pps-gen
Normal file
@@ -0,0 +1,43 @@
|
||||
What: /sys/class/pps-gen/
|
||||
Date: February 2025
|
||||
KernelVersion: 6.13
|
||||
Contact: Rodolfo Giometti <giometti@enneenne.com>
|
||||
Description:
|
||||
The /sys/class/pps-gen/ directory contains files and
|
||||
directories that provide a unified interface to the PPS
|
||||
generators.
|
||||
|
||||
What: /sys/class/pps-gen/pps-genX/
|
||||
Date: February 2025
|
||||
KernelVersion: 6.13
|
||||
Contact: Rodolfo Giometti <giometti@enneenne.com>
|
||||
Description:
|
||||
The /sys/class/pps-gen/pps-genX/ directory is related to X-th
|
||||
PPS generator in the system. Each directory contain files to
|
||||
manage and control its PPS generator.
|
||||
|
||||
What: /sys/class/pps-gen/pps-genX/enable
|
||||
Date: February 2025
|
||||
KernelVersion: 6.13
|
||||
Contact: Rodolfo Giometti <giometti@enneenne.com>
|
||||
Description:
|
||||
This write-only file enables or disables generation of the
|
||||
PPS signal.
|
||||
|
||||
What: /sys/class/pps-gen/pps-genX/system
|
||||
Date: February 2025
|
||||
KernelVersion: 6.13
|
||||
Contact: Rodolfo Giometti <giometti@enneenne.com>
|
||||
Description:
|
||||
This read-only file returns "1" if the generator takes the
|
||||
timing from the system clock, while it returns "0" if not
|
||||
(i.e. from a peripheral device clock).
|
||||
|
||||
What: /sys/class/pps-gen/pps-genX/time
|
||||
Date: February 2025
|
||||
KernelVersion: 6.13
|
||||
Contact: Rodolfo Giometti <giometti@enneenne.com>
|
||||
Description:
|
||||
This read-only file contains the current time stored into the
|
||||
generator clock as two integers representing the current time
|
||||
seconds and nanoseconds.
|
||||
@@ -81,8 +81,8 @@ device, the following commands can be used::
|
||||
|
||||
# echo 0x104c > functions/pci_epf_test/func1/vendorid
|
||||
# echo 0xb500 > functions/pci_epf_test/func1/deviceid
|
||||
# echo 16 > functions/pci_epf_test/func1/msi_interrupts
|
||||
# echo 8 > functions/pci_epf_test/func1/msix_interrupts
|
||||
# echo 32 > functions/pci_epf_test/func1/msi_interrupts
|
||||
# echo 2048 > functions/pci_epf_test/func1/msix_interrupts
|
||||
|
||||
|
||||
Binding pci-epf-test Device to EP Controller
|
||||
@@ -123,113 +123,83 @@ above::
|
||||
Using Endpoint Test function Device
|
||||
-----------------------------------
|
||||
|
||||
pcitest.sh added in tools/pci/ can be used to run all the default PCI endpoint
|
||||
tests. To compile this tool the following commands should be used::
|
||||
Kselftest added in tools/testing/selftests/pci_endpoint can be used to run all
|
||||
the default PCI endpoint tests. To build the Kselftest for PCI endpoint
|
||||
subsystem, the following commands should be used::
|
||||
|
||||
# cd <kernel-dir>
|
||||
# make -C tools/pci
|
||||
# make -C tools/testing/selftests/pci_endpoint
|
||||
|
||||
or if you desire to compile and install in your system::
|
||||
|
||||
# cd <kernel-dir>
|
||||
# make -C tools/pci install
|
||||
# make -C tools/testing/selftests/pci_endpoint INSTALL_PATH=/usr/bin install
|
||||
|
||||
The tool and script will be located in <rootfs>/usr/bin/
|
||||
The test will be located in <rootfs>/usr/bin/
|
||||
|
||||
|
||||
pcitest.sh Output
|
||||
~~~~~~~~~~~~~~~~~
|
||||
Kselftest Output
|
||||
~~~~~~~~~~~~~~~~
|
||||
::
|
||||
|
||||
# pcitest.sh
|
||||
BAR tests
|
||||
# pci_endpoint_test
|
||||
TAP version 13
|
||||
1..16
|
||||
# Starting 16 tests from 9 test cases.
|
||||
# RUN pci_ep_bar.BAR0.BAR_TEST ...
|
||||
# OK pci_ep_bar.BAR0.BAR_TEST
|
||||
ok 1 pci_ep_bar.BAR0.BAR_TEST
|
||||
# RUN pci_ep_bar.BAR1.BAR_TEST ...
|
||||
# OK pci_ep_bar.BAR1.BAR_TEST
|
||||
ok 2 pci_ep_bar.BAR1.BAR_TEST
|
||||
# RUN pci_ep_bar.BAR2.BAR_TEST ...
|
||||
# OK pci_ep_bar.BAR2.BAR_TEST
|
||||
ok 3 pci_ep_bar.BAR2.BAR_TEST
|
||||
# RUN pci_ep_bar.BAR3.BAR_TEST ...
|
||||
# OK pci_ep_bar.BAR3.BAR_TEST
|
||||
ok 4 pci_ep_bar.BAR3.BAR_TEST
|
||||
# RUN pci_ep_bar.BAR4.BAR_TEST ...
|
||||
# OK pci_ep_bar.BAR4.BAR_TEST
|
||||
ok 5 pci_ep_bar.BAR4.BAR_TEST
|
||||
# RUN pci_ep_bar.BAR5.BAR_TEST ...
|
||||
# OK pci_ep_bar.BAR5.BAR_TEST
|
||||
ok 6 pci_ep_bar.BAR5.BAR_TEST
|
||||
# RUN pci_ep_basic.CONSECUTIVE_BAR_TEST ...
|
||||
# OK pci_ep_basic.CONSECUTIVE_BAR_TEST
|
||||
ok 7 pci_ep_basic.CONSECUTIVE_BAR_TEST
|
||||
# RUN pci_ep_basic.LEGACY_IRQ_TEST ...
|
||||
# OK pci_ep_basic.LEGACY_IRQ_TEST
|
||||
ok 8 pci_ep_basic.LEGACY_IRQ_TEST
|
||||
# RUN pci_ep_basic.MSI_TEST ...
|
||||
# OK pci_ep_basic.MSI_TEST
|
||||
ok 9 pci_ep_basic.MSI_TEST
|
||||
# RUN pci_ep_basic.MSIX_TEST ...
|
||||
# OK pci_ep_basic.MSIX_TEST
|
||||
ok 10 pci_ep_basic.MSIX_TEST
|
||||
# RUN pci_ep_data_transfer.memcpy.READ_TEST ...
|
||||
# OK pci_ep_data_transfer.memcpy.READ_TEST
|
||||
ok 11 pci_ep_data_transfer.memcpy.READ_TEST
|
||||
# RUN pci_ep_data_transfer.memcpy.WRITE_TEST ...
|
||||
# OK pci_ep_data_transfer.memcpy.WRITE_TEST
|
||||
ok 12 pci_ep_data_transfer.memcpy.WRITE_TEST
|
||||
# RUN pci_ep_data_transfer.memcpy.COPY_TEST ...
|
||||
# OK pci_ep_data_transfer.memcpy.COPY_TEST
|
||||
ok 13 pci_ep_data_transfer.memcpy.COPY_TEST
|
||||
# RUN pci_ep_data_transfer.dma.READ_TEST ...
|
||||
# OK pci_ep_data_transfer.dma.READ_TEST
|
||||
ok 14 pci_ep_data_transfer.dma.READ_TEST
|
||||
# RUN pci_ep_data_transfer.dma.WRITE_TEST ...
|
||||
# OK pci_ep_data_transfer.dma.WRITE_TEST
|
||||
ok 15 pci_ep_data_transfer.dma.WRITE_TEST
|
||||
# RUN pci_ep_data_transfer.dma.COPY_TEST ...
|
||||
# OK pci_ep_data_transfer.dma.COPY_TEST
|
||||
ok 16 pci_ep_data_transfer.dma.COPY_TEST
|
||||
# PASSED: 16 / 16 tests passed.
|
||||
# Totals: pass:16 fail:0 xfail:0 xpass:0 skip:0 error:0
|
||||
|
||||
BAR0: OKAY
|
||||
BAR1: OKAY
|
||||
BAR2: OKAY
|
||||
BAR3: OKAY
|
||||
BAR4: NOT OKAY
|
||||
BAR5: NOT OKAY
|
||||
|
||||
Interrupt tests
|
||||
Testcase 16 (pci_ep_data_transfer.dma.COPY_TEST) will fail for most of the DMA
|
||||
capable endpoint controllers due to the absence of the MEMCPY over DMA. For such
|
||||
controllers, it is advisable to skip this testcase using this
|
||||
command::
|
||||
|
||||
SET IRQ TYPE TO LEGACY: OKAY
|
||||
LEGACY IRQ: NOT OKAY
|
||||
SET IRQ TYPE TO MSI: OKAY
|
||||
MSI1: OKAY
|
||||
MSI2: OKAY
|
||||
MSI3: OKAY
|
||||
MSI4: OKAY
|
||||
MSI5: OKAY
|
||||
MSI6: OKAY
|
||||
MSI7: OKAY
|
||||
MSI8: OKAY
|
||||
MSI9: OKAY
|
||||
MSI10: OKAY
|
||||
MSI11: OKAY
|
||||
MSI12: OKAY
|
||||
MSI13: OKAY
|
||||
MSI14: OKAY
|
||||
MSI15: OKAY
|
||||
MSI16: OKAY
|
||||
MSI17: NOT OKAY
|
||||
MSI18: NOT OKAY
|
||||
MSI19: NOT OKAY
|
||||
MSI20: NOT OKAY
|
||||
MSI21: NOT OKAY
|
||||
MSI22: NOT OKAY
|
||||
MSI23: NOT OKAY
|
||||
MSI24: NOT OKAY
|
||||
MSI25: NOT OKAY
|
||||
MSI26: NOT OKAY
|
||||
MSI27: NOT OKAY
|
||||
MSI28: NOT OKAY
|
||||
MSI29: NOT OKAY
|
||||
MSI30: NOT OKAY
|
||||
MSI31: NOT OKAY
|
||||
MSI32: NOT OKAY
|
||||
SET IRQ TYPE TO MSI-X: OKAY
|
||||
MSI-X1: OKAY
|
||||
MSI-X2: OKAY
|
||||
MSI-X3: OKAY
|
||||
MSI-X4: OKAY
|
||||
MSI-X5: OKAY
|
||||
MSI-X6: OKAY
|
||||
MSI-X7: OKAY
|
||||
MSI-X8: OKAY
|
||||
MSI-X9: NOT OKAY
|
||||
MSI-X10: NOT OKAY
|
||||
MSI-X11: NOT OKAY
|
||||
MSI-X12: NOT OKAY
|
||||
MSI-X13: NOT OKAY
|
||||
MSI-X14: NOT OKAY
|
||||
MSI-X15: NOT OKAY
|
||||
MSI-X16: NOT OKAY
|
||||
[...]
|
||||
MSI-X2047: NOT OKAY
|
||||
MSI-X2048: NOT OKAY
|
||||
|
||||
Read Tests
|
||||
|
||||
SET IRQ TYPE TO MSI: OKAY
|
||||
READ ( 1 bytes): OKAY
|
||||
READ ( 1024 bytes): OKAY
|
||||
READ ( 1025 bytes): OKAY
|
||||
READ (1024000 bytes): OKAY
|
||||
READ (1024001 bytes): OKAY
|
||||
|
||||
Write Tests
|
||||
|
||||
WRITE ( 1 bytes): OKAY
|
||||
WRITE ( 1024 bytes): OKAY
|
||||
WRITE ( 1025 bytes): OKAY
|
||||
WRITE (1024000 bytes): OKAY
|
||||
WRITE (1024001 bytes): OKAY
|
||||
|
||||
Copy Tests
|
||||
|
||||
COPY ( 1 bytes): OKAY
|
||||
COPY ( 1024 bytes): OKAY
|
||||
COPY ( 1025 bytes): OKAY
|
||||
COPY (1024000 bytes): OKAY
|
||||
COPY (1024001 bytes): OKAY
|
||||
# pci_endpoint_test -f pci_ep_bar -f pci_ep_basic -v memcpy -T COPY_TEST -v dma
|
||||
|
||||
@@ -100,29 +100,29 @@ Get delays, since system boot, for pid 10::
|
||||
# ./getdelays -d -p 10
|
||||
(output similar to next case)
|
||||
|
||||
Get sum of delays, since system boot, for all pids with tgid 5::
|
||||
Get sum and peak of delays, since system boot, for all pids with tgid 242::
|
||||
|
||||
# ./getdelays -d -t 5
|
||||
bash-4.4# ./getdelays -d -t 242
|
||||
print delayacct stats ON
|
||||
TGID 5
|
||||
TGID 242
|
||||
|
||||
|
||||
CPU count real total virtual total delay total delay average
|
||||
8 7000000 6872122 3382277 0.423ms
|
||||
IO count delay total delay average
|
||||
0 0 0.000ms
|
||||
SWAP count delay total delay average
|
||||
0 0 0.000ms
|
||||
RECLAIM count delay total delay average
|
||||
0 0 0.000ms
|
||||
THRASHING count delay total delay average
|
||||
0 0 0.000ms
|
||||
COMPACT count delay total delay average
|
||||
0 0 0.000ms
|
||||
WPCOPY count delay total delay average
|
||||
0 0 0.000ms
|
||||
IRQ count delay total delay average
|
||||
0 0 0.000ms
|
||||
CPU count real total virtual total delay total delay average delay max delay min
|
||||
39 156000000 156576579 2111069 0.054ms 0.212296ms 0.031307ms
|
||||
IO count delay total delay average delay max delay min
|
||||
0 0 0.000ms 0.000000ms 0.000000ms
|
||||
SWAP count delay total delay average delay max delay min
|
||||
0 0 0.000ms 0.000000ms 0.000000ms
|
||||
RECLAIM count delay total delay average delay max delay min
|
||||
0 0 0.000ms 0.000000ms 0.000000ms
|
||||
THRASHING count delay total delay average delay max delay min
|
||||
0 0 0.000ms 0.000000ms 0.000000ms
|
||||
COMPACT count delay total delay average delay max delay min
|
||||
0 0 0.000ms 0.000000ms 0.000000ms
|
||||
WPCOPY count delay total delay average delay max delay min
|
||||
156 11215873 0.072ms 0.207403ms 0.033913ms
|
||||
IRQ count delay total delay average delay max delay min
|
||||
0 0 0.000ms 0.000000ms 0.000000ms
|
||||
|
||||
Get IO accounting for pid 1, it works only with -p::
|
||||
|
||||
|
||||
@@ -2824,17 +2824,21 @@
|
||||
nvhe: Standard nVHE-based mode, without support for
|
||||
protected guests.
|
||||
|
||||
protected: nVHE-based mode with support for guests whose
|
||||
state is kept private from the host.
|
||||
protected: Mode with support for guests whose state is
|
||||
kept private from the host, using VHE or
|
||||
nVHE depending on HW support.
|
||||
|
||||
nested: VHE-based mode with support for nested
|
||||
virtualization. Requires at least ARMv8.3
|
||||
hardware.
|
||||
virtualization. Requires at least ARMv8.4
|
||||
hardware (with FEAT_NV2).
|
||||
|
||||
Defaults to VHE/nVHE based on hardware support. Setting
|
||||
mode to "protected" will disable kexec and hibernation
|
||||
for the host. "nested" is experimental and should be
|
||||
used with extreme caution.
|
||||
for the host. To force nVHE on VHE hardware, add
|
||||
"arm64_sw.hvhe=0 id_aa64mmfr1.vh=0" to the
|
||||
command-line.
|
||||
"nested" is experimental and should be used with
|
||||
extreme caution.
|
||||
|
||||
kvm-arm.vgic_v3_group0_trap=
|
||||
[KVM,ARM,EARLY] Trap guest accesses to GICv3 group-0
|
||||
@@ -3495,8 +3499,8 @@
|
||||
[KNL] Set the initial state for the memory hotplug
|
||||
onlining policy. If not specified, the default value is
|
||||
set according to the
|
||||
CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE kernel config
|
||||
option.
|
||||
CONFIG_MHP_DEFAULT_ONLINE_TYPE kernel config
|
||||
options.
|
||||
See Documentation/admin-guide/mm/memory-hotplug.rst.
|
||||
|
||||
memmap=exactmap [KNL,X86,EARLY] Enable setting of an exact
|
||||
@@ -4830,7 +4834,7 @@
|
||||
'1' – force enabled
|
||||
'x' – unchanged
|
||||
For example,
|
||||
pci=config_acs=10x
|
||||
pci=config_acs=10x@pci:0:0
|
||||
would configure all devices that support
|
||||
ACS to enable P2P Request Redirect, disable
|
||||
Translation Blocking, and leave Source
|
||||
@@ -7161,6 +7165,14 @@
|
||||
comma-separated list of trace events to enable. See
|
||||
also Documentation/trace/events.rst
|
||||
|
||||
To enable modules, use :mod: keyword:
|
||||
|
||||
trace_event=:mod:<module>
|
||||
|
||||
The value before :mod: will only enable specific events
|
||||
that are part of the module. See the above mentioned
|
||||
document for more information.
|
||||
|
||||
trace_instance=[instance-info]
|
||||
[FTRACE] Create a ring buffer instance early in boot up.
|
||||
This will be listed in:
|
||||
@@ -7295,6 +7307,13 @@
|
||||
See Documentation/admin-guide/mm/transhuge.rst
|
||||
for more details.
|
||||
|
||||
transparent_hugepage_tmpfs= [KNL]
|
||||
Format: [always|within_size|advise|never]
|
||||
Can be used to control the default hugepage allocation policy
|
||||
for the tmpfs mount.
|
||||
See Documentation/admin-guide/mm/transhuge.rst
|
||||
for more details.
|
||||
|
||||
trusted.source= [KEYS]
|
||||
Format: <string>
|
||||
This parameter identifies the trust source as a backend
|
||||
|
||||
@@ -98,7 +98,7 @@ frames in packed raw Bayer format to IPU3 CSI2 receiver.
|
||||
# and that ov5670 sensor is connected to i2c bus 10 with address 0x36
|
||||
export SDEV=$(media-ctl -d $MDEV -e "ov5670 10-0036")
|
||||
|
||||
# Establish the link for the media devices using media-ctl [#f3]_
|
||||
# Establish the link for the media devices using media-ctl
|
||||
media-ctl -d $MDEV -l "ov5670:0 -> ipu3-csi2 0:0[1]"
|
||||
|
||||
# Set the format for the media devices
|
||||
@@ -589,12 +589,8 @@ preserved.
|
||||
References
|
||||
==========
|
||||
|
||||
.. [#f5] drivers/staging/media/ipu3/include/uapi/intel-ipu3.h
|
||||
|
||||
.. [#f1] https://github.com/intel/nvt
|
||||
|
||||
.. [#f2] http://git.ideasonboard.org/yavta.git
|
||||
|
||||
.. [#f3] http://git.ideasonboard.org/?p=media-ctl.git;a=summary
|
||||
|
||||
.. [#f4] ImgU limitation requires an additional 16x16 for all input resolutions
|
||||
|
||||
@@ -42,32 +42,45 @@ the execution. ::
|
||||
|
||||
$ git clone https://github.com/sjp38/masim; cd masim; make
|
||||
$ sudo damo start "./masim ./configs/stairs.cfg --quiet"
|
||||
$ sudo ./damo show
|
||||
0 addr [85.541 TiB , 85.541 TiB ) (57.707 MiB ) access 0 % age 10.400 s
|
||||
1 addr [85.541 TiB , 85.542 TiB ) (413.285 MiB) access 0 % age 11.400 s
|
||||
2 addr [127.649 TiB , 127.649 TiB) (57.500 MiB ) access 0 % age 1.600 s
|
||||
3 addr [127.649 TiB , 127.649 TiB) (32.500 MiB ) access 0 % age 500 ms
|
||||
4 addr [127.649 TiB , 127.649 TiB) (9.535 MiB ) access 100 % age 300 ms
|
||||
5 addr [127.649 TiB , 127.649 TiB) (8.000 KiB ) access 60 % age 0 ns
|
||||
6 addr [127.649 TiB , 127.649 TiB) (6.926 MiB ) access 0 % age 1 s
|
||||
7 addr [127.998 TiB , 127.998 TiB) (120.000 KiB) access 0 % age 11.100 s
|
||||
8 addr [127.998 TiB , 127.998 TiB) (8.000 KiB ) access 40 % age 100 ms
|
||||
9 addr [127.998 TiB , 127.998 TiB) (4.000 KiB ) access 0 % age 11 s
|
||||
total size: 577.590 MiB
|
||||
$ sudo ./damo stop
|
||||
$ sudo damo report access
|
||||
heatmap: 641111111000000000000000000000000000000000000000000000[...]33333333333333335557984444[...]7
|
||||
# min/max temperatures: -1,840,000,000, 370,010,000, column size: 3.925 MiB
|
||||
0 addr 86.182 TiB size 8.000 KiB access 0 % age 14.900 s
|
||||
1 addr 86.182 TiB size 8.000 KiB access 60 % age 0 ns
|
||||
2 addr 86.182 TiB size 3.422 MiB access 0 % age 4.100 s
|
||||
3 addr 86.182 TiB size 2.004 MiB access 95 % age 2.200 s
|
||||
4 addr 86.182 TiB size 29.688 MiB access 0 % age 14.100 s
|
||||
5 addr 86.182 TiB size 29.516 MiB access 0 % age 16.700 s
|
||||
6 addr 86.182 TiB size 29.633 MiB access 0 % age 17.900 s
|
||||
7 addr 86.182 TiB size 117.652 MiB access 0 % age 18.400 s
|
||||
8 addr 126.990 TiB size 62.332 MiB access 0 % age 9.500 s
|
||||
9 addr 126.990 TiB size 13.980 MiB access 0 % age 5.200 s
|
||||
10 addr 126.990 TiB size 9.539 MiB access 100 % age 3.700 s
|
||||
11 addr 126.990 TiB size 16.098 MiB access 0 % age 6.400 s
|
||||
12 addr 127.987 TiB size 132.000 KiB access 0 % age 2.900 s
|
||||
total size: 314.008 MiB
|
||||
$ sudo damo stop
|
||||
|
||||
The first command of the above example downloads and builds an artificial
|
||||
memory access generator program called ``masim``. The second command asks DAMO
|
||||
to execute the artificial generator process start via the given command and
|
||||
make DAMON monitors the generator process. The third command retrieves the
|
||||
current snapshot of the monitored access pattern of the process from DAMON and
|
||||
shows the pattern in a human readable format.
|
||||
to start the program via the given command and make DAMON monitors the newly
|
||||
started process. The third command retrieves the current snapshot of the
|
||||
monitored access pattern of the process from DAMON and shows the pattern in a
|
||||
human readable format.
|
||||
|
||||
Each line of the output shows which virtual address range (``addr [XX, XX)``)
|
||||
of the process is how frequently (``access XX %``) accessed for how long time
|
||||
(``age XX``). For example, the fifth region of ~9 MiB size is being most
|
||||
frequently accessed for last 300 milliseconds. Finally, the fourth command
|
||||
stops DAMON.
|
||||
The first line of the output shows the relative access temperature (hotness) of
|
||||
the regions in a single row hetmap format. Each column on the heatmap
|
||||
represents regions of same size on the monitored virtual address space. The
|
||||
position of the colun on the row and the number on the column represents the
|
||||
relative location and access temperature of the region. ``[...]`` means
|
||||
unmapped huge regions on the virtual address spaces. The second line shows
|
||||
additional information for better understanding the heatmap.
|
||||
|
||||
Each line of the output from the third line shows which virtual address range
|
||||
(``addr XX size XX``) of the process is how frequently (``access XX %``)
|
||||
accessed for how long time (``age XX``). For example, the evelenth region of
|
||||
~9.5 MiB size is being most frequently accessed for last 3.7 seconds. Finally,
|
||||
the fourth command stops DAMON.
|
||||
|
||||
Note that DAMON can monitor not only virtual address spaces but multiple types
|
||||
of address spaces including the physical address space.
|
||||
@@ -95,7 +108,7 @@ Visualizing Recorded Patterns
|
||||
You can visualize the pattern in a heatmap, showing which memory region
|
||||
(x-axis) got accessed when (y-axis) and how frequently (number).::
|
||||
|
||||
$ sudo damo report heats --heatmap stdout
|
||||
$ sudo damo report heatmap
|
||||
22222222222222222222222222222222222222211111111111111111111111111111111111111100
|
||||
44444444444444444444444444444444444444434444444444444444444444444444444444443200
|
||||
44444444444444444444444444444444444444433444444444444444444444444444444444444200
|
||||
@@ -160,6 +173,6 @@ Data Access Pattern Aware Memory Management
|
||||
Below command makes every memory region of size >=4K that has not accessed for
|
||||
>=60 seconds in your workload to be swapped out. ::
|
||||
|
||||
$ sudo damo schemes --damos_access_rate 0 0 --damos_sz_region 4K max \
|
||||
--damos_age 60s max --damos_action pageout \
|
||||
<pid of your workload>
|
||||
$ sudo damo start --damos_access_rate 0 0 --damos_sz_region 4K max \
|
||||
--damos_age 60s max --damos_action pageout \
|
||||
<pid of your workload>
|
||||
|
||||
@@ -26,12 +26,6 @@ DAMON provides below interfaces for different users.
|
||||
writing kernel space DAMON application programs for you. You can even extend
|
||||
DAMON for various address spaces. For detail, please refer to the interface
|
||||
:doc:`document </mm/damon/api>`.
|
||||
- *debugfs interface. (DEPRECATED!)*
|
||||
:ref:`This <debugfs_interface>` is almost identical to :ref:`sysfs interface
|
||||
<sysfs_interface>`. This is deprecated, so users should move to the
|
||||
:ref:`sysfs interface <sysfs_interface>`. If you depend on this and cannot
|
||||
move, please report your usecase to damon@lists.linux.dev and
|
||||
linux-mm@kvack.org.
|
||||
|
||||
.. _sysfs_interface:
|
||||
|
||||
@@ -89,10 +83,10 @@ comma (",").
|
||||
│ │ │ │ │ │ │ │ │ 0/target_metric,target_value,current_value
|
||||
│ │ │ │ │ │ │ :ref:`watermarks <sysfs_watermarks>`/metric,interval_us,high,mid,low
|
||||
│ │ │ │ │ │ │ :ref:`filters <sysfs_filters>`/nr_filters
|
||||
│ │ │ │ │ │ │ │ 0/type,matching,memcg_id
|
||||
│ │ │ │ │ │ │ :ref:`stats <sysfs_schemes_stats>`/nr_tried,sz_tried,nr_applied,sz_applied,qt_exceeds
|
||||
│ │ │ │ │ │ │ │ 0/type,matching,allow,memcg_path,addr_start,addr_end,target_idx
|
||||
│ │ │ │ │ │ │ :ref:`stats <sysfs_schemes_stats>`/nr_tried,sz_tried,nr_applied,sz_applied,sz_ops_filter_passed,qt_exceeds
|
||||
│ │ │ │ │ │ │ :ref:`tried_regions <sysfs_schemes_tried_regions>`/total_bytes
|
||||
│ │ │ │ │ │ │ │ 0/start,end,nr_accesses,age
|
||||
│ │ │ │ │ │ │ │ 0/start,end,nr_accesses,age,sz_filter_passed
|
||||
│ │ │ │ │ │ │ │ ...
|
||||
│ │ │ │ │ │ ...
|
||||
│ │ │ │ ...
|
||||
@@ -412,59 +406,62 @@ number (``N``) to the file creates the number of child directories named ``0``
|
||||
to ``N-1``. Each directory represents each filter. The filters are evaluated
|
||||
in the numeric order.
|
||||
|
||||
Each filter directory contains six files, namely ``type``, ``matcing``,
|
||||
``memcg_path``, ``addr_start``, ``addr_end``, and ``target_idx``. To ``type``
|
||||
file, you can write one of five special keywords: ``anon`` for anonymous pages,
|
||||
``memcg`` for specific memory cgroup, ``young`` for young pages, ``addr`` for
|
||||
specific address range (an open-ended interval), or ``target`` for specific
|
||||
DAMON monitoring target filtering. In case of the memory cgroup filtering, you
|
||||
can specify the memory cgroup of the interest by writing the path of the memory
|
||||
cgroup from the cgroups mount point to ``memcg_path`` file. In case of the
|
||||
address range filtering, you can specify the start and end address of the range
|
||||
to ``addr_start`` and ``addr_end`` files, respectively. For the DAMON
|
||||
monitoring target filtering, you can specify the index of the target between
|
||||
the list of the DAMON context's monitoring targets list to ``target_idx`` file.
|
||||
You can write ``Y`` or ``N`` to ``matching`` file to filter out pages that does
|
||||
or does not match to the type, respectively. Then, the scheme's action will
|
||||
not be applied to the pages that specified to be filtered out.
|
||||
Each filter directory contains seven files, namely ``type``, ``matching``,
|
||||
``allow``, ``memcg_path``, ``addr_start``, ``addr_end``, and ``target_idx``.
|
||||
To ``type`` file, you can write one of five special keywords: ``anon`` for
|
||||
anonymous pages, ``memcg`` for specific memory cgroup, ``young`` for young
|
||||
pages, ``addr`` for specific address range (an open-ended interval), or
|
||||
``target`` for specific DAMON monitoring target filtering. Meaning of the
|
||||
types are same to the description on the :ref:`design doc
|
||||
<damon_design_damos_filters>`.
|
||||
|
||||
In case of the memory cgroup filtering, you can specify the memory cgroup of
|
||||
the interest by writing the path of the memory cgroup from the cgroups mount
|
||||
point to ``memcg_path`` file. In case of the address range filtering, you can
|
||||
specify the start and end address of the range to ``addr_start`` and
|
||||
``addr_end`` files, respectively. For the DAMON monitoring target filtering,
|
||||
you can specify the index of the target between the list of the DAMON context's
|
||||
monitoring targets list to ``target_idx`` file.
|
||||
|
||||
You can write ``Y`` or ``N`` to ``matching`` file to specify whether the filter
|
||||
is for memory that matches the ``type``. You can write ``Y`` or ``N`` to
|
||||
``allow`` file to specify if applying the action to the memory that satisfies
|
||||
the ``type`` and ``matching`` should be allowed or not.
|
||||
|
||||
For example, below restricts a DAMOS action to be applied to only non-anonymous
|
||||
pages of all memory cgroups except ``/having_care_already``.::
|
||||
|
||||
# echo 2 > nr_filters
|
||||
# # filter out anonymous pages
|
||||
# # disallow anonymous pages
|
||||
echo anon > 0/type
|
||||
echo Y > 0/matching
|
||||
echo N > 0/allow
|
||||
# # further filter out all cgroups except one at '/having_care_already'
|
||||
echo memcg > 1/type
|
||||
echo /having_care_already > 1/memcg_path
|
||||
echo Y > 1/matching
|
||||
echo N > 1/allow
|
||||
|
||||
Note that ``anon`` and ``memcg`` filters are currently supported only when
|
||||
``paddr`` :ref:`implementation <sysfs_context>` is being used.
|
||||
|
||||
Also, memory regions that are filtered out by ``addr`` or ``target`` filters
|
||||
are not counted as the scheme has tried to those, while regions that filtered
|
||||
out by other type filters are counted as the scheme has tried to. The
|
||||
difference is applied to :ref:`stats <damos_stats>` and
|
||||
:ref:`tried regions <sysfs_schemes_tried_regions>`.
|
||||
Refer to the :ref:`DAMOS filters design documentation
|
||||
<damon_design_damos_filters>` for more details including how multiple filters
|
||||
of different ``allow`` works, when each of the filters are supported, and
|
||||
differences on stats.
|
||||
|
||||
.. _sysfs_schemes_stats:
|
||||
|
||||
schemes/<N>/stats/
|
||||
------------------
|
||||
|
||||
DAMON counts the total number and bytes of regions that each scheme is tried to
|
||||
be applied, the two numbers for the regions that each scheme is successfully
|
||||
applied, and the total number of the quota limit exceeds. This statistics can
|
||||
be used for online analysis or tuning of the schemes.
|
||||
DAMON counts statistics for each scheme. This statistics can be used for
|
||||
online analysis or tuning of the schemes. Refer to :ref:`design doc
|
||||
<damon_design_damos_stat>` for more details about the stats.
|
||||
|
||||
The statistics can be retrieved by reading the files under ``stats`` directory
|
||||
(``nr_tried``, ``sz_tried``, ``nr_applied``, ``sz_applied``, and
|
||||
``qt_exceeds``), respectively. The files are not updated in real time, so you
|
||||
should ask DAMON sysfs interface to update the content of the files for the
|
||||
stats by writing a special keyword, ``update_schemes_stats`` to the relevant
|
||||
``kdamonds/<N>/state`` file.
|
||||
(``nr_tried``, ``sz_tried``, ``nr_applied``, ``sz_applied``,
|
||||
``sz_ops_filter_passed``, and ``qt_exceeds``), respectively. The files are not
|
||||
updated in real time, so you should ask DAMON sysfs interface to update the
|
||||
content of the files for the stats by writing a special keyword,
|
||||
``update_schemes_stats`` to the relevant ``kdamonds/<N>/state`` file.
|
||||
|
||||
.. _sysfs_schemes_tried_regions:
|
||||
|
||||
@@ -501,10 +498,10 @@ set the ``access pattern`` as their interested pattern that they want to query.
|
||||
tried_regions/<N>/
|
||||
------------------
|
||||
|
||||
In each region directory, you will find four files (``start``, ``end``,
|
||||
``nr_accesses``, and ``age``). Reading the files will show the start and end
|
||||
addresses, ``nr_accesses``, and ``age`` of the region that corresponding
|
||||
DAMON-based operation scheme ``action`` has tried to be applied.
|
||||
In each region directory, you will find five files (``start``, ``end``,
|
||||
``nr_accesses``, ``age``, and ``sz_filter_passed``). Reading the files will
|
||||
show the properties of the region that corresponding DAMON-based operation
|
||||
scheme ``action`` has tried to be applied.
|
||||
|
||||
Example
|
||||
~~~~~~~
|
||||
@@ -600,306 +597,3 @@ fields are as usual. It shows the index of the DAMON context (``ctx_idx=X``)
|
||||
of the scheme in the list of the contexts of the context's kdamond, the index
|
||||
of the scheme (``scheme_idx=X``) in the list of the schemes of the context, in
|
||||
addition to the output of ``damon_aggregated`` tracepoint.
|
||||
|
||||
|
||||
.. _debugfs_interface:
|
||||
|
||||
debugfs Interface (DEPRECATED!)
|
||||
===============================
|
||||
|
||||
.. note::
|
||||
|
||||
THIS IS DEPRECATED!
|
||||
|
||||
DAMON debugfs interface is deprecated, so users should move to the
|
||||
:ref:`sysfs interface <sysfs_interface>`. If you depend on this and cannot
|
||||
move, please report your usecase to damon@lists.linux.dev and
|
||||
linux-mm@kvack.org.
|
||||
|
||||
DAMON exports nine files, ``DEPRECATED``, ``attrs``, ``target_ids``,
|
||||
``init_regions``, ``schemes``, ``monitor_on_DEPRECATED``, ``kdamond_pid``,
|
||||
``mk_contexts`` and ``rm_contexts`` under its debugfs directory,
|
||||
``<debugfs>/damon/``.
|
||||
|
||||
|
||||
``DEPRECATED`` is a read-only file for the DAMON debugfs interface deprecation
|
||||
notice. Reading it returns the deprecation notice, as below::
|
||||
|
||||
# cat DEPRECATED
|
||||
DAMON debugfs interface is deprecated, so users should move to DAMON_SYSFS. If you cannot, please report your usecase to damon@lists.linux.dev and linux-mm@kvack.org.
|
||||
|
||||
|
||||
Attributes
|
||||
----------
|
||||
|
||||
Users can get and set the ``sampling interval``, ``aggregation interval``,
|
||||
``update interval``, and min/max number of monitoring target regions by
|
||||
reading from and writing to the ``attrs`` file. To know about the monitoring
|
||||
attributes in detail, please refer to the :doc:`/mm/damon/design`. For
|
||||
example, below commands set those values to 5 ms, 100 ms, 1,000 ms, 10 and
|
||||
1000, and then check it again::
|
||||
|
||||
# cd <debugfs>/damon
|
||||
# echo 5000 100000 1000000 10 1000 > attrs
|
||||
# cat attrs
|
||||
5000 100000 1000000 10 1000
|
||||
|
||||
|
||||
Target IDs
|
||||
----------
|
||||
|
||||
Some types of address spaces supports multiple monitoring target. For example,
|
||||
the virtual memory address spaces monitoring can have multiple processes as the
|
||||
monitoring targets. Users can set the targets by writing relevant id values of
|
||||
the targets to, and get the ids of the current targets by reading from the
|
||||
``target_ids`` file. In case of the virtual address spaces monitoring, the
|
||||
values should be pids of the monitoring target processes. For example, below
|
||||
commands set processes having pids 42 and 4242 as the monitoring targets and
|
||||
check it again::
|
||||
|
||||
# cd <debugfs>/damon
|
||||
# echo 42 4242 > target_ids
|
||||
# cat target_ids
|
||||
42 4242
|
||||
|
||||
Users can also monitor the physical memory address space of the system by
|
||||
writing a special keyword, "``paddr\n``" to the file. Because physical address
|
||||
space monitoring doesn't support multiple targets, reading the file will show a
|
||||
fake value, ``42``, as below::
|
||||
|
||||
# cd <debugfs>/damon
|
||||
# echo paddr > target_ids
|
||||
# cat target_ids
|
||||
42
|
||||
|
||||
Note that setting the target ids doesn't start the monitoring.
|
||||
|
||||
|
||||
Initial Monitoring Target Regions
|
||||
---------------------------------
|
||||
|
||||
In case of the virtual address space monitoring, DAMON automatically sets and
|
||||
updates the monitoring target regions so that entire memory mappings of target
|
||||
processes can be covered. However, users can want to limit the monitoring
|
||||
region to specific address ranges, such as the heap, the stack, or specific
|
||||
file-mapped area. Or, some users can know the initial access pattern of their
|
||||
workloads and therefore want to set optimal initial regions for the 'adaptive
|
||||
regions adjustment'.
|
||||
|
||||
In contrast, DAMON do not automatically sets and updates the monitoring target
|
||||
regions in case of physical memory monitoring. Therefore, users should set the
|
||||
monitoring target regions by themselves.
|
||||
|
||||
In such cases, users can explicitly set the initial monitoring target regions
|
||||
as they want, by writing proper values to the ``init_regions`` file. The input
|
||||
should be a sequence of three integers separated by white spaces that represent
|
||||
one region in below form.::
|
||||
|
||||
<target idx> <start address> <end address>
|
||||
|
||||
The ``target idx`` should be the index of the target in ``target_ids`` file,
|
||||
starting from ``0``, and the regions should be passed in address order. For
|
||||
example, below commands will set a couple of address ranges, ``1-100`` and
|
||||
``100-200`` as the initial monitoring target region of pid 42, which is the
|
||||
first one (index ``0``) in ``target_ids``, and another couple of address
|
||||
ranges, ``20-40`` and ``50-100`` as that of pid 4242, which is the second one
|
||||
(index ``1``) in ``target_ids``.::
|
||||
|
||||
# cd <debugfs>/damon
|
||||
# cat target_ids
|
||||
42 4242
|
||||
# echo "0 1 100 \
|
||||
0 100 200 \
|
||||
1 20 40 \
|
||||
1 50 100" > init_regions
|
||||
|
||||
Note that this sets the initial monitoring target regions only. In case of
|
||||
virtual memory monitoring, DAMON will automatically updates the boundary of the
|
||||
regions after one ``update interval``. Therefore, users should set the
|
||||
``update interval`` large enough in this case, if they don't want the
|
||||
update.
|
||||
|
||||
|
||||
Schemes
|
||||
-------
|
||||
|
||||
Users can get and set the DAMON-based operation :ref:`schemes
|
||||
<damon_design_damos>` by reading from and writing to ``schemes`` debugfs file.
|
||||
Reading the file also shows the statistics of each scheme. To the file, each
|
||||
of the schemes should be represented in each line in below form::
|
||||
|
||||
<target access pattern> <action> <quota> <watermarks>
|
||||
|
||||
You can disable schemes by simply writing an empty string to the file.
|
||||
|
||||
Target Access Pattern
|
||||
~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The target access :ref:`pattern <damon_design_damos_access_pattern>` of the
|
||||
scheme. The ``<target access pattern>`` is constructed with three ranges in
|
||||
below form::
|
||||
|
||||
min-size max-size min-acc max-acc min-age max-age
|
||||
|
||||
Specifically, bytes for the size of regions (``min-size`` and ``max-size``),
|
||||
number of monitored accesses per aggregate interval for access frequency
|
||||
(``min-acc`` and ``max-acc``), number of aggregate intervals for the age of
|
||||
regions (``min-age`` and ``max-age``) are specified. Note that the ranges are
|
||||
closed interval.
|
||||
|
||||
Action
|
||||
~~~~~~
|
||||
|
||||
The ``<action>`` is a predefined integer for memory management :ref:`actions
|
||||
<damon_design_damos_action>`. The mapping between the ``<action>`` values and
|
||||
the memory management actions is as below. For the detailed meaning of the
|
||||
action and DAMON operations set supporting each action, please refer to the
|
||||
list on :ref:`design doc <damon_design_damos_action>`.
|
||||
|
||||
- 0: ``willneed``
|
||||
- 1: ``cold``
|
||||
- 2: ``pageout``
|
||||
- 3: ``hugepage``
|
||||
- 4: ``nohugepage``
|
||||
- 5: ``stat``
|
||||
|
||||
Quota
|
||||
~~~~~
|
||||
|
||||
Users can set the :ref:`quotas <damon_design_damos_quotas>` of the given scheme
|
||||
via the ``<quota>`` in below form::
|
||||
|
||||
<ms> <sz> <reset interval> <priority weights>
|
||||
|
||||
This makes DAMON to try to use only up to ``<ms>`` milliseconds for applying
|
||||
the action to memory regions of the ``target access pattern`` within the
|
||||
``<reset interval>`` milliseconds, and to apply the action to only up to
|
||||
``<sz>`` bytes of memory regions within the ``<reset interval>``. Setting both
|
||||
``<ms>`` and ``<sz>`` zero disables the quota limits.
|
||||
|
||||
For the :ref:`prioritization <damon_design_damos_quotas_prioritization>`, users
|
||||
can set the weights for the three properties in ``<priority weights>`` in below
|
||||
form::
|
||||
|
||||
<size weight> <access frequency weight> <age weight>
|
||||
|
||||
Watermarks
|
||||
~~~~~~~~~~
|
||||
|
||||
Users can specify :ref:`watermarks <damon_design_damos_watermarks>` of the
|
||||
given scheme via ``<watermarks>`` in below form::
|
||||
|
||||
<metric> <check interval> <high mark> <middle mark> <low mark>
|
||||
|
||||
``<metric>`` is a predefined integer for the metric to be checked. The
|
||||
supported numbers and their meanings are as below.
|
||||
|
||||
- 0: Ignore the watermarks
|
||||
- 1: System's free memory rate (per thousand)
|
||||
|
||||
The value of the metric is checked every ``<check interval>`` microseconds.
|
||||
|
||||
If the value is higher than ``<high mark>`` or lower than ``<low mark>``, the
|
||||
scheme is deactivated. If the value is lower than ``<mid mark>``, the scheme
|
||||
is activated.
|
||||
|
||||
.. _damos_stats:
|
||||
|
||||
Statistics
|
||||
~~~~~~~~~~
|
||||
|
||||
It also counts the total number and bytes of regions that each scheme is tried
|
||||
to be applied, the two numbers for the regions that each scheme is successfully
|
||||
applied, and the total number of the quota limit exceeds. This statistics can
|
||||
be used for online analysis or tuning of the schemes.
|
||||
|
||||
The statistics can be shown by reading the ``schemes`` file. Reading the file
|
||||
will show each scheme you entered in each line, and the five numbers for the
|
||||
statistics will be added at the end of each line.
|
||||
|
||||
Example
|
||||
~~~~~~~
|
||||
|
||||
Below commands applies a scheme saying "If a memory region of size in [4KiB,
|
||||
8KiB] is showing accesses per aggregate interval in [0, 5] for aggregate
|
||||
interval in [10, 20], page out the region. For the paging out, use only up to
|
||||
10ms per second, and also don't page out more than 1GiB per second. Under the
|
||||
limitation, page out memory regions having longer age first. Also, check the
|
||||
free memory rate of the system every 5 seconds, start the monitoring and paging
|
||||
out when the free memory rate becomes lower than 50%, but stop it if the free
|
||||
memory rate becomes larger than 60%, or lower than 30%".::
|
||||
|
||||
# cd <debugfs>/damon
|
||||
# scheme="4096 8192 0 5 10 20 2" # target access pattern and action
|
||||
# scheme+=" 10 $((1024*1024*1024)) 1000" # quotas
|
||||
# scheme+=" 0 0 100" # prioritization weights
|
||||
# scheme+=" 1 5000000 600 500 300" # watermarks
|
||||
# echo "$scheme" > schemes
|
||||
|
||||
|
||||
Turning On/Off
|
||||
--------------
|
||||
|
||||
Setting the files as described above doesn't incur effect unless you explicitly
|
||||
start the monitoring. You can start, stop, and check the current status of the
|
||||
monitoring by writing to and reading from the ``monitor_on_DEPRECATED`` file.
|
||||
Writing ``on`` to the file starts the monitoring of the targets with the
|
||||
attributes. Writing ``off`` to the file stops those. DAMON also stops if
|
||||
every target process is terminated. Below example commands turn on, off, and
|
||||
check the status of DAMON::
|
||||
|
||||
# cd <debugfs>/damon
|
||||
# echo on > monitor_on_DEPRECATED
|
||||
# echo off > monitor_on_DEPRECATED
|
||||
# cat monitor_on_DEPRECATED
|
||||
off
|
||||
|
||||
Please note that you cannot write to the above-mentioned debugfs files while
|
||||
the monitoring is turned on. If you write to the files while DAMON is running,
|
||||
an error code such as ``-EBUSY`` will be returned.
|
||||
|
||||
|
||||
Monitoring Thread PID
|
||||
---------------------
|
||||
|
||||
DAMON does requested monitoring with a kernel thread called ``kdamond``. You
|
||||
can get the pid of the thread by reading the ``kdamond_pid`` file. When the
|
||||
monitoring is turned off, reading the file returns ``none``. ::
|
||||
|
||||
# cd <debugfs>/damon
|
||||
# cat monitor_on_DEPRECATED
|
||||
off
|
||||
# cat kdamond_pid
|
||||
none
|
||||
# echo on > monitor_on_DEPRECATED
|
||||
# cat kdamond_pid
|
||||
18594
|
||||
|
||||
|
||||
Using Multiple Monitoring Threads
|
||||
---------------------------------
|
||||
|
||||
One ``kdamond`` thread is created for each monitoring context. You can create
|
||||
and remove monitoring contexts for multiple ``kdamond`` required use case using
|
||||
the ``mk_contexts`` and ``rm_contexts`` files.
|
||||
|
||||
Writing the name of the new context to the ``mk_contexts`` file creates a
|
||||
directory of the name on the DAMON debugfs directory. The directory will have
|
||||
DAMON debugfs files for the context. ::
|
||||
|
||||
# cd <debugfs>/damon
|
||||
# ls foo
|
||||
# ls: cannot access 'foo': No such file or directory
|
||||
# echo foo > mk_contexts
|
||||
# ls foo
|
||||
# attrs init_regions kdamond_pid schemes target_ids
|
||||
|
||||
If the context is not needed anymore, you can remove it and the corresponding
|
||||
directory by putting the name of the context to the ``rm_contexts`` file. ::
|
||||
|
||||
# echo foo > rm_contexts
|
||||
# ls foo
|
||||
# ls: cannot access 'foo': No such file or directory
|
||||
|
||||
Note that ``mk_contexts``, ``rm_contexts``, and ``monitor_on_DEPRECATED`` files
|
||||
are in the root directory only.
|
||||
|
||||
@@ -280,8 +280,8 @@ The following files are currently defined:
|
||||
blocks; configure auto-onlining.
|
||||
|
||||
The default value depends on the
|
||||
CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE kernel configuration
|
||||
option.
|
||||
CONFIG_MHP_DEFAULT_ONLINE_TYPE kernel configuration
|
||||
options.
|
||||
|
||||
See the ``state`` property of memory blocks for details.
|
||||
``block_size_bytes`` read-only: the size in bytes of a memory block.
|
||||
|
||||
@@ -332,6 +332,12 @@ allocation policy for the internal shmem mount by using the kernel parameter
|
||||
seven valid policies for shmem (``always``, ``within_size``, ``advise``,
|
||||
``never``, ``deny``, and ``force``).
|
||||
|
||||
Similarly to ``transparent_hugepage_shmem``, you can control the default
|
||||
hugepage allocation policy for the tmpfs mount by using the kernel parameter
|
||||
``transparent_hugepage_tmpfs=<policy>``, where ``<policy>`` is one of the
|
||||
four valid policies for tmpfs (``always``, ``within_size``, ``advise``,
|
||||
``never``). The tmpfs mount default policy is ``never``.
|
||||
|
||||
In the same manner as ``thp_anon`` controls each supported anonymous THP
|
||||
size, ``thp_shmem`` controls each supported shmem THP size. ``thp_shmem``
|
||||
has the same format as ``thp_anon``, but also supports the policy
|
||||
@@ -352,8 +358,21 @@ default to ``never``.
|
||||
Hugepages in tmpfs/shmem
|
||||
========================
|
||||
|
||||
You can control hugepage allocation policy in tmpfs with mount option
|
||||
``huge=``. It can have following values:
|
||||
Traditionally, tmpfs only supported a single huge page size ("PMD"). Today,
|
||||
it also supports smaller sizes just like anonymous memory, often referred
|
||||
to as "multi-size THP" (mTHP). Huge pages of any size are commonly
|
||||
represented in the kernel as "large folios".
|
||||
|
||||
While there is fine control over the huge page sizes to use for the internal
|
||||
shmem mount (see below), ordinary tmpfs mounts will make use of all available
|
||||
huge page sizes without any control over the exact sizes, behaving more like
|
||||
other file systems.
|
||||
|
||||
tmpfs mounts
|
||||
------------
|
||||
|
||||
The THP allocation policy for tmpfs mounts can be adjusted using the mount
|
||||
option: ``huge=``. It can have following values:
|
||||
|
||||
always
|
||||
Attempt to allocate huge pages every time we need a new page;
|
||||
@@ -363,24 +382,24 @@ never
|
||||
|
||||
within_size
|
||||
Only allocate huge page if it will be fully within i_size.
|
||||
Also respect fadvise()/madvise() hints;
|
||||
Also respect madvise() hints;
|
||||
|
||||
advise
|
||||
Only allocate huge pages if requested with fadvise()/madvise();
|
||||
Only allocate huge pages if requested with madvise();
|
||||
|
||||
The default policy is ``never``.
|
||||
Remember, that the kernel may use huge pages of all available sizes, and
|
||||
that no fine control as for the internal tmpfs mount is available.
|
||||
|
||||
The default policy in the past was ``never``, but it can now be adjusted
|
||||
using the kernel parameter ``transparent_hugepage_tmpfs=<policy>``.
|
||||
|
||||
``mount -o remount,huge= /mountpoint`` works fine after mount: remounting
|
||||
``huge=never`` will not attempt to break up huge pages at all, just stop more
|
||||
from being allocated.
|
||||
|
||||
There's also sysfs knob to control hugepage allocation policy for internal
|
||||
shmem mount: /sys/kernel/mm/transparent_hugepage/shmem_enabled. The mount
|
||||
is used for SysV SHM, memfds, shared anonymous mmaps (of /dev/zero or
|
||||
MAP_ANONYMOUS), GPU drivers' DRM objects, Ashmem.
|
||||
|
||||
In addition to policies listed above, shmem_enabled allows two further
|
||||
values:
|
||||
In addition to policies listed above, the sysfs knob
|
||||
/sys/kernel/mm/transparent_hugepage/shmem_enabled will affect the
|
||||
allocation policy of tmpfs mounts, when set to the following values:
|
||||
|
||||
deny
|
||||
For use in emergencies, to force the huge option off from
|
||||
@@ -388,13 +407,24 @@ deny
|
||||
force
|
||||
Force the huge option on for all - very useful for testing;
|
||||
|
||||
Shmem can also use "multi-size THP" (mTHP) by adding a new sysfs knob to
|
||||
control mTHP allocation:
|
||||
'/sys/kernel/mm/transparent_hugepage/hugepages-<size>kB/shmem_enabled',
|
||||
and its value for each mTHP is essentially consistent with the global
|
||||
setting. An 'inherit' option is added to ensure compatibility with these
|
||||
global settings. Conversely, the options 'force' and 'deny' are dropped,
|
||||
which are rather testing artifacts from the old ages.
|
||||
shmem / internal tmpfs
|
||||
----------------------
|
||||
The mount internal tmpfs mount is used for SysV SHM, memfds, shared anonymous
|
||||
mmaps (of /dev/zero or MAP_ANONYMOUS), GPU drivers' DRM objects, Ashmem.
|
||||
|
||||
To control the THP allocation policy for this internal tmpfs mount, the
|
||||
sysfs knob /sys/kernel/mm/transparent_hugepage/shmem_enabled and the knobs
|
||||
per THP size in
|
||||
'/sys/kernel/mm/transparent_hugepage/hugepages-<size>kB/shmem_enabled'
|
||||
can be used.
|
||||
|
||||
The global knob has the same semantics as the ``huge=`` mount options
|
||||
for tmpfs mounts, except that the different huge page sizes can be controlled
|
||||
individually, and will only use the setting of the global knob when the
|
||||
per-size knob is set to 'inherit'.
|
||||
|
||||
The options 'force' and 'deny' are dropped for the individual sizes, which
|
||||
are rather testing artifacts from the old ages.
|
||||
|
||||
always
|
||||
Attempt to allocate <size> huge pages every time we need a new page;
|
||||
@@ -408,10 +438,10 @@ never
|
||||
|
||||
within_size
|
||||
Only allocate <size> huge page if it will be fully within i_size.
|
||||
Also respect fadvise()/madvise() hints;
|
||||
Also respect madvise() hints;
|
||||
|
||||
advise
|
||||
Only allocate <size> huge pages if requested with fadvise()/madvise();
|
||||
Only allocate <size> huge pages if requested with madvise();
|
||||
|
||||
Need of application restart
|
||||
===========================
|
||||
@@ -561,6 +591,16 @@ swpin
|
||||
is incremented every time a huge page is swapped in from a non-zswap
|
||||
swap device in one piece.
|
||||
|
||||
swpin_fallback
|
||||
is incremented if swapin fails to allocate or charge a huge page
|
||||
and instead falls back to using huge pages with lower orders or
|
||||
small pages.
|
||||
|
||||
swpin_fallback_charge
|
||||
is incremented if swapin fails to charge a huge page and instead
|
||||
falls back to using huge pages with lower orders or small pages
|
||||
even though the allocation was successful.
|
||||
|
||||
swpout
|
||||
is incremented every time a huge page is swapped out to a non-zswap
|
||||
swap device in one piece without splitting.
|
||||
|
||||
@@ -83,7 +83,7 @@ scripts/ver_linux is a good way to check if your system already has
|
||||
the necessary tools::
|
||||
|
||||
sudo apt-get build-essentials flex bison yacc
|
||||
sudo apt install libelf-dev systemtap-sdt-dev libaudit-dev libslang2-dev libperl-dev libdw-dev
|
||||
sudo apt install libelf-dev systemtap-sdt-dev libslang2-dev libperl-dev libdw-dev
|
||||
|
||||
cscope is a good tool to browse kernel sources. Let's install it now::
|
||||
|
||||
|
||||
@@ -198,7 +198,8 @@ stable kernels.
|
||||
+----------------+-----------------+-----------------+-----------------------------+
|
||||
| ARM | Neoverse-V3 | #3312417 | ARM64_ERRATUM_3194386 |
|
||||
+----------------+-----------------+-----------------+-----------------------------+
|
||||
| ARM | MMU-500 | #841119,826419 | N/A |
|
||||
| ARM | MMU-500 | #841119,826419 | ARM_SMMU_MMU_500_CPRE_ERRATA|
|
||||
| | | #562869,1047329 | |
|
||||
+----------------+-----------------+-----------------+-----------------------------+
|
||||
| ARM | MMU-600 | #1076982,1209401| N/A |
|
||||
+----------------+-----------------+-----------------+-----------------------------+
|
||||
|
||||
@@ -293,3 +293,13 @@ The following keys are defined:
|
||||
|
||||
* :c:macro:`RISCV_HWPROBE_MISALIGNED_VECTOR_UNSUPPORTED`: Misaligned vector accesses are
|
||||
not supported at all and will generate a misaligned address fault.
|
||||
|
||||
* :c:macro:`RISCV_HWPROBE_KEY_VENDOR_EXT_THEAD_0`: A bitmask containing the
|
||||
thead vendor extensions that are compatible with the
|
||||
:c:macro:`RISCV_HWPROBE_BASE_BEHAVIOR_IMA`: base system behavior.
|
||||
|
||||
* T-HEAD
|
||||
|
||||
* :c:macro:`RISCV_HWPROBE_VENDOR_EXT_XTHEADVECTOR`: The xtheadvector vendor
|
||||
extension is supported in the T-Head ISA extensions spec starting from
|
||||
commit a18c801634 ("Add T-Head VECTOR vendor extension. ").
|
||||
|
||||
@@ -333,6 +333,4 @@ References
|
||||
|
||||
.. [#userspace_readme] https://github.com/ming1/ubdsrv/blob/master/README
|
||||
|
||||
.. [#stefan] https://lore.kernel.org/linux-block/YoOr6jBfgVm8GvWg@stefanha-x1.localdomain/
|
||||
|
||||
.. [#xiaoguang] https://lore.kernel.org/linux-block/YoOr6jBfgVm8GvWg@stefanha-x1.localdomain/
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
Min Heap API
|
||||
============
|
||||
|
||||
:Author: Kuan-Wei Chiu <visitorckw@gmail.com>
|
||||
|
||||
Introduction
|
||||
============
|
||||
|
||||
|
||||
@@ -42,8 +42,8 @@ call xa_tag_pointer() to create an entry with a tag, xa_untag_pointer()
|
||||
to turn a tagged entry back into an untagged pointer and xa_pointer_tag()
|
||||
to retrieve the tag of an entry. Tagged pointers use the same bits that
|
||||
are used to distinguish value entries from normal pointers, so you must
|
||||
decide whether they want to store value entries or tagged pointers in
|
||||
any particular XArray.
|
||||
decide whether you want to store value entries or tagged pointers in any
|
||||
particular XArray.
|
||||
|
||||
The XArray does not support storing IS_ERR() pointers as some
|
||||
conflict with value entries or internal entries.
|
||||
@@ -52,8 +52,9 @@ An unusual feature of the XArray is the ability to create entries which
|
||||
occupy a range of indices. Once stored to, looking up any index in
|
||||
the range will return the same entry as looking up any other index in
|
||||
the range. Storing to any index will store to all of them. Multi-index
|
||||
entries can be explicitly split into smaller entries, or storing ``NULL``
|
||||
into any entry will cause the XArray to forget about the range.
|
||||
entries can be explicitly split into smaller entries. Unsetting (using
|
||||
xa_erase() or xa_store() with ``NULL``) any entry will cause the XArray
|
||||
to forget about the range.
|
||||
|
||||
Normal API
|
||||
==========
|
||||
@@ -63,13 +64,14 @@ for statically allocated XArrays or xa_init() for dynamically
|
||||
allocated ones. A freshly-initialised XArray contains a ``NULL``
|
||||
pointer at every index.
|
||||
|
||||
You can then set entries using xa_store() and get entries
|
||||
using xa_load(). xa_store will overwrite any entry with the
|
||||
new entry and return the previous entry stored at that index. You can
|
||||
use xa_erase() instead of calling xa_store() with a
|
||||
``NULL`` entry. There is no difference between an entry that has never
|
||||
been stored to, one that has been erased and one that has most recently
|
||||
had ``NULL`` stored to it.
|
||||
You can then set entries using xa_store() and get entries using
|
||||
xa_load(). xa_store() will overwrite any entry with the new entry and
|
||||
return the previous entry stored at that index. You can unset entries
|
||||
using xa_erase() or by setting the entry to ``NULL`` using xa_store().
|
||||
There is no difference between an entry that has never been stored to
|
||||
and one that has been erased with xa_erase(); an entry that has most
|
||||
recently had ``NULL`` stored to it is also equivalent except if the
|
||||
XArray was initialized with ``XA_FLAGS_ALLOC``.
|
||||
|
||||
You can conditionally replace an entry at an index by using
|
||||
xa_cmpxchg(). Like cmpxchg(), it will only succeed if
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
Altera SOCFPGA System Manager
|
||||
|
||||
Required properties:
|
||||
- compatible : "altr,sys-mgr"
|
||||
- reg : Should contain 1 register ranges(address and length)
|
||||
- cpu1-start-addr : CPU1 start address in hex.
|
||||
|
||||
Example:
|
||||
sysmgr@ffd08000 {
|
||||
compatible = "altr,sys-mgr";
|
||||
reg = <0xffd08000 0x1000>;
|
||||
cpu1-start-addr = <0xffd080c4>;
|
||||
};
|
||||
|
||||
ARM64 - Stratix10
|
||||
Required properties:
|
||||
- compatible : "altr,sys-mgr-s10"
|
||||
- reg : Should contain 1 register range(address and length)
|
||||
for system manager register.
|
||||
|
||||
Example:
|
||||
sysmgr@ffd12000 {
|
||||
compatible = "altr,sys-mgr-s10";
|
||||
reg = <0xffd12000 0x228>;
|
||||
};
|
||||
@@ -38,6 +38,12 @@ properties:
|
||||
enum:
|
||||
- arm,coresight-dummy-source
|
||||
|
||||
arm,static-trace-id:
|
||||
description: If dummy source needs static id support, use this to set trace id.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 1
|
||||
maximum: 111
|
||||
|
||||
out-ports:
|
||||
$ref: /schemas/graph.yaml#/properties/ports
|
||||
|
||||
|
||||
@@ -45,7 +45,22 @@ properties:
|
||||
patternProperties:
|
||||
'^port@[01]$':
|
||||
description: Output connections to CoreSight Trace bus
|
||||
$ref: /schemas/graph.yaml#/properties/port
|
||||
$ref: /schemas/graph.yaml#/$defs/port-base
|
||||
unevaluatedProperties: false
|
||||
|
||||
properties:
|
||||
endpoint:
|
||||
$ref: /schemas/graph.yaml#/$defs/endpoint-base
|
||||
unevaluatedProperties: false
|
||||
|
||||
properties:
|
||||
filter-source:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
description:
|
||||
phandle to the coresight trace source device matching the
|
||||
hard coded filtering for this port
|
||||
|
||||
remote-endpoint: true
|
||||
|
||||
required:
|
||||
- compatible
|
||||
@@ -72,6 +87,7 @@ examples:
|
||||
reg = <0>;
|
||||
replicator_out_port0: endpoint {
|
||||
remote-endpoint = <&etb_in_port>;
|
||||
filter-source = <&tpdm_video>;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -79,6 +95,7 @@ examples:
|
||||
reg = <1>;
|
||||
replicator_out_port1: endpoint {
|
||||
remote-endpoint = <&tpiu_in_port>;
|
||||
filter-source = <&tpdm_mdss>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -23,7 +23,7 @@ description: |
|
||||
|
||||
properties:
|
||||
$nodename:
|
||||
pattern: "^ete([0-9a-f]+)$"
|
||||
pattern: "^ete(-[0-9]+)?$"
|
||||
compatible:
|
||||
items:
|
||||
- const: arm,embedded-trace-extension
|
||||
@@ -55,13 +55,13 @@ examples:
|
||||
|
||||
# An ETE node without legacy CoreSight connections
|
||||
- |
|
||||
ete0 {
|
||||
ete-0 {
|
||||
compatible = "arm,embedded-trace-extension";
|
||||
cpu = <&cpu_0>;
|
||||
};
|
||||
# An ETE node with legacy CoreSight connections
|
||||
- |
|
||||
ete1 {
|
||||
ete-1 {
|
||||
compatible = "arm,embedded-trace-extension";
|
||||
cpu = <&cpu_1>;
|
||||
|
||||
|
||||
@@ -74,6 +74,7 @@ properties:
|
||||
- description: AST2600 based boards
|
||||
items:
|
||||
- enum:
|
||||
- ampere,mtjefferson-bmc
|
||||
- ampere,mtmitchell-bmc
|
||||
- aspeed,ast2600-evb
|
||||
- aspeed,ast2600-evb-a1
|
||||
@@ -91,6 +92,7 @@ properties:
|
||||
- ibm,everest-bmc
|
||||
- ibm,fuji-bmc
|
||||
- ibm,rainier-bmc
|
||||
- ibm,sbp1-bmc
|
||||
- ibm,system1-bmc
|
||||
- ibm,tacoma-bmc
|
||||
- inventec,starscream-bmc
|
||||
|
||||
@@ -180,6 +180,13 @@ properties:
|
||||
- const: atmel,sama5d4
|
||||
- const: atmel,sama5
|
||||
|
||||
- description: Microchip SAMA7D65 Curiosity Board
|
||||
items:
|
||||
- const: microchip,sama7d65-curiosity
|
||||
- const: microchip,sama7d65
|
||||
- const: microchip,sama7d6
|
||||
- const: microchip,sama7
|
||||
|
||||
- items:
|
||||
- const: microchip,sama7g5ek # SAMA7G5 Evaluation Kit
|
||||
- const: microchip,sama7g5
|
||||
|
||||
@@ -13,6 +13,7 @@ PIT Timer required properties:
|
||||
PIT64B Timer required properties:
|
||||
- compatible: Should be "microchip,sam9x60-pit64b" or
|
||||
"microchip,sam9x7-pit64b", "microchip,sam9x60-pit64b"
|
||||
"microchip,sama7d65-pit64b", "microchip,sam9x60-pit64b"
|
||||
- reg: Should contain registers location and length
|
||||
- interrupts: Should contain interrupt for PIT64B timer
|
||||
- clocks: Should contain the available clock sources for PIT64B timer.
|
||||
@@ -27,12 +28,13 @@ Its subnodes can be:
|
||||
- watchdog: compatible should be "atmel,at91rm9200-wdt"
|
||||
|
||||
RAMC SDRAM/DDR Controller required properties:
|
||||
- compatible: Should be "atmel,at91rm9200-sdramc", "syscon"
|
||||
"atmel,at91sam9260-sdramc",
|
||||
"atmel,at91sam9g45-ddramc",
|
||||
"atmel,sama5d3-ddramc",
|
||||
"microchip,sam9x60-ddramc",
|
||||
"microchip,sama7g5-uddrc",
|
||||
- compatible: Should be "atmel,at91rm9200-sdramc", "syscon" or
|
||||
"atmel,at91sam9260-sdramc" or
|
||||
"atmel,at91sam9g45-ddramc" or
|
||||
"atmel,sama5d3-ddramc" or
|
||||
"microchip,sam9x60-ddramc" or
|
||||
"microchip,sama7g5-uddrc" or
|
||||
"microchip,sama7d65-uddrc", "microchip,sama7g5-uddrc" or
|
||||
"microchip,sam9x7-ddramc", "atmel,sama5d3-ddramc".
|
||||
- reg: Should contain registers location and length
|
||||
|
||||
|
||||
@@ -34,6 +34,7 @@ properties:
|
||||
- enum:
|
||||
- netgear,r8000p
|
||||
- tplink,archer-c2300-v1
|
||||
- zyxel,ex3510b
|
||||
- const: brcm,bcm4906
|
||||
- const: brcm,bcm4908
|
||||
- const: brcm,bcmbca
|
||||
@@ -115,6 +116,7 @@ properties:
|
||||
items:
|
||||
- enum:
|
||||
- brcm,bcm96846
|
||||
- genexis,xg6846b
|
||||
- const: brcm,bcm6846
|
||||
- const: brcm,bcmbca
|
||||
|
||||
|
||||
40
Documentation/devicetree/bindings/arm/blaize.yaml
Normal file
40
Documentation/devicetree/bindings/arm/blaize.yaml
Normal file
@@ -0,0 +1,40 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/arm/blaize.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Blaize Platforms
|
||||
|
||||
maintainers:
|
||||
- James Cowgill <james.cowgill@blaize.com>
|
||||
- Matt Redfearn <matt.redfearn@blaize.com>
|
||||
- Neil Jones <neil.jones@blaize.com>
|
||||
- Nikolaos Pasaloukos <nikolaos.pasaloukos@blaize.com>
|
||||
|
||||
description: |
|
||||
Blaize Platforms using SoCs designed by Blaize Inc.
|
||||
|
||||
The products based on the BLZP1600 SoC:
|
||||
|
||||
- BLZP1600-SoM: SoM (System on Module)
|
||||
- BLZP1600-CB2: Development board CB2 based on BLZP1600-SoM
|
||||
|
||||
BLZP1600 SoC integrates a dual core ARM Cortex A53 cluster
|
||||
and a Blaize Graph Streaming Processor for AI and ML workloads,
|
||||
plus a suite of connectivity and other peripherals.
|
||||
|
||||
properties:
|
||||
$nodename:
|
||||
const: '/'
|
||||
compatible:
|
||||
oneOf:
|
||||
- description: Blaize BLZP1600 based boards
|
||||
items:
|
||||
- enum:
|
||||
- blaize,blzp1600-cb2
|
||||
- const: blaize,blzp1600
|
||||
|
||||
additionalProperties: true
|
||||
|
||||
...
|
||||
@@ -1091,6 +1091,7 @@ properties:
|
||||
- dmo,imx8mp-data-modul-edm-sbc # i.MX8MP eDM SBC
|
||||
- emcraft,imx8mp-navqp # i.MX8MP Emcraft Systems NavQ+ Kit
|
||||
- fsl,imx8mp-evk # i.MX8MP EVK Board
|
||||
- fsl,imx8mp-evk-revb4 # i.MX8MP EVK Rev B4 Board
|
||||
- gateworks,imx8mp-gw71xx-2x # i.MX8MP Gateworks Board
|
||||
- gateworks,imx8mp-gw72xx-2x # i.MX8MP Gateworks Board
|
||||
- gateworks,imx8mp-gw73xx-2x # i.MX8MP Gateworks Board
|
||||
@@ -1106,6 +1107,15 @@ properties:
|
||||
- ysoft,imx8mp-iota2-lumpy # Y Soft i.MX8MP IOTA2 Lumpy Board
|
||||
- const: fsl,imx8mp
|
||||
|
||||
- description: ABB Boards with i.MX8M Plus Modules from ADLink
|
||||
items:
|
||||
- enum:
|
||||
- abb,imx8mp-aristanetos3-adpismarc # i.MX8MP ABB SoM on PI SMARC Board
|
||||
- abb,imx8mp-aristanetos3-helios # i.MX8MP ABB SoM on helios Board
|
||||
- abb,imx8mp-aristanetos3-proton2s # i.MX8MP ABB SoM on proton2s Board
|
||||
- const: abb,imx8mp-aristanetos3-som # i.MX8MP ABB SoM
|
||||
- const: fsl,imx8mp
|
||||
|
||||
- description: Avnet (MSC Branded) Boards with SM2S i.MX8M Plus Modules
|
||||
items:
|
||||
- const: avnet,sm2s-imx8mp-14N0600E-ep1 # SM2S-IMX8PLUS-14N0600E on SM2-MB-EP1 Carrier Board
|
||||
@@ -1262,6 +1272,7 @@ properties:
|
||||
items:
|
||||
- enum:
|
||||
- fsl,imx8qm-mek # i.MX8QM MEK Board
|
||||
- fsl,imx8qm-mek-revd # i.MX8QM MEK Rev D Board
|
||||
- toradex,apalis-imx8 # Apalis iMX8 Modules
|
||||
- toradex,apalis-imx8-v1.1 # Apalis iMX8 V1.1 Modules
|
||||
- const: fsl,imx8qm
|
||||
@@ -1290,6 +1301,7 @@ properties:
|
||||
- enum:
|
||||
- einfochips,imx8qxp-ai_ml # i.MX8QXP AI_ML Board
|
||||
- fsl,imx8qxp-mek # i.MX8QXP MEK Board
|
||||
- fsl,imx8qxp-mek-wcpu # i.MX8QXP MEK WCPU Board
|
||||
- const: fsl,imx8qxp
|
||||
|
||||
- description: i.MX8DXL based Boards
|
||||
|
||||
@@ -239,6 +239,34 @@ properties:
|
||||
- enum:
|
||||
- mediatek,mt8183-pumpkin
|
||||
- const: mediatek,mt8183
|
||||
- description: Google Chinchou (Asus Chromebook CZ1104CM2A/CZ1204CM2A)
|
||||
items:
|
||||
- const: google,chinchou-sku0
|
||||
- const: google,chinchou-sku2
|
||||
- const: google,chinchou-sku4
|
||||
- const: google,chinchou-sku5
|
||||
- const: google,chinchou
|
||||
- const: mediatek,mt8186
|
||||
- description: Google Chinchou (Asus Chromebook CZ1104FM2A/CZ1204FM2A/CZ1104CM2A/CZ1204CM2A)
|
||||
items:
|
||||
- const: google,chinchou-sku1
|
||||
- const: google,chinchou-sku3
|
||||
- const: google,chinchou-sku6
|
||||
- const: google,chinchou-sku7
|
||||
- const: google,chinchou-sku17
|
||||
- const: google,chinchou-sku20
|
||||
- const: google,chinchou-sku22
|
||||
- const: google,chinchou-sku23
|
||||
- const: google,chinchou
|
||||
- const: mediatek,mt8186
|
||||
- description: Google Chinchou360 (Asus Chromebook CZ1104FM2A/CZ1204FM2A Flip)
|
||||
items:
|
||||
- const: google,chinchou-sku16
|
||||
- const: google,chinchou-sku18
|
||||
- const: google,chinchou-sku19
|
||||
- const: google,chinchou-sku21
|
||||
- const: google,chinchou
|
||||
- const: mediatek,mt8186
|
||||
- description: Google Magneton (Lenovo IdeaPad Slim 3 Chromebook (14M868))
|
||||
items:
|
||||
- const: google,steelix-sku393219
|
||||
@@ -263,6 +291,19 @@ properties:
|
||||
- const: google,steelix-sku196608
|
||||
- const: google,steelix
|
||||
- const: mediatek,mt8186
|
||||
- description: Google Starmie (ASUS Chromebook Enterprise CM30 (CM3001))
|
||||
items:
|
||||
- const: google,starmie-sku0
|
||||
- const: google,starmie-sku2
|
||||
- const: google,starmie-sku3
|
||||
- const: google,starmie
|
||||
- const: mediatek,mt8186
|
||||
- description: Google Starmie (ASUS Chromebook Enterprise CM30 (CM3001))
|
||||
items:
|
||||
- const: google,starmie-sku1
|
||||
- const: google,starmie-sku4
|
||||
- const: google,starmie
|
||||
- const: mediatek,mt8186
|
||||
- description: Google Steelix (Lenovo 300e Yoga Chromebook Gen 4)
|
||||
items:
|
||||
- enum:
|
||||
@@ -307,6 +348,19 @@ properties:
|
||||
- enum:
|
||||
- mediatek,mt8186-evb
|
||||
- const: mediatek,mt8186
|
||||
- description: Google Ciri (Lenovo Chromebook Duet (11", 9))
|
||||
items:
|
||||
- enum:
|
||||
- google,ciri-sku0
|
||||
- google,ciri-sku1
|
||||
- google,ciri-sku2
|
||||
- google,ciri-sku3
|
||||
- google,ciri-sku4
|
||||
- google,ciri-sku5
|
||||
- google,ciri-sku6
|
||||
- google,ciri-sku7
|
||||
- const: google,ciri
|
||||
- const: mediatek,mt8188
|
||||
- items:
|
||||
- enum:
|
||||
- mediatek,mt8188-evb
|
||||
@@ -316,12 +370,6 @@ properties:
|
||||
- const: google,hayato-rev1
|
||||
- const: google,hayato
|
||||
- const: mediatek,mt8192
|
||||
- description: Google Hayato rev5
|
||||
items:
|
||||
- const: google,hayato-rev5-sku2
|
||||
- const: google,hayato-sku2
|
||||
- const: google,hayato
|
||||
- const: mediatek,mt8192
|
||||
- description: Google Spherion (Acer Chromebook 514)
|
||||
items:
|
||||
- const: google,spherion-rev3
|
||||
@@ -330,11 +378,6 @@ properties:
|
||||
- const: google,spherion-rev0
|
||||
- const: google,spherion
|
||||
- const: mediatek,mt8192
|
||||
- description: Google Spherion rev4 (Acer Chromebook 514)
|
||||
items:
|
||||
- const: google,spherion-rev4
|
||||
- const: google,spherion
|
||||
- const: mediatek,mt8192
|
||||
- items:
|
||||
- enum:
|
||||
- mediatek,mt8192-evb
|
||||
|
||||
@@ -23,7 +23,7 @@ description: |
|
||||
select:
|
||||
properties:
|
||||
compatible:
|
||||
pattern: "^qcom,.*(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm|x1e)[0-9]+.*$"
|
||||
pattern: "^qcom,.*(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sar|sc|sd[amx]|sm|x1[ep])[0-9]+.*$"
|
||||
required:
|
||||
- compatible
|
||||
|
||||
@@ -31,7 +31,8 @@ properties:
|
||||
compatible:
|
||||
oneOf:
|
||||
# Preferred naming style for compatibles of SoC components:
|
||||
- pattern: "^qcom,(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm|x1e)[0-9]+(pro)?-.*$"
|
||||
- pattern: "^qcom,(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm|x1[ep])[0-9]+(pro)?-.*$"
|
||||
- pattern: "^qcom,sar[0-9]+[a-z]?-.*$"
|
||||
- pattern: "^qcom,(sa|sc)8[0-9]+[a-z][a-z]?-.*$"
|
||||
|
||||
# Legacy namings - variations of existing patterns/compatibles are OK,
|
||||
@@ -39,9 +40,9 @@ properties:
|
||||
- pattern: "^qcom,[ak]pss-wdt-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm)[0-9]+.*$"
|
||||
- pattern: "^qcom,gcc-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm)[0-9]+.*$"
|
||||
- pattern: "^qcom,mmcc-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm)[0-9]+.*$"
|
||||
- pattern: "^qcom,pcie-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm|x1e)[0-9]+.*$"
|
||||
- pattern: "^qcom,pcie-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm|x1[ep])[0-9]+.*$"
|
||||
- pattern: "^qcom,rpm-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm)[0-9]+.*$"
|
||||
- pattern: "^qcom,scm-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm|x1e)[0-9]+.*$"
|
||||
- pattern: "^qcom,scm-(apq|ipq|mdm|msm|qcm|qcs|q[dr]u|sa|sc|sd[amx]|sm|x1[ep])[0-9]+.*$"
|
||||
- enum:
|
||||
- qcom,dsi-ctrl-6g-qcm2290
|
||||
- qcom,gpucc-sdm630
|
||||
|
||||
@@ -19,29 +19,42 @@ description: |
|
||||
|
||||
apq8016
|
||||
apq8026
|
||||
apq8064
|
||||
apq8074
|
||||
apq8084
|
||||
apq8094
|
||||
apq8096
|
||||
ipq4018
|
||||
ipq4019
|
||||
ipq5018
|
||||
ipq5332
|
||||
ipq5424
|
||||
ipq6018
|
||||
ipq8064
|
||||
ipq8074
|
||||
ipq9574
|
||||
mdm9615
|
||||
msm8226
|
||||
msm8660
|
||||
msm8916
|
||||
msm8917
|
||||
msm8926
|
||||
msm8929
|
||||
msm8939
|
||||
msm8953
|
||||
msm8956
|
||||
msm8960
|
||||
msm8974
|
||||
msm8974pro
|
||||
msm8976
|
||||
msm8992
|
||||
msm8994
|
||||
msm8996
|
||||
msm8996pro
|
||||
msm8998
|
||||
qcs404
|
||||
qcs615
|
||||
qcs8300
|
||||
qcs8550
|
||||
qcm2290
|
||||
qcm6490
|
||||
@@ -53,6 +66,7 @@ description: |
|
||||
sa8155p
|
||||
sa8540p
|
||||
sa8775p
|
||||
sar2130p
|
||||
sc7180
|
||||
sc7280
|
||||
sc8180x
|
||||
@@ -84,7 +98,10 @@ description: |
|
||||
sm8450
|
||||
sm8550
|
||||
sm8650
|
||||
sm8750
|
||||
x1e78100
|
||||
x1e80100
|
||||
x1p42100
|
||||
|
||||
There are many devices in the list below that run the standard ChromeOS
|
||||
bootloader setup and use the open source depthcharge bootloader to boot the
|
||||
@@ -250,6 +267,11 @@ properties:
|
||||
- yiming,uz801-v3
|
||||
- const: qcom,msm8916
|
||||
|
||||
- items:
|
||||
- enum:
|
||||
- xiaomi,riva
|
||||
- const: qcom,msm8917
|
||||
|
||||
- items:
|
||||
- enum:
|
||||
- motorola,potter
|
||||
@@ -352,6 +374,11 @@ properties:
|
||||
- qcom,ipq5332-ap-mi01.9
|
||||
- const: qcom,ipq5332
|
||||
|
||||
- items:
|
||||
- enum:
|
||||
- qcom,ipq5424-rdp466
|
||||
- const: qcom,ipq5424
|
||||
|
||||
- items:
|
||||
- enum:
|
||||
- mikrotik,rb3011
|
||||
@@ -408,6 +435,12 @@ properties:
|
||||
- qcom,qru1000-idp
|
||||
- const: qcom,qru1000
|
||||
|
||||
- description: Qualcomm AR2 Gen1 platform
|
||||
items:
|
||||
- enum:
|
||||
- qcom,qar2130p
|
||||
- const: qcom,sar2130p
|
||||
|
||||
- items:
|
||||
- enum:
|
||||
- acer,aspire1
|
||||
@@ -822,8 +855,10 @@ properties:
|
||||
|
||||
- items:
|
||||
- enum:
|
||||
- huawei,gaokun3
|
||||
- lenovo,thinkpad-x13s
|
||||
- microsoft,arcata
|
||||
- microsoft,blackrock
|
||||
- qcom,sc8280xp-crd
|
||||
- qcom,sc8280xp-qrd
|
||||
- const: qcom,sc8280xp
|
||||
@@ -898,6 +933,16 @@ properties:
|
||||
- const: qcom,qcs404-evb
|
||||
- const: qcom,qcs404
|
||||
|
||||
- items:
|
||||
- enum:
|
||||
- qcom,qcs8300-ride
|
||||
- const: qcom,qcs8300
|
||||
|
||||
- items:
|
||||
- enum:
|
||||
- qcom,qcs615-ride
|
||||
- const: qcom,qcs615
|
||||
|
||||
- items:
|
||||
- enum:
|
||||
- qcom,sa8155p-adp
|
||||
@@ -1064,6 +1109,18 @@ properties:
|
||||
- qcom,sm8650-qrd
|
||||
- const: qcom,sm8650
|
||||
|
||||
- items:
|
||||
- enum:
|
||||
- qcom,sm8750-mtp
|
||||
- qcom,sm8750-qrd
|
||||
- const: qcom,sm8750
|
||||
|
||||
- items:
|
||||
- enum:
|
||||
- qcom,x1e001de-devkit
|
||||
- const: qcom,x1e001de
|
||||
- const: qcom,x1e80100
|
||||
|
||||
- items:
|
||||
- enum:
|
||||
- lenovo,thinkpad-t14s
|
||||
@@ -1074,6 +1131,7 @@ properties:
|
||||
- enum:
|
||||
- asus,vivobook-s15
|
||||
- dell,xps13-9345
|
||||
- hp,omnibook-x14
|
||||
- lenovo,yoga-slim7x
|
||||
- microsoft,romulus13
|
||||
- microsoft,romulus15
|
||||
@@ -1081,6 +1139,11 @@ properties:
|
||||
- qcom,x1e80100-qcp
|
||||
- const: qcom,x1e80100
|
||||
|
||||
- items:
|
||||
- enum:
|
||||
- qcom,x1p42100-crd
|
||||
- const: qcom,x1p42100
|
||||
|
||||
# Board compatibles go above
|
||||
|
||||
qcom,msm-id:
|
||||
@@ -1158,6 +1221,7 @@ allOf:
|
||||
- qcom,apq8026
|
||||
- qcom,apq8094
|
||||
- qcom,apq8096
|
||||
- qcom,msm8917
|
||||
- qcom,msm8939
|
||||
- qcom,msm8953
|
||||
- qcom,msm8956
|
||||
|
||||
@@ -81,6 +81,17 @@ properties:
|
||||
- const: azw,beelink-a1
|
||||
- const: rockchip,rk3328
|
||||
|
||||
- description: BigTreeTech CB2 Manta M4/8P
|
||||
items:
|
||||
- const: bigtreetech,cb2-manta
|
||||
- const: bigtreetech,cb2
|
||||
- const: rockchip,rk3566
|
||||
|
||||
- description: BigTreeTech Pi 2
|
||||
items:
|
||||
- const: bigtreetech,pi2
|
||||
- const: rockchip,rk3566
|
||||
|
||||
- description: bq Curie 2 tablet
|
||||
items:
|
||||
- const: mundoreader,bq-curie2
|
||||
@@ -167,6 +178,13 @@ properties:
|
||||
- const: engicam,px30-core
|
||||
- const: rockchip,px30
|
||||
|
||||
- description: Firefly Core-3588J-based boards
|
||||
items:
|
||||
- enum:
|
||||
- firefly,itx-3588j
|
||||
- const: firefly,core-3588j
|
||||
- const: rockchip,rk3588
|
||||
|
||||
- description: Firefly Core-PX30-JD4 on MB-JD4-PX30 baseboard
|
||||
items:
|
||||
- const: firefly,px30-jd4-core-mb
|
||||
@@ -597,6 +615,11 @@ properties:
|
||||
- const: google,veyron
|
||||
- const: rockchip,rk3288
|
||||
|
||||
- description: H96 Max V58 TV Box
|
||||
items:
|
||||
- const: haochuangyi,h96-max-v58
|
||||
- const: rockchip,rk3588
|
||||
|
||||
- description: Haoyu MarsBoard RK3066
|
||||
items:
|
||||
- const: haoyu,marsboard-rk3066
|
||||
@@ -812,6 +835,12 @@ properties:
|
||||
- const: radxa,e20c
|
||||
- const: rockchip,rk3528
|
||||
|
||||
- description: Radxa E52C
|
||||
items:
|
||||
- const: radxa,e52c
|
||||
- const: rockchip,rk3582
|
||||
- const: rockchip,rk3588s
|
||||
|
||||
- description: Radxa Rock
|
||||
items:
|
||||
- const: radxa,rock
|
||||
@@ -1006,6 +1035,21 @@ properties:
|
||||
- const: rockchip,rk3399-sapphire-excavator
|
||||
- const: rockchip,rk3399
|
||||
|
||||
- description: Rockchip RK3566 BOX Evaluation Demo board
|
||||
items:
|
||||
- const: rockchip,rk3566-box-demo
|
||||
- const: rockchip,rk3566
|
||||
|
||||
- description: Rockchip RK3568 Evaluation board
|
||||
items:
|
||||
- const: rockchip,rk3568-evb1-v10
|
||||
- const: rockchip,rk3568
|
||||
|
||||
- description: Rockchip RK3576 Evaluation board
|
||||
items:
|
||||
- const: rockchip,rk3576-evb1-v10
|
||||
- const: rockchip,rk3576
|
||||
|
||||
- description: Rockchip RK3588 Evaluation board
|
||||
items:
|
||||
- const: rockchip,rk3588-evb1-v10
|
||||
@@ -1026,6 +1070,23 @@ properties:
|
||||
- const: rockchip,rk3588-toybrick-x0
|
||||
- const: rockchip,rk3588
|
||||
|
||||
- description: Sinovoip RK3308 Banana Pi P2 Pro
|
||||
items:
|
||||
- const: sinovoip,rk3308-bpi-p2pro
|
||||
- const: rockchip,rk3308
|
||||
|
||||
- description: Sinovoip RK3568 Banana Pi R2 Pro
|
||||
items:
|
||||
- const: sinovoip,rk3568-bpi-r2pro
|
||||
- const: rockchip,rk3568
|
||||
|
||||
- description: Sonoff iHost Smart Home Hub
|
||||
items:
|
||||
- const: itead,sonoff-ihost
|
||||
- enum:
|
||||
- rockchip,rv1126
|
||||
- rockchip,rv1109
|
||||
|
||||
- description: Theobroma Systems PX30-uQ7 with Haikou baseboard
|
||||
items:
|
||||
- const: tsd,px30-ringneck-haikou
|
||||
@@ -1075,9 +1136,11 @@ properties:
|
||||
- const: xunlong,orangepi-3b
|
||||
- const: rockchip,rk3566
|
||||
|
||||
- description: Xunlong Orange Pi 5 Plus
|
||||
- description: Xunlong Orange Pi 5 Max/Plus
|
||||
items:
|
||||
- const: xunlong,orangepi-5-plus
|
||||
- enum:
|
||||
- xunlong,orangepi-5-max
|
||||
- xunlong,orangepi-5-plus
|
||||
- const: rockchip,rk3588
|
||||
|
||||
- description: Xunlong Orange Pi R1 Plus / LTS
|
||||
@@ -1099,33 +1162,6 @@ properties:
|
||||
- const: zkmagic,a95x-z2
|
||||
- const: rockchip,rk3318
|
||||
|
||||
- description: Rockchip RK3566 BOX Evaluation Demo board
|
||||
items:
|
||||
- const: rockchip,rk3566-box-demo
|
||||
- const: rockchip,rk3566
|
||||
|
||||
- description: Rockchip RK3568 Evaluation board
|
||||
items:
|
||||
- const: rockchip,rk3568-evb1-v10
|
||||
- const: rockchip,rk3568
|
||||
|
||||
- description: Sinovoip RK3308 Banana Pi P2 Pro
|
||||
items:
|
||||
- const: sinovoip,rk3308-bpi-p2pro
|
||||
- const: rockchip,rk3308
|
||||
|
||||
- description: Sinovoip RK3568 Banana Pi R2 Pro
|
||||
items:
|
||||
- const: sinovoip,rk3568-bpi-r2pro
|
||||
- const: rockchip,rk3568
|
||||
|
||||
- description: Sonoff iHost Smart Home Hub
|
||||
items:
|
||||
- const: itead,sonoff-ihost
|
||||
- enum:
|
||||
- rockchip,rv1126
|
||||
- rockchip,rv1109
|
||||
|
||||
additionalProperties: true
|
||||
|
||||
...
|
||||
|
||||
@@ -240,6 +240,9 @@ properties:
|
||||
items:
|
||||
- enum:
|
||||
- samsung,c1s # Samsung Galaxy Note20 5G (SM-N981B)
|
||||
- samsung,r8s # Samsung Galaxy S20 FE (SM-G780F)
|
||||
- samsung,x1s # Samsung Galaxy S20 5G (SM-G981B)
|
||||
- samsung,x1slte # Samsung Galaxy S20 (SM-G980F)
|
||||
- const: samsung,exynos990
|
||||
|
||||
- description: Exynos Auto v9 based boards
|
||||
|
||||
@@ -91,6 +91,13 @@ properties:
|
||||
- const: dh,stm32mp153c-dhcor-som
|
||||
- const: st,stm32mp153
|
||||
|
||||
- description: Octavo OSD32MP153 System-in-Package based boards
|
||||
items:
|
||||
- enum:
|
||||
- lxa,stm32mp153c-tac-gen3 # Linux Automation TAC (Generation 3)
|
||||
- const: oct,stm32mp153x-osd32
|
||||
- const: st,stm32mp153
|
||||
|
||||
- items:
|
||||
- enum:
|
||||
- shiratech,stm32mp157a-iot-box # IoT Box
|
||||
|
||||
@@ -20,6 +20,7 @@ description: |
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- qcom,ipq5424-llcc
|
||||
- qcom,qcs615-llcc
|
||||
- qcom,qcs8300-llcc
|
||||
- qcom,qdu1000-llcc
|
||||
@@ -42,11 +43,11 @@ properties:
|
||||
- qcom,x1e80100-llcc
|
||||
|
||||
reg:
|
||||
minItems: 2
|
||||
minItems: 1
|
||||
maxItems: 10
|
||||
|
||||
reg-names:
|
||||
minItems: 2
|
||||
minItems: 1
|
||||
maxItems: 10
|
||||
|
||||
interrupts:
|
||||
@@ -66,6 +67,21 @@ required:
|
||||
- reg-names
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- qcom,ipq5424-llcc
|
||||
then:
|
||||
properties:
|
||||
reg:
|
||||
items:
|
||||
- description: LLCC0 base register region
|
||||
reg-names:
|
||||
items:
|
||||
- const: llcc0_base
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
|
||||
@@ -293,6 +293,13 @@ properties:
|
||||
PD negotiation till BC1.2 detection completes.
|
||||
default: 0
|
||||
|
||||
pd-revision:
|
||||
description: Specifies the maximum USB PD revision and version supported by
|
||||
the connector. This property is specified in the following order;
|
||||
<revision_major, revision_minor, version_major, version_minor>.
|
||||
$ref: /schemas/types.yaml#/definitions/uint8-array
|
||||
maxItems: 4
|
||||
|
||||
dependencies:
|
||||
sink-vdos-v1: [ sink-vdos ]
|
||||
sink-vdos: [ sink-vdos-v1 ]
|
||||
|
||||
@@ -13,12 +13,14 @@ properties:
|
||||
compatible:
|
||||
items:
|
||||
- enum:
|
||||
- qcom,qcs8300-inline-crypto-engine
|
||||
- qcom,sa8775p-inline-crypto-engine
|
||||
- qcom,sc7180-inline-crypto-engine
|
||||
- qcom,sc7280-inline-crypto-engine
|
||||
- qcom,sm8450-inline-crypto-engine
|
||||
- qcom,sm8550-inline-crypto-engine
|
||||
- qcom,sm8650-inline-crypto-engine
|
||||
- qcom,sm8750-inline-crypto-engine
|
||||
- const: qcom,inline-crypto-engine
|
||||
|
||||
reg:
|
||||
|
||||
@@ -17,12 +17,17 @@ properties:
|
||||
- qcom,prng-ee # 8996 and later using EE
|
||||
- items:
|
||||
- enum:
|
||||
- qcom,ipq5332-trng
|
||||
- qcom,ipq5424-trng
|
||||
- qcom,ipq9574-trng
|
||||
- qcom,qcs8300-trng
|
||||
- qcom,sa8255p-trng
|
||||
- qcom,sa8775p-trng
|
||||
- qcom,sc7280-trng
|
||||
- qcom,sm8450-trng
|
||||
- qcom,sm8550-trng
|
||||
- qcom,sm8650-trng
|
||||
- qcom,sm8750-trng
|
||||
- const: qcom,trng
|
||||
|
||||
reg:
|
||||
|
||||
@@ -45,6 +45,7 @@ properties:
|
||||
|
||||
- items:
|
||||
- enum:
|
||||
- qcom,qcs8300-qce
|
||||
- qcom,sa8775p-qce
|
||||
- qcom,sc7280-qce
|
||||
- qcom,sm6350-qce
|
||||
@@ -53,6 +54,7 @@ properties:
|
||||
- qcom,sm8450-qce
|
||||
- qcom,sm8550-qce
|
||||
- qcom,sm8650-qce
|
||||
- qcom,sm8750-qce
|
||||
- const: qcom,sm8150-qce
|
||||
- const: qcom,qce
|
||||
|
||||
|
||||
@@ -148,10 +148,10 @@ examples:
|
||||
|
||||
/* TMDS Output */
|
||||
hdmi_tx_tmds_port: port@1 {
|
||||
reg = <1>;
|
||||
reg = <1>;
|
||||
|
||||
hdmi_tx_tmds_out: endpoint {
|
||||
remote-endpoint = <&hdmi_connector_in>;
|
||||
};
|
||||
hdmi_tx_tmds_out: endpoint {
|
||||
remote-endpoint = <&hdmi_connector_in>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -82,21 +82,21 @@ examples:
|
||||
power-domains = <&hdmi_blk_ctrl IMX8MP_HDMIBLK_PD_HDMI_TX>;
|
||||
reg-io-width = <1>;
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
|
||||
hdmi_tx_from_pvi: endpoint {
|
||||
remote-endpoint = <&pvi_to_hdmi_tx>;
|
||||
};
|
||||
};
|
||||
endpoint {
|
||||
remote-endpoint = <&pvi_to_hdmi_tx>;
|
||||
};
|
||||
};
|
||||
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
hdmi_tx_out: endpoint {
|
||||
remote-endpoint = <&hdmi0_con>;
|
||||
};
|
||||
};
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
endpoint {
|
||||
remote-endpoint = <&hdmi0_con>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -27,7 +27,9 @@ properties:
|
||||
- fsl,imx8mm-mipi-dsim
|
||||
- fsl,imx8mp-mipi-dsim
|
||||
- items:
|
||||
- const: fsl,imx8mn-mipi-dsim
|
||||
- enum:
|
||||
- fsl,imx7d-mipi-dsim
|
||||
- fsl,imx8mn-mipi-dsim
|
||||
- const: fsl,imx8mm-mipi-dsim
|
||||
|
||||
reg:
|
||||
@@ -241,40 +243,40 @@ examples:
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
|
||||
dsi@13900000 {
|
||||
compatible = "samsung,exynos5433-mipi-dsi";
|
||||
reg = <0x13900000 0xC0>;
|
||||
interrupts = <GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH>;
|
||||
phys = <&mipi_phy 1>;
|
||||
phy-names = "dsim";
|
||||
clocks = <&cmu_disp CLK_PCLK_DSIM0>,
|
||||
<&cmu_disp CLK_PHYCLK_MIPIDPHY0_BITCLKDIV8>,
|
||||
<&cmu_disp CLK_PHYCLK_MIPIDPHY0_RXCLKESC0>,
|
||||
<&cmu_disp CLK_SCLK_RGB_VCLK_TO_DSIM0>,
|
||||
<&cmu_disp CLK_SCLK_DSIM0>;
|
||||
clock-names = "bus_clk",
|
||||
"phyclk_mipidphy0_bitclkdiv8",
|
||||
"phyclk_mipidphy0_rxclkesc0",
|
||||
"sclk_rgb_vclk_to_dsim0",
|
||||
"sclk_mipi";
|
||||
power-domains = <&pd_disp>;
|
||||
vddcore-supply = <&ldo6_reg>;
|
||||
vddio-supply = <&ldo7_reg>;
|
||||
samsung,burst-clock-frequency = <512000000>;
|
||||
samsung,esc-clock-frequency = <16000000>;
|
||||
samsung,pll-clock-frequency = <24000000>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&te_irq>;
|
||||
compatible = "samsung,exynos5433-mipi-dsi";
|
||||
reg = <0x13900000 0xC0>;
|
||||
interrupts = <GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH>;
|
||||
phys = <&mipi_phy 1>;
|
||||
phy-names = "dsim";
|
||||
clocks = <&cmu_disp CLK_PCLK_DSIM0>,
|
||||
<&cmu_disp CLK_PHYCLK_MIPIDPHY0_BITCLKDIV8>,
|
||||
<&cmu_disp CLK_PHYCLK_MIPIDPHY0_RXCLKESC0>,
|
||||
<&cmu_disp CLK_SCLK_RGB_VCLK_TO_DSIM0>,
|
||||
<&cmu_disp CLK_SCLK_DSIM0>;
|
||||
clock-names = "bus_clk",
|
||||
"phyclk_mipidphy0_bitclkdiv8",
|
||||
"phyclk_mipidphy0_rxclkesc0",
|
||||
"sclk_rgb_vclk_to_dsim0",
|
||||
"sclk_mipi";
|
||||
power-domains = <&pd_disp>;
|
||||
vddcore-supply = <&ldo6_reg>;
|
||||
vddio-supply = <&ldo7_reg>;
|
||||
samsung,burst-clock-frequency = <512000000>;
|
||||
samsung,esc-clock-frequency = <16000000>;
|
||||
samsung,pll-clock-frequency = <24000000>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&te_irq>;
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
|
||||
dsi_to_mic: endpoint {
|
||||
remote-endpoint = <&mic_to_dsi>;
|
||||
};
|
||||
};
|
||||
};
|
||||
dsi_to_mic: endpoint {
|
||||
remote-endpoint = <&mic_to_dsi>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -104,30 +104,30 @@ examples:
|
||||
#size-cells = <2>;
|
||||
|
||||
aal@14015000 {
|
||||
compatible = "mediatek,mt8173-disp-aal";
|
||||
reg = <0 0x14015000 0 0x1000>;
|
||||
interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_LOW>;
|
||||
power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>;
|
||||
clocks = <&mmsys CLK_MM_DISP_AAL>;
|
||||
mediatek,gce-client-reg = <&gce SUBSYS_1401XXXX 0x5000 0x1000>;
|
||||
compatible = "mediatek,mt8173-disp-aal";
|
||||
reg = <0 0x14015000 0 0x1000>;
|
||||
interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_LOW>;
|
||||
power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>;
|
||||
clocks = <&mmsys CLK_MM_DISP_AAL>;
|
||||
mediatek,gce-client-reg = <&gce SUBSYS_1401XXXX 0x5000 0x1000>;
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
aal0_in: endpoint {
|
||||
remote-endpoint = <&ccorr0_out>;
|
||||
};
|
||||
};
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
endpoint {
|
||||
remote-endpoint = <&ccorr0_out>;
|
||||
};
|
||||
};
|
||||
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
aal0_out: endpoint {
|
||||
remote-endpoint = <&gamma0_in>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
endpoint {
|
||||
remote-endpoint = <&gamma0_in>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -26,6 +26,7 @@ properties:
|
||||
- mediatek,mt8173-disp-ovl
|
||||
- mediatek,mt8183-disp-ovl
|
||||
- mediatek,mt8192-disp-ovl
|
||||
- mediatek,mt8195-disp-ovl
|
||||
- mediatek,mt8195-mdp3-ovl
|
||||
- items:
|
||||
- enum:
|
||||
@@ -36,16 +37,17 @@ properties:
|
||||
- enum:
|
||||
- mediatek,mt6795-disp-ovl
|
||||
- const: mediatek,mt8173-disp-ovl
|
||||
- items:
|
||||
- enum:
|
||||
- mediatek,mt8188-disp-ovl
|
||||
- mediatek,mt8195-disp-ovl
|
||||
- const: mediatek,mt8183-disp-ovl
|
||||
- items:
|
||||
- enum:
|
||||
- mediatek,mt8186-disp-ovl
|
||||
- mediatek,mt8365-disp-ovl
|
||||
- const: mediatek,mt8192-disp-ovl
|
||||
- items:
|
||||
- const: mediatek,mt8188-disp-ovl
|
||||
- const: mediatek,mt8195-disp-ovl
|
||||
- items:
|
||||
- const: mediatek,mt8188-mdp3-ovl
|
||||
- const: mediatek,mt8195-mdp3-ovl
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
@@ -418,63 +418,63 @@ unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
#include <dt-bindings/clock/qcom,dispcc-sdm845.h>
|
||||
#include <dt-bindings/clock/qcom,gcc-sdm845.h>
|
||||
#include <dt-bindings/power/qcom-rpmpd.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
#include <dt-bindings/clock/qcom,dispcc-sdm845.h>
|
||||
#include <dt-bindings/clock/qcom,gcc-sdm845.h>
|
||||
#include <dt-bindings/power/qcom-rpmpd.h>
|
||||
|
||||
dsi@ae94000 {
|
||||
compatible = "qcom,sc7180-dsi-ctrl", "qcom,mdss-dsi-ctrl";
|
||||
reg = <0x0ae94000 0x400>;
|
||||
reg-names = "dsi_ctrl";
|
||||
dsi@ae94000 {
|
||||
compatible = "qcom,sc7180-dsi-ctrl", "qcom,mdss-dsi-ctrl";
|
||||
reg = <0x0ae94000 0x400>;
|
||||
reg-names = "dsi_ctrl";
|
||||
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
interrupt-parent = <&mdss>;
|
||||
interrupts = <4>;
|
||||
interrupt-parent = <&mdss>;
|
||||
interrupts = <4>;
|
||||
|
||||
clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK>,
|
||||
<&dispcc DISP_CC_MDSS_BYTE0_INTF_CLK>,
|
||||
<&dispcc DISP_CC_MDSS_PCLK0_CLK>,
|
||||
<&dispcc DISP_CC_MDSS_ESC0_CLK>,
|
||||
<&dispcc DISP_CC_MDSS_AHB_CLK>,
|
||||
<&dispcc DISP_CC_MDSS_AXI_CLK>;
|
||||
clock-names = "byte",
|
||||
"byte_intf",
|
||||
"pixel",
|
||||
"core",
|
||||
"iface",
|
||||
"bus";
|
||||
clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK>,
|
||||
<&dispcc DISP_CC_MDSS_BYTE0_INTF_CLK>,
|
||||
<&dispcc DISP_CC_MDSS_PCLK0_CLK>,
|
||||
<&dispcc DISP_CC_MDSS_ESC0_CLK>,
|
||||
<&dispcc DISP_CC_MDSS_AHB_CLK>,
|
||||
<&dispcc DISP_CC_MDSS_AXI_CLK>;
|
||||
clock-names = "byte",
|
||||
"byte_intf",
|
||||
"pixel",
|
||||
"core",
|
||||
"iface",
|
||||
"bus";
|
||||
|
||||
phys = <&dsi0_phy>;
|
||||
phy-names = "dsi";
|
||||
phys = <&dsi0_phy>;
|
||||
phy-names = "dsi";
|
||||
|
||||
assigned-clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK_SRC>, <&dispcc DISP_CC_MDSS_PCLK0_CLK_SRC>;
|
||||
assigned-clock-parents = <&dsi_phy 0>, <&dsi_phy 1>;
|
||||
assigned-clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK_SRC>, <&dispcc DISP_CC_MDSS_PCLK0_CLK_SRC>;
|
||||
assigned-clock-parents = <&dsi_phy 0>, <&dsi_phy 1>;
|
||||
|
||||
power-domains = <&rpmhpd SC7180_CX>;
|
||||
operating-points-v2 = <&dsi_opp_table>;
|
||||
power-domains = <&rpmhpd SC7180_CX>;
|
||||
operating-points-v2 = <&dsi_opp_table>;
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
dsi0_in: endpoint {
|
||||
remote-endpoint = <&dpu_intf1_out>;
|
||||
};
|
||||
};
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
endpoint {
|
||||
remote-endpoint = <&dpu_intf1_out>;
|
||||
};
|
||||
};
|
||||
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
dsi0_out: endpoint {
|
||||
remote-endpoint = <&sn65dsi86_in>;
|
||||
data-lanes = <0 1 2 3>;
|
||||
qcom,te-source = "mdp_vsync_e";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
endpoint {
|
||||
remote-endpoint = <&sn65dsi86_in>;
|
||||
data-lanes = <0 1 2 3>;
|
||||
qcom,te-source = "mdp_vsync_e";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
...
|
||||
|
||||
@@ -74,28 +74,28 @@ unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/qcom,dispcc-sdm845.h>
|
||||
#include <dt-bindings/clock/qcom,rpmh.h>
|
||||
#include <dt-bindings/clock/qcom,dispcc-sdm845.h>
|
||||
#include <dt-bindings/clock/qcom,rpmh.h>
|
||||
|
||||
dsi-phy@ae94400 {
|
||||
compatible = "qcom,dsi-phy-10nm";
|
||||
reg = <0x0ae94400 0x200>,
|
||||
<0x0ae94600 0x280>,
|
||||
<0x0ae94a00 0x1e0>;
|
||||
reg-names = "dsi_phy",
|
||||
"dsi_phy_lane",
|
||||
"dsi_pll";
|
||||
dsi-phy@ae94400 {
|
||||
compatible = "qcom,dsi-phy-10nm";
|
||||
reg = <0x0ae94400 0x200>,
|
||||
<0x0ae94600 0x280>,
|
||||
<0x0ae94a00 0x1e0>;
|
||||
reg-names = "dsi_phy",
|
||||
"dsi_phy_lane",
|
||||
"dsi_pll";
|
||||
|
||||
#clock-cells = <1>;
|
||||
#phy-cells = <0>;
|
||||
#clock-cells = <1>;
|
||||
#phy-cells = <0>;
|
||||
|
||||
vdds-supply = <&vdda_mipi_dsi0_pll>;
|
||||
clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
|
||||
<&rpmhcc RPMH_CXO_CLK>;
|
||||
clock-names = "iface", "ref";
|
||||
vdds-supply = <&vdda_mipi_dsi0_pll>;
|
||||
clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
|
||||
<&rpmhcc RPMH_CXO_CLK>;
|
||||
clock-names = "iface", "ref";
|
||||
|
||||
qcom,phy-rescode-offset-top = /bits/ 8 <0 0 0 0 0>;
|
||||
qcom,phy-rescode-offset-bot = /bits/ 8 <0 0 0 0 0>;
|
||||
qcom,phy-drive-ldo-level = <400>;
|
||||
};
|
||||
qcom,phy-rescode-offset-top = /bits/ 8 <0 0 0 0 0>;
|
||||
qcom,phy-rescode-offset-bot = /bits/ 8 <0 0 0 0 0>;
|
||||
qcom,phy-drive-ldo-level = <400>;
|
||||
};
|
||||
...
|
||||
|
||||
@@ -56,24 +56,24 @@ unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/qcom,dispcc-sdm845.h>
|
||||
#include <dt-bindings/clock/qcom,rpmh.h>
|
||||
#include <dt-bindings/clock/qcom,dispcc-sdm845.h>
|
||||
#include <dt-bindings/clock/qcom,rpmh.h>
|
||||
|
||||
dsi-phy@ae94400 {
|
||||
compatible = "qcom,dsi-phy-14nm";
|
||||
reg = <0x0ae94400 0x200>,
|
||||
<0x0ae94600 0x280>,
|
||||
<0x0ae94a00 0x1e0>;
|
||||
reg-names = "dsi_phy",
|
||||
"dsi_phy_lane",
|
||||
"dsi_pll";
|
||||
dsi-phy@ae94400 {
|
||||
compatible = "qcom,dsi-phy-14nm";
|
||||
reg = <0x0ae94400 0x200>,
|
||||
<0x0ae94600 0x280>,
|
||||
<0x0ae94a00 0x1e0>;
|
||||
reg-names = "dsi_phy",
|
||||
"dsi_phy_lane",
|
||||
"dsi_pll";
|
||||
|
||||
#clock-cells = <1>;
|
||||
#phy-cells = <0>;
|
||||
#clock-cells = <1>;
|
||||
#phy-cells = <0>;
|
||||
|
||||
vcca-supply = <&vcca_reg>;
|
||||
clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
|
||||
<&rpmhcc RPMH_CXO_CLK>;
|
||||
clock-names = "iface", "ref";
|
||||
};
|
||||
vcca-supply = <&vcca_reg>;
|
||||
clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
|
||||
<&rpmhcc RPMH_CXO_CLK>;
|
||||
clock-names = "iface", "ref";
|
||||
};
|
||||
...
|
||||
|
||||
@@ -45,26 +45,26 @@ unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/qcom,dispcc-sdm845.h>
|
||||
#include <dt-bindings/clock/qcom,rpmh.h>
|
||||
#include <dt-bindings/clock/qcom,dispcc-sdm845.h>
|
||||
#include <dt-bindings/clock/qcom,rpmh.h>
|
||||
|
||||
dsi-phy@fd922a00 {
|
||||
compatible = "qcom,dsi-phy-20nm";
|
||||
reg = <0xfd922a00 0xd4>,
|
||||
<0xfd922b00 0x2b0>,
|
||||
<0xfd922d80 0x7b>;
|
||||
reg-names = "dsi_pll",
|
||||
"dsi_phy",
|
||||
"dsi_phy_regulator";
|
||||
dsi-phy@fd922a00 {
|
||||
compatible = "qcom,dsi-phy-20nm";
|
||||
reg = <0xfd922a00 0xd4>,
|
||||
<0xfd922b00 0x2b0>,
|
||||
<0xfd922d80 0x7b>;
|
||||
reg-names = "dsi_pll",
|
||||
"dsi_phy",
|
||||
"dsi_phy_regulator";
|
||||
|
||||
#clock-cells = <1>;
|
||||
#phy-cells = <0>;
|
||||
#clock-cells = <1>;
|
||||
#phy-cells = <0>;
|
||||
|
||||
vcca-supply = <&vcca_reg>;
|
||||
vddio-supply = <&vddio_reg>;
|
||||
vcca-supply = <&vcca_reg>;
|
||||
vddio-supply = <&vddio_reg>;
|
||||
|
||||
clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
|
||||
<&rpmhcc RPMH_CXO_CLK>;
|
||||
clock-names = "iface", "ref";
|
||||
};
|
||||
clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
|
||||
<&rpmhcc RPMH_CXO_CLK>;
|
||||
clock-names = "iface", "ref";
|
||||
};
|
||||
...
|
||||
|
||||
@@ -51,25 +51,25 @@ unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/qcom,dispcc-sdm845.h>
|
||||
#include <dt-bindings/clock/qcom,rpmh.h>
|
||||
#include <dt-bindings/clock/qcom,dispcc-sdm845.h>
|
||||
#include <dt-bindings/clock/qcom,rpmh.h>
|
||||
|
||||
dsi-phy@fd922a00 {
|
||||
compatible = "qcom,dsi-phy-28nm-lp";
|
||||
reg = <0xfd922a00 0xd4>,
|
||||
<0xfd922b00 0x2b0>,
|
||||
<0xfd922d80 0x7b>;
|
||||
reg-names = "dsi_pll",
|
||||
"dsi_phy",
|
||||
"dsi_phy_regulator";
|
||||
dsi-phy@fd922a00 {
|
||||
compatible = "qcom,dsi-phy-28nm-lp";
|
||||
reg = <0xfd922a00 0xd4>,
|
||||
<0xfd922b00 0x2b0>,
|
||||
<0xfd922d80 0x7b>;
|
||||
reg-names = "dsi_pll",
|
||||
"dsi_phy",
|
||||
"dsi_phy_regulator";
|
||||
|
||||
#clock-cells = <1>;
|
||||
#phy-cells = <0>;
|
||||
#clock-cells = <1>;
|
||||
#phy-cells = <0>;
|
||||
|
||||
vddio-supply = <&vddio_reg>;
|
||||
vddio-supply = <&vddio_reg>;
|
||||
|
||||
clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
|
||||
<&rpmhcc RPMH_CXO_CLK>;
|
||||
clock-names = "iface", "ref";
|
||||
};
|
||||
clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
|
||||
<&rpmhcc RPMH_CXO_CLK>;
|
||||
clock-names = "iface", "ref";
|
||||
};
|
||||
...
|
||||
|
||||
@@ -54,23 +54,23 @@ unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/qcom,dispcc-sm8250.h>
|
||||
#include <dt-bindings/clock/qcom,rpmh.h>
|
||||
#include <dt-bindings/clock/qcom,dispcc-sm8250.h>
|
||||
#include <dt-bindings/clock/qcom,rpmh.h>
|
||||
|
||||
dsi-phy@ae94400 {
|
||||
compatible = "qcom,dsi-phy-7nm";
|
||||
reg = <0x0ae94400 0x200>,
|
||||
<0x0ae94600 0x280>,
|
||||
<0x0ae94900 0x260>;
|
||||
reg-names = "dsi_phy",
|
||||
"dsi_phy_lane",
|
||||
"dsi_pll";
|
||||
dsi-phy@ae94400 {
|
||||
compatible = "qcom,dsi-phy-7nm";
|
||||
reg = <0x0ae94400 0x200>,
|
||||
<0x0ae94600 0x280>,
|
||||
<0x0ae94900 0x260>;
|
||||
reg-names = "dsi_phy",
|
||||
"dsi_phy_lane",
|
||||
"dsi_pll";
|
||||
|
||||
#clock-cells = <1>;
|
||||
#phy-cells = <0>;
|
||||
#clock-cells = <1>;
|
||||
#phy-cells = <0>;
|
||||
|
||||
vdds-supply = <&vreg_l5a_0p88>;
|
||||
clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
|
||||
<&rpmhcc RPMH_CXO_CLK>;
|
||||
clock-names = "iface", "ref";
|
||||
};
|
||||
vdds-supply = <&vreg_l5a_0p88>;
|
||||
clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
|
||||
<&rpmhcc RPMH_CXO_CLK>;
|
||||
clock-names = "iface", "ref";
|
||||
};
|
||||
|
||||
@@ -78,7 +78,6 @@ examples:
|
||||
"mdp1-mem",
|
||||
"cpu-cfg";
|
||||
|
||||
|
||||
resets = <&dispcc_core_bcr>;
|
||||
power-domains = <&dispcc_gdsc>;
|
||||
|
||||
@@ -129,7 +128,7 @@ examples:
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
dpu_intf0_out: endpoint {
|
||||
remote-endpoint = <&mdss0_dp0_in>;
|
||||
remote-endpoint = <&mdss0_dp0_in>;
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -209,8 +208,8 @@ examples:
|
||||
};
|
||||
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
mdss0_dp_out: endpoint { };
|
||||
reg = <1>;
|
||||
mdss0_dp_out: endpoint { };
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -58,10 +58,10 @@ examples:
|
||||
#include <dt-bindings/power/r8a7796-sysc.h>
|
||||
|
||||
cmm0: cmm@fea40000 {
|
||||
compatible = "renesas,r8a7796-cmm",
|
||||
"renesas,rcar-gen3-cmm";
|
||||
reg = <0xfea40000 0x1000>;
|
||||
power-domains = <&sysc R8A7796_PD_ALWAYS_ON>;
|
||||
clocks = <&cpg CPG_MOD 711>;
|
||||
resets = <&cpg 711>;
|
||||
compatible = "renesas,r8a7796-cmm",
|
||||
"renesas,rcar-gen3-cmm";
|
||||
reg = <0xfea40000 0x1000>;
|
||||
power-domains = <&sysc R8A7796_PD_ALWAYS_ON>;
|
||||
clocks = <&cpg CPG_MOD 711>;
|
||||
resets = <&cpg 711>;
|
||||
};
|
||||
|
||||
@@ -1,61 +0,0 @@
|
||||
Analog Devices AXI-DMAC DMA controller
|
||||
|
||||
Required properties:
|
||||
- compatible: Must be "adi,axi-dmac-1.00.a".
|
||||
- reg: Specification for the controllers memory mapped register map.
|
||||
- interrupts: Specification for the controllers interrupt.
|
||||
- clocks: Phandle and specifier to the controllers AXI interface clock
|
||||
- #dma-cells: Must be 1.
|
||||
|
||||
Required sub-nodes:
|
||||
- adi,channels: This sub-node must contain a sub-node for each DMA channel. For
|
||||
the channel sub-nodes the following bindings apply. They must match the
|
||||
configuration options of the peripheral as it was instantiated.
|
||||
|
||||
Required properties for adi,channels sub-node:
|
||||
- #size-cells: Must be 0
|
||||
- #address-cells: Must be 1
|
||||
|
||||
Required channel sub-node properties:
|
||||
- reg: Which channel this node refers to.
|
||||
- adi,source-bus-width,
|
||||
adi,destination-bus-width: Width of the source or destination bus in bits.
|
||||
- adi,source-bus-type,
|
||||
adi,destination-bus-type: Type of the source or destination bus. Must be one
|
||||
of the following:
|
||||
0 (AXI_DMAC_TYPE_AXI_MM): Memory mapped AXI interface
|
||||
1 (AXI_DMAC_TYPE_AXI_STREAM): Streaming AXI interface
|
||||
2 (AXI_DMAC_TYPE_AXI_FIFO): FIFO interface
|
||||
|
||||
Deprecated optional channel properties:
|
||||
- adi,length-width: Width of the DMA transfer length register.
|
||||
- adi,cyclic: Must be set if the channel supports hardware cyclic DMA
|
||||
transfers.
|
||||
- adi,2d: Must be set if the channel supports hardware 2D DMA transfers.
|
||||
|
||||
DMA clients connected to the AXI-DMAC DMA controller must use the format
|
||||
described in the dma.txt file using a one-cell specifier. The value of the
|
||||
specifier refers to the DMA channel index.
|
||||
|
||||
Example:
|
||||
|
||||
dma: dma@7c420000 {
|
||||
compatible = "adi,axi-dmac-1.00.a";
|
||||
reg = <0x7c420000 0x10000>;
|
||||
interrupts = <0 57 0>;
|
||||
clocks = <&clkc 16>;
|
||||
#dma-cells = <1>;
|
||||
|
||||
adi,channels {
|
||||
#size-cells = <0>;
|
||||
#address-cells = <1>;
|
||||
|
||||
dma-channel@0 {
|
||||
reg = <0>;
|
||||
adi,source-bus-width = <32>;
|
||||
adi,source-bus-type = <ADI_AXI_DMAC_TYPE_MM_AXI>;
|
||||
adi,destination-bus-width = <64>;
|
||||
adi,destination-bus-type = <ADI_AXI_DMAC_TYPE_FIFO>;
|
||||
};
|
||||
};
|
||||
};
|
||||
129
Documentation/devicetree/bindings/dma/adi,axi-dmac.yaml
Normal file
129
Documentation/devicetree/bindings/dma/adi,axi-dmac.yaml
Normal file
@@ -0,0 +1,129 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/dma/adi,axi-dmac.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Analog Devices AXI-DMAC DMA controller
|
||||
|
||||
description: |
|
||||
FPGA-based DMA controller designed for use with high-speed converter hardware.
|
||||
|
||||
http://analogdevicesinc.github.io/hdl/library/axi_dmac/index.html
|
||||
|
||||
maintainers:
|
||||
- Nuno Sa <nuno.sa@analog.com>
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: adi,axi-dmac-1.00.a
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
"#dma-cells":
|
||||
const: 1
|
||||
|
||||
adi,channels:
|
||||
deprecated: true
|
||||
type: object
|
||||
description:
|
||||
This sub-node must contain a sub-node for each DMA channel. This node is
|
||||
only required for IP versions older than 4.3.a and should otherwise be
|
||||
omitted.
|
||||
additionalProperties: false
|
||||
|
||||
properties:
|
||||
"#size-cells":
|
||||
const: 0
|
||||
"#address-cells":
|
||||
const: 1
|
||||
|
||||
patternProperties:
|
||||
"^dma-channel@[0-9a-f]+$":
|
||||
type: object
|
||||
description:
|
||||
DMA channel properties based on HDL compile-time configuration.
|
||||
additionalProperties: false
|
||||
|
||||
properties:
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
adi,source-bus-width:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: Width of the source bus in bits.
|
||||
enum: [8, 16, 32, 64, 128]
|
||||
|
||||
adi,destination-bus-width:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: Width of the destination bus in bits.
|
||||
enum: [8, 16, 32, 64, 128]
|
||||
|
||||
adi,source-bus-type:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: |
|
||||
Type of the source bus.
|
||||
|
||||
0: Memory mapped AXI interface
|
||||
1: Streaming AXI interface
|
||||
2: FIFO interface
|
||||
enum: [0, 1, 2]
|
||||
|
||||
adi,destination-bus-type:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: Type of the destination bus (see adi,source-bus-type).
|
||||
enum: [0, 1, 2]
|
||||
|
||||
adi,length-width:
|
||||
deprecated: true
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: Width of the DMA transfer length register.
|
||||
|
||||
adi,cyclic:
|
||||
deprecated: true
|
||||
type: boolean
|
||||
description:
|
||||
Must be set if the channel supports hardware cyclic DMA transfers.
|
||||
|
||||
adi,2d:
|
||||
deprecated: true
|
||||
type: boolean
|
||||
description:
|
||||
Must be set if the channel supports hardware 2D DMA transfers.
|
||||
|
||||
required:
|
||||
- reg
|
||||
- adi,source-bus-width
|
||||
- adi,destination-bus-width
|
||||
- adi,source-bus-type
|
||||
- adi,destination-bus-type
|
||||
|
||||
required:
|
||||
- "#size-cells"
|
||||
- "#address-cells"
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- clocks
|
||||
- "#dma-cells"
|
||||
|
||||
examples:
|
||||
- |
|
||||
dma-controller@7c420000 {
|
||||
compatible = "adi,axi-dmac-1.00.a";
|
||||
reg = <0x7c420000 0x10000>;
|
||||
interrupts = <0 57 0>;
|
||||
clocks = <&clkc 16>;
|
||||
#dma-cells = <1>;
|
||||
};
|
||||
@@ -22,7 +22,9 @@ properties:
|
||||
number.
|
||||
|
||||
compatible:
|
||||
const: allwinner,sun4i-a10-dma
|
||||
enum:
|
||||
- allwinner,sun4i-a10-dma
|
||||
- allwinner,suniv-f1c100s-dma
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
79
Documentation/devicetree/bindings/dma/atmel,sama5d4-dma.yaml
Normal file
79
Documentation/devicetree/bindings/dma/atmel,sama5d4-dma.yaml
Normal file
@@ -0,0 +1,79 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/dma/atmel,sama5d4-dma.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Microchip AT91 Extensible Direct Memory Access Controller
|
||||
|
||||
maintainers:
|
||||
- Nicolas Ferre <nicolas.ferre@microchip.com>
|
||||
- Charan Pedumuru <charan.pedumuru@microchip.com>
|
||||
|
||||
description:
|
||||
The DMA Controller (XDMAC) is a AHB-protocol central direct memory access
|
||||
controller. It performs peripheral data transfer and memory move operations
|
||||
over one or two bus ports through the unidirectional communication
|
||||
channel. Each channel is fully programmable and provides both peripheral
|
||||
or memory-to-memory transfers. The channel features are configurable at
|
||||
implementation.
|
||||
|
||||
allOf:
|
||||
- $ref: dma-controller.yaml#
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
oneOf:
|
||||
- enum:
|
||||
- atmel,sama5d4-dma
|
||||
- microchip,sama7g5-dma
|
||||
- items:
|
||||
- enum:
|
||||
- microchip,sam9x60-dma
|
||||
- microchip,sam9x7-dma
|
||||
- const: atmel,sama5d4-dma
|
||||
|
||||
"#dma-cells":
|
||||
description: |
|
||||
Represents the number of integer cells in the `dmas` property of client
|
||||
devices. The single cell specifies the channel configuration register:
|
||||
- bit 13: SIF (Source Interface Identifier) for memory interface.
|
||||
- bit 14: DIF (Destination Interface Identifier) for peripheral interface.
|
||||
- bit 30-24: PERID (Peripheral Identifier).
|
||||
const: 1
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
clock-names:
|
||||
const: dma_clk
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- clocks
|
||||
- clock-names
|
||||
- "#dma-cells"
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/at91.h>
|
||||
#include <dt-bindings/dma/at91.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
dma-controller@f0008000 {
|
||||
compatible = "atmel,sama5d4-dma";
|
||||
reg = <0xf0008000 0x1000>;
|
||||
interrupts = <20 IRQ_TYPE_LEVEL_HIGH 0>;
|
||||
#dma-cells = <1>;
|
||||
clocks = <&pmc PMC_TYPE_PERIPHERAL 20>;
|
||||
clock-names = "dma_clk";
|
||||
};
|
||||
@@ -1,54 +0,0 @@
|
||||
* Atmel Extensible Direct Memory Access Controller (XDMAC)
|
||||
|
||||
* XDMA Controller
|
||||
Required properties:
|
||||
- compatible: Should be "atmel,sama5d4-dma", "microchip,sam9x60-dma" or
|
||||
"microchip,sama7g5-dma" or
|
||||
"microchip,sam9x7-dma", "atmel,sama5d4-dma".
|
||||
- reg: Should contain DMA registers location and length.
|
||||
- interrupts: Should contain DMA interrupt.
|
||||
- #dma-cells: Must be <1>, used to represent the number of integer cells in
|
||||
the dmas property of client devices.
|
||||
- The 1st cell specifies the channel configuration register:
|
||||
- bit 13: SIF, source interface identifier, used to get the memory
|
||||
interface identifier,
|
||||
- bit 14: DIF, destination interface identifier, used to get the peripheral
|
||||
interface identifier,
|
||||
- bit 30-24: PERID, peripheral identifier.
|
||||
|
||||
Example:
|
||||
|
||||
dma1: dma-controller@f0004000 {
|
||||
compatible = "atmel,sama5d4-dma";
|
||||
reg = <0xf0004000 0x200>;
|
||||
interrupts = <50 4 0>;
|
||||
#dma-cells = <1>;
|
||||
};
|
||||
|
||||
|
||||
* DMA clients
|
||||
DMA clients connected to the Atmel XDMA controller must use the format
|
||||
described in the dma.txt file, using a one-cell specifier for each channel.
|
||||
The two cells in order are:
|
||||
1. A phandle pointing to the DMA controller.
|
||||
2. Channel configuration register. Configurable fields are:
|
||||
- bit 13: SIF, source interface identifier, used to get the memory
|
||||
interface identifier,
|
||||
- bit 14: DIF, destination interface identifier, used to get the peripheral
|
||||
interface identifier,
|
||||
- bit 30-24: PERID, peripheral identifier.
|
||||
|
||||
Example:
|
||||
|
||||
i2c2: i2c@f8024000 {
|
||||
compatible = "atmel,at91sam9x5-i2c";
|
||||
reg = <0xf8024000 0x4000>;
|
||||
interrupts = <34 4 6>;
|
||||
dmas = <&dma1
|
||||
(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1)
|
||||
| AT91_XDMAC_DT_PERID(6))>,
|
||||
<&dma1
|
||||
(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1)
|
||||
| AT91_XDMAC_DT_PERID(7))>;
|
||||
dma-names = "tx", "rx";
|
||||
};
|
||||
@@ -26,9 +26,13 @@ properties:
|
||||
- fsl,imx93-edma3
|
||||
- fsl,imx93-edma4
|
||||
- fsl,imx95-edma5
|
||||
- nxp,s32g2-edma
|
||||
- items:
|
||||
- const: fsl,ls1028a-edma
|
||||
- const: fsl,vf610-edma
|
||||
- items:
|
||||
- const: nxp,s32g3-edma
|
||||
- const: nxp,s32g2-edma
|
||||
|
||||
reg:
|
||||
minItems: 1
|
||||
@@ -221,6 +225,36 @@ allOf:
|
||||
properties:
|
||||
power-domains: false
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: nxp,s32g2-edma
|
||||
then:
|
||||
properties:
|
||||
clocks:
|
||||
minItems: 2
|
||||
maxItems: 2
|
||||
clock-names:
|
||||
items:
|
||||
- const: dmamux0
|
||||
- const: dmamux1
|
||||
interrupts:
|
||||
minItems: 3
|
||||
maxItems: 3
|
||||
interrupt-names:
|
||||
items:
|
||||
- const: tx-0-15
|
||||
- const: tx-16-31
|
||||
- const: err
|
||||
reg:
|
||||
minItems: 3
|
||||
maxItems: 3
|
||||
"#dma-cells":
|
||||
const: 2
|
||||
dma-channels:
|
||||
const: 32
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
|
||||
@@ -13,9 +13,6 @@ description: |
|
||||
maintainers:
|
||||
- Jon Hunter <jonathanh@nvidia.com>
|
||||
|
||||
allOf:
|
||||
- $ref: dma-controller.yaml#
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
oneOf:
|
||||
@@ -29,7 +26,19 @@ properties:
|
||||
- const: nvidia,tegra186-adma
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
description:
|
||||
The 'page' region describes the address space of the page
|
||||
used for accessing the DMA channel registers. The 'global'
|
||||
region describes the address space of the global DMA registers.
|
||||
In the absence of the 'reg-names' property, there must be a
|
||||
single entry that covers the address space of the global DMA
|
||||
registers and the DMA channel registers.
|
||||
minItems: 1
|
||||
maxItems: 2
|
||||
|
||||
reg-names:
|
||||
minItems: 1
|
||||
maxItems: 2
|
||||
|
||||
interrupts:
|
||||
description: |
|
||||
@@ -63,6 +72,49 @@ required:
|
||||
- clocks
|
||||
- clock-names
|
||||
|
||||
allOf:
|
||||
- $ref: dma-controller.yaml#
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- nvidia,tegra210-adma
|
||||
then:
|
||||
properties:
|
||||
reg:
|
||||
items:
|
||||
- description: Full address space range of DMA registers.
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- nvidia,tegra186-adma
|
||||
then:
|
||||
anyOf:
|
||||
- properties:
|
||||
reg:
|
||||
items:
|
||||
- description: Full address space range of DMA registers.
|
||||
- properties:
|
||||
reg:
|
||||
items:
|
||||
- description: Channel Page address space range of DMA registers.
|
||||
reg-names:
|
||||
items:
|
||||
- const: page
|
||||
- properties:
|
||||
reg:
|
||||
items:
|
||||
- description: Channel Page address space range of DMA registers.
|
||||
- description: Global Page address space range of DMA registers.
|
||||
reg-names:
|
||||
items:
|
||||
- const: page
|
||||
- const: global
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
|
||||
@@ -25,7 +25,9 @@ properties:
|
||||
- items:
|
||||
- enum:
|
||||
- qcom,qcm2290-gpi-dma
|
||||
- qcom,qcs8300-gpi-dma
|
||||
- qcom,qdu1000-gpi-dma
|
||||
- qcom,sa8775p-gpi-dma
|
||||
- qcom,sar2130p-gpi-dma
|
||||
- qcom,sc7280-gpi-dma
|
||||
- qcom,sdx75-gpi-dma
|
||||
@@ -35,10 +37,12 @@ properties:
|
||||
- qcom,sm8450-gpi-dma
|
||||
- qcom,sm8550-gpi-dma
|
||||
- qcom,sm8650-gpi-dma
|
||||
- qcom,sm8750-gpi-dma
|
||||
- qcom,x1e80100-gpi-dma
|
||||
- const: qcom,sm6350-gpi-dma
|
||||
- items:
|
||||
- enum:
|
||||
- qcom,qcs615-gpi-dma
|
||||
- qcom,sdm670-gpi-dma
|
||||
- qcom,sm6125-gpi-dma
|
||||
- qcom,sm8150-gpi-dma
|
||||
|
||||
@@ -15,6 +15,16 @@ allOf:
|
||||
properties:
|
||||
"#dma-cells":
|
||||
const: 3
|
||||
description: |
|
||||
Each cell represents the following:
|
||||
1. The mux input number/line for the request
|
||||
2. Bitfield representing DMA channel configuration that is passed
|
||||
to the real DMA controller
|
||||
3. Bitfield representing device dependent DMA features passed to
|
||||
the real DMA controller
|
||||
|
||||
For bitfield definitions of cells 2 and 3, see the associated
|
||||
bindings doc for the actual DMA controller in st,stm32-dma.yaml.
|
||||
|
||||
compatible:
|
||||
const: st,stm32h7-dmamux
|
||||
|
||||
@@ -34,6 +34,7 @@ properties:
|
||||
- ti,am62a-dmss-bcdma-csirx
|
||||
- ti,am64-dmss-bcdma
|
||||
- ti,j721s2-dmss-bcdma-csi
|
||||
- ti,j722s-dmss-bcdma-csi
|
||||
|
||||
reg:
|
||||
minItems: 3
|
||||
@@ -196,7 +197,9 @@ allOf:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: ti,j721s2-dmss-bcdma-csi
|
||||
enum:
|
||||
- ti,j721s2-dmss-bcdma-csi
|
||||
- ti,j722s-dmss-bcdma-csi
|
||||
then:
|
||||
properties:
|
||||
ti,sci-rm-range-bchan: false
|
||||
|
||||
@@ -162,14 +162,17 @@ Example::
|
||||
status = "okay";
|
||||
}
|
||||
|
||||
Indentation
|
||||
-----------
|
||||
Indentation and wrapping
|
||||
------------------------
|
||||
|
||||
1. Use indentation according to Documentation/process/coding-style.rst.
|
||||
1. Use indentation and wrap lines according to
|
||||
Documentation/process/coding-style.rst.
|
||||
2. Each entry in arrays with multiple cells, e.g. "reg" with two IO addresses,
|
||||
shall be enclosed in <>.
|
||||
3. For arrays spanning across lines, it is preferred to align the continued
|
||||
entries with opening < from the first line.
|
||||
3. For arrays spanning across lines, it is preferred to split on item boundary
|
||||
and align the continued entries with opening < from the first line.
|
||||
Usually avoid splitting individual items unless they significantly exceed
|
||||
line wrap limit.
|
||||
|
||||
Example::
|
||||
|
||||
@@ -177,6 +180,9 @@ Example::
|
||||
compatible = "qcom,sm8550-tsens", "qcom,tsens-v2";
|
||||
reg = <0x0 0x0c271000 0x0 0x1000>,
|
||||
<0x0 0x0c222000 0x0 0x1000>;
|
||||
/* Lines exceeding coding style line wrap limit: */
|
||||
interconnects = <&aggre1_noc MASTER_USB3_0 0 &mc_virt SLAVE_EBI1 0>,
|
||||
<&gem_noc MASTER_APPSS_PROC 0 &config_noc SLAVE_USB3_0 0>;
|
||||
};
|
||||
|
||||
Organizing DTSI and DTS
|
||||
|
||||
@@ -26,6 +26,7 @@ properties:
|
||||
- qcom,scm-ipq4019
|
||||
- qcom,scm-ipq5018
|
||||
- qcom,scm-ipq5332
|
||||
- qcom,scm-ipq5424
|
||||
- qcom,scm-ipq6018
|
||||
- qcom,scm-ipq806x
|
||||
- qcom,scm-ipq8074
|
||||
@@ -42,6 +43,7 @@ properties:
|
||||
- qcom,scm-msm8996
|
||||
- qcom,scm-msm8998
|
||||
- qcom,scm-qcm2290
|
||||
- qcom,scm-qcs615
|
||||
- qcom,scm-qcs8300
|
||||
- qcom,scm-qdu1000
|
||||
- qcom,scm-sa8255p
|
||||
|
||||
@@ -33,6 +33,7 @@ properties:
|
||||
- rockchip,rk3188-mali
|
||||
- rockchip,rk3228-mali
|
||||
- samsung,exynos4210-mali
|
||||
- st,stih410-mali
|
||||
- stericsson,db8500-mali
|
||||
- xlnx,zynqmp-mali
|
||||
- const: arm,mali-400
|
||||
|
||||
@@ -37,10 +37,17 @@ properties:
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
interrupt-names:
|
||||
items:
|
||||
- enum: [INT1, INT2]
|
||||
|
||||
dependencies:
|
||||
interrupts: [ interrupt-names ]
|
||||
interrupt-names: [ interrupts ]
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
|
||||
allOf:
|
||||
- $ref: /schemas/spi/spi-peripheral-props.yaml#
|
||||
@@ -61,6 +68,7 @@ examples:
|
||||
reg = <0x2a>;
|
||||
interrupt-parent = <&gpio0>;
|
||||
interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "INT1";
|
||||
};
|
||||
};
|
||||
- |
|
||||
@@ -79,5 +87,6 @@ examples:
|
||||
spi-cpha;
|
||||
interrupt-parent = <&gpio0>;
|
||||
interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "INT2";
|
||||
};
|
||||
};
|
||||
|
||||
@@ -4,23 +4,26 @@
|
||||
$id: http://devicetree.org/schemas/iio/accel/kionix,kx022a.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: ROHM/Kionix KX022A, KX132-1211 and KX132ACR-LBZ Accelerometers
|
||||
title: ROHM/Kionix KX022A, KX132/134-1211 and KX132/134ACR-LBZ Accelerometers
|
||||
|
||||
maintainers:
|
||||
- Matti Vaittinen <mazziesaccount@gmail.com>
|
||||
|
||||
description: |
|
||||
KX022A, KX132ACR-LBZ and KX132-1211 are 3-axis accelerometers supporting
|
||||
+/- 2G, 4G, 8G and 16G ranges, variable output data-rates and a
|
||||
hardware-fifo buffering. These accelerometers can be accessed either
|
||||
via I2C or SPI.
|
||||
+/- 2G, 4G, 8G and 16G ranges. The KX134ACR-LBZ and KX134-1211 support
|
||||
+/- 8G, 16G, 32G and 64G. All the sensors also have variable output
|
||||
data-rates and a hardware-fifo buffering. These accelerometers can be
|
||||
accessed either via I2C or SPI.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- kionix,kx022a
|
||||
- kionix,kx132-1211
|
||||
- kionix,kx134-1211
|
||||
- rohm,kx132acr-lbz
|
||||
- rohm,kx134acr-lbz
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
@@ -14,12 +14,20 @@ description: |
|
||||
SPI and I2C interface.
|
||||
https://www.nxp.com/docs/en/data-sheet/FXLS8962AF.pdf
|
||||
https://www.nxp.com/docs/en/data-sheet/FXLS8964AF.pdf
|
||||
https://www.nxp.com/docs/en/data-sheet/FXLS8967AF.pdf
|
||||
https://www.nxp.com/docs/en/data-sheet/FXLS8974CF.pdf
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- nxp,fxls8962af
|
||||
- nxp,fxls8964af
|
||||
oneOf:
|
||||
- enum:
|
||||
- nxp,fxls8962af
|
||||
- nxp,fxls8964af
|
||||
- items:
|
||||
- enum:
|
||||
- nxp,fxls8967af
|
||||
- nxp,fxls8974cf
|
||||
- const: nxp,fxls8962af
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
@@ -38,6 +46,11 @@ properties:
|
||||
drive-open-drain:
|
||||
type: boolean
|
||||
|
||||
wakeup-source:
|
||||
$ref: /schemas/types.yaml#/definitions/flag
|
||||
description:
|
||||
Enable wake on accelerometer event
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
@@ -61,6 +74,7 @@ examples:
|
||||
interrupt-parent = <&gpio0>;
|
||||
interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "INT1";
|
||||
wakeup-source;
|
||||
};
|
||||
};
|
||||
- |
|
||||
|
||||
@@ -19,49 +19,82 @@ description: |
|
||||
https://www.analog.com/media/en/technical-documentation/data-sheets/ad4020-4021-4022.pdf
|
||||
https://www.analog.com/media/en/technical-documentation/data-sheets/adaq4001.pdf
|
||||
https://www.analog.com/media/en/technical-documentation/data-sheets/adaq4003.pdf
|
||||
https://www.analog.com/media/en/technical-documentation/data-sheets/ad7685.pdf
|
||||
https://www.analog.com/media/en/technical-documentation/data-sheets/ad7686.pdf
|
||||
https://www.analog.com/media/en/technical-documentation/data-sheets/ad7687.pdf
|
||||
https://www.analog.com/media/en/technical-documentation/data-sheets/ad7688.pdf
|
||||
https://www.analog.com/media/en/technical-documentation/data-sheets/ad7690.pdf
|
||||
https://www.analog.com/media/en/technical-documentation/data-sheets/ad7691.pdf
|
||||
https://www.analog.com/media/en/technical-documentation/data-sheets/ad7693.pdf
|
||||
https://www.analog.com/media/en/technical-documentation/data-sheets/ad7942.pdf
|
||||
https://www.analog.com/media/en/technical-documentation/data-sheets/ad7946.pdf
|
||||
https://www.analog.com/media/en/technical-documentation/data-sheets/ad7980.pdf
|
||||
https://www.analog.com/media/en/technical-documentation/data-sheets/ad7982.pdf
|
||||
https://www.analog.com/media/en/technical-documentation/data-sheets/ad7983.pdf
|
||||
https://www.analog.com/media/en/technical-documentation/data-sheets/ad7984.pdf
|
||||
https://www.analog.com/media/en/technical-documentation/data-sheets/ad7988-1_7988-5.pdf
|
||||
|
||||
$ref: /schemas/spi/spi-peripheral-props.yaml#
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
oneOf:
|
||||
- const: adi,ad4000
|
||||
- enum:
|
||||
- adi,ad4000
|
||||
- adi,ad4001
|
||||
- adi,ad4002
|
||||
- adi,ad4003
|
||||
- adi,ad4020
|
||||
- adi,adaq4001
|
||||
- adi,adaq4003
|
||||
- adi,ad7687
|
||||
- adi,ad7691
|
||||
- adi,ad7942
|
||||
- adi,ad7946
|
||||
- adi,ad7983
|
||||
- items:
|
||||
- enum:
|
||||
- adi,ad4004
|
||||
- adi,ad4008
|
||||
- const: adi,ad4000
|
||||
|
||||
- const: adi,ad4001
|
||||
- items:
|
||||
- enum:
|
||||
- adi,ad4005
|
||||
- const: adi,ad4001
|
||||
|
||||
- const: adi,ad4002
|
||||
- items:
|
||||
- enum:
|
||||
- adi,ad4006
|
||||
- adi,ad4010
|
||||
- const: adi,ad4002
|
||||
|
||||
- const: adi,ad4003
|
||||
- items:
|
||||
- enum:
|
||||
- adi,ad4007
|
||||
- adi,ad4011
|
||||
- const: adi,ad4003
|
||||
|
||||
- const: adi,ad4020
|
||||
- items:
|
||||
- enum:
|
||||
- adi,ad4021
|
||||
- adi,ad4022
|
||||
- const: adi,ad4020
|
||||
|
||||
- const: adi,adaq4001
|
||||
|
||||
- const: adi,adaq4003
|
||||
- items:
|
||||
- enum:
|
||||
- adi,ad7685
|
||||
- adi,ad7686
|
||||
- adi,ad7980
|
||||
- adi,ad7988-1
|
||||
- adi,ad7988-5
|
||||
- const: adi,ad7983
|
||||
- items:
|
||||
- enum:
|
||||
- adi,ad7688
|
||||
- adi,ad7693
|
||||
- const: adi,ad7687
|
||||
- items:
|
||||
- enum:
|
||||
- adi,ad7690
|
||||
- adi,ad7982
|
||||
- adi,ad7984
|
||||
- const: adi,ad7691
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
@@ -133,6 +166,22 @@ required:
|
||||
- ref-supply
|
||||
|
||||
allOf:
|
||||
# Single-channel PulSAR devices have SDI either tied to VIO, GND, or host CS.
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- adi,ad7687
|
||||
- adi,ad7691
|
||||
- adi,ad7942
|
||||
- adi,ad7946
|
||||
- adi,ad7983
|
||||
then:
|
||||
properties:
|
||||
adi,sdi-pin:
|
||||
enum: [ high, low, cs ]
|
||||
default: cs
|
||||
# The configuration register can only be accessed if SDI is connected to MOSI
|
||||
- if:
|
||||
required:
|
||||
|
||||
@@ -134,8 +134,9 @@ patternProperties:
|
||||
description:
|
||||
Describes the common mode channel for single channels. 0xFF is REFGND
|
||||
and OxFE is COM. Macros are available for these values in
|
||||
dt-bindings/iio/adi,ad4695.h. Values 1 to 15 correspond to INx inputs.
|
||||
Only odd numbered INx inputs can be used as common mode channels.
|
||||
dt-bindings/iio/adc/adi,ad4695.h. Values 1 to 15 correspond to INx
|
||||
inputs. Only odd numbered INx inputs can be used as common mode
|
||||
channels.
|
||||
enum: [1, 3, 5, 7, 9, 11, 13, 15, 0xFE, 0xFF]
|
||||
default: 0xFF
|
||||
|
||||
@@ -209,7 +210,7 @@ unevaluatedProperties: false
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/iio/adi,ad4695.h>
|
||||
#include <dt-bindings/iio/adc/adi,ad4695.h>
|
||||
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
|
||||
@@ -37,6 +37,17 @@ properties:
|
||||
description: IRQ line for the ADC
|
||||
maxItems: 1
|
||||
|
||||
rdy-gpios:
|
||||
description:
|
||||
GPIO reading the R̅D̅Y̅ line. Having such a GPIO is technically optional but
|
||||
highly recommended because DOUT/R̅D̅Y̅ toggles during SPI transfers (in its
|
||||
DOUT aka MISO role) and so usually triggers a spurious interrupt. The
|
||||
distinction between such a spurious event and a real one can only be done
|
||||
by reading such a GPIO. (There is a register telling the same
|
||||
information, but accessing that one needs a SPI transfer which then
|
||||
triggers another interrupt event.)
|
||||
maxItems: 1
|
||||
|
||||
'#address-cells':
|
||||
const: 1
|
||||
|
||||
@@ -111,6 +122,7 @@ unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
@@ -121,6 +133,7 @@ examples:
|
||||
spi-max-frequency = <5000000>;
|
||||
interrupts = <25 2>;
|
||||
interrupt-parent = <&gpio>;
|
||||
rdy-gpios = <&gpio 25 GPIO_ACTIVE_LOW>;
|
||||
refin1-supply = <&adc_vref>;
|
||||
clocks = <&ad7124_mclk>;
|
||||
clock-names = "mclk";
|
||||
|
||||
@@ -135,6 +135,17 @@ properties:
|
||||
'#clock-cells':
|
||||
const: 0
|
||||
|
||||
rdy-gpios:
|
||||
description:
|
||||
GPIO reading the R̅D̅Y̅ line. Having such a GPIO is technically optional but
|
||||
highly recommended because DOUT/R̅D̅Y̅ toggles during SPI transfers (in its
|
||||
DOUT aka MISO role) and so usually triggers a spurious interrupt. The
|
||||
distinction between such a spurious event and a real one can only be done
|
||||
by reading such a GPIO. (There is a register telling the same
|
||||
information, but accessing that one needs a SPI transfer which then
|
||||
triggers another interrupt event.)
|
||||
maxItems: 1
|
||||
|
||||
patternProperties:
|
||||
"^channel@[0-9a-f]$":
|
||||
type: object
|
||||
@@ -443,6 +454,7 @@ examples:
|
||||
interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
|
||||
interrupt-names = "rdy";
|
||||
interrupt-parent = <&gpio>;
|
||||
rdy-gpios = <&gpio 25 GPIO_ACTIVE_LOW>;
|
||||
spi-max-frequency = <5000000>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
|
||||
@@ -106,6 +106,17 @@ properties:
|
||||
description: see Documentation/devicetree/bindings/iio/adc/adc.yaml
|
||||
type: boolean
|
||||
|
||||
rdy-gpios:
|
||||
description:
|
||||
GPIO reading the R̅D̅Y̅ line. Having such a GPIO is technically optional but
|
||||
highly recommended because DOUT/R̅D̅Y̅ toggles during SPI transfers (in its
|
||||
DOUT aka MISO role) and so usually triggers a spurious interrupt. The
|
||||
distinction between such a spurious event and a real one can only be done
|
||||
by reading such a GPIO. (There is a register telling the same
|
||||
information, but accessing that one needs a SPI transfer which then
|
||||
triggers another interrupt event.)
|
||||
maxItems: 1
|
||||
|
||||
patternProperties:
|
||||
"^channel@[0-9a-f]+$":
|
||||
type: object
|
||||
@@ -181,6 +192,7 @@ unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
@@ -195,6 +207,7 @@ examples:
|
||||
clock-names = "mclk";
|
||||
interrupts = <25 0x2>;
|
||||
interrupt-parent = <&gpio>;
|
||||
rdy-gpios = <&gpio 25 GPIO_ACTIVE_LOW>;
|
||||
aincom-supply = <&aincom>;
|
||||
dvdd-supply = <&dvdd>;
|
||||
avdd-supply = <&avdd>;
|
||||
@@ -207,6 +220,7 @@ examples:
|
||||
};
|
||||
};
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
@@ -224,6 +238,7 @@ examples:
|
||||
#clock-cells = <0>;
|
||||
interrupts = <25 0x2>;
|
||||
interrupt-parent = <&gpio>;
|
||||
rdy-gpios = <&gpio 25 GPIO_ACTIVE_LOW>;
|
||||
aincom-supply = <&aincom>;
|
||||
dvdd-supply = <&dvdd>;
|
||||
avdd-supply = <&avdd>;
|
||||
|
||||
@@ -63,6 +63,17 @@ properties:
|
||||
marked GPIO_ACTIVE_LOW.
|
||||
maxItems: 1
|
||||
|
||||
rdy-gpios:
|
||||
description:
|
||||
GPIO reading the R̅D̅Y̅ line. Having such a GPIO is technically optional but
|
||||
highly recommended because DOUT/R̅D̅Y̅ toggles during SPI transfers (in its
|
||||
DOUT aka MISO role) and so usually triggers a spurious interrupt. The
|
||||
distinction between such a spurious event and a real one can only be done
|
||||
by reading such a GPIO. (There is a register telling the same
|
||||
information, but accessing that one needs a SPI transfer which then
|
||||
triggers another interrupt event.)
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
@@ -17,12 +17,15 @@ description: |
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
items:
|
||||
- enum:
|
||||
- renesas,r9a07g043-adc # RZ/G2UL and RZ/Five
|
||||
- renesas,r9a07g044-adc # RZ/G2L
|
||||
- renesas,r9a07g054-adc # RZ/V2L
|
||||
- const: renesas,rzg2l-adc
|
||||
oneOf:
|
||||
- items:
|
||||
- enum:
|
||||
- renesas,r9a07g043-adc # RZ/G2UL and RZ/Five
|
||||
- renesas,r9a07g044-adc # RZ/G2L
|
||||
- renesas,r9a07g054-adc # RZ/V2L
|
||||
- const: renesas,rzg2l-adc
|
||||
- items:
|
||||
- const: renesas,r9a08g045-adc # RZ/G3S
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
@@ -57,6 +60,9 @@ properties:
|
||||
'#size-cells':
|
||||
const: 0
|
||||
|
||||
"#io-channel-cells":
|
||||
const: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
@@ -68,7 +74,7 @@ required:
|
||||
- reset-names
|
||||
|
||||
patternProperties:
|
||||
"^channel@[0-7]$":
|
||||
"^channel@[0-8]$":
|
||||
$ref: adc.yaml
|
||||
type: object
|
||||
description: |
|
||||
@@ -78,6 +84,8 @@ patternProperties:
|
||||
reg:
|
||||
description: |
|
||||
The channel number.
|
||||
minimum: 0
|
||||
maximum: 8
|
||||
|
||||
required:
|
||||
- reg
|
||||
@@ -92,18 +100,25 @@ allOf:
|
||||
const: renesas,r9a07g043-adc
|
||||
then:
|
||||
patternProperties:
|
||||
"^channel@[2-7]$": false
|
||||
"^channel@[2-8]$": false
|
||||
"^channel@[0-1]$":
|
||||
properties:
|
||||
reg:
|
||||
minimum: 0
|
||||
maximum: 1
|
||||
else:
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- renesas,r9a07g044-adc
|
||||
- renesas,r9a07g054-adc
|
||||
then:
|
||||
patternProperties:
|
||||
"^channel@[8]$": false
|
||||
"^channel@[0-7]$":
|
||||
properties:
|
||||
reg:
|
||||
minimum: 0
|
||||
maximum: 7
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/chemical/bosch,bme680.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Bosch BME680 Gas sensor
|
||||
|
||||
maintainers:
|
||||
- Vasileios Amoiridis <vassilisamir@gmail.com>
|
||||
|
||||
description: >
|
||||
BME680 is a gas sensor which combines relative humidity, barometric pressure,
|
||||
ambient temperature and gas (VOC - Volatile Organic Compounds) measurements.
|
||||
|
||||
https://www.bosch-sensortec.com/media/boschsensortec/downloads/datasheets/bst-bme680-ds001.pdf
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: bosch,bme680
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
vdd-supply: true
|
||||
vddio-supply: true
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
allOf:
|
||||
- $ref: /schemas/spi/spi-peripheral-props.yaml#
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
co2-sensor@77 {
|
||||
compatible = "bosch,bme680";
|
||||
reg = <0x77>;
|
||||
vddio-supply = <&vddio>;
|
||||
vdd-supply = <&vdd>;
|
||||
};
|
||||
};
|
||||
- |
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
co2-sensor@0 {
|
||||
compatible = "bosch,bme680";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <500000>;
|
||||
vddio-supply = <&vddio>;
|
||||
vdd-supply = <&vdd>;
|
||||
};
|
||||
};
|
||||
@@ -91,7 +91,7 @@ examples:
|
||||
vrefn-supply = <&dac_vrefn>;
|
||||
reset-gpios = <&gpio_bd 16 GPIO_ACTIVE_LOW>;
|
||||
clear-gpios = <&gpio_bd 17 GPIO_ACTIVE_LOW>;
|
||||
ldac-gpios = <&gpio_bd 18 GPIO_ACTIVE_HIGH>;
|
||||
ldac-gpios = <&gpio_bd 18 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
...
|
||||
|
||||
62
Documentation/devicetree/bindings/iio/dac/rohm,bd79703.yaml
Normal file
62
Documentation/devicetree/bindings/iio/dac/rohm,bd79703.yaml
Normal file
@@ -0,0 +1,62 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
# Copyright 2024 ROHM Semiconductor.
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/dac/rohm,bd79703.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: ROHM BD79703 DAC device driver
|
||||
|
||||
maintainers:
|
||||
- Matti Vaittinen <mazziesaccount@gmail.com>
|
||||
|
||||
description: |
|
||||
The ROHM BD79703 is a 6 channel, 8-bit DAC.
|
||||
Datasheet can be found here:
|
||||
https://fscdn.rohm.com/en/products/databook/datasheet/ic/data_converter/dac/bd79702fv-lb_bd79703fv-lb-e.pdf
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: rohm,bd79703
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
spi-max-frequency:
|
||||
maximum: 30000000
|
||||
|
||||
vfs-supply:
|
||||
description:
|
||||
The regulator to use as a full scale voltage. The voltage should be between 2.7V .. VCC
|
||||
|
||||
vcc-supply:
|
||||
description:
|
||||
The regulator supplying the operating voltage. Should be between 2.7V ... 5.5V
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- spi-max-frequency
|
||||
- vfs-supply
|
||||
- vcc-supply
|
||||
|
||||
allOf:
|
||||
- $ref: /schemas/spi/spi-peripheral-props.yaml#
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
dac@0 {
|
||||
compatible = "rohm,bd79703";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <30000000>;
|
||||
vcc-supply = <&vcc>;
|
||||
vfs-supply = <&vref>;
|
||||
};
|
||||
};
|
||||
...
|
||||
@@ -11,24 +11,30 @@ maintainers:
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- adi,adis16375
|
||||
- adi,adis16480
|
||||
- adi,adis16485
|
||||
- adi,adis16488
|
||||
- adi,adis16490
|
||||
- adi,adis16495-1
|
||||
- adi,adis16495-2
|
||||
- adi,adis16495-3
|
||||
- adi,adis16497-1
|
||||
- adi,adis16497-2
|
||||
- adi,adis16497-3
|
||||
- adi,adis16545-1
|
||||
- adi,adis16545-2
|
||||
- adi,adis16545-3
|
||||
- adi,adis16547-1
|
||||
- adi,adis16547-2
|
||||
- adi,adis16547-3
|
||||
oneOf:
|
||||
- enum:
|
||||
- adi,adis16375
|
||||
- adi,adis16480
|
||||
- adi,adis16485
|
||||
- adi,adis16486
|
||||
- adi,adis16488
|
||||
- adi,adis16489
|
||||
- adi,adis16490
|
||||
- adi,adis16495-1
|
||||
- adi,adis16495-2
|
||||
- adi,adis16495-3
|
||||
- adi,adis16497-1
|
||||
- adi,adis16497-2
|
||||
- adi,adis16497-3
|
||||
- adi,adis16545-1
|
||||
- adi,adis16545-2
|
||||
- adi,adis16545-3
|
||||
- adi,adis16547-1
|
||||
- adi,adis16547-2
|
||||
- adi,adis16547-3
|
||||
- items:
|
||||
- const: adi,adis16487
|
||||
- const: adi,adis16485
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
@@ -37,6 +37,7 @@ properties:
|
||||
to "INT2" if INT2 pin should be used instead
|
||||
|
||||
drive-open-drain:
|
||||
type: boolean
|
||||
description: |
|
||||
set if the specified interrupt pin should be configured as
|
||||
open drain. If not set, defaults to push-pull.
|
||||
|
||||
@@ -41,6 +41,7 @@ properties:
|
||||
- INT2
|
||||
|
||||
drive-open-drain:
|
||||
type: boolean
|
||||
description:
|
||||
set if the specified interrupt pins should be configured as
|
||||
open drain. If not set, defaults to push-pull.
|
||||
|
||||
@@ -38,6 +38,7 @@ properties:
|
||||
- INT2
|
||||
|
||||
drive-open-drain:
|
||||
type: boolean
|
||||
description:
|
||||
set if the specified interrupt pin should be configured as
|
||||
open drain. If not set, defaults to push-pull.
|
||||
|
||||
@@ -16,6 +16,7 @@ properties:
|
||||
compatible:
|
||||
oneOf:
|
||||
- enum:
|
||||
- invensense,iam20380
|
||||
- invensense,iam20680
|
||||
- invensense,icm20608
|
||||
- invensense,icm20609
|
||||
|
||||
@@ -1,49 +0,0 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/light/rohm,bu27008.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: ROHM BU27008 color sensor
|
||||
|
||||
maintainers:
|
||||
- Matti Vaittinen <mazziesaccount@gmail.com>
|
||||
|
||||
description:
|
||||
The ROHM BU27008 is a sensor with 5 photodiodes (red, green, blue, clear
|
||||
and IR) with four configurable channels. Red and green being always
|
||||
available and two out of the rest three (blue, clear, IR) can be
|
||||
selected to be simultaneously measured. Typical application is adjusting
|
||||
LCD backlight of TVs, mobile phones and tablet PCs.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: rohm,bu27008
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
vdd-supply: true
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
light-sensor@38 {
|
||||
compatible = "rohm,bu27008";
|
||||
reg = <0x38>;
|
||||
};
|
||||
};
|
||||
|
||||
...
|
||||
@@ -1,50 +0,0 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/light/rohm,bu27010.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: ROHM BU27010 color sensor
|
||||
|
||||
maintainers:
|
||||
- Matti Vaittinen <mazziesaccount@gmail.com>
|
||||
|
||||
description: |
|
||||
The ROHM BU27010 is a sensor with 6 photodiodes (red, green, blue, clear,
|
||||
IR and flickering detection) with five configurable channels. Red, green
|
||||
and flickering detection being always available and two out of the rest
|
||||
three (blue, clear, IR) can be selected to be simultaneously measured.
|
||||
Typical application is adjusting LCD/OLED backlight of TVs, mobile phones
|
||||
and tablet PCs.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: rohm,bu27010
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
vdd-supply: true
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- vdd-supply
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
light-sensor@38 {
|
||||
compatible = "rohm,bu27010";
|
||||
reg = <0x38>;
|
||||
vdd-supply = <&vdd>;
|
||||
};
|
||||
};
|
||||
51
Documentation/devicetree/bindings/iio/light/ti,opt4060.yaml
Normal file
51
Documentation/devicetree/bindings/iio/light/ti,opt4060.yaml
Normal file
@@ -0,0 +1,51 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/light/ti,opt4060.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Texas Instruments OPT4060 RGBW Color Sensor
|
||||
|
||||
maintainers:
|
||||
- Per-Daniel Olsson <perdaniel.olsson@axis.com>
|
||||
|
||||
description:
|
||||
Texas Instrument RGBW high resolution color sensor over I2C.
|
||||
https://www.ti.com/lit/gpn/opt4060
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- ti,opt4060
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
vdd-supply: true
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- vdd-supply
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
light-sensor@44 {
|
||||
compatible = "ti,opt4060";
|
||||
reg = <0x44>;
|
||||
vdd-supply = <&vdd_reg>;
|
||||
interrupt-parent = <&gpio5>;
|
||||
interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
|
||||
};
|
||||
};
|
||||
...
|
||||
@@ -55,12 +55,16 @@ properties:
|
||||
If not set, defaults to push-pull configuration.
|
||||
type: boolean
|
||||
|
||||
spi-max-frequency:
|
||||
maximum: 10000000
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- vddd-supply
|
||||
- vdda-supply
|
||||
|
||||
allOf:
|
||||
- $ref: /schemas/spi/spi-peripheral-props.yaml#
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
@@ -73,6 +77,16 @@ allOf:
|
||||
then:
|
||||
properties:
|
||||
interrupts: false
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- bosch,bmp085
|
||||
- bosch,bmp180
|
||||
then:
|
||||
properties:
|
||||
spi-max-frequency: false
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
@@ -93,3 +107,18 @@ examples:
|
||||
vdda-supply = <&bar>;
|
||||
};
|
||||
};
|
||||
- |
|
||||
# include <dt-bindings/gpio/gpio.h>
|
||||
# include <dt-bindings/interrupt-controller/irq.h>
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
pressure@0 {
|
||||
compatible = "bosch,bmp280";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <10000000>;
|
||||
reset-gpios = <&gpio0 26 GPIO_ACTIVE_LOW>;
|
||||
vddd-supply = <&foo>;
|
||||
vdda-supply = <&bar>;
|
||||
};
|
||||
};
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user