mirror of
https://github.com/torvalds/linux.git
synced 2026-09-22 04:34:03 +02:00
Merge branch 'for-7.3/steam' into for-linus
- initial support for 2026 Steam Controller (Vicki Pfau) - support for sensor events on the 2025 Steam Controller (Vicki Pfau) - assorted fixes, improvements and code refactoring (Vicki Pfau)
This commit is contained in:
commit
3d5e48944e
|
|
@ -481,6 +481,7 @@ ForEachMacros:
|
|||
- 'genradix_for_each'
|
||||
- 'genradix_for_each_from'
|
||||
- 'genradix_for_each_reverse'
|
||||
- 'guard'
|
||||
- 'hash_for_each'
|
||||
- 'hash_for_each_possible'
|
||||
- 'hash_for_each_possible_rcu'
|
||||
|
|
@ -674,6 +675,7 @@ ForEachMacros:
|
|||
- 'rq_list_for_each'
|
||||
- 'rq_list_for_each_safe'
|
||||
- 'sample_read_group__for_each'
|
||||
- 'scoped_guard'
|
||||
- 'scsi_for_each_prot_sg'
|
||||
- 'scsi_for_each_sg'
|
||||
- 'sctp_for_each_hentry'
|
||||
|
|
|
|||
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -49,6 +49,7 @@
|
|||
*.s
|
||||
*.so
|
||||
*.so.dbg
|
||||
*.spdx.json
|
||||
*.su
|
||||
*.symtypes
|
||||
*.tab.[ch]
|
||||
|
|
|
|||
27
.mailmap
27
.mailmap
|
|
@ -36,13 +36,14 @@ Alexander Lobakin <alobakin@pm.me> <bloodyreaper@yandex.ru>
|
|||
Alexander Mikhalitsyn <alexander@mihalicyn.com> <alexander.mikhalitsyn@virtuozzo.com>
|
||||
Alexander Mikhalitsyn <alexander@mihalicyn.com> <aleksandr.mikhalitsyn@canonical.com>
|
||||
Alexander Mikhalitsyn <alexander@mihalicyn.com> <aleksandr.mikhalitsyn@futurfusion.io>
|
||||
Alexander Sverdlin <alexander.sverdlin@gmail.com> <alexander.sverdlin.ext@nsn.com>
|
||||
Alexander Sverdlin <alexander.sverdlin@gmail.com> <alexander.sverdlin@gmx.de>
|
||||
Alexander Sverdlin <alexander.sverdlin@gmail.com> <alexander.sverdlin@nokia.com>
|
||||
Alexander Sverdlin <alexander.sverdlin@gmail.com> <alexander.sverdlin@nsn.com>
|
||||
Alexander Sverdlin <alexander.sverdlin@gmail.com> <alexander.sverdlin@siemens.com>
|
||||
Alexander Sverdlin <alexander.sverdlin@gmail.com> <alexander.sverdlin@sysgo.com>
|
||||
Alexander Sverdlin <alexander.sverdlin@gmail.com> <subaparts@yandex.ru>
|
||||
Alexander Sverdlin <alex@sverdlin.org> <alexander.sverdlin.ext@nsn.com>
|
||||
Alexander Sverdlin <alex@sverdlin.org> <alexander.sverdlin@gmail.com>
|
||||
Alexander Sverdlin <alex@sverdlin.org> <alexander.sverdlin@gmx.de>
|
||||
Alexander Sverdlin <alex@sverdlin.org> <alexander.sverdlin@nokia.com>
|
||||
Alexander Sverdlin <alex@sverdlin.org> <alexander.sverdlin@nsn.com>
|
||||
Alexander Sverdlin <alex@sverdlin.org> <alexander.sverdlin@sysgo.com>
|
||||
Alexander Sverdlin <alex@sverdlin.org> <asv@kernel.org>
|
||||
Alexander Sverdlin <alex@sverdlin.org> <subaparts@yandex.ru>
|
||||
Alexandre Belloni <alexandre.belloni@bootlin.com> <alexandre.belloni@free-electrons.com>
|
||||
Alexandre Ghiti <alex@ghiti.fr> <alexandre.ghiti@canonical.com>
|
||||
Alexei Avshalom Lazar <quic_ailizaro@quicinc.com> <ailizaro@codeaurora.org>
|
||||
|
|
@ -117,6 +118,7 @@ Asutosh Das <quic_asutoshd@quicinc.com> <asutoshd@codeaurora.org>
|
|||
Atish Patra <atish.patra@linux.dev> <atishp@atishpatra.org>
|
||||
Atish Patra <atish.patra@linux.dev> <atish.patra@wdc.com>
|
||||
Avaneesh Kumar Dwivedi <quic_akdwived@quicinc.com> <akdwived@codeaurora.org>
|
||||
Avri Altman <avri.altman@sandisk.com> <avri.altman@wdc.com>
|
||||
Axel Dyks <xl@xlsigned.net>
|
||||
Axel Lin <axel.lin@gmail.com>
|
||||
Balakrishna Godavarthi <quic_bgodavar@quicinc.com> <bgodavar@codeaurora.org>
|
||||
|
|
@ -371,6 +373,7 @@ Jarkko Sakkinen <jarkko@kernel.org> <jarkko.sakkinen@opinsys.com>
|
|||
Jason Gunthorpe <jgg@ziepe.ca> <jgg@mellanox.com>
|
||||
Jason Gunthorpe <jgg@ziepe.ca> <jgg@nvidia.com>
|
||||
Jason Gunthorpe <jgg@ziepe.ca> <jgunthorpe@obsidianresearch.com>
|
||||
Jason Wang <jasowangio@gmail.com> <jasowang@redhat.com>
|
||||
Jason Xing <kerneljasonxing@gmail.com> <kernelxing@tencent.com>
|
||||
<javier@osg.samsung.com> <javier.martinez@collabora.co.uk>
|
||||
Javi Merino <javi.merino@kernel.org> <javi.merino@arm.com>
|
||||
|
|
@ -437,6 +440,7 @@ John Stultz <johnstul@us.ibm.com>
|
|||
Jonas Gorski <jonas.gorski@gmail.com> <jogo@openwrt.org>
|
||||
Jonathan Cameron <jic23@kernel.org> <jonathan.cameron@huawei.com>
|
||||
Jordan Crouse <jordan@cosmicpenguin.net> <jcrouse@codeaurora.org>
|
||||
Jorge Ramirez-Ortiz <jorge.ramirez@oss.qualcomm.com> <jorge.ramirez-ortiz@linaro.org>
|
||||
<josh@joshtriplett.org> <josh@freedesktop.org>
|
||||
<josh@joshtriplett.org> <josh@kernel.org>
|
||||
<josh@joshtriplett.org> <josht@linux.vnet.ibm.com>
|
||||
|
|
@ -450,6 +454,7 @@ Juha Yrjola <juha.yrjola@nokia.com>
|
|||
Juha Yrjola <juha.yrjola@solidboot.com>
|
||||
Julien Thierry <julien.thierry.kdev@gmail.com> <julien.thierry@arm.com>
|
||||
Justin Iurman <justin.iurman@gmail.com> <justin.iurman@uliege.be>
|
||||
Ira Weiny <iweiny@kernel.org> <ira.weiny@intel.com>
|
||||
Iskren Chernev <me@iskren.info> <iskren.chernev@gmail.com>
|
||||
Kalle Valo <kvalo@kernel.org> <kvalo@codeaurora.org>
|
||||
Kalle Valo <kvalo@kernel.org> <quic_kvalo@quicinc.com>
|
||||
|
|
@ -526,7 +531,8 @@ Luca Ceresoli <luca.ceresoli@bootlin.com> <luca@lucaceresoli.net>
|
|||
Luca Weiss <luca@lucaweiss.eu> <luca@z3ntu.xyz>
|
||||
Lucas De Marchi <demarchi@kernel.org> <lucas.demarchi@intel.com>
|
||||
Lukasz Luba <lukasz.luba@arm.com> <l.luba@partner.samsung.com>
|
||||
Luo Jie <quic_luoj@quicinc.com> <luoj@codeaurora.org>
|
||||
Luo Jie <jie.luo@oss.qualcomm.com> <luoj@codeaurora.org>
|
||||
Luo Jie <jie.luo@oss.qualcomm.com> <quic_luoj@quicinc.com>
|
||||
Lance Yang <lance.yang@linux.dev> <ioworker0@gmail.com>
|
||||
Lance Yang <lance.yang@linux.dev> <mingzhe.yang@ly.com>
|
||||
Maciej W. Rozycki <macro@mips.com> <macro@imgtec.com>
|
||||
|
|
@ -636,7 +642,6 @@ Nicholas Piggin <npiggin@gmail.com> <npiggin@kernel.dk>
|
|||
Nicholas Piggin <npiggin@gmail.com> <npiggin@suse.de>
|
||||
Nicholas Piggin <npiggin@gmail.com> <nickpiggin@yahoo.com.au>
|
||||
Nicholas Piggin <npiggin@gmail.com> <piggin@cyberone.com.au>
|
||||
Nick Desaulniers <nick.desaulniers+lkml@gmail.com> <ndesaulniers@google.com>
|
||||
Nicolas Ferre <nicolas.ferre@microchip.com> <nicolas.ferre@atmel.com>
|
||||
Nicolas Pitre <nico@fluxnic.net> <nicolas.pitre@linaro.org>
|
||||
Nicolas Pitre <nico@fluxnic.net> <nico@linaro.org>
|
||||
|
|
@ -703,6 +708,10 @@ Qi Zheng <qi.zheng@linux.dev> <zhengqi.arch@bytedance.com>
|
|||
Quentin Monnet <qmo@kernel.org> <quentin.monnet@netronome.com>
|
||||
Quentin Monnet <qmo@kernel.org> <quentin@isovalent.com>
|
||||
Quentin Perret <qperret@qperret.net> <quentin.perret@arm.com>
|
||||
Radu Rendec <radu@rendec.net> <radu.rendec@ines.ro>
|
||||
Radu Rendec <radu@rendec.net> <rrendec@arista.com>
|
||||
Radu Rendec <radu@rendec.net> <radu.rendec@gmail.com>
|
||||
Radu Rendec <radu@rendec.net> <rrendec@redhat.com>
|
||||
Rae Moar <raemoar63@gmail.com> <rmoar@google.com>
|
||||
Rafael J. Wysocki <rjw@rjwysocki.net> <rjw@sisk.pl>
|
||||
Rajeev Nandan <quic_rajeevny@quicinc.com> <rajeevny@codeaurora.org>
|
||||
|
|
|
|||
5
CREDITS
5
CREDITS
|
|
@ -2244,6 +2244,7 @@ S: Canada
|
|||
N: Krzysztof Kozlowski
|
||||
E: krzk@kernel.org
|
||||
D: NFC network subsystem and drivers maintainer
|
||||
D: Samsung S2M/S5M Multifunction PMIC device drivers for Exynos platforms
|
||||
|
||||
N: Christian Krafft
|
||||
D: PowerPC Cell support
|
||||
|
|
@ -3372,6 +3373,10 @@ N: Anil Ravindranath
|
|||
E: anil_ravindranath@pmc-sierra.com
|
||||
D: PMC-Sierra MaxRAID driver
|
||||
|
||||
N: Dwaipayan Ray
|
||||
E: dwaipayanray1@gmail.com
|
||||
D: checkpatch improvements
|
||||
|
||||
N: Eric S. Raymond
|
||||
E: esr@thyrsus.com
|
||||
W: http://www.tuxedo.org/~esr/
|
||||
|
|
|
|||
83
Documentation/ABI/testing/configfs-thunderbolt_stream
Normal file
83
Documentation/ABI/testing/configfs-thunderbolt_stream
Normal file
|
|
@ -0,0 +1,83 @@
|
|||
What: /sys/kernel/config/thunderbolt/stream/<xdomain>.<service>
|
||||
Date: Sep 2026
|
||||
KernelVersion: v7.2
|
||||
Contact: Mika Westerberg <mika.westerberg@linux.intel.com>
|
||||
Description:
|
||||
Configuration group for a stream Thunderbolt/USB4
|
||||
service. It is possible to create groups even if there
|
||||
is no connection yet to the other host. Once a
|
||||
connection established and there is stream service on
|
||||
the remote side that matches, this configuration is
|
||||
applied to it.
|
||||
|
||||
To find the service name you can run tblist from tbtools [1]:
|
||||
|
||||
# tblist -A
|
||||
...
|
||||
Domain 0 Route 3 Index 0: stream
|
||||
|
||||
[1] https://github.com/intel/tbtools
|
||||
|
||||
What: /sys/kernel/config/thunderbolt/stream/<xdomain>.<service>/$name
|
||||
Date: Sep 2026
|
||||
KernelVersion: v7.2
|
||||
Contact: Mika Westerberg <mika.westerberg@linux.intel.com>
|
||||
Description:
|
||||
Creates new stream with $name and fills it with the
|
||||
default values. If there is an advertised remote stream
|
||||
with the same name, uses its values as the default.
|
||||
|
||||
What: /sys/kernel/config/thunderbolt/stream/<xdomain>.<service>/$name/index
|
||||
Date: Sep 2026
|
||||
KernelVersion: v7.2
|
||||
Contact: Mika Westerberg <mika.westerberg@linux.intel.com>
|
||||
Description:
|
||||
This matches the X in /dev/tbstreamX and allows userspace
|
||||
to map the configfs directory to the corresponding character
|
||||
device.
|
||||
|
||||
What: /sys/kernel/config/thunderbolt/stream/<xdomain>.<service>/$name/in_hopid
|
||||
Date: Sep 2026
|
||||
KernelVersion: v7.2
|
||||
Contact: Mika Westerberg <mika.westerberg@linux.intel.com>
|
||||
Description:
|
||||
In HopID used with the read path of the tunnel. Available HopIDs
|
||||
for tunneling start from 8. You can pass also -1 for automatic
|
||||
allocation. The allocated value can be read here. Writing 0 will
|
||||
de-allocate if the stream is not in use.
|
||||
|
||||
To figure out the maximum HopID you can run tbget from
|
||||
tbtools for the lane adapter. For example below we check
|
||||
for lane adapter number 1 (first USB4 port):
|
||||
|
||||
# tbget -r 0 -a 1 -D ADP_CS_5.Max\ Input\ HopID
|
||||
19
|
||||
|
||||
This allows to use anything between 8 and 19 inclusive.
|
||||
|
||||
What: /sys/kernel/config/thunderbolt/stream/<xdomain>.<service>/$name/out_hopid
|
||||
Date: Sep 2026
|
||||
KernelVersion: v7.2
|
||||
Contact: Mika Westerberg <mika.westerberg@linux.intel.com>
|
||||
Description:
|
||||
Out HopID used with the write path of the tunnel. Available HopIDs
|
||||
for tunneling start from 8. You can pass also -1 for automatic
|
||||
allocation. The allocated value can be read here. Writing 0 will
|
||||
de-allocate if the stream is not in use. See @in_hopid
|
||||
for how to figure out the maximum HopID.
|
||||
|
||||
What: /sys/kernel/config/thunderbolt/stream/<xdomain>.<service>/$name/ring_size
|
||||
Date: Sep 2026
|
||||
KernelVersion: v7.2
|
||||
Contact: Mika Westerberg <mika.westerberg@linux.intel.com>
|
||||
Description:
|
||||
Size of the TX/RX rings. Can be adjusted between 32 and
|
||||
4096. The default is 256.
|
||||
|
||||
What: /sys/kernel/config/thunderbolt/stream/<xdomain>.<service>/$name/throttling
|
||||
Date: Sep 2026
|
||||
KernelVersion: v7.2
|
||||
Contact: Mika Westerberg <mika.westerberg@linux.intel.com>
|
||||
Description:
|
||||
Interrupt throttling rate in ns. Lower values can give
|
||||
better latency. The default is 8192 ns.
|
||||
|
|
@ -29,3 +29,29 @@ Date: Oct 2025
|
|||
KernelVersion: 6.18
|
||||
Contact: Cédric Le Goater <clg@redhat.com>
|
||||
Description: Read the migration features of the vfio device.
|
||||
|
||||
What: /sys/kernel/debug/vfio/<device>/pci
|
||||
Date: June 2026
|
||||
KernelVersion: 7.2
|
||||
Contact: Alex Williamson <alex.williamson@nvidia.com>
|
||||
Description: This debugfs file directory is used for debugging
|
||||
VFIO PCI devices.
|
||||
|
||||
What: /sys/kernel/debug/vfio/<device>/pci/nointxmask
|
||||
Date: June 2026
|
||||
KernelVersion: 7.2
|
||||
Contact: Alex Williamson <alex.williamson@nvidia.com>
|
||||
Description: Read the nointxmask policy latched for this device. This
|
||||
policy governs whether the device may use PCI 2.3 style
|
||||
INTx masking when supported, reporting a value of "N", or
|
||||
requires APIC level INTx masking, reporting a value of "Y".
|
||||
|
||||
What: /sys/kernel/debug/vfio/<device>/pci/disable_idle_d3
|
||||
Date: June 2026
|
||||
KernelVersion: 7.2
|
||||
Contact: Alex Williamson <alex.williamson@nvidia.com>
|
||||
Description: Read the disable_idle_d3 policy latched for this device. This
|
||||
policy governs whether the device PM runtime usage count is
|
||||
kept elevated while the device is bound to the driver and
|
||||
unused, reporting a value of "Y", or decremented to allow the
|
||||
device to enter a low power state, reporting a value of "N".
|
||||
|
|
|
|||
|
|
@ -764,10 +764,13 @@ Contact: linux-iio@vger.kernel.org
|
|||
Description:
|
||||
Specifies the output powerdown mode.
|
||||
DAC output stage is disconnected from the amplifier and
|
||||
500ohm_to_gnd: connected to ground via a 500Ohm resistor,
|
||||
1kohm_to_gnd: connected to ground via an 1kOhm resistor,
|
||||
2.5kohm_to_gnd: connected to ground via a 2.5kOhm resistor,
|
||||
3.85kohm_to_gnd: connected to ground via a 3.85kOhm resistor,
|
||||
6kohm_to_gnd: connected to ground via a 6kOhm resistor,
|
||||
7.7kohm_to_gnd: connected to ground via a 7.7kOhm resistor,
|
||||
16kohm_to_gnd: connected to ground via a 16kOhm resistor,
|
||||
20kohm_to_gnd: connected to ground via a 20kOhm resistor,
|
||||
32kohm_to_gnd: connected to ground via a 32kOhm resistor,
|
||||
42kohm_to_gnd: connected to ground via a 42kOhm resistor,
|
||||
|
|
@ -1510,21 +1513,24 @@ Contact: linux-iio@vger.kernel.org
|
|||
Description:
|
||||
Description of the scan element data storage within the buffer
|
||||
and hence the form in which it is read from user-space.
|
||||
Form is [be|le]:[s|u]bits/storagebits[>>shift].
|
||||
be or le specifies big or little endian. s or u specifies if
|
||||
signed (2's complement) or unsigned. bits is the number of bits
|
||||
of data and storagebits is the space (after padding) that it
|
||||
occupies in the buffer. shift if specified, is the shift that
|
||||
needs to be applied prior to masking out unused bits. Some
|
||||
devices put their data in the middle of the transferred elements
|
||||
with additional information on both sides. Note that some
|
||||
devices will have additional information in the unused bits
|
||||
so to get a clean value, the bits value must be used to mask
|
||||
the buffer output value appropriately. The storagebits value
|
||||
also specifies the data alignment. So s48/64>>2 will be a
|
||||
signed 48 bit integer stored in a 64 bit location aligned to
|
||||
a 64 bit boundary. To obtain the clean value, shift right 2
|
||||
and apply a mask to zero the top 16 bits of the result.
|
||||
Form is [be|le]:[f|s|u]bits/storagebits[>>shift].
|
||||
be or le specifies big or little endian. f means floating-point
|
||||
(IEEE 754 binary format), s means signed (2's complement), u means
|
||||
unsigned. bits is the number of bits of data and storagebits is the
|
||||
space (after padding) that it occupies in the buffer; when using a
|
||||
floating-point format, bits must be one of the width values defined
|
||||
in the IEEE 754 standard for binary interchange formats (e.g. 16
|
||||
indicates the binary16 format for half-precision numbers). shift,
|
||||
if specified, is the shift that needs to be applied prior to
|
||||
masking out unused bits. Some devices put their data in the middle
|
||||
of the transferred elements with additional information on both
|
||||
sides. Note that some devices will have additional information in
|
||||
the unused bits, so to get a clean value the bits value must be
|
||||
used to mask the buffer output value appropriately. The storagebits
|
||||
value also specifies the data alignment. So s48/64>>2 will be a
|
||||
signed 48 bit integer stored in a 64 bit location aligned to a 64
|
||||
bit boundary. To obtain the clean value, shift right 2 and apply a
|
||||
mask to zero the top 16 bits of the result.
|
||||
For other storage combinations this attribute will be extended
|
||||
appropriately.
|
||||
|
||||
|
|
@ -1752,6 +1758,21 @@ Description:
|
|||
measurement from channel Y. Units after application of scale and
|
||||
offset are milliamps.
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_rot_quaternionaxis_raw
|
||||
KernelVersion: 7.1
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
Raw value of {x, y, z} components of the quaternion vector. These
|
||||
components represent the axis about which a rotation occurs, and are
|
||||
subject to the following constraints:
|
||||
|
||||
- the quaternion vector is normalized, i.e. w^2 + x^2 + y^2 + z^2 = 1
|
||||
- the rotation angle is within the [-pi, pi] range, i.e. the w
|
||||
component (which represents the amount of rotation) is non-negative
|
||||
|
||||
These constraints allow the w value to be calculated from the other
|
||||
components: w = sqrt(1 - (x^2 + y^2 + z^2)).
|
||||
|
||||
What: /sys/.../iio:deviceX/in_energy_en
|
||||
What: /sys/.../iio:deviceX/in_distance_en
|
||||
What: /sys/.../iio:deviceX/in_velocity_sqrt(x^2+y^2+z^2)_en
|
||||
|
|
@ -1959,6 +1980,23 @@ Description:
|
|||
Raw (unscaled no offset etc.) resistance reading.
|
||||
Units after application of scale and offset are ohms.
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_coverageY_raw
|
||||
KernelVersion: 7.2
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
Raw (unscaled no offset etc.) coverage reading. Used for sensors
|
||||
that report fractional coverage as a percentage, such as leak
|
||||
detectors where the value represents what portion of the sensing
|
||||
element is wetted. Units after application of scale and offset are
|
||||
percent.
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_coverageY_scale
|
||||
KernelVersion: 7.2
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
Scale to be applied to in_coverageY_raw to obtain coverage
|
||||
in percent.
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/heater_enable
|
||||
KernelVersion: 4.1.0
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ Description:
|
|||
|
||||
Reading this attribute gives the state of the DbC. It
|
||||
can be one of the following states: disabled, enabled,
|
||||
initialized, connected, configured and stalled.
|
||||
initialized, connected or configured.
|
||||
|
||||
What: /sys/bus/pci/drivers/xhci_hcd/.../dbc_idVendor
|
||||
Date: March 2023
|
||||
|
|
|
|||
|
|
@ -22,8 +22,8 @@ Description:
|
|||
For additional details please refer to
|
||||
Documentation/leds/leds-class-multicolor.rst.
|
||||
|
||||
The value is between 0 and
|
||||
/sys/class/leds/<led>/max_brightness.
|
||||
The value is between 0 and /sys/class/leds/<led>/max_brightness
|
||||
and is represented by as a decimal.
|
||||
|
||||
Writing 0 to this file clears active trigger.
|
||||
|
||||
|
|
|
|||
|
|
@ -16,9 +16,22 @@ Date: March 2020
|
|||
KernelVersion: 5.9
|
||||
Contact: Dan Murphy <dmurphy@ti.com>
|
||||
Description: read/write
|
||||
This file contains array of integers. Order of components is
|
||||
described by the multi_index array. The maximum intensity should
|
||||
not exceed /sys/class/leds/<led>/max_brightness.
|
||||
This file contains an array of integers. The order of components
|
||||
is described by the multi_index array. The maximum intensity value
|
||||
supported by each color component is described by the multi_max_intensity
|
||||
file. Writing intensity values larger than the maximum value of a
|
||||
given color component will result in those values being clamped.
|
||||
|
||||
For additional details please refer to
|
||||
Documentation/leds/leds-class-multicolor.rst.
|
||||
|
||||
What: /sys/class/leds/<led>/multi_max_intensity
|
||||
Date: May 2026
|
||||
KernelVersion: 7.2
|
||||
Contact: Armin Wolf <W_Armin@gmx.de>
|
||||
Description: read
|
||||
This file contains an array of integers describing the maximum
|
||||
intensity value for each intensity component.
|
||||
|
||||
For additional details please refer to
|
||||
Documentation/leds/leds-class-multicolor.rst.
|
||||
|
|
|
|||
12
Documentation/ABI/testing/sysfs-class-power-bd71828
Normal file
12
Documentation/ABI/testing/sysfs-class-power-bd71828
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
What: /sys/class/power_supply/bd71828_ac/auto_dcin_limit
|
||||
Description:
|
||||
Enable/Disable automatic management of input current limit
|
||||
(ILIM_DCIN_EN bit).
|
||||
|
||||
Possible values are:
|
||||
|
||||
============ ===========================================
|
||||
1 automatic adjustment of input current limit
|
||||
0 no adjustment of input current limit. This
|
||||
helps for more unusual power sources like
|
||||
solar modules.
|
||||
|
|
@ -2,33 +2,36 @@ What: /sys/class/reboot-mode/<driver>/reboot_modes
|
|||
Date: March 2026(TBD)
|
||||
KernelVersion: TBD
|
||||
Contact: linux-pm@vger.kernel.org
|
||||
Description:
|
||||
Description:
|
||||
This interface exposes the reboot-mode arguments
|
||||
registered with the reboot-mode framework. It is
|
||||
a read-only interface and provides a space
|
||||
separated list of reboot-mode arguments supported
|
||||
on the current platform.
|
||||
Example:
|
||||
|
||||
recovery fastboot bootloader
|
||||
|
||||
The exact sysfs path may vary depending on the
|
||||
name of the driver that registers the arguments.
|
||||
Example:
|
||||
Example::
|
||||
|
||||
/sys/class/reboot-mode/nvmem-reboot-mode/reboot_modes
|
||||
/sys/class/reboot-mode/syscon-reboot-mode/reboot_modes
|
||||
/sys/class/reboot-mode/qcom-pon/reboot_modes
|
||||
|
||||
The supported arguments can be used by userspace to
|
||||
invoke device reset using the standard reboot() system
|
||||
call interface, with the "argument" as string to "*arg"
|
||||
parameter along with LINUX_REBOOT_CMD_RESTART2.
|
||||
call interface, with the "argument" as string to ``*arg``
|
||||
parameter along with ``LINUX_REBOOT_CMD_RESTART2``.
|
||||
|
||||
A driver can expose the supported arguments by
|
||||
registering them with the reboot-mode framework
|
||||
using the property names that follow the
|
||||
mode-<argument> format.
|
||||
Example:
|
||||
mode-bootloader, mode-recovery.
|
||||
|
||||
mode-bootloader, mode-recovery
|
||||
|
||||
This attribute is useful for scripts or initramfs
|
||||
logic that need to programmatically determine
|
||||
|
|
|
|||
|
|
@ -0,0 +1,9 @@
|
|||
What: /sys/bus/platform/devices/<PALC0001 device>/wwan_reset
|
||||
Date: April 2026
|
||||
KernelVersion: 7.2
|
||||
Contact: Jackbb Wu <jackbb.wu@compal.com>
|
||||
Description:
|
||||
Writing to this file triggers a Platform Level Device Reset
|
||||
(PLDR) of the Dell DW5826e WWAN module via an ACPI _DSM
|
||||
method. This can be used to recover the modem when it is in
|
||||
a frozen state and unable to respond to USB commands.
|
||||
|
|
@ -270,7 +270,8 @@ Description: Shows all enabled kernel features.
|
|||
inode_checksum, flexible_inline_xattr, quota_ino,
|
||||
inode_crtime, lost_found, verity, sb_checksum,
|
||||
casefold, readonly, compression, test_dummy_encryption_v2,
|
||||
atomic_write, pin_file, encrypted_casefold, linear_lookup.
|
||||
atomic_write, pin_file, encrypted_casefold, linear_lookup,
|
||||
fserror.
|
||||
|
||||
What: /sys/fs/f2fs/<disk>/inject_rate
|
||||
Date: May 2016
|
||||
|
|
@ -1000,4 +1001,4 @@ Contact: "Chao Yu" <chao@kernel.org>
|
|||
Description: It can be used to tune priority of f2fs critical task, e.g. f2fs_ckpt, f2fs_gc
|
||||
threads, limitation as below:
|
||||
- it requires user has CAP_SYS_NICE capability.
|
||||
- the range is [100, 139], by default the value is 100.
|
||||
- the range is [100, 139], by default the value is 120.
|
||||
|
|
|
|||
|
|
@ -84,6 +84,13 @@ Description: Writing an integer to this file sets the 'address unit'
|
|||
parameter of the given operations set of the context. Reading
|
||||
the file returns the last-written 'address unit' value.
|
||||
|
||||
What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/pause
|
||||
Date: Mar 2026
|
||||
Contact: SeongJae Park <sj@kernel.org>
|
||||
Description: Writing a boolean keyword to this file sets the 'pause' request
|
||||
parameter for the context. Reading the file returns the
|
||||
last-written 'pause' value.
|
||||
|
||||
What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/monitoring_attrs/intervals/sample_us
|
||||
Date: Mar 2022
|
||||
Contact: SeongJae Park <sj@kernel.org>
|
||||
|
|
@ -322,6 +329,18 @@ Contact: SeongJae Park <sj@kernel.org>
|
|||
Description: Writing to and reading from this file sets and gets the
|
||||
goal-based effective quota auto-tuning algorithm to use.
|
||||
|
||||
What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/quotas/fail_charge_num
|
||||
Date: Mar 2026
|
||||
Contact: SeongJae Park <sj@kernel.org>
|
||||
Description: Writing to and reading from this file sets and gets the
|
||||
action-failed memory quota charging ratio numerator.
|
||||
|
||||
What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/quotas/fail_charge_denom
|
||||
Date: Mar 2026
|
||||
Contact: SeongJae Park <sj@kernel.org>
|
||||
Description: Writing to and reading from this file sets and gets the
|
||||
action-failed memory quota charging ratio denominator.
|
||||
|
||||
What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/quotas/weights/sz_permil
|
||||
Date: Mar 2022
|
||||
Contact: SeongJae Park <sj@kernel.org>
|
||||
|
|
@ -377,15 +396,20 @@ Contact: SeongJae Park <sj@kernel.org>
|
|||
Description: Writing to and reading from this file sets and gets the low
|
||||
watermark of the scheme in permil.
|
||||
|
||||
What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/filters/nr_filters
|
||||
Date: Dec 2022
|
||||
What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/core_filters
|
||||
Date: Feb 2025
|
||||
Contact: SeongJae Park <sj@kernel.org>
|
||||
Description: Directory for DAMON core layer-handled DAMOS filters.
|
||||
|
||||
What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/core_filters/nr_filters
|
||||
Date: Feb 2025
|
||||
Contact: SeongJae Park <sj@kernel.org>
|
||||
Description: Writing a number 'N' to this file creates the number of
|
||||
directories for setting filters of the scheme named '0' to
|
||||
'N-1' under the filters/ directory.
|
||||
'N-1' under the core_filters/ directory.
|
||||
|
||||
What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/filters/<F>/type
|
||||
Date: Dec 2022
|
||||
What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/core_filters/<F>/type
|
||||
Date: Feb 2025
|
||||
Contact: SeongJae Park <sj@kernel.org>
|
||||
Description: Writing to and reading from this file sets and gets the type of
|
||||
the memory of the interest. 'anon' for anonymous pages,
|
||||
|
|
@ -393,77 +417,78 @@ Description: Writing to and reading from this file sets and gets the type of
|
|||
'addr' for address range (an open-ended interval), or 'target'
|
||||
for DAMON monitoring target can be written and read.
|
||||
|
||||
What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/filters/<F>/memcg_path
|
||||
Date: Dec 2022
|
||||
What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/core_filters/<F>/memcg_path
|
||||
Date: Feb 2025
|
||||
Contact: SeongJae Park <sj@kernel.org>
|
||||
Description: If 'memcg' is written to the 'type' file, writing to and
|
||||
reading from this file sets and gets the path to the memory
|
||||
cgroup of the interest.
|
||||
|
||||
What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/filters/<F>/addr_start
|
||||
Date: Jul 2023
|
||||
What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/core_filters/<F>/addr_start
|
||||
Date: Feb 2025
|
||||
Contact: SeongJae Park <sj@kernel.org>
|
||||
Description: If 'addr' is written to the 'type' file, writing to or reading
|
||||
from this file sets or gets the start address of the address
|
||||
range for the filter.
|
||||
|
||||
What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/filters/<F>/addr_end
|
||||
Date: Jul 2023
|
||||
What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/core_filters/<F>/addr_end
|
||||
Date: Feb 2025
|
||||
Contact: SeongJae Park <sj@kernel.org>
|
||||
Description: If 'addr' is written to the 'type' file, writing to or reading
|
||||
from this file sets or gets the end address of the address
|
||||
range for the filter.
|
||||
|
||||
What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/filters/<F>/min
|
||||
What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/core_filters/<F>/min
|
||||
Date: Feb 2025
|
||||
Contact: SeongJae Park <sj@kernel.org>
|
||||
Description: If 'hugepage_size' is written to the 'type' file, writing to
|
||||
or reading from this file sets or gets the minimum size of the
|
||||
hugepage for the filter.
|
||||
|
||||
What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/filters/<F>/max
|
||||
What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/core_filters/<F>/max
|
||||
Date: Feb 2025
|
||||
Contact: SeongJae Park <sj@kernel.org>
|
||||
Description: If 'hugepage_size' is written to the 'type' file, writing to
|
||||
or reading from this file sets or gets the maximum size of the
|
||||
hugepage for the filter.
|
||||
|
||||
What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/filters/<F>/target_idx
|
||||
Date: Dec 2022
|
||||
What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/core_filters/<F>/damon_target_idx
|
||||
Date: Feb 2025
|
||||
Contact: SeongJae Park <sj@kernel.org>
|
||||
Description: If 'target' is written to the 'type' file, writing to or
|
||||
reading from this file sets or gets the index of the DAMON
|
||||
monitoring target of the interest.
|
||||
|
||||
What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/filters/<F>/matching
|
||||
Date: Dec 2022
|
||||
What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/core_filters/<F>/matching
|
||||
Date: Feb 2025
|
||||
Contact: SeongJae Park <sj@kernel.org>
|
||||
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
|
||||
What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/core_filters/<F>/allow
|
||||
Date: Feb 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>/core_filters
|
||||
Date: Feb 2025
|
||||
Contact: SeongJae Park <sj@kernel.org>
|
||||
Description: Directory for DAMON core layer-handled DAMOS filters. Files
|
||||
under this directory works same to those of
|
||||
/sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/filters
|
||||
directory.
|
||||
|
||||
What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/ops_filters
|
||||
Date: Feb 2025
|
||||
Contact: SeongJae Park <sj@kernel.org>
|
||||
Description: Directory for DAMON operations set layer-handled DAMOS filters.
|
||||
Files under this directory works same to those of
|
||||
/sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/filters
|
||||
/sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/core_filters
|
||||
directory.
|
||||
|
||||
What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/filters
|
||||
Date: Dec 2022
|
||||
Contact: SeongJae Park <sj@kernel.org>
|
||||
Description: Directory for DAMOS filters. Files under this directory works
|
||||
same to those of
|
||||
/sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/{core,ops}_filters
|
||||
directory. This is deprecated. Use the core_filters and
|
||||
ops_filters instead.
|
||||
|
||||
What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/dests/nr_dests
|
||||
Date: Jul 2025
|
||||
Contact: SeongJae Park <sj@kernel.org>
|
||||
|
|
|
|||
|
|
@ -58,6 +58,15 @@ Description:
|
|||
* 1 - overboost,
|
||||
* 2 - silent
|
||||
|
||||
What: /sys/devices/platform/<platform>/keystone
|
||||
Date: Jun 2026
|
||||
KernelVersion: 7.2
|
||||
Contact: "Dariusz Figzał" <dariuszfigzal@gmail.com>
|
||||
Description:
|
||||
Reports the Keystone dongle insert state (read-only):
|
||||
* 0 - not inserted
|
||||
* 1 - inserted
|
||||
|
||||
What: /sys/devices/platform/<platform>/gpu_mux_mode
|
||||
Date: Aug 2022
|
||||
KernelVersion: 6.1
|
||||
|
|
|
|||
|
|
@ -338,7 +338,7 @@ the PCI_IRQ_MSI and PCI_IRQ_MSIX flags will fail, so try to always
|
|||
specify PCI_IRQ_INTX as well.
|
||||
|
||||
Drivers that have different interrupt handlers for MSI/MSI-X and
|
||||
legacy INTx should chose the right one based on the msi_enabled
|
||||
legacy INTx should choose the right one based on the msi_enabled
|
||||
and msix_enabled flags in the pci_dev structure after calling
|
||||
pci_alloc_irq_vectors.
|
||||
|
||||
|
|
|
|||
|
|
@ -97,7 +97,7 @@ register its service with the PCI Express Port Bus driver (see
|
|||
section 5.2.1 & 5.2.2). It is important that a service driver
|
||||
initializes the pcie_port_service_driver data structure, included in
|
||||
header file /include/linux/pcieport_if.h, before calling these APIs.
|
||||
Failure to do so will result an identity mismatch, which prevents
|
||||
Failure to do so will result in an identity mismatch, which prevents
|
||||
the PCI Express Port Bus driver from loading a service driver.
|
||||
|
||||
pcie_port_service_register
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ Landlock: system-wide management
|
|||
================================
|
||||
|
||||
:Author: Mickaël Salaün
|
||||
:Date: January 2026
|
||||
:Date: June 2026
|
||||
|
||||
Landlock can leverage the audit framework to log events.
|
||||
|
||||
|
|
@ -19,8 +19,10 @@ Audit
|
|||
Denied access requests are logged by default for a sandboxed program if `audit`
|
||||
is enabled. This default behavior can be changed with the
|
||||
sys_landlock_restrict_self() flags (cf.
|
||||
Documentation/userspace-api/landlock.rst). Landlock logs can also be masked
|
||||
thanks to audit rules. Landlock can generate 2 audit record types.
|
||||
Documentation/userspace-api/landlock.rst), or suppressed on a per-object
|
||||
basis by using ``LANDLOCK_ADD_RULE_QUIET`` (ABI 10+). Landlock logs can
|
||||
also be masked thanks to audit rules. Landlock can generate 2 audit
|
||||
record types.
|
||||
|
||||
Record types
|
||||
------------
|
||||
|
|
@ -54,6 +56,8 @@ AUDIT_LANDLOCK_ACCESS
|
|||
**net.*** - Network access rights (ABI 4+):
|
||||
- net.bind_tcp - TCP port binding was denied
|
||||
- net.connect_tcp - TCP connection was denied
|
||||
- net.bind_udp - UDP port binding was denied
|
||||
- net.connect_send_udp - UDP connection and send was denied
|
||||
|
||||
**scope.*** - IPC scoping restrictions (ABI 6+):
|
||||
- scope.abstract_unix_socket - Abstract UNIX socket connection denied
|
||||
|
|
@ -172,7 +176,8 @@ If you get spammed with audit logs related to Landlock, this is either an
|
|||
attack attempt or a bug in the security policy. We can put in place some
|
||||
filters to limit noise with two complementary ways:
|
||||
|
||||
- with sys_landlock_restrict_self()'s flags if we can fix the sandboxed
|
||||
- with sys_landlock_restrict_self()'s flags, or
|
||||
``LANDLOCK_ADD_RULE_QUIET`` (ABI 10+) if we can fix the sandboxed
|
||||
programs,
|
||||
- or with audit rules (see :manpage:`auditctl(8)`).
|
||||
|
||||
|
|
|
|||
|
|
@ -291,7 +291,6 @@
|
|||
154 = /dev/pmu Macintosh PowerBook power manager
|
||||
155 =
|
||||
156 = /dev/lcd Front panel LCD display
|
||||
157 = /dev/ac Applicom Intl Profibus card
|
||||
158 = /dev/nwbutton Netwinder external button
|
||||
159 = /dev/nwdebug Netwinder debug interface
|
||||
160 = /dev/nwflash Netwinder flash memory
|
||||
|
|
|
|||
|
|
@ -2067,6 +2067,10 @@ Kernel parameters
|
|||
Format: nn[KMGTPE] or (node format)
|
||||
<node>:nn[KMGTPE][,<node>:nn[KMGTPE]]
|
||||
|
||||
The size must be a multiple of the gigantic page size.
|
||||
When using node format, this applies to each per-node size.
|
||||
Missaligned values are dropped with a warning.
|
||||
|
||||
Reserve a CMA area of given size and allocate gigantic
|
||||
hugepages using the CMA allocator. If enabled, the
|
||||
boot-time allocation of gigantic hugepages is skipped.
|
||||
|
|
@ -2307,6 +2311,12 @@ Kernel parameters
|
|||
Use the canonical format for the binary runtime
|
||||
measurements, instead of host native format.
|
||||
|
||||
ima_flush_htable [IMA]
|
||||
Flush the IMA hash table when deleting all the
|
||||
staged measurement records, to achieve maximum
|
||||
memory saving at the cost of having duplicate
|
||||
records across the staged measurement lists.
|
||||
|
||||
ima_hash= [IMA]
|
||||
Format: { md5 | sha1 | rmd160 | sha256 | sha384
|
||||
| sha512 | ... }
|
||||
|
|
@ -4278,13 +4288,6 @@ Kernel parameters
|
|||
Only applies if the softerr mount option is enabled,
|
||||
and the specified value is >= 0.
|
||||
|
||||
nfs.enable_ino64=
|
||||
[NFS] enable 64-bit inode numbers.
|
||||
If zero, the NFS client will fake up a 32-bit inode
|
||||
number for the readdir() and stat() syscalls instead
|
||||
of returning the full 64-bit number.
|
||||
The default is to return 64-bit inode numbers.
|
||||
|
||||
nfs.idmap_cache_timeout=
|
||||
[NFS] set the maximum lifetime for idmapper cache
|
||||
entries.
|
||||
|
|
@ -7862,6 +7865,22 @@ Kernel parameters
|
|||
first trust source as a backend which is initialized
|
||||
successfully during iteration.
|
||||
|
||||
trusted.debug= [KEYS]
|
||||
Format: <bool>
|
||||
Enable trusted keys debug traces at runtime when
|
||||
CONFIG_TRUSTED_KEYS_DEBUG=y.
|
||||
|
||||
To make the traces visible after enabling the option,
|
||||
use trusted.dyndbg='+p' as needed. By convention,
|
||||
the subsystem uses pr_debug() for these traces.
|
||||
|
||||
SAFETY: The traces can leak sensitive data, so be
|
||||
cautious before enabling this. They remain inactive
|
||||
unless this parameter is set this option to a true
|
||||
value.
|
||||
|
||||
Default: false
|
||||
|
||||
trusted.rng= [KEYS]
|
||||
Format: <string>
|
||||
The RNG used to generate key material for trusted keys.
|
||||
|
|
|
|||
|
|
@ -46,11 +46,20 @@ Battery Charging Control
|
|||
.. warning:: Some devices do not properly implement the charging threshold interface. Forcing
|
||||
the driver to enable access to said interface on such devices might damage the
|
||||
battery [1]_. Because of this the driver will not enable said feature even when
|
||||
using the ``force`` module parameter.
|
||||
using the ``force`` module parameter. The charging profile interface will be
|
||||
available instead.
|
||||
|
||||
The ``uniwill-laptop`` driver supports controlling the battery charge limit. This happens over
|
||||
the standard ``charge_control_end_threshold`` power supply sysfs attribute. All values
|
||||
between 1 and 100 percent are supported.
|
||||
The ``uniwill-laptop`` driver supports controlling the battery charge limit. This either happens
|
||||
over the standard ``charge_control_end_threshold`` or ``charge_types`` power supply sysfs attribute,
|
||||
depending on the device. When using the ``charge_control_end_threshold`` sysfs attribute, all values
|
||||
between 1 and 100 percent are supported. When using the ``charge_types`` sysfs attribute, the driver
|
||||
supports switching between the ``Standard``, ``Trickle`` and ``Long Life`` profiles.
|
||||
|
||||
Keep in mind that when using the ``charge_types`` sysfs attribute, the EC firmware will hide the
|
||||
true charging status of the battery from the operating system, potentially misleading users into
|
||||
thinking that the charging profile does not work. Checking the ``current_now`` sysfs attribute
|
||||
tells you the true charging status of the battery even when using the ``charge_types`` sysfs
|
||||
attribute (0 means that the battery is currently not charging).
|
||||
|
||||
Additionally the driver signals the presence of battery charging issues through the standard
|
||||
``health`` power supply sysfs attribute.
|
||||
|
|
|
|||
63
Documentation/admin-guide/media/amdisp4-1.rst
Normal file
63
Documentation/admin-guide/media/amdisp4-1.rst
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
.. SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
.. include:: <isonum.txt>
|
||||
|
||||
====================================
|
||||
AMD Image Signal Processor (amdisp4)
|
||||
====================================
|
||||
|
||||
Introduction
|
||||
============
|
||||
|
||||
This file documents the driver for the AMD ISP4 that is part of
|
||||
AMD Ryzen AI Max 300 Series.
|
||||
|
||||
The driver is located under drivers/media/platform/amd/isp4 and uses
|
||||
the Media-Controller API.
|
||||
|
||||
The driver exposes one video capture device to userspace and provide
|
||||
web camera like interface. Internally the video device is connected
|
||||
to the isp4 sub-device responsible for communication with the CCPU FW.
|
||||
|
||||
Topology
|
||||
========
|
||||
|
||||
.. _amdisp4_topology_graph:
|
||||
|
||||
.. kernel-figure:: amdisp4.dot
|
||||
:alt: Diagram of the media pipeline topology
|
||||
:align: center
|
||||
|
||||
|
||||
|
||||
The driver has 1 sub-device: Representing isp4 image signal processor.
|
||||
The driver has 1 video device: Capture device for retrieving images.
|
||||
|
||||
- ISP4 Image Signal Processing Subdevice Node
|
||||
|
||||
---------------------------------------------
|
||||
|
||||
The isp4 is represented as a single V4L2 subdev, the sub-device does not
|
||||
provide interface to the user space. The sub-device is connected to one video node
|
||||
(isp4_capture) with immutable active link. The sub-device represents ISP with
|
||||
connected sensor similar to smart cameras (sensors with integrated ISP).
|
||||
sub-device has only one link to the video device for capturing the frames.
|
||||
The sub-device communicates with CCPU FW for streaming configuration and
|
||||
buffer management.
|
||||
|
||||
|
||||
- isp4_capture - Frames Capture Video Node
|
||||
|
||||
------------------------------------------
|
||||
|
||||
Isp4_capture is a capture device to capture frames to memory.
|
||||
The entity is connected to isp4 sub-device. The video device
|
||||
provides web camera like interface to userspace. It supports
|
||||
mmap and dma buf types of memory.
|
||||
|
||||
Capturing Video Frames Example
|
||||
==============================
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
v4l2-ctl "-d" "/dev/video0" "--set-fmt-video=width=1920,height=1080,pixelformat=NV12" "--stream-mmap" "--stream-count=10"
|
||||
6
Documentation/admin-guide/media/amdisp4.dot
Normal file
6
Documentation/admin-guide/media/amdisp4.dot
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
digraph board {
|
||||
rankdir=TB
|
||||
n00000001 [label="{{} | amd isp4\n | {<port0> 0}}", shape=Mrecord, style=filled, fillcolor=green]
|
||||
n00000001:port0 -> n00000003 [style=bold]
|
||||
n00000003 [label="Preview\n/dev/video0", shape=box, style=filled, fillcolor=yellow]
|
||||
}
|
||||
29
Documentation/admin-guide/media/rkcif-rk3588-vicap.dot
Normal file
29
Documentation/admin-guide/media/rkcif-rk3588-vicap.dot
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
digraph board {
|
||||
rankdir=TB
|
||||
n00000007 [label="{{<port0> 0} | rkcif-mipi2\n/dev/v4l-subdev0 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green]
|
||||
n00000007:port1 -> n0000000a
|
||||
n00000007:port1 -> n00000010 [style=dashed]
|
||||
n00000007:port1 -> n00000016 [style=dashed]
|
||||
n00000007:port1 -> n0000001c [style=dashed]
|
||||
n0000000a [label="rkcif-mipi2-id0\n/dev/video0", shape=box, style=filled, fillcolor=yellow]
|
||||
n00000010 [label="rkcif-mipi2-id1\n/dev/video1", shape=box, style=filled, fillcolor=yellow]
|
||||
n00000016 [label="rkcif-mipi2-id2\n/dev/video2", shape=box, style=filled, fillcolor=yellow]
|
||||
n0000001c [label="rkcif-mipi2-id3\n/dev/video3", shape=box, style=filled, fillcolor=yellow]
|
||||
n00000025 [label="{{<port0> 0} | rkcif-mipi4\n/dev/v4l-subdev1 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green]
|
||||
n00000025:port1 -> n00000028
|
||||
n00000025:port1 -> n0000002e [style=dashed]
|
||||
n00000025:port1 -> n00000034 [style=dashed]
|
||||
n00000025:port1 -> n0000003a [style=dashed]
|
||||
n00000028 [label="rkcif-mipi4-id0\n/dev/video4", shape=box, style=filled, fillcolor=yellow]
|
||||
n0000002e [label="rkcif-mipi4-id1\n/dev/video5", shape=box, style=filled, fillcolor=yellow]
|
||||
n00000034 [label="rkcif-mipi4-id2\n/dev/video6", shape=box, style=filled, fillcolor=yellow]
|
||||
n0000003a [label="rkcif-mipi4-id3\n/dev/video7", shape=box, style=filled, fillcolor=yellow]
|
||||
n00000043 [label="{{<port0> 0} | dw-mipi-csi2rx fdd30000.csi\n/dev/v4l-subdev2 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green]
|
||||
n00000043:port1 -> n00000007:port0
|
||||
n00000048 [label="{{<port0> 0} | dw-mipi-csi2rx fdd50000.csi\n/dev/v4l-subdev3 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green]
|
||||
n00000048:port1 -> n00000025:port0
|
||||
n0000004d [label="{{} | imx415 3-001a\n/dev/v4l-subdev4 | {<port0> 0}}", shape=Mrecord, style=filled, fillcolor=green]
|
||||
n0000004d:port0 -> n00000043:port0
|
||||
n00000051 [label="{{} | imx415 4-001a\n/dev/v4l-subdev5 | {<port0> 0}}", shape=Mrecord, style=filled, fillcolor=green]
|
||||
n00000051:port0 -> n00000048:port0
|
||||
}
|
||||
|
|
@ -77,3 +77,35 @@ and the following video devices:
|
|||
.. kernel-figure:: rkcif-rk3568-vicap.dot
|
||||
:alt: Topology of the RK3568 Video Capture (VICAP) unit
|
||||
:align: center
|
||||
|
||||
Rockchip RK3588 Video Capture (VICAP)
|
||||
-------------------------------------
|
||||
|
||||
The RK3588 Video Capture (VICAP) unit features a digital video port and six
|
||||
MIPI CSI-2 capture interfaces that can receive video data independently.
|
||||
The DVP accepts parallel video data, BT.656 and BT.1120.
|
||||
Since the BT.1120 protocol may feature more than one stream, the RK3588 VICAP
|
||||
DVP features four DMA engines that can capture different streams.
|
||||
Similarly, the RK3588 VICAP MIPI CSI-2 receivers feature four DMA engines each
|
||||
to handle different Virtual Channels (VCs).
|
||||
|
||||
The rkcif driver represents this hardware variant by exposing the following
|
||||
V4L2 subdevices:
|
||||
|
||||
* dw-mipi-csi2rx fdd30000.csi: MIPI CSI-2 receiver connected to MIPI DPHY0
|
||||
* dw-mipi-csi2rx fdd50000.csi: MIPI CSI-2 receiver connected to MIPI DPHY1
|
||||
* rkcif-mipi2: INTERFACE/CROP block for the MIPI CSI-2 receiver connected to
|
||||
MIPI DPHY0
|
||||
* rkcif-mipi4: INTERFACE/CROP block for the MIPI CSI-2 receiver connected to
|
||||
MIPI DPHY1
|
||||
|
||||
and the following video devices:
|
||||
|
||||
* rkcif-mipi2-id{0,1,2,3}: The DMA engines connected to the rkcif-mipi2
|
||||
INTERFACE/CROP block.
|
||||
* rkcif-mipi4-id{0,1,2,3}: The DMA engines connected to the rkcif-mipi4
|
||||
INTERFACE/CROP block.
|
||||
|
||||
.. kernel-figure:: rkcif-rk3588-vicap.dot
|
||||
:alt: Topology of the RK3588 Video Capture (VICAP) unit
|
||||
:align: center
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ Video4Linux (V4L) driver-specific documentation
|
|||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
||||
amdisp4-1
|
||||
bttv
|
||||
c3-isp
|
||||
cafe_ccic
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ Make DAMON_LRU_SORT reads the input parameters again, except ``enabled``.
|
|||
|
||||
Input parameters that updated while DAMON_LRU_SORT is running are not applied
|
||||
by default. Once this parameter is set as ``Y``, DAMON_LRU_SORT reads values
|
||||
of parametrs except ``enabled`` again. Once the re-reading is done, this
|
||||
of parameters except ``enabled`` again. Once the re-reading is done, this
|
||||
parameter is set as ``N``. If invalid parameters are found while the
|
||||
re-reading, DAMON_LRU_SORT will be disabled.
|
||||
|
||||
|
|
@ -246,7 +246,8 @@ monitor_region_start
|
|||
Start of target memory region in physical address.
|
||||
|
||||
The start physical address of memory region that DAMON_LRU_SORT will do work
|
||||
against. By default, biggest System RAM is used as the region.
|
||||
against. By default, the system's entire physical memory is used as the
|
||||
region.
|
||||
|
||||
monitor_region_end
|
||||
------------------
|
||||
|
|
@ -254,7 +255,8 @@ monitor_region_end
|
|||
End of target memory region in physical address.
|
||||
|
||||
The end physical address of memory region that DAMON_LRU_SORT will do work
|
||||
against. By default, biggest System RAM is used as the region.
|
||||
against. By default, the system's entire physical memory is used as the
|
||||
region.
|
||||
|
||||
addr_unit
|
||||
---------
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@ Make DAMON_RECLAIM reads the input parameters again, except ``enabled``.
|
|||
|
||||
Input parameters that updated while DAMON_RECLAIM is running are not applied
|
||||
by default. Once this parameter is set as ``Y``, DAMON_RECLAIM reads values
|
||||
of parametrs except ``enabled`` again. Once the re-reading is done, this
|
||||
of parameters except ``enabled`` again. Once the re-reading is done, this
|
||||
parameter is set as ``N``. If invalid parameters are found while the
|
||||
re-reading, DAMON_RECLAIM will be disabled.
|
||||
|
||||
|
|
@ -85,6 +85,17 @@ identifies the region as cold, and reclaims it.
|
|||
|
||||
120 seconds by default.
|
||||
|
||||
autotune_monitoring_intervals
|
||||
-----------------------------
|
||||
|
||||
If this parameter is set as ``Y``, DAMON_RECLAIM automatically tunes DAMON's
|
||||
sampling and aggregation intervals. The auto-tuning aims to capture meaningful
|
||||
amount of access events in each DAMON-snapshot, while keeping the sampling
|
||||
interval 5 milliseconds in minimum, and 10 seconds in maximum. Setting this as
|
||||
``N`` disables the auto-tuning.
|
||||
|
||||
Disabled by default.
|
||||
|
||||
quota_ms
|
||||
--------
|
||||
|
||||
|
|
@ -229,7 +240,8 @@ Start of target memory region in physical address.
|
|||
|
||||
The start physical address of memory region that DAMON_RECLAIM will do work
|
||||
against. That is, DAMON_RECLAIM will find cold memory regions in this region
|
||||
and reclaims. By default, biggest System RAM is used as the region.
|
||||
and reclaims. By default, the system's entire physical memory is used as the
|
||||
region.
|
||||
|
||||
monitor_region_end
|
||||
------------------
|
||||
|
|
@ -238,7 +250,8 @@ End of target memory region in physical address.
|
|||
|
||||
The end physical address of memory region that DAMON_RECLAIM will do work
|
||||
against. That is, DAMON_RECLAIM will find cold memory regions in this region
|
||||
and reclaims. By default, biggest System RAM is used as the region.
|
||||
and reclaims. By default, the system's entire physical memory is used as the
|
||||
region.
|
||||
|
||||
addr_unit
|
||||
---------
|
||||
|
|
|
|||
|
|
@ -89,3 +89,10 @@ percentiles of the idle time values via this read-only parameter. Reading the
|
|||
parameter returns 101 idle time values in milliseconds, separated by comma.
|
||||
Each value represents 0-th, 1st, 2nd, 3rd, ..., 99th and 100th percentile idle
|
||||
times.
|
||||
|
||||
kdamond_pid
|
||||
-----------
|
||||
|
||||
PID of the DAMON thread.
|
||||
|
||||
If DAMON_STAT is enabled, this becomes the PID of the worker thread. Else, -1.
|
||||
|
|
|
|||
|
|
@ -66,11 +66,17 @@ comma (",").
|
|||
│ :ref:`kdamonds <sysfs_kdamonds>`/nr_kdamonds
|
||||
│ │ :ref:`0 <sysfs_kdamond>`/state,pid,refresh_ms
|
||||
│ │ │ :ref:`contexts <sysfs_contexts>`/nr_contexts
|
||||
│ │ │ │ :ref:`0 <sysfs_context>`/avail_operations,operations,addr_unit
|
||||
│ │ │ │ :ref:`0 <sysfs_context>`/avail_operations,operations,addr_unit,
|
||||
│ │ │ │ pause
|
||||
│ │ │ │ │ :ref:`monitoring_attrs <sysfs_monitoring_attrs>`/
|
||||
│ │ │ │ │ │ intervals/sample_us,aggr_us,update_us
|
||||
│ │ │ │ │ │ │ intervals_goal/access_bp,aggrs,min_sample_us,max_sample_us
|
||||
│ │ │ │ │ │ nr_regions/min,max
|
||||
│ │ │ │ │ │ :ref:`probes <damon_usage_sysfs_probes>`/nr_probes
|
||||
│ │ │ │ │ │ │ 0/filters/nr_filters
|
||||
│ │ │ │ │ │ │ │ 0/type,matching,allow,path
|
||||
│ │ │ │ │ │ │ │ ...
|
||||
│ │ │ │ │ │ │ ...
|
||||
│ │ │ │ │ :ref:`targets <sysfs_targets>`/nr_targets
|
||||
│ │ │ │ │ │ :ref:`0 <sysfs_target>`/pid_target,obsolete_target
|
||||
│ │ │ │ │ │ │ :ref:`regions <sysfs_regions>`/nr_regions
|
||||
|
|
@ -83,18 +89,23 @@ comma (",").
|
|||
│ │ │ │ │ │ │ │ sz/min,max
|
||||
│ │ │ │ │ │ │ │ nr_accesses/min,max
|
||||
│ │ │ │ │ │ │ │ age/min,max
|
||||
│ │ │ │ │ │ │ :ref:`quotas <sysfs_quotas>`/ms,bytes,reset_interval_ms,effective_bytes,goal_tuner
|
||||
│ │ │ │ │ │ │ :ref:`quotas <sysfs_quotas>`/ms,bytes,reset_interval_ms,
|
||||
│ │ │ │ │ │ │ effective_bytes,goal_tuner,
|
||||
│ │ │ │ │ │ │ fail_charge_num,fail_charge_denom
|
||||
│ │ │ │ │ │ │ │ weights/sz_permil,nr_accesses_permil,age_permil
|
||||
│ │ │ │ │ │ │ │ :ref:`goals <sysfs_schemes_quota_goals>`/nr_goals
|
||||
│ │ │ │ │ │ │ │ │ 0/target_metric,target_value,current_value,nid,path
|
||||
│ │ │ │ │ │ │ :ref:`watermarks <sysfs_watermarks>`/metric,interval_us,high,mid,low
|
||||
│ │ │ │ │ │ │ :ref:`{core_,ops_,}filters <sysfs_filters>`/nr_filters
|
||||
│ │ │ │ │ │ │ │ 0/type,matching,allow,memcg_path,addr_start,addr_end,target_idx,min,max
|
||||
│ │ │ │ │ │ │ │ 0/type,matching,allow,memcg_path,addr_start,addr_end,damon_target_idx,min,max
|
||||
│ │ │ │ │ │ │ :ref:`dests <damon_sysfs_dests>`/nr_dests
|
||||
│ │ │ │ │ │ │ │ 0/id,weight
|
||||
│ │ │ │ │ │ │ :ref:`stats <sysfs_schemes_stats>`/nr_tried,sz_tried,nr_applied,sz_applied,sz_ops_filter_passed,qt_exceeds,nr_snapshots,max_nr_snapshots
|
||||
│ │ │ │ │ │ │ :ref:`tried_regions <sysfs_schemes_tried_regions>`/total_bytes
|
||||
│ │ │ │ │ │ │ │ 0/start,end,nr_accesses,age,sz_filter_passed
|
||||
│ │ │ │ │ │ │ │ │ probes
|
||||
│ │ │ │ │ │ │ │ │ │ 0/hits
|
||||
│ │ │ │ │ │ │ │ │ │ ...
|
||||
│ │ │ │ │ │ │ │ ...
|
||||
│ │ │ │ │ │ ...
|
||||
│ │ │ │ ...
|
||||
|
|
@ -194,9 +205,9 @@ details). At the moment, only one context per kdamond is supported, so only
|
|||
contexts/<N>/
|
||||
-------------
|
||||
|
||||
In each context directory, three files (``avail_operations``, ``operations``
|
||||
and ``addr_unit``) and three directories (``monitoring_attrs``, ``targets``,
|
||||
and ``schemes``) exist.
|
||||
In each context directory, four files (``avail_operations``, ``operations``,
|
||||
``addr_unit`` and ``pause``) and three directories (``monitoring_attrs``,
|
||||
``targets``, and ``schemes``) exist.
|
||||
|
||||
DAMON supports multiple types of :ref:`monitoring operations
|
||||
<damon_design_configurable_operations_set>`, including those for virtual address
|
||||
|
|
@ -214,6 +225,9 @@ reading from the ``operations`` file.
|
|||
``addr_unit`` file is for setting and getting the :ref:`address unit
|
||||
<damon_design_addr_unit>` parameter of the operations set.
|
||||
|
||||
``pause`` file is for setting and getting the :ref:`pause request
|
||||
<damon_design_execution_model_and_data_structures>` parameter of the context.
|
||||
|
||||
.. _sysfs_monitoring_attrs:
|
||||
|
||||
contexts/<N>/monitoring_attrs/
|
||||
|
|
@ -221,8 +235,8 @@ contexts/<N>/monitoring_attrs/
|
|||
|
||||
Files for specifying attributes of the monitoring including required quality
|
||||
and efficiency of the monitoring are in ``monitoring_attrs`` directory.
|
||||
Specifically, two directories, ``intervals`` and ``nr_regions`` exist in this
|
||||
directory.
|
||||
Specifically, three directories, ``intervals``, ``nr_regions`` and ``probes``
|
||||
exist in this directory.
|
||||
|
||||
Under ``intervals`` directory, three files for DAMON's sampling interval
|
||||
(``sample_us``), aggregation interval (``aggr_us``), and update interval
|
||||
|
|
@ -256,6 +270,29 @@ tuning-applied current values of the two intervals can be read from the
|
|||
``sample_us`` and ``aggr_us`` files after writing ``update_tuned_intervals`` to
|
||||
the ``state`` file.
|
||||
|
||||
.. _damon_usage_sysfs_probes:
|
||||
|
||||
contexts/<N>/monitoring_attrs/probes/
|
||||
-------------------------------------
|
||||
|
||||
A directory for registering :ref:`data attributes monitoring
|
||||
<damon_design_data_attrs_monitoring>` probes.
|
||||
|
||||
In the beginning, this directory has only one file, ``nr_probes``. Writing a
|
||||
number (``N``) to the file creates the number of child directories named ``0``
|
||||
to ``N-1``. Each directory represents each monitoring probe.
|
||||
|
||||
In each probe directory, one directory, ``filters`` exists. The directory
|
||||
contains files for installing filters for the probe, that is used to determine
|
||||
the data attribute for the probe.
|
||||
|
||||
In the beginning, ``filters`` directory has only one file, ``nr_filters``.
|
||||
Writing a number (``N``) to the file creates the number of child directories
|
||||
named ``0`` to ``N-1``. Each directory represents each filter and works in a
|
||||
way similar to that for :ref:`DAMOS filter <sysfs_filters>`. When the filter
|
||||
``type`` is ``memcg``, ``path`` file acts as ``memcg_path`` for :ref:`DAMOS
|
||||
filter <sysfs_filters>`.
|
||||
|
||||
.. _sysfs_targets:
|
||||
|
||||
contexts/<N>/targets/
|
||||
|
|
@ -337,7 +374,7 @@ to ``N-1``. Each directory represents each DAMON-based operation scheme.
|
|||
schemes/<N>/
|
||||
------------
|
||||
|
||||
In each scheme directory, eight directories (``access_pattern``, ``quotas``,
|
||||
In each scheme directory, nine directories (``access_pattern``, ``quotas``,
|
||||
``watermarks``, ``core_filters``, ``ops_filters``, ``filters``, ``dests``,
|
||||
``stats``, and ``tried_regions``) and three files (``action``, ``target_nid``
|
||||
and ``apply_interval``) exist.
|
||||
|
|
@ -377,9 +414,10 @@ schemes/<N>/quotas/
|
|||
The directory for the :ref:`quotas <damon_design_damos_quotas>` of the given
|
||||
DAMON-based operation scheme.
|
||||
|
||||
Under ``quotas`` directory, five files (``ms``, ``bytes``,
|
||||
``reset_interval_ms``, ``effective_bytes`` and ``goal_tuner``) and two
|
||||
directories (``weights`` and ``goals``) exist.
|
||||
Under ``quotas`` directory, seven files (``ms``, ``bytes``,
|
||||
``reset_interval_ms``, ``effective_bytes``, ``goal_tuner``, ``fail_charge_num``
|
||||
and ``fail_charge_denom``) and two directories (``weights`` and ``goals``)
|
||||
exist.
|
||||
|
||||
You can set the ``time quota`` in milliseconds, ``size quota`` in bytes, and
|
||||
``reset interval`` in milliseconds by writing the values to the three files,
|
||||
|
|
@ -398,6 +436,13 @@ the background design of the feature and the name of the selectable algorithms.
|
|||
Refer to :ref:`goals directory <sysfs_schemes_quota_goals>` for the goals
|
||||
setup.
|
||||
|
||||
You can set the action-failed memory quota charging ratio by writing the
|
||||
numerator and the denominator for the ratio to ``fail_charge_num`` and
|
||||
``fail_charge_denom`` files, respectively. Reading those files will return the
|
||||
current set values. Refer to :ref:`design
|
||||
<damon_design_damos_quotas_failed_memory_charging_ratio>` for more details of
|
||||
the ratio feature.
|
||||
|
||||
The time quota is internally transformed to a size quota. Between the
|
||||
transformed size quota and user-specified size quota, smaller one is applied.
|
||||
Based on the user-specified :ref:`goal <sysfs_schemes_quota_goals>`, the
|
||||
|
|
@ -429,10 +474,12 @@ to ``N-1``. Each directory represents each goal and current achievement.
|
|||
Among the multiple feedback, the best one is used.
|
||||
|
||||
Each goal directory contains five files, namely ``target_metric``,
|
||||
``target_value``, ``current_value`` ``nid`` and ``path``. Users can set and
|
||||
``target_value``, ``current_value``, ``nid``, and ``path``. Users can set and
|
||||
get the five parameters for the quota auto-tuning goals that specified on the
|
||||
:ref:`design doc <damon_design_damos_quotas_auto_tuning>` by writing to and
|
||||
reading from each of the files. Note that users should further write
|
||||
reading from each of the files. Because the kernel does not update
|
||||
``current_value``, reading it only makes sense when ``target_metric`` is
|
||||
``user_input``. Note that users should further write
|
||||
``commit_schemes_quota_goals`` to the ``state`` file of the :ref:`kdamond
|
||||
directory <sysfs_kdamond>` to pass the feedback to DAMON.
|
||||
|
||||
|
|
@ -447,7 +494,7 @@ given DAMON-based operation scheme.
|
|||
Under the watermarks directory, five files (``metric``, ``interval_us``,
|
||||
``high``, ``mid``, and ``low``) for setting the metric, the time interval
|
||||
between check of the metric, and the three watermarks exist. You can set and
|
||||
get the five values by writing to the files, respectively.
|
||||
get the five values by writing to and reading from the files, respectively.
|
||||
|
||||
Keywords and meanings of those that can be written to the ``metric`` file are
|
||||
as below.
|
||||
|
|
@ -455,7 +502,7 @@ as below.
|
|||
- none: Ignore the watermarks
|
||||
- free_mem_rate: System's free memory rate (per thousand)
|
||||
|
||||
The ``interval`` should written in microseconds unit.
|
||||
The ``interval_us`` should be written in microseconds unit.
|
||||
|
||||
.. _sysfs_filters:
|
||||
|
||||
|
|
@ -471,10 +518,10 @@ directory can be used for installing filters regardless of their handled
|
|||
layers. Filters that requested by ``core_filters`` and ``ops_filters`` will be
|
||||
installed before those of ``filters``. All three directories have same files.
|
||||
|
||||
Use of ``filters`` directory can make expecting evaluation orders of given
|
||||
filters with the files under directory bit confusing. Users are hence
|
||||
recommended to use ``core_filters`` and ``ops_filters`` directories. The
|
||||
``filters`` directory could be deprecated in future.
|
||||
Use of ``filters`` directory can make filters evaluation orders confusing to
|
||||
expect. For this reason, ``filters`` directory is deprecated. It is still
|
||||
functioning, but is scheduled for removal in the near future. Users should use
|
||||
``core_filters`` and ``ops_filters`` directories instead.
|
||||
|
||||
In the beginning, the directory has only one file, ``nr_filters``. Writing a
|
||||
number (``N``) to the file creates the number of child directories named ``0``
|
||||
|
|
@ -483,9 +530,9 @@ in the numeric order.
|
|||
|
||||
Each filter directory contains nine files, namely ``type``, ``matching``,
|
||||
``allow``, ``memcg_path``, ``addr_start``, ``addr_end``, ``min``, ``max``
|
||||
and ``target_idx``. To ``type`` file, you can write the type of the filter.
|
||||
Refer to :ref:`the design doc <damon_design_damos_filters>` for available type
|
||||
names, their meaning and on what layer those are handled.
|
||||
and ``damon_target_idx``. To ``type`` file, you can write the type of the
|
||||
filter. Refer to :ref:`the design doc <damon_design_damos_filters>` for
|
||||
available type names, their meaning and on what layer those are handled.
|
||||
|
||||
For ``memcg`` type, you can specify the memory cgroup of the interest by
|
||||
writing the path of the memory cgroup from the cgroups mount point to
|
||||
|
|
@ -495,7 +542,7 @@ files, respectively. For ``hugepage_size`` type, you can specify the minimum
|
|||
and maximum size of the range (closed interval) to ``min`` and ``max`` files,
|
||||
respectively. For ``target`` type, you can specify the index of the target
|
||||
between the list of the DAMON context's monitoring targets list to
|
||||
``target_idx`` file.
|
||||
``damon_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
|
||||
|
|
@ -601,10 +648,19 @@ tried_regions/<N>/
|
|||
------------------
|
||||
|
||||
In each region directory, you will find five files (``start``, ``end``,
|
||||
``nr_accesses``, ``age``, and ``sz_filter_passed``). Reading the files will
|
||||
``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.
|
||||
|
||||
tried_regions/<N>/probes/
|
||||
-------------------------
|
||||
|
||||
In each region directory, one directory (``probes``) also exists. In the
|
||||
directory, subdirectories named ``0`` to ``N-1`` exists. ``N`` is the number
|
||||
of installed probes. In each number-named directory, a file (``hits``) exist.
|
||||
Reading the file shows the number of data attributes monitoring probe-hit
|
||||
positive samples of the region.
|
||||
|
||||
Example
|
||||
~~~~~~~
|
||||
|
||||
|
|
@ -677,7 +733,7 @@ show results using tracepoint supporting tools like ``perf``. For example::
|
|||
|
||||
Each line of the perf script output represents each monitoring region. The
|
||||
first five fields are as usual other tracepoint outputs. The sixth field
|
||||
(``target_id=X``) shows the ide of the monitoring target of the region. The
|
||||
(``target_id=X``) shows the id of the monitoring target of the region. The
|
||||
seventh field (``nr_regions=X``) shows the total number of monitoring regions
|
||||
for the target. The eighth field (``X-Y:``) shows the start (``X``) and end
|
||||
(``Y``) addresses of the region in bytes. The ninth field (``X``) shows the
|
||||
|
|
|
|||
|
|
@ -455,7 +455,7 @@ used to change the file attributes on hugetlbfs.
|
|||
Also, it is important to note that no such mount command is required if
|
||||
applications are going to use only shmat/shmget system calls or mmap with
|
||||
MAP_HUGETLB. For an example of how to use mmap with MAP_HUGETLB see
|
||||
:ref:`map_hugetlb <map_hugetlb>` below.
|
||||
:ref:`examples <examples>` below.
|
||||
|
||||
Users who wish to use hugetlb memory via shared memory segment should be
|
||||
members of a supplementary group and system admin needs to configure that gid
|
||||
|
|
@ -473,16 +473,13 @@ a hugetlb page and the length is smaller than the hugepage size.
|
|||
Examples
|
||||
========
|
||||
|
||||
.. _map_hugetlb:
|
||||
.. _examples:
|
||||
|
||||
``map_hugetlb``
|
||||
see tools/testing/selftests/mm/map_hugetlb.c
|
||||
``hugetlb-shm``
|
||||
see tools/testing/selftests/mm/hugetlb-shm.c
|
||||
|
||||
``hugepage-shm``
|
||||
see tools/testing/selftests/mm/hugepage-shm.c
|
||||
|
||||
``hugepage-mmap``
|
||||
see tools/testing/selftests/mm/hugepage-mmap.c
|
||||
``hugetlb-mmap``
|
||||
see tools/testing/selftests/mm/hugetlb-mmap.c
|
||||
|
||||
The `libhugetlbfs`_ library provides a wide range of userspace tools
|
||||
to help with huge page usability, environment setup, and control.
|
||||
|
|
|
|||
|
|
@ -57,13 +57,14 @@ prominent because the size of each page isn't as huge as the PMD-sized
|
|||
variant and there is less memory to clear in each page fault. Some
|
||||
architectures also employ TLB compression mechanisms to squeeze more
|
||||
entries in when a set of PTEs are virtually and physically contiguous
|
||||
and approporiately aligned. In this case, TLB misses will occur less
|
||||
and appropriately aligned. In this case, TLB misses will occur less
|
||||
often.
|
||||
|
||||
THP can be enabled system wide or restricted to certain tasks or even
|
||||
memory ranges inside task's address space. Unless THP is completely
|
||||
disabled, there is ``khugepaged`` daemon that scans memory and
|
||||
collapses sequences of basic pages into PMD-sized huge pages.
|
||||
collapses sequences of basic pages into huge pages of either PMD size
|
||||
or mTHP sizes, if the system is configured to do so.
|
||||
|
||||
The THP behaviour is controlled via :ref:`sysfs <thp_sysfs>`
|
||||
interface and using madvise(2) and prctl(2) system calls.
|
||||
|
|
@ -210,7 +211,7 @@ PMD-mappable transparent hugepage::
|
|||
cat /sys/kernel/mm/transparent_hugepage/hpage_pmd_size
|
||||
|
||||
All THPs at fault and collapse time will be added to _deferred_list,
|
||||
and will therefore be split under memory presure if they are considered
|
||||
and will therefore be split under memory pressure if they are considered
|
||||
"underused". A THP is underused if the number of zero-filled pages in
|
||||
the THP is above max_ptes_none (see below). It is possible to disable
|
||||
this behaviour by writing 0 to shrink_underused, and enable it by writing
|
||||
|
|
@ -219,10 +220,10 @@ this behaviour by writing 0 to shrink_underused, and enable it by writing
|
|||
echo 0 > /sys/kernel/mm/transparent_hugepage/shrink_underused
|
||||
echo 1 > /sys/kernel/mm/transparent_hugepage/shrink_underused
|
||||
|
||||
khugepaged will be automatically started when PMD-sized THP is enabled
|
||||
khugepaged will be automatically started when any THP size is enabled
|
||||
(either of the per-size anon control or the top-level control are set
|
||||
to "always" or "madvise"), and it'll be automatically shutdown when
|
||||
PMD-sized THP is disabled (when both the per-size anon control and the
|
||||
all THP sizes are disabled (when both the per-size anon control and the
|
||||
top-level control are "never")
|
||||
|
||||
process THP controls
|
||||
|
|
@ -265,8 +266,8 @@ Khugepaged controls
|
|||
-------------------
|
||||
|
||||
.. note::
|
||||
khugepaged currently only searches for opportunities to collapse to
|
||||
PMD-sized THP and no attempt is made to collapse to other THP
|
||||
khugepaged currently only searches for opportunities to collapse file/shmem
|
||||
to PMD-sized THP. Only anonymous memory will attempt to collapse to other THP
|
||||
sizes.
|
||||
|
||||
khugepaged runs usually at low frequency so while one may not want to
|
||||
|
|
@ -296,11 +297,11 @@ allocation failure to throttle the next allocation attempt::
|
|||
The khugepaged progress can be seen in the number of pages collapsed (note
|
||||
that this counter may not be an exact count of the number of pages
|
||||
collapsed, since "collapsed" could mean multiple things: (1) A PTE mapping
|
||||
being replaced by a PMD mapping, or (2) All 4K physical pages replaced by
|
||||
one 2M hugepage. Each may happen independently, or together, depending on
|
||||
the type of memory and the failures that occur. As such, this value should
|
||||
be interpreted roughly as a sign of progress, and counters in /proc/vmstat
|
||||
consulted for more accurate accounting)::
|
||||
being replaced by a PMD mapping, or (2) physical pages replaced by one
|
||||
hugepage of various sizes (PMD-sized or mTHP). Each may happen independently,
|
||||
or together, depending on the type of memory and the failures that occur.
|
||||
As such, this value should be interpreted roughly as a sign of progress,
|
||||
and counters in /proc/vmstat consulted for more accurate accounting)::
|
||||
|
||||
/sys/kernel/mm/transparent_hugepage/khugepaged/pages_collapsed
|
||||
|
||||
|
|
@ -308,16 +309,21 @@ for each pass::
|
|||
|
||||
/sys/kernel/mm/transparent_hugepage/khugepaged/full_scans
|
||||
|
||||
``max_ptes_none`` specifies how many extra small pages (that are
|
||||
not already mapped) can be allocated when collapsing a group
|
||||
of small pages into one large page::
|
||||
``max_ptes_none`` specifies how many empty (none/zero) pages are allowed
|
||||
when collapsing a group of small pages into one large page::
|
||||
|
||||
/sys/kernel/mm/transparent_hugepage/khugepaged/max_ptes_none
|
||||
|
||||
A higher value leads to use additional memory for programs.
|
||||
A lower value leads to gain less thp performance. Value of
|
||||
max_ptes_none can waste cpu time very little, you can
|
||||
ignore it.
|
||||
For PMD-sized THP collapse, this directly limits the number of empty pages
|
||||
allowed in the 2MB region.
|
||||
|
||||
For mTHP collapse, only 0 or (HPAGE_PMD_NR - 1) are supported. At
|
||||
HPAGE_PMD_NR - 1, we collapse to the highest possible order. Any intermediate
|
||||
value will emit a warning and mTHP collapse will default to max_ptes_none=0.
|
||||
|
||||
A higher value allows more empty pages, potentially leading to more memory
|
||||
usage but better THP performance. A lower value is more conservative and
|
||||
may result in fewer THP collapses.
|
||||
|
||||
``max_ptes_swap`` specifies how many pages can be brought in from
|
||||
swap when collapsing a group of pages into a transparent huge page::
|
||||
|
|
@ -337,6 +343,15 @@ that THP is shared. Exceeding the number would block the collapse::
|
|||
|
||||
A higher value may increase memory footprint for some workloads.
|
||||
|
||||
.. note::
|
||||
For mTHP collapse, khugepaged does not support collapsing regions that
|
||||
contain shared or swapped out pages, as this could lead to continuous
|
||||
promotion to higher orders. The collapse will fail if any shared or
|
||||
swapped PTEs are encountered during the scan.
|
||||
|
||||
Currently, madvise_collapse only supports collapsing to PMD-sized THPs
|
||||
and does not attempt mTHP collapses.
|
||||
|
||||
Boot parameters
|
||||
===============
|
||||
|
||||
|
|
@ -639,6 +654,14 @@ anon_fault_fallback_charge
|
|||
instead falls back to using huge pages with lower orders or
|
||||
small pages even though the allocation was successful.
|
||||
|
||||
collapse_alloc
|
||||
is incremented every time a huge page is successfully allocated for a
|
||||
khugepaged collapse.
|
||||
|
||||
collapse_alloc_failed
|
||||
is incremented every time a huge page allocation fails during a
|
||||
khugepaged collapse.
|
||||
|
||||
zswpout
|
||||
is incremented every time a huge page is swapped out to zswap in one
|
||||
piece without splitting.
|
||||
|
|
@ -706,6 +729,20 @@ nr_anon_partially_mapped
|
|||
an anonymous THP as "partially mapped" and count it here, even though it
|
||||
is not actually partially mapped anymore.
|
||||
|
||||
collapse_exceed_none_pte
|
||||
The number of collapse attempts that failed due to exceeding the
|
||||
max_ptes_none threshold.
|
||||
|
||||
collapse_exceed_swap_pte
|
||||
The number of collapse attempts that failed due to exceeding the
|
||||
max_ptes_swap threshold. For non-PMD orders this occurs if a mTHP range
|
||||
contains at least one swap PTE.
|
||||
|
||||
collapse_exceed_shared_pte
|
||||
The number of collapse attempts that failed due to exceeding the
|
||||
max_ptes_shared threshold. For non-PMD orders this occurs if a mTHP range
|
||||
contains at least one shared PTE.
|
||||
|
||||
As the system ages, allocating huge pages may be expensive as the
|
||||
system uses memory compaction to copy data around memory to free a
|
||||
huge page for use. There are some counters in ``/proc/vmstat`` to help
|
||||
|
|
|
|||
|
|
@ -88,8 +88,15 @@ and "fabric_cluster_id" in the directory.
|
|||
|
||||
Attributes in each directory:
|
||||
|
||||
``instance_id``
|
||||
This attribute is used to get die indices in userspace mapped MMIO
|
||||
blocks. Indices are local to a single TPMI partition. Needed for direct
|
||||
TPMI register access.
|
||||
|
||||
``domain_id``
|
||||
This attribute is used to get the power domain id of this instance.
|
||||
Indices are unique in all TPMI partitions on a given CPU package. Can be
|
||||
used to map compute dies to corresponding CPUs.
|
||||
|
||||
``die_id``
|
||||
This attribute is used to get the Linux die id of this instance.
|
||||
|
|
|
|||
|
|
@ -1034,6 +1034,8 @@ min(3% of current process size, user_reserve_kbytes) of free memory.
|
|||
This is intended to prevent a user from starting a single memory hogging
|
||||
process, such that they cannot recover (kill the hog).
|
||||
|
||||
This setting has no effect when overcommit_memory is set to 0 or 1.
|
||||
|
||||
user_reserve_kbytes defaults to min(3% of the current process size, 128MB).
|
||||
|
||||
If this is reduced to zero, then the user will be allowed to allocate
|
||||
|
|
|
|||
|
|
@ -373,6 +373,67 @@ port which are named like ``thunderbolt0`` and so on. From this point
|
|||
you can either use standard userspace tools like ``ip`` to
|
||||
configure the interface or let your GUI handle it automatically.
|
||||
|
||||
Streaming data directly over Thunderbolt cable
|
||||
----------------------------------------------
|
||||
In addition to Thunderbolt networking (aka. USB4NET) Linux supports
|
||||
streaming data directly over a cable as well (aka. USB4STREAM). This is
|
||||
possible through ``thunderbolt-stream`` driver.
|
||||
|
||||
Similarly to ``thunderbolt-net`` you load the driver first on one end::
|
||||
|
||||
host1 # modprobe thunderbolt-stream
|
||||
|
||||
Then you configure it via ``ConfigFS``::
|
||||
|
||||
host1 # cd /sys/kernel/config/thunderbolt/stream
|
||||
host1 # mkdir -p 0-1.0/data
|
||||
host1 # cd 0-1.0
|
||||
host1 # echo -1 > data/in_hopid
|
||||
host1 # echo -1 > data/out_hopid
|
||||
|
||||
This information is automatically announced to the other side via
|
||||
XDomain properties so if you have cable connected the other side knows
|
||||
that there is a stream named ``data`` available and can configure it for
|
||||
you automatically::
|
||||
|
||||
host2 # cd /sys/kernel/config/thunderbolt/stream
|
||||
host2 # mkdir -p 0-3.0/data
|
||||
|
||||
Here we used auto-configuration but you can configure it manually too.
|
||||
In that case you need to fill ``in_hopid`` and ``out_hopid`` accordingly.
|
||||
If you set them to ``-1`` the next available HopID is used which is
|
||||
typically what we want.
|
||||
|
||||
Once they are configured you can use ``/dev/tbstreamX`` on both sides to
|
||||
transfer data::
|
||||
|
||||
host2 # cat /dev/tbstream0
|
||||
host1 # dmesg > /dev/tbstream0
|
||||
|
||||
Once you are done with the stream you can remove them::
|
||||
|
||||
host2 # cd /sys/kernel/config/thunderbolt/stream
|
||||
host2 # rmdir -p 0-1.0/data
|
||||
host1 # cd /sys/kernel/config/thunderbolt/stream
|
||||
host1 # rmdir -p 0-3.0/data
|
||||
|
||||
Since streams are essentially files you can use any existing application
|
||||
that supports ``read(2)`` and ``write(2)`` in some form.
|
||||
|
||||
It is possible to have more than one stream and you can have both stream
|
||||
and ``thunderbolt-net`` in use simultaneously. For example we can create
|
||||
two streams with name ``control`` and ``data`` like this::
|
||||
|
||||
host1 # cd /sys/kernel/config/thunderbolt/stream
|
||||
host1 # mkdir 0-1.0
|
||||
host1 # cd 0-1.0
|
||||
host1 # mkdir control
|
||||
host1 # mkdir data
|
||||
|
||||
Then you have ``/dev/tbstream0`` for ``control`` and ``/dev/tbstream1``
|
||||
for ``data``. Before you can use them you need to configure them as
|
||||
shown above for the one stream case.
|
||||
|
||||
Forcing power
|
||||
-------------
|
||||
Many OEMs include a method that can be used to force the power of a
|
||||
|
|
|
|||
|
|
@ -28,6 +28,11 @@ KHO persistent memory tracker ABI
|
|||
.. kernel-doc:: include/linux/kho/abi/kexec_handover.h
|
||||
:doc: KHO persistent memory tracker
|
||||
|
||||
KHO serialization block ABI
|
||||
===========================
|
||||
|
||||
.. kernel-doc:: include/linux/kho/abi/block.h
|
||||
|
||||
See Also
|
||||
========
|
||||
|
||||
|
|
|
|||
|
|
@ -83,6 +83,17 @@ Public API
|
|||
.. kernel-doc:: kernel/liveupdate/kexec_handover.c
|
||||
:export:
|
||||
|
||||
KHO Serialization Blocks API
|
||||
============================
|
||||
|
||||
.. kernel-doc:: kernel/liveupdate/kho_block.c
|
||||
:doc: KHO Serialization Blocks
|
||||
|
||||
.. kernel-doc:: include/linux/kho_block.h
|
||||
|
||||
.. kernel-doc:: kernel/liveupdate/kho_block.c
|
||||
:internal:
|
||||
|
||||
See Also
|
||||
========
|
||||
|
||||
|
|
|
|||
|
|
@ -82,9 +82,9 @@ xor_val xor a series of source buffers and set a flag if the
|
|||
pq generate the p+q (raid6 syndrome) from a series of source buffers
|
||||
pq_val validate that a p and or q buffer are in sync with a given series of
|
||||
sources
|
||||
datap (raid6_datap_recov) recover a raid6 data block and the p block
|
||||
datap (raid6_recov_datap) recover a raid6 data block and the p block
|
||||
from the given sources
|
||||
2data (raid6_2data_recov) recover 2 raid6 data blocks from the given
|
||||
2data (raid6_recov_2data) recover 2 raid6 data blocks from the given
|
||||
sources
|
||||
======== ====================================================================
|
||||
|
||||
|
|
|
|||
|
|
@ -184,6 +184,13 @@ Available options:
|
|||
Override checking of perl version. Runtime errors may be encountered after
|
||||
enabling this flag if the perl version does not meet the minimum specified.
|
||||
|
||||
- --spdx-cxx-comments
|
||||
|
||||
Don't force C comments ``/* */`` for SPDX license (required by old
|
||||
toolchains), allow also C++ comments ``//``.
|
||||
|
||||
NOTE: it should *not* be used for Linux mainline.
|
||||
|
||||
- --codespell
|
||||
|
||||
Use the codespell dictionary for checking spelling errors.
|
||||
|
|
@ -210,6 +217,13 @@ Available options:
|
|||
|
||||
Display the help text.
|
||||
|
||||
Configuration file
|
||||
==================
|
||||
|
||||
Default configuration options can be stored in ``.checkpatch.conf``, search
|
||||
path: ``.:$HOME:.scripts`` or in a directory specified by ``$CHECKPATCH_CONFIG_DIR``
|
||||
environment variable (falling back to the default search path).
|
||||
|
||||
Message Levels
|
||||
==============
|
||||
|
||||
|
|
|
|||
|
|
@ -237,6 +237,9 @@ Both ``kcov_remote_start`` and ``kcov_remote_stop`` annotations and the
|
|||
collection sections. The way a handle is used depends on the context where the
|
||||
matching code section executes.
|
||||
|
||||
A thread can use two separate KCOV instances to collect remote coverage and
|
||||
normal coverage at the same time.
|
||||
|
||||
KCOV supports collecting remote coverage from the following contexts:
|
||||
|
||||
1. Global kernel background tasks. These are the tasks that are spawned during
|
||||
|
|
@ -262,6 +265,9 @@ gets saved to the ``kcov_handle`` field in the current ``task_struct`` and
|
|||
needs to be passed to the newly spawned local tasks via custom kernel code
|
||||
modifications. Those tasks should in turn use the passed handle in their
|
||||
``kcov_remote_start`` and ``kcov_remote_stop`` annotations.
|
||||
In the kernel, common handles are wrapped in a ``kcov_common_handle_id``, which
|
||||
consumes no space in builds without ``CONFIG_KCOV``; subsystems that integrate
|
||||
with this mechanism should not need to use any ``#ifdef CONFIG_KCOV`` or such.
|
||||
|
||||
KCOV follows a predefined format for both global and common handles. Each
|
||||
handle is a ``u64`` integer. Currently, only the one top and the lower 4 bytes
|
||||
|
|
|
|||
|
|
@ -15,11 +15,6 @@ able to run that test on an older kernel. Hence, it is important to keep
|
|||
code that can still test an older kernel and make sure it skips the test
|
||||
gracefully on newer releases.
|
||||
|
||||
You can find additional information on Kselftest framework, how to
|
||||
write new tests using the framework on Kselftest wiki:
|
||||
|
||||
https://kselftest.wiki.kernel.org/
|
||||
|
||||
On some systems, hot-plug tests could hang forever waiting for cpu and
|
||||
memory to be ready to be offlined. A special hot-plug target is created
|
||||
to run the full range of hot-plug tests. In default mode, hot-plug tests run
|
||||
|
|
|
|||
|
|
@ -234,6 +234,12 @@ properties:
|
|||
- amlogic,av400
|
||||
- const: amlogic,a5
|
||||
|
||||
- description: Boards with the Amlogic A9 A311Y3 SoC
|
||||
items:
|
||||
- enum:
|
||||
- amlogic,by401
|
||||
- const: amlogic,a9
|
||||
|
||||
- description: Boards with the Amlogic C3 C302X/C308L SoC
|
||||
items:
|
||||
- enum:
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ properties:
|
|||
const: 1
|
||||
|
||||
clocks:
|
||||
minItems: 14
|
||||
minItems: 15
|
||||
items:
|
||||
- description: input oscillator
|
||||
- description: input sys clk
|
||||
|
|
@ -40,12 +40,13 @@ properties:
|
|||
- description: input gp1 pll
|
||||
- description: input mpll1
|
||||
- description: input mpll2
|
||||
- description: input mpll3
|
||||
- description: external input rmii oscillator (optional)
|
||||
- description: input video pll0 (optional)
|
||||
- description: external pad input for rtc (optional)
|
||||
|
||||
clock-names:
|
||||
minItems: 14
|
||||
minItems: 15
|
||||
items:
|
||||
- const: xtal
|
||||
- const: sys
|
||||
|
|
@ -61,6 +62,7 @@ properties:
|
|||
- const: gp1
|
||||
- const: mpll1
|
||||
- const: mpll2
|
||||
- const: mpll3
|
||||
- const: ext_rmii
|
||||
- const: vid_pll0
|
||||
- const: ext_rtc
|
||||
|
|
@ -97,7 +99,8 @@ examples:
|
|||
<&gp0 1>,
|
||||
<&gp1 1>,
|
||||
<&mpll 4>,
|
||||
<&mpll 6>;
|
||||
<&mpll 6>,
|
||||
<&mpll 8>;
|
||||
clock-names = "xtal",
|
||||
"sys",
|
||||
"fix",
|
||||
|
|
@ -111,6 +114,7 @@ examples:
|
|||
"gp0",
|
||||
"gp1",
|
||||
"mpll1",
|
||||
"mpll2";
|
||||
"mpll2",
|
||||
"mpll3";
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -72,7 +72,7 @@ allOf:
|
|||
contains:
|
||||
enum:
|
||||
- amlogic,t7-gp0-pll
|
||||
- amlogic,t7-gp1--pll
|
||||
- amlogic,t7-gp1-pll
|
||||
- amlogic,t7-hifi-pll
|
||||
- amlogic,t7-pcie-pll
|
||||
- amlogic,t7-mpll
|
||||
|
|
|
|||
59
Documentation/devicetree/bindings/clock/canaan,k230-clk.yaml
Normal file
59
Documentation/devicetree/bindings/clock/canaan,k230-clk.yaml
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/clock/canaan,k230-clk.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Canaan Kendryte K230 Clock
|
||||
|
||||
maintainers:
|
||||
- Xukai Wang <kingxukai@zohomail.com>
|
||||
|
||||
description:
|
||||
The Canaan K230 clock controller generates various clocks for SoC
|
||||
peripherals. See include/dt-bindings/clock/canaan,k230-clk.h for
|
||||
valid clock IDs.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: canaan,k230-clk
|
||||
|
||||
reg:
|
||||
items:
|
||||
- description: PLL control registers
|
||||
- description: Sysclk control registers
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: Main external reference clock
|
||||
- description:
|
||||
External clock which used as the pulse input
|
||||
for the timer to provide timing signals.
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: osc24m
|
||||
- const: timer-pulse-in
|
||||
|
||||
'#clock-cells':
|
||||
const: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
- clock-names
|
||||
- '#clock-cells'
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
clock-controller@91102000 {
|
||||
compatible = "canaan,k230-clk";
|
||||
reg = <0x91102000 0x40>,
|
||||
<0x91100000 0x108>;
|
||||
clocks = <&osc24m>, <&timerx_pulse_in>;
|
||||
clock-names = "osc24m", "timer-pulse-in";
|
||||
#clock-cells = <1>;
|
||||
};
|
||||
|
|
@ -37,6 +37,9 @@ properties:
|
|||
'#power-domain-cells':
|
||||
const: 1
|
||||
|
||||
'#reset-cells':
|
||||
const: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
|
@ -44,16 +47,27 @@ required:
|
|||
|
||||
additionalProperties: false
|
||||
|
||||
if:
|
||||
not:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: marvell,pxa1908-apmu
|
||||
|
||||
then:
|
||||
properties:
|
||||
'#power-domain-cells': false
|
||||
allOf:
|
||||
- if:
|
||||
not:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: marvell,pxa1908-apmu
|
||||
then:
|
||||
properties:
|
||||
'#power-domain-cells': false
|
||||
- if:
|
||||
not:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- marvell,pxa1908-apbc
|
||||
- marvell,pxa1908-apbcp
|
||||
then:
|
||||
properties:
|
||||
'#reset-cells': false
|
||||
|
||||
examples:
|
||||
# APMU block:
|
||||
|
|
|
|||
|
|
@ -42,12 +42,6 @@ properties:
|
|||
- const: cfg_ahb_clk
|
||||
- const: gcc_disp_gpll0_div_clk_src
|
||||
|
||||
'#clock-cells':
|
||||
const: 1
|
||||
|
||||
'#power-domain-cells':
|
||||
const: 1
|
||||
|
||||
power-domains:
|
||||
description:
|
||||
A phandle and PM domain specifier for the CX power domain.
|
||||
|
|
@ -58,18 +52,16 @@ properties:
|
|||
A phandle to an OPP node describing the power domain's performance point.
|
||||
maxItems: 1
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
- clock-names
|
||||
- '#clock-cells'
|
||||
- '#power-domain-cells'
|
||||
|
||||
additionalProperties: false
|
||||
allOf:
|
||||
- $ref: qcom,gcc.yaml#
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
|
|
@ -101,6 +93,7 @@ examples:
|
|||
power-domains = <&rpmpd SM6125_VDDCX>;
|
||||
|
||||
#clock-cells = <1>;
|
||||
#reset-cells = <1>;
|
||||
#power-domain-cells = <1>;
|
||||
};
|
||||
...
|
||||
|
|
|
|||
63
Documentation/devicetree/bindings/clock/qcom,hawi-gcc.yaml
Normal file
63
Documentation/devicetree/bindings/clock/qcom,hawi-gcc.yaml
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/clock/qcom,hawi-gcc.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Qualcomm Global Clock & Reset Controller on Hawi
|
||||
|
||||
maintainers:
|
||||
- Vivek Aknurwar <vivek.aknurwar@oss.qualcomm.com>
|
||||
|
||||
description: |
|
||||
Qualcomm global clock control module provides the clocks, resets and power
|
||||
domains on Hawi.
|
||||
|
||||
See also: include/dt-bindings/clock/qcom,hawi-gcc.h
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: qcom,hawi-gcc
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: Board XO source
|
||||
- description: Board Always On XO source
|
||||
- description: Sleep clock source
|
||||
- description: PCIE 0 Pipe clock source
|
||||
- description: PCIE 1 Pipe clock source
|
||||
- description: UFS PHY RX symbol 0 clock
|
||||
- description: UFS PHY RX symbol 1 clock
|
||||
- description: UFS PHY TX symbol 0 clock
|
||||
- description: USB3 PHY wrapper pipe clock
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- clocks
|
||||
- '#power-domain-cells'
|
||||
|
||||
allOf:
|
||||
- $ref: qcom,gcc.yaml#
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/qcom,rpmh.h>
|
||||
clock-controller@100000 {
|
||||
compatible = "qcom,hawi-gcc";
|
||||
reg = <0x00100000 0x1f4200>;
|
||||
clocks = <&rpmhcc RPMH_CXO_CLK>,
|
||||
<&rpmhcc RPMH_CXO_CLK_A>,
|
||||
<&sleep_clk>,
|
||||
<&pcie0_phy>,
|
||||
<&pcie1_phy>,
|
||||
<&ufs_mem_phy 0>,
|
||||
<&ufs_mem_phy 1>,
|
||||
<&ufs_mem_phy 2>,
|
||||
<&usb_1_qmpphy>;
|
||||
#clock-cells = <1>;
|
||||
#reset-cells = <1>;
|
||||
#power-domain-cells = <1>;
|
||||
};
|
||||
...
|
||||
|
|
@ -8,7 +8,7 @@ title: Qualcomm CMN PLL Clock Controller on IPQ SoC
|
|||
|
||||
maintainers:
|
||||
- Bjorn Andersson <andersson@kernel.org>
|
||||
- Luo Jie <quic_luoj@quicinc.com>
|
||||
- Luo Jie <jie.luo@oss.qualcomm.com>
|
||||
|
||||
description:
|
||||
The CMN (or common) PLL clock controller expects a reference
|
||||
|
|
@ -25,6 +25,7 @@ properties:
|
|||
compatible:
|
||||
enum:
|
||||
- qcom,ipq5018-cmn-pll
|
||||
- qcom,ipq5332-cmn-pll
|
||||
- qcom,ipq5424-cmn-pll
|
||||
- qcom,ipq6018-cmn-pll
|
||||
- qcom,ipq8074-cmn-pll
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ required:
|
|||
- power-domains
|
||||
- '#power-domain-cells'
|
||||
|
||||
unevaluatedProperties: false
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
|
|
|
|||
|
|
@ -25,6 +25,10 @@ properties:
|
|||
- description: Sleep clock source
|
||||
- description: Camera AHB clock from GCC
|
||||
|
||||
interconnects:
|
||||
items:
|
||||
- description: Interconnect path to enable the MultiMedia NoC
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- clocks
|
||||
|
|
@ -37,12 +41,16 @@ unevaluatedProperties: false
|
|||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/qcom,milos-gcc.h>
|
||||
#include <dt-bindings/interconnect/qcom,icc.h>
|
||||
#include <dt-bindings/interconnect/qcom,milos-rpmh.h>
|
||||
clock-controller@adb0000 {
|
||||
compatible = "qcom,milos-camcc";
|
||||
reg = <0x0adb0000 0x40000>;
|
||||
clocks = <&bi_tcxo_div2>,
|
||||
<&sleep_clk>,
|
||||
<&gcc GCC_CAMERA_AHB_CLK>;
|
||||
interconnects = <&mmss_noc MASTER_CAMNOC_HF QCOM_ICC_TAG_ALWAYS
|
||||
&mmss_noc SLAVE_MNOC_HF_MEM_NOC QCOM_ICC_TAG_ALWAYS>;
|
||||
#clock-cells = <1>;
|
||||
#reset-cells = <1>;
|
||||
#power-domain-cells = <1>;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,61 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/clock/qcom,milos-gxclkctl.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Qualcomm Graphics Power Domain Controller on Milos
|
||||
|
||||
maintainers:
|
||||
- Luca Weiss <luca.weiss@fairphone.com>
|
||||
|
||||
description: |
|
||||
Qualcomm GX(graphics) is a clock controller which has PLLs, clocks and
|
||||
Power domains (GDSC). This module provides the power domains control
|
||||
of gxclkctl on Qualcomm SoCs which helps the recovery of Graphics subsystem.
|
||||
|
||||
See also:
|
||||
include/dt-bindings/clock/qcom,kaanapali-gxclkctl.h
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- qcom,milos-gxclkctl
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
power-domains:
|
||||
description:
|
||||
Power domains required for the clock controller to operate
|
||||
items:
|
||||
- description: GFX power domain
|
||||
- description: GPUCC(CX) power domain
|
||||
|
||||
'#power-domain-cells':
|
||||
const: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- power-domains
|
||||
- '#power-domain-cells'
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/power/qcom,rpmhpd.h>
|
||||
soc {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
|
||||
clock-controller@3d64000 {
|
||||
compatible = "qcom,milos-gxclkctl";
|
||||
reg = <0x0 0x03d64000 0x0 0x6000>;
|
||||
power-domains = <&rpmhpd RPMHPD_GFX>,
|
||||
<&gpucc 0>;
|
||||
#power-domain-cells = <1>;
|
||||
};
|
||||
};
|
||||
...
|
||||
|
|
@ -8,7 +8,7 @@ title: Qualcomm NSS Clock & Reset Controller on QCA8386/QCA8084
|
|||
|
||||
maintainers:
|
||||
- Bjorn Andersson <andersson@kernel.org>
|
||||
- Luo Jie <quic_luoj@quicinc.com>
|
||||
- Luo Jie <jie.luo@oss.qualcomm.com>
|
||||
|
||||
description: |
|
||||
Qualcomm NSS clock control module provides the clocks and resets
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ properties:
|
|||
enum:
|
||||
- qcom,eliza-rpmh-clk
|
||||
- qcom,glymur-rpmh-clk
|
||||
- qcom,hawi-rpmh-clk
|
||||
- qcom,kaanapali-rpmh-clk
|
||||
- qcom,milos-rpmh-clk
|
||||
- qcom,nord-rpmh-clk
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ description: |
|
|||
include/dt-bindings/clock/qcom,sm8450-videocc.h
|
||||
include/dt-bindings/clock/qcom,sm8650-videocc.h
|
||||
include/dt-bindings/clock/qcom,sm8750-videocc.h
|
||||
include/dt-bindings/clock/qcom,x1p42100-videocc.h
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
|
|
@ -32,6 +33,7 @@ properties:
|
|||
- qcom,sm8650-videocc
|
||||
- qcom,sm8750-videocc
|
||||
- qcom,x1e80100-videocc
|
||||
- qcom,x1p42100-videocc
|
||||
|
||||
clocks:
|
||||
items:
|
||||
|
|
@ -70,6 +72,7 @@ allOf:
|
|||
- qcom,sm8450-videocc
|
||||
- qcom,sm8550-videocc
|
||||
- qcom,sm8750-videocc
|
||||
- qcom,x1p42100-videocc
|
||||
then:
|
||||
required:
|
||||
- required-opps
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ description: |
|
|||
See also:
|
||||
- include/dt-bindings/clock/qcom,eliza-tcsr.h
|
||||
- include/dt-bindings/clock/qcom,glymur-tcsr.h
|
||||
- include/dt-bindings/clock/qcom,hawi-tcsrcc.h
|
||||
- include/dt-bindings/clock/qcom,nord-tcsrcc.h
|
||||
- include/dt-bindings/clock/qcom,sm8550-tcsr.h
|
||||
- include/dt-bindings/clock/qcom,sm8650-tcsr.h
|
||||
|
|
@ -28,6 +29,7 @@ properties:
|
|||
- enum:
|
||||
- qcom,eliza-tcsr
|
||||
- qcom,glymur-tcsr
|
||||
- qcom,hawi-tcsrcc
|
||||
- qcom,kaanapali-tcsr
|
||||
- qcom,milos-tcsr
|
||||
- qcom,nord-tcsrcc
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ properties:
|
|||
compatible:
|
||||
enum:
|
||||
- qcom,x1e80100-camcc
|
||||
- qcom,x1p42100-camcc
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@ examples:
|
|||
clock-output-names = "main", "pll0", "pll1", "pll2",
|
||||
"pll2s", "pll2h", "z", "z2",
|
||||
"i", "m3", "b", "m1", "m2",
|
||||
"zx", "zs", "hp";
|
||||
"zx", "zs", "hp", "ztr", "zt";
|
||||
};
|
||||
|
||||
sdhi2_clk: sdhi2_clk@e615007c {
|
||||
|
|
|
|||
|
|
@ -200,9 +200,11 @@ examples:
|
|||
<0x0aec2000 0x1c8>;
|
||||
|
||||
clocks = <&dispcc0 MDSS_DISP_CC_MDSS_DPTX0_AUX_CLK>,
|
||||
<&dispcc0 MDSS_DISP_CC_MDSS_AHB_CLK>;
|
||||
<&dispcc0 MDSS_DISP_CC_MDSS_AHB_CLK>,
|
||||
<&gcc GCC_EDP_REF_CLKREF_EN>;
|
||||
clock-names = "aux",
|
||||
"cfg_ahb";
|
||||
"cfg_ahb",
|
||||
"ref";
|
||||
|
||||
#clock-cells = <1>;
|
||||
#phy-cells = <0>;
|
||||
|
|
|
|||
|
|
@ -12,6 +12,9 @@ description: |
|
|||
DMAMUX0 and DMAMUX1, specific DMA request source can only be multiplexed
|
||||
by any channel of certain group, DMAMUX0 or DMAMUX1, but not both.
|
||||
|
||||
This binding has an inverted dma-channel-mask definition compared to
|
||||
the common DMA binding for historical reasons.
|
||||
|
||||
maintainers:
|
||||
- Peng Fan <peng.fan@nxp.com>
|
||||
|
||||
|
|
@ -95,6 +98,12 @@ properties:
|
|||
eDMA are implemented in big endian mode, otherwise in little mode.
|
||||
type: boolean
|
||||
|
||||
dma-channel-mask:
|
||||
description: |
|
||||
Bitmask of available DMA channels (inverted definition).
|
||||
Bit semantics: 0 means channel available, 1 means channel unavailable
|
||||
default: 0
|
||||
|
||||
required:
|
||||
- "#dma-cells"
|
||||
- compatible
|
||||
|
|
|
|||
|
|
@ -14,17 +14,16 @@ description: |
|
|||
maintainers:
|
||||
- Jon Hunter <jonathanh@nvidia.com>
|
||||
- Rajesh Gumasta <rgumasta@nvidia.com>
|
||||
|
||||
allOf:
|
||||
- $ref: dma-controller.yaml#
|
||||
- Akhil R <akhilrajeev@nvidia.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
oneOf:
|
||||
- const: nvidia,tegra186-gpcdma
|
||||
- enum:
|
||||
- nvidia,tegra264-gpcdma
|
||||
- nvidia,tegra186-gpcdma
|
||||
- items:
|
||||
- enum:
|
||||
- nvidia,tegra264-gpcdma
|
||||
- nvidia,tegra234-gpcdma
|
||||
- nvidia,tegra194-gpcdma
|
||||
- const: nvidia,tegra186-gpcdma
|
||||
|
|
@ -51,6 +50,14 @@ properties:
|
|||
iommus:
|
||||
maxItems: 1
|
||||
|
||||
iommu-map:
|
||||
description:
|
||||
Maps DMA channel numbers to IOMMU stream IDs. A single entry can map all
|
||||
channels when stream IDs are contiguous. In systems where the channels or
|
||||
stream IDs are not contiguous, multiple entries may be needed.
|
||||
minItems: 1
|
||||
maxItems: 32
|
||||
|
||||
dma-coherent: true
|
||||
|
||||
dma-channel-mask:
|
||||
|
|
@ -60,12 +67,23 @@ required:
|
|||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- resets
|
||||
- reset-names
|
||||
- "#dma-cells"
|
||||
- iommus
|
||||
- dma-channel-mask
|
||||
|
||||
allOf:
|
||||
- $ref: dma-controller.yaml#
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- nvidia,tegra186-gpcdma
|
||||
then:
|
||||
required:
|
||||
- resets
|
||||
- reset-names
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
|
|
|
|||
|
|
@ -23,6 +23,8 @@ properties:
|
|||
- qcom,bam-v1.4.0
|
||||
# MSM8916, SDM630
|
||||
- qcom,bam-v1.7.0
|
||||
# Kaanapali
|
||||
- qcom,bam-v2.0.0
|
||||
- items:
|
||||
- enum:
|
||||
# SDM845, SM6115, SM8150, SM8250 and QCM2290
|
||||
|
|
@ -118,4 +120,23 @@ examples:
|
|||
#dma-cells = <1>;
|
||||
qcom,ee = <0>;
|
||||
};
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
|
||||
soc {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
|
||||
dma-controller@1dc4000 {
|
||||
compatible = "qcom,bam-v2.0.0";
|
||||
reg = <0x0 0x01dc4000 0x0 0x22000>;
|
||||
interrupts = <GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH>;
|
||||
#dma-cells = <1>;
|
||||
iommus = <&apps_smmu 0xc0 0>, <&apps_smmu 0xc1 0>;
|
||||
qcom,ee = <0>;
|
||||
qcom,num-ees = <4>;
|
||||
num-channels = <20>;
|
||||
qcom,controlled-remotely;
|
||||
};
|
||||
};
|
||||
...
|
||||
|
|
|
|||
|
|
@ -24,7 +24,9 @@ properties:
|
|||
- qcom,sm6350-gpi-dma
|
||||
- items:
|
||||
- enum:
|
||||
- qcom,eliza-gpi-dma
|
||||
- qcom,glymur-gpi-dma
|
||||
- qcom,hawi-gpi-dma
|
||||
- qcom,kaanapali-gpi-dma
|
||||
- qcom,milos-gpi-dma
|
||||
- qcom,qcm2290-gpi-dma
|
||||
|
|
@ -35,6 +37,7 @@ properties:
|
|||
- qcom,sc7280-gpi-dma
|
||||
- qcom,sc8280xp-gpi-dma
|
||||
- qcom,sdx75-gpi-dma
|
||||
- qcom,shikra-gpi-dma
|
||||
- qcom,sm6115-gpi-dma
|
||||
- qcom,sm6375-gpi-dma
|
||||
- qcom,sm8350-gpi-dma
|
||||
|
|
|
|||
|
|
@ -21,11 +21,12 @@ properties:
|
|||
- enum:
|
||||
- snps,axi-dma-1.01a
|
||||
- intel,kmb-axi-dma
|
||||
- sophgo,cv1800b-axi-dma
|
||||
- starfive,jh7110-axi-dma
|
||||
- starfive,jh8100-axi-dma
|
||||
- items:
|
||||
- const: altr,agilex5-axi-dma
|
||||
- enum:
|
||||
- altr,agilex5-axi-dma
|
||||
- sophgo,cv1800b-axi-dma
|
||||
- const: snps,axi-dma-1.01a
|
||||
|
||||
reg:
|
||||
|
|
|
|||
|
|
@ -14,7 +14,9 @@ allOf:
|
|||
|
||||
properties:
|
||||
compatible:
|
||||
const: spacemit,k1-pdma
|
||||
enum:
|
||||
- spacemit,k1-pdma
|
||||
- spacemit,k3-pdma
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
|
|
|||
|
|
@ -0,0 +1,63 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/embedded-controller/microsoft,surface-rt-ec.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Microsoft Surface RT fuel gauge and charger EC
|
||||
|
||||
maintainers:
|
||||
- Jonas Schwöbel <jonasschwoebel@yahoo.de>
|
||||
- Svyatoslav Ryhel <clamor95@gmail.com>
|
||||
|
||||
description:
|
||||
An Embedded Controller used in Microsoft Surface RT for monitoring
|
||||
battery properties and charger status.
|
||||
|
||||
allOf:
|
||||
- $ref: /schemas/power/supply/power-supply.yaml#
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: microsoft,surface-rt-ec
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
enable-gpios:
|
||||
maxItems: 1
|
||||
|
||||
monitored-battery: true
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- enable-gpios
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
embedded-controller@a {
|
||||
compatible = "microsoft,surface-rt-ec";
|
||||
reg = <0x0a>;
|
||||
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupts = <74 IRQ_TYPE_EDGE_RISING>;
|
||||
|
||||
enable-gpios = <&gpio 88 GPIO_ACTIVE_HIGH>;
|
||||
monitored-battery = <&battery>;
|
||||
};
|
||||
};
|
||||
...
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
Altera Arria10 Partial Reconfiguration IP
|
||||
|
||||
Required properties:
|
||||
- compatible : should contain "altr,a10-pr-ip"
|
||||
- reg : base address and size for memory mapped io.
|
||||
|
||||
Example:
|
||||
|
||||
fpga_mgr: fpga-mgr@ff20c000 {
|
||||
compatible = "altr,a10-pr-ip";
|
||||
reg = <0xff20c000 0x10>;
|
||||
};
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
Altera SOCFPGA FPGA Manager
|
||||
|
||||
Required properties:
|
||||
- compatible : should contain "altr,socfpga-fpga-mgr"
|
||||
- reg : base address and size for memory mapped io.
|
||||
- The first index is for FPGA manager register access.
|
||||
- The second index is for writing FPGA configuration data.
|
||||
- interrupts : interrupt for the FPGA Manager device.
|
||||
|
||||
Example:
|
||||
|
||||
hps_0_fpgamgr: fpgamgr@ff706000 {
|
||||
compatible = "altr,socfpga-fpga-mgr";
|
||||
reg = <0xFF706000 0x1000
|
||||
0xFFB90000 0x1000>;
|
||||
interrupts = <0 175 4>;
|
||||
};
|
||||
34
Documentation/devicetree/bindings/fpga/altr,a10-pr-ip.yaml
Normal file
34
Documentation/devicetree/bindings/fpga/altr,a10-pr-ip.yaml
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/fpga/altr,a10-pr-ip.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Altera Arria10 Partial Reconfiguration IP
|
||||
|
||||
maintainers:
|
||||
- Matthew Gerlach <matthew.gerlach@linux.intel.com>
|
||||
|
||||
description:
|
||||
The Altera Arria 10 Partial Reconfiguration IP core allows the host
|
||||
processor to perform partial reconfiguration of the FPGA fabric.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: altr,a10-pr-ip
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
fpga-mgr@ff20c000 {
|
||||
compatible = "altr,a10-pr-ip";
|
||||
reg = <0xff20c000 0x10>;
|
||||
};
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/fpga/altr,socfpga-fpga-mgr.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Altera SOCFPGA FPGA Manager
|
||||
|
||||
maintainers:
|
||||
- Steffen Trumtrar <s.trumtrar@pengutronix.de>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: altr,socfpga-fpga-mgr
|
||||
|
||||
reg:
|
||||
items:
|
||||
- description: FPGA manager register access
|
||||
- description: Writing FPGA configuration data
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
fpgamgr@ff706000 {
|
||||
compatible = "altr,socfpga-fpga-mgr";
|
||||
reg = <0xff706000 0x1000>,
|
||||
<0xffb90000 0x1000>;
|
||||
interrupts = <0 175 4>;
|
||||
};
|
||||
|
|
@ -0,0 +1,98 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/fpga/efinix,trion-config.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Efinix SPI FPGA Manager
|
||||
|
||||
maintainers:
|
||||
- Ian Dannapel <iansdannapel@gmail.com>
|
||||
|
||||
description: |
|
||||
Efinix FPGAs (Trion, Topaz, and Titanium families) support loading bitstreams
|
||||
through "SPI Passive Mode".
|
||||
Additional pin hogs for bus width configuration should be set
|
||||
elsewhere, if necessary.
|
||||
|
||||
References:
|
||||
- https://www.efinixinc.com/docs/an006-configuring-trion-fpgas-v6.3.pdf
|
||||
- https://www.efinixinc.com/docs/an033-configuring-titanium-fpgas-v2.8.pdf
|
||||
- https://www.efinixinc.com/docs/an061-configuring-topaz-fpgas-v1.1.pdf
|
||||
|
||||
allOf:
|
||||
- $ref: /schemas/spi/spi-peripheral-props.yaml#
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
oneOf:
|
||||
- items:
|
||||
- enum:
|
||||
- efinix,titanium-config
|
||||
- efinix,topaz-config
|
||||
- const: efinix,trion-config
|
||||
- const: efinix,trion-config
|
||||
|
||||
spi-cpha: true
|
||||
|
||||
spi-cpol: true
|
||||
|
||||
spi-max-frequency:
|
||||
maximum: 25000000
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
reset-gpios:
|
||||
description:
|
||||
reset and re-configuration trigger pin (low active)
|
||||
maxItems: 1
|
||||
|
||||
cdone-gpios:
|
||||
description:
|
||||
optional configuration done status pin (high active)
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- reset-gpios
|
||||
- spi-cpha
|
||||
- spi-cpol
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
cs-gpios = <&gpio5 13 GPIO_ACTIVE_LOW>;
|
||||
fpga-mgr@0 {
|
||||
compatible = "efinix,trion-config";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <25000000>;
|
||||
spi-cpha;
|
||||
spi-cpol;
|
||||
reset-gpios = <&gpio4 17 GPIO_ACTIVE_LOW>;
|
||||
cdone-gpios = <&gpio0 9 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
};
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
cs-gpios = <&gpio5 13 GPIO_ACTIVE_LOW>;
|
||||
fpga-mgr@0 {
|
||||
compatible = "efinix,titanium-config", "efinix,trion-config";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <25000000>;
|
||||
spi-cpha;
|
||||
spi-cpol;
|
||||
reset-gpios = <&gpio4 17 GPIO_ACTIVE_LOW>;
|
||||
cdone-gpios = <&gpio0 9 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
};
|
||||
...
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/fpga/technologic,ts7300-fpga.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Technologic Systems TS-7300 FPGA Manager
|
||||
|
||||
maintainers:
|
||||
- Florian Fainelli <f.fainelli@gmail.com>
|
||||
|
||||
description:
|
||||
FPGA manager for the Altera Cyclone II FPGA on Technologic Systems
|
||||
TS-7300 board. The FPGA is programmed via the memory-mapped interface
|
||||
implemented in the CPLD.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: technologic,ts7300-fpga
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
fpga-mgr@13c00000 {
|
||||
compatible = "technologic,ts7300-fpga";
|
||||
reg = <0x13c00000 0x2>;
|
||||
};
|
||||
...
|
||||
|
|
@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
|
|||
title: Pinctrl-based I2C Bus Mux
|
||||
|
||||
maintainers:
|
||||
- Wolfram Sang <wsa@kernel.org>
|
||||
- Thierry Reding <thierry.reding@kernel.org>
|
||||
|
||||
description: |
|
||||
This binding describes an I2C bus multiplexer that uses pin multiplexing to route the I2C
|
||||
|
|
|
|||
|
|
@ -1,74 +0,0 @@
|
|||
Register-based I2C Bus Mux
|
||||
|
||||
This binding describes an I2C bus multiplexer that uses a single register
|
||||
to route the I2C signals.
|
||||
|
||||
Required properties:
|
||||
- compatible: i2c-mux-reg
|
||||
- i2c-parent: The phandle of the I2C bus that this multiplexer's master-side
|
||||
port is connected to.
|
||||
* Standard I2C mux properties. See i2c-mux.yaml in this directory.
|
||||
* I2C child bus nodes. See i2c-mux.yaml in this directory.
|
||||
|
||||
Optional properties:
|
||||
- reg: this pair of <offset size> specifies the register to control the mux.
|
||||
The <offset size> depends on its parent node. It can be any memory-mapped
|
||||
address. The size must be either 1, 2, or 4 bytes. If reg is omitted, the
|
||||
resource of this device will be used.
|
||||
- little-endian: The existence indicates the register is in little endian.
|
||||
- big-endian: The existence indicates the register is in big endian.
|
||||
If both little-endian and big-endian are omitted, the endianness of the
|
||||
CPU will be used.
|
||||
- write-only: The existence indicates the register is write-only.
|
||||
- idle-state: value to set the muxer to when idle. When no value is
|
||||
given, it defaults to the last value used.
|
||||
|
||||
Whenever an access is made to a device on a child bus, the value set
|
||||
in the relevant node's reg property will be output to the register.
|
||||
|
||||
If an idle state is defined, using the idle-state (optional) property,
|
||||
whenever an access is not being made to a device on a child bus, the
|
||||
register will be set according to the idle value.
|
||||
|
||||
If an idle state is not defined, the most recently used value will be
|
||||
left programmed into the register.
|
||||
|
||||
Example of a mux on PCIe card, the host is a powerpc SoC (big endian):
|
||||
|
||||
i2c-mux {
|
||||
/* the <offset size> depends on the address translation
|
||||
* of the parent device. If omitted, device resource
|
||||
* will be used instead. The size is to determine
|
||||
* whether iowrite32, iowrite16, or iowrite8 will be used.
|
||||
*/
|
||||
reg = <0x6028 0x4>;
|
||||
little-endian; /* little endian register on PCIe */
|
||||
compatible = "i2c-mux-reg";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
i2c-parent = <&i2c1>;
|
||||
i2c@0 {
|
||||
reg = <0>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
si5338: clock-generator@70 {
|
||||
compatible = "silabs,si5338";
|
||||
reg = <0x70>;
|
||||
/* other stuff */
|
||||
};
|
||||
};
|
||||
|
||||
i2c@1 {
|
||||
/* data is written using iowrite32 */
|
||||
reg = <1>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
si5338: clock-generator@70 {
|
||||
compatible = "silabs,si5338";
|
||||
reg = <0x70>;
|
||||
/* other stuff */
|
||||
};
|
||||
};
|
||||
};
|
||||
92
Documentation/devicetree/bindings/i2c/i2c-mux-reg.yaml
Normal file
92
Documentation/devicetree/bindings/i2c/i2c-mux-reg.yaml
Normal file
|
|
@ -0,0 +1,92 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/i2c/i2c-mux-reg.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Register-based I2C Bus Mux
|
||||
|
||||
maintainers:
|
||||
- Peter Rosin <peda@axentia.se>
|
||||
|
||||
description: |
|
||||
This binding describes an I2C bus multiplexer that uses a single
|
||||
memory-mapped register to route the I2C signals.
|
||||
|
||||
Whenever an access is made to a device on a child bus, the value
|
||||
set in the relevant node's reg property is output to the register.
|
||||
|
||||
If an idle state is defined via the idle-state property, the
|
||||
register is set to that value whenever no access is being made.
|
||||
Otherwise the most recently used value is left programmed.
|
||||
|
||||
allOf:
|
||||
- $ref: /schemas/i2c/i2c-mux.yaml#
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: i2c-mux-reg
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
description: |
|
||||
Offset and size of the register that selects the active child
|
||||
bus, relative to the parent node's address space. The size
|
||||
determines the access width and must be 1, 2, or 4 bytes. If
|
||||
omitted, the platform device's own memory resource is used
|
||||
instead.
|
||||
|
||||
i2c-parent:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
description:
|
||||
Phandle of the I2C bus that this multiplexer's master-side port
|
||||
is connected to.
|
||||
|
||||
little-endian:
|
||||
type: boolean
|
||||
description: Register is accessed in little-endian byte order.
|
||||
|
||||
big-endian:
|
||||
type: boolean
|
||||
description: Register is accessed in big-endian byte order.
|
||||
|
||||
write-only:
|
||||
type: boolean
|
||||
description:
|
||||
Register is write-only; the driver must not read back the
|
||||
current selection.
|
||||
|
||||
idle-state:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description:
|
||||
Value to write to the register when no child bus is selected.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- i2c-parent
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
i2c-mux@6028 {
|
||||
compatible = "i2c-mux-reg";
|
||||
reg = <0x6028 0x4>;
|
||||
little-endian;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
i2c-parent = <&i2c1>;
|
||||
|
||||
i2c@0 {
|
||||
reg = <0>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
|
||||
i2c@1 {
|
||||
reg = <1>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
};
|
||||
};
|
||||
...
|
||||
|
|
@ -37,6 +37,9 @@ properties:
|
|||
modes are supported, possible values are 100000 and 400000.
|
||||
enum: [100000, 400000]
|
||||
|
||||
resets:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
|
|
|||
|
|
@ -9,9 +9,6 @@ title: MIPI I3C HCI
|
|||
maintainers:
|
||||
- Nicolas Pitre <npitre@baylibre.com>
|
||||
|
||||
allOf:
|
||||
- $ref: /schemas/i3c/i3c.yaml#
|
||||
|
||||
description: |
|
||||
MIPI I3C Host Controller Interface
|
||||
|
||||
|
|
@ -28,9 +25,17 @@ description: |
|
|||
|
||||
properties:
|
||||
compatible:
|
||||
const: mipi-i3c-hci
|
||||
enum:
|
||||
- mipi-i3c-hci
|
||||
- microchip,sama7d65-i3c-hci
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: Peripheral bus clock
|
||||
- description: System Generic clock
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
|
|
@ -39,6 +44,20 @@ required:
|
|||
- reg
|
||||
- interrupts
|
||||
|
||||
allOf:
|
||||
- $ref: /schemas/i3c/i3c.yaml#
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: microchip,sama7d65-i3c-hci
|
||||
then:
|
||||
required:
|
||||
- clocks
|
||||
else:
|
||||
properties:
|
||||
clocks: false
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
|
|
|
|||
|
|
@ -18,7 +18,11 @@ description: |
|
|||
service a wide variety of precision, wide bandwidth data acquisition
|
||||
applications.
|
||||
|
||||
The AD4880 is a dual-channel variant with two independent ADC channels,
|
||||
each with its own SPI configuration interface.
|
||||
|
||||
https://www.analog.com/media/en/technical-documentation/data-sheets/ad4080.pdf
|
||||
https://www.analog.com/media/en/technical-documentation/data-sheets/ad4880.pdf
|
||||
|
||||
$ref: /schemas/spi/spi-peripheral-props.yaml#
|
||||
|
||||
|
|
@ -34,9 +38,16 @@ properties:
|
|||
- adi,ad4086
|
||||
- adi,ad4087
|
||||
- adi,ad4088
|
||||
- adi,ad4880
|
||||
- adi,ad4884
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
minItems: 1
|
||||
maxItems: 2
|
||||
description:
|
||||
SPI chip select(s). For single-channel devices, one chip select.
|
||||
For multi-channel devices like AD4880, two chip selects are required
|
||||
as each channel has its own SPI configuration interface.
|
||||
|
||||
spi-max-frequency:
|
||||
description: Configuration of the SPI bus.
|
||||
|
|
@ -60,7 +71,10 @@ properties:
|
|||
vrefin-supply: true
|
||||
|
||||
io-backends:
|
||||
maxItems: 1
|
||||
minItems: 1
|
||||
items:
|
||||
- description: Backend for channel A (primary)
|
||||
- description: Backend for channel B (secondary)
|
||||
|
||||
adi,lvds-cnv-enable:
|
||||
description: Enable the LVDS signal type on the CNV pin. Default is CMOS.
|
||||
|
|
@ -81,6 +95,27 @@ required:
|
|||
- vdd33-supply
|
||||
- vrefin-supply
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- adi,ad4880
|
||||
- adi,ad4884
|
||||
then:
|
||||
properties:
|
||||
reg:
|
||||
minItems: 2
|
||||
io-backends:
|
||||
minItems: 2
|
||||
else:
|
||||
properties:
|
||||
reg:
|
||||
maxItems: 1
|
||||
io-backends:
|
||||
maxItems: 1
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
|
|
@ -101,4 +136,21 @@ examples:
|
|||
io-backends = <&iio_backend>;
|
||||
};
|
||||
};
|
||||
- |
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
adc@0 {
|
||||
compatible = "adi,ad4880";
|
||||
reg = <0>, <1>;
|
||||
spi-max-frequency = <10000000>;
|
||||
vdd33-supply = <&vdd33>;
|
||||
vddldo-supply = <&vddldo>;
|
||||
vrefin-supply = <&vrefin>;
|
||||
clocks = <&cnv>;
|
||||
clock-names = "cnv";
|
||||
io-backends = <&iio_backend_cha>, <&iio_backend_chb>;
|
||||
};
|
||||
};
|
||||
...
|
||||
|
|
|
|||
|
|
@ -5,19 +5,30 @@
|
|||
$id: http://devicetree.org/schemas/iio/adc/adi,ad4130.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Analog Devices AD4130 ADC device driver
|
||||
title: Analog Devices AD4130 family ADCs
|
||||
|
||||
maintainers:
|
||||
- Cosmin Tanislav <cosmin.tanislav@analog.com>
|
||||
|
||||
description: |
|
||||
Bindings for the Analog Devices AD4130 ADC. Datasheet can be found here:
|
||||
Bindings for the Analog Devices AD4130 family ADCs.
|
||||
Datasheets can be found here:
|
||||
https://www.analog.com/media/en/technical-documentation/data-sheets/AD4129-4.pdf
|
||||
https://www.analog.com/media/en/technical-documentation/data-sheets/AD4129-8.pdf
|
||||
https://www.analog.com/media/en/technical-documentation/data-sheets/AD4130-4.pdf
|
||||
https://www.analog.com/media/en/technical-documentation/data-sheets/AD4130-8.pdf
|
||||
https://www.analog.com/media/en/technical-documentation/data-sheets/AD4131-4.pdf
|
||||
https://www.analog.com/media/en/technical-documentation/data-sheets/AD4131-8.pdf
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- adi,ad4129-4
|
||||
- adi,ad4129-8
|
||||
- adi,ad4130-4
|
||||
- adi,ad4130
|
||||
- adi,ad4131-4
|
||||
- adi,ad4131-8
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
|
@ -32,6 +43,10 @@ properties:
|
|||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
description: |
|
||||
Data Ready / FIFO interrupt. For devices with FIFO support, the
|
||||
interrupt polarity specified here is inverted when the device enters
|
||||
FIFO mode, and normal for data ready.
|
||||
|
||||
interrupt-names:
|
||||
description: |
|
||||
|
|
|
|||
180
Documentation/devicetree/bindings/iio/adc/adi,ad4691.yaml
Normal file
180
Documentation/devicetree/bindings/iio/adc/adi,ad4691.yaml
Normal file
|
|
@ -0,0 +1,180 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/adc/adi,ad4691.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Analog Devices AD4691 Family Multichannel SAR ADCs
|
||||
|
||||
maintainers:
|
||||
- Radu Sabau <radu.sabau@analog.com>
|
||||
|
||||
description: |
|
||||
The AD4691 family are high-speed, low-power, multichannel successive
|
||||
approximation register (SAR) analog-to-digital converters (ADCs) with
|
||||
an SPI-compatible serial interface. The ADC supports CNV Burst Mode,
|
||||
where an external PWM drives the CNV pin, and Manual Mode, where CNV
|
||||
is directly tied to the SPI chip-select.
|
||||
|
||||
Datasheets:
|
||||
* https://www.analog.com/en/products/ad4691.html
|
||||
* https://www.analog.com/en/products/ad4692.html
|
||||
* https://www.analog.com/en/products/ad4693.html
|
||||
* https://www.analog.com/en/products/ad4694.html
|
||||
|
||||
$ref: /schemas/spi/spi-peripheral-props.yaml#
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- adi,ad4691
|
||||
- adi,ad4692
|
||||
- adi,ad4693
|
||||
- adi,ad4694
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
spi-max-frequency:
|
||||
maximum: 40000000
|
||||
|
||||
spi-cpol: true
|
||||
spi-cpha: true
|
||||
|
||||
avdd-supply:
|
||||
description: Analog power supply (4.5V to 5.5V).
|
||||
|
||||
vdd-supply:
|
||||
description:
|
||||
External 1.8V digital core supply. When present, the internal LDO is
|
||||
disabled (LDO_EN = 0). Mutually exclusive with ldo-in-supply.
|
||||
|
||||
ldo-in-supply:
|
||||
description:
|
||||
LDO input supply (2.4V to 5.5V). When present and vdd-supply is absent,
|
||||
the internal LDO generates 1.8V VDD from this input (LDO_EN = 1).
|
||||
Mutually exclusive with vdd-supply.
|
||||
|
||||
vio-supply:
|
||||
description: I/O voltage supply (1.71V to 1.89V or VDD).
|
||||
|
||||
ref-supply:
|
||||
description: External reference voltage supply (2.4V to 5.25V).
|
||||
|
||||
refin-supply:
|
||||
description: Internal reference buffer input supply.
|
||||
|
||||
reset-gpios:
|
||||
description:
|
||||
GPIO line controlling the hardware reset pin (active-low).
|
||||
maxItems: 1
|
||||
|
||||
pwms:
|
||||
description:
|
||||
PWM connected to the CNV pin. When present, selects CNV Burst Mode where
|
||||
the PWM drives the conversion rate. When absent, Manual Mode is used
|
||||
(CNV tied to SPI CS).
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
description:
|
||||
Interrupt lines connected to the ADC GP pins. Each GP pin can be
|
||||
physically wired to an interrupt-capable input on the SoC.
|
||||
maxItems: 4
|
||||
|
||||
interrupt-names:
|
||||
description: Names of the interrupt lines, matching the GP pin names.
|
||||
minItems: 1
|
||||
maxItems: 4
|
||||
items:
|
||||
enum:
|
||||
- gp0
|
||||
- gp1
|
||||
- gp2
|
||||
- gp3
|
||||
|
||||
gpio-controller: true
|
||||
|
||||
'#gpio-cells':
|
||||
const: 2
|
||||
|
||||
'#trigger-source-cells':
|
||||
description:
|
||||
This node can act as a trigger source. The single cell in a consumer
|
||||
reference specifies the GP pin number (0-3) used as the trigger output.
|
||||
const: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- avdd-supply
|
||||
- vio-supply
|
||||
|
||||
allOf:
|
||||
# vdd-supply and ldo-in-supply are mutually exclusive, one is required:
|
||||
# either an external 1.8V VDD is provided or the internal LDO is fed from
|
||||
# ldo-in-supply to generate VDD.
|
||||
- oneOf:
|
||||
- required:
|
||||
- vdd-supply
|
||||
- required:
|
||||
- ldo-in-supply
|
||||
# ref-supply and refin-supply are mutually exclusive, one is required
|
||||
- oneOf:
|
||||
- required:
|
||||
- ref-supply
|
||||
- required:
|
||||
- refin-supply
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
/* AD4692 in CNV Burst Mode with SPI offload */
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
adc@0 {
|
||||
compatible = "adi,ad4692";
|
||||
reg = <0>;
|
||||
spi-cpol;
|
||||
spi-cpha;
|
||||
spi-max-frequency = <40000000>;
|
||||
|
||||
avdd-supply = <&avdd_supply>;
|
||||
ldo-in-supply = <&avdd_supply>;
|
||||
vio-supply = <&vio_supply>;
|
||||
ref-supply = <&ref_5v>;
|
||||
|
||||
reset-gpios = <&gpio0 15 GPIO_ACTIVE_LOW>;
|
||||
|
||||
pwms = <&pwm_gen 0 0>;
|
||||
|
||||
#trigger-source-cells = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
/* AD4692 in Manual Mode (CNV tied to SPI CS) */
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
adc@0 {
|
||||
compatible = "adi,ad4692";
|
||||
reg = <0>;
|
||||
spi-cpol;
|
||||
spi-cpha;
|
||||
spi-max-frequency = <31250000>;
|
||||
|
||||
avdd-supply = <&avdd_supply>;
|
||||
ldo-in-supply = <&avdd_supply>;
|
||||
vio-supply = <&vio_supply>;
|
||||
refin-supply = <&refin_supply>;
|
||||
|
||||
reset-gpios = <&gpio0 15 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
|
|
@ -14,6 +14,7 @@ properties:
|
|||
oneOf:
|
||||
- enum:
|
||||
- allwinner,sun20i-d1-gpadc
|
||||
- allwinner,sun55i-a523-gpadc
|
||||
- items:
|
||||
- enum:
|
||||
- allwinner,sun50i-h616-gpadc
|
||||
|
|
@ -29,7 +30,12 @@ properties:
|
|||
const: 0
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
minItems: 1
|
||||
maxItems: 2
|
||||
|
||||
clock-names:
|
||||
minItems: 1
|
||||
maxItems: 2
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
|
@ -40,6 +46,30 @@ properties:
|
|||
resets:
|
||||
maxItems: 1
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- allwinner,sun55i-a523-gpadc
|
||||
then:
|
||||
properties:
|
||||
clocks:
|
||||
items:
|
||||
- description: Bus clock
|
||||
- description: Module clock
|
||||
clock-names:
|
||||
items:
|
||||
- const: bus
|
||||
- const: mod
|
||||
required:
|
||||
- clock-names
|
||||
else:
|
||||
properties:
|
||||
clocks:
|
||||
maxItems: 1
|
||||
clock-names: false
|
||||
|
||||
patternProperties:
|
||||
"^channel@[0-9a-f]+$":
|
||||
$ref: adc.yaml
|
||||
|
|
|
|||
|
|
@ -10,14 +10,9 @@ maintainers:
|
|||
- Andreas Klinger <ak@it-klinger.de>
|
||||
|
||||
description: |
|
||||
Bit-banging driver using two GPIOs:
|
||||
- sck-gpio gives a clock to the sensor with 24 cycles for data retrieval
|
||||
and up to 3 cycles for selection of the input channel and gain for the
|
||||
next measurement
|
||||
- dout-gpio is the sensor data the sensor responds to the clock
|
||||
|
||||
Specifications about the driver can be found at:
|
||||
http://www.aviaic.com/ENProducts.aspx
|
||||
The HX711 is a 24-bit ADC with selectable gain (32/64/128) and two
|
||||
differential input channels. Channel A supports gain 64 and 128;
|
||||
channel B supports gain 32.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
|
|
@ -26,23 +21,23 @@ properties:
|
|||
|
||||
sck-gpios:
|
||||
description:
|
||||
Definition of the GPIO for the clock (output). In the datasheet it is
|
||||
named PD_SCK
|
||||
GPIO for the clock output (PD_SCK in the datasheet).
|
||||
maxItems: 1
|
||||
|
||||
dout-gpios:
|
||||
description:
|
||||
Definition of the GPIO for the data-out sent by the sensor in
|
||||
response to the clock (input).
|
||||
See Documentation/devicetree/bindings/gpio/gpio.txt for information
|
||||
on how to specify a consumer gpio.
|
||||
GPIO for the data output from the sensor (DOUT in the datasheet).
|
||||
maxItems: 1
|
||||
|
||||
avdd-supply:
|
||||
description:
|
||||
Definition of the regulator used as analog supply
|
||||
Analog supply voltage (AVDD).
|
||||
|
||||
clock-frequency:
|
||||
description:
|
||||
Controls the SCK bit-bang timing. The value is used to derive the
|
||||
delay between SCK edges; keep the SCK high time below 60 us to
|
||||
avoid triggering chip power-down mode.
|
||||
minimum: 20000
|
||||
maximum: 2500000
|
||||
default: 400000
|
||||
|
|
|
|||
|
|
@ -78,6 +78,10 @@ patternProperties:
|
|||
reg:
|
||||
maxItems: 1
|
||||
|
||||
label:
|
||||
description: |
|
||||
Unique name to identify which channel this is.
|
||||
|
||||
qcom,decimation:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: |
|
||||
|
|
@ -130,36 +134,47 @@ examples:
|
|||
|
||||
vcoin: adc-channel@0 {
|
||||
reg = <0x00 0x00>;
|
||||
label = "vcoin";
|
||||
};
|
||||
vbat: adc-channel@1 {
|
||||
reg = <0x00 0x01>;
|
||||
label = "vbat";
|
||||
};
|
||||
dcin: adc-channel@2 {
|
||||
reg = <0x00 0x02>;
|
||||
label = "dcin";
|
||||
};
|
||||
ichg: adc-channel@3 {
|
||||
reg = <0x00 0x03>;
|
||||
label = "ichg";
|
||||
};
|
||||
vph_pwr: adc-channel@4 {
|
||||
reg = <0x00 0x04>;
|
||||
label = "vph_pwr";
|
||||
};
|
||||
usb_vbus: adc-channel@a {
|
||||
reg = <0x00 0x0a>;
|
||||
label = "usb_vbus";
|
||||
};
|
||||
die_temp: adc-channel@b {
|
||||
reg = <0x00 0x0b>;
|
||||
label = "die_temp";
|
||||
};
|
||||
ref_625mv: adc-channel@c {
|
||||
reg = <0x00 0x0c>;
|
||||
label = "ref_625mv";
|
||||
};
|
||||
ref_1250mv: adc-channel@d {
|
||||
reg = <0x00 0x0d>;
|
||||
label = "ref_1250mv";
|
||||
};
|
||||
ref_325mv: adc-channel@e {
|
||||
reg = <0x00 0x0e>;
|
||||
label = "ref_325mv";
|
||||
};
|
||||
ref_muxoff: adc-channel@f {
|
||||
reg = <0x00 0x0f>;
|
||||
label = "ref_muxoff";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
|
|||
title: Sensirion SCD30 carbon dioxide sensor
|
||||
|
||||
maintainers:
|
||||
- Tomasz Duszynski <tomasz.duszynski@octakon.com>
|
||||
- Maxwell Doose <m32285159@gmail.com>
|
||||
|
||||
description: |
|
||||
Air quality sensor capable of measuring co2 concentration, temperature
|
||||
|
|
|
|||
105
Documentation/devicetree/bindings/iio/dac/adi,ad5706r.yaml
Normal file
105
Documentation/devicetree/bindings/iio/dac/adi,ad5706r.yaml
Normal file
|
|
@ -0,0 +1,105 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/dac/adi,ad5706r.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Analog Devices AD5706R 4-Channel Current Output DAC
|
||||
|
||||
maintainers:
|
||||
- Alexis Czezar Torreno <alexisczezar.torreno@analog.com>
|
||||
|
||||
description: |
|
||||
The AD5706R is a 4-channel, 16-bit resolution, current output
|
||||
digital-to-analog converter (DAC) with programmable output current
|
||||
ranges (50mA, 150mA, 200mA, 300mA), an integrated 2.5V voltage
|
||||
reference, and load DAC, A/B toggle, and dither functions.
|
||||
|
||||
Datasheet:
|
||||
https://www.analog.com/en/products/ad5706r.html
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- adi,ad5706r
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
avdd-supply:
|
||||
description: Analog power supply (2.9V to 3.6V).
|
||||
|
||||
iovdd-supply:
|
||||
description: Logic power supply (1.14V to 1.89V).
|
||||
|
||||
pvdd0-supply:
|
||||
description: Power supply for IDAC0 channel (1.65V to AVDD).
|
||||
|
||||
pvdd1-supply:
|
||||
description: Power supply for IDAC1 channel (1.65V to AVDD).
|
||||
|
||||
pvdd2-supply:
|
||||
description: Power supply for IDAC2 channel (1.65V to AVDD).
|
||||
|
||||
pvdd3-supply:
|
||||
description: Power supply for IDAC3 channel (1.65V to AVDD).
|
||||
|
||||
vref-supply:
|
||||
description:
|
||||
Optional external 2.5V voltage reference. If not provided, the
|
||||
internal 2.5V reference is used.
|
||||
|
||||
pwms:
|
||||
maxItems: 1
|
||||
description:
|
||||
Optional PWM connected to the LDAC/TGP/DCK pin for hardware
|
||||
triggered DAC updates, toggle, or dither clock generation.
|
||||
|
||||
reset-gpios:
|
||||
maxItems: 1
|
||||
description:
|
||||
GPIO connected to the active low RESET pin. If not provided,
|
||||
software reset is used.
|
||||
|
||||
enable-gpios:
|
||||
maxItems: 1
|
||||
description:
|
||||
GPIO connected to the active low OUT_EN pin. Controls whether
|
||||
the current outputs are enabled or in high-Z/ground state.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- avdd-supply
|
||||
- iovdd-supply
|
||||
|
||||
allOf:
|
||||
- $ref: /schemas/spi/spi-peripheral-props.yaml#
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
dac@0 {
|
||||
compatible = "adi,ad5706r";
|
||||
reg = <0>;
|
||||
avdd-supply = <&avdd>;
|
||||
iovdd-supply = <&iovdd>;
|
||||
pvdd0-supply = <&pvdd>;
|
||||
pvdd1-supply = <&pvdd>;
|
||||
pvdd2-supply = <&pvdd>;
|
||||
pvdd3-supply = <&pvdd>;
|
||||
vref-supply = <&vref>;
|
||||
spi-max-frequency = <50000000>;
|
||||
pwms = <&pwm0 0 1000000 0>;
|
||||
reset-gpios = <&gpio0 10 GPIO_ACTIVE_LOW>;
|
||||
enable-gpios = <&gpio0 12 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
...
|
||||
|
|
@ -161,8 +161,8 @@ patternProperties:
|
|||
properties:
|
||||
reg:
|
||||
description: The channel number.
|
||||
minItems: 1
|
||||
maxItems: 8
|
||||
minimum: 0
|
||||
maximum: 7
|
||||
|
||||
label:
|
||||
description: Unique name to identify which channel this is.
|
||||
|
|
@ -280,23 +280,23 @@ examples:
|
|||
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
dac@0 {
|
||||
compatible = "microchip,mcp47feb02";
|
||||
reg = <0>;
|
||||
vdd-supply = <&vdac_vdd>;
|
||||
vref-supply = <&vref_reg>;
|
||||
dac@60 {
|
||||
compatible = "microchip,mcp47feb02";
|
||||
reg = <0x60>;
|
||||
vdd-supply = <&vdac_vdd>;
|
||||
vref-supply = <&vref_reg>;
|
||||
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
channel@0 {
|
||||
reg = <0>;
|
||||
label = "Adjustable_voltage_ch0";
|
||||
};
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
channel@0 {
|
||||
reg = <0>;
|
||||
label = "Adjustable_voltage_ch0";
|
||||
};
|
||||
|
||||
channel@1 {
|
||||
reg = <0x1>;
|
||||
label = "Adjustable_voltage_ch1";
|
||||
};
|
||||
};
|
||||
channel@1 {
|
||||
reg = <0x1>;
|
||||
label = "Adjustable_voltage_ch1";
|
||||
};
|
||||
};
|
||||
};
|
||||
...
|
||||
|
|
|
|||
|
|
@ -26,6 +26,9 @@ properties:
|
|||
vdd-supply: true
|
||||
vddio-supply: true
|
||||
|
||||
mount-matrix:
|
||||
description: an optional 3x3 mounting rotation matrix.
|
||||
|
||||
spi-max-frequency:
|
||||
maximum: 10000000
|
||||
|
||||
|
|
@ -56,6 +59,9 @@ examples:
|
|||
reg = <0x69>;
|
||||
interrupt-parent = <&gpio6>;
|
||||
interrupts = <18 IRQ_TYPE_EDGE_RISING>;
|
||||
mount-matrix = "0", "1", "0",
|
||||
"1", "0", "0",
|
||||
"0", "0", "1";
|
||||
};
|
||||
};
|
||||
...
|
||||
|
|
|
|||
|
|
@ -0,0 +1,54 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/light/brcm,apds9999.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
title: Broadcom APDS-9999 Digital Proximity and RGB Sensor
|
||||
|
||||
maintainers:
|
||||
- Jose A. Perez de Azpillaga <azpijr@gmail.com>
|
||||
|
||||
description: |
|
||||
Broadcom APDS-9999 is a digital proximity and RGB sensor with
|
||||
ambient light sensing (ALS) capability. The device uses individual
|
||||
R, G, B, and IR channels plus a Vertical Cavity Surface Emitting
|
||||
Laser (VCSEL) for proximity detection.
|
||||
|
||||
Datasheet: https://docs.broadcom.com/docs/APDS-9999-DS
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- brcm,apds9999
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
vdd-supply: true
|
||||
|
||||
vcsel-supply:
|
||||
description: VCSEL power supply (VVCSEL pin)
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- vdd-supply
|
||||
|
||||
examples:
|
||||
- |
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
light-sensor@52 {
|
||||
compatible = "brcm,apds9999";
|
||||
reg = <0x52>;
|
||||
vdd-supply = <&vdd_reg>;
|
||||
vcsel-supply = <&vcsel_reg>;
|
||||
};
|
||||
};
|
||||
|
|
@ -26,6 +26,8 @@ properties:
|
|||
- amstaos,tmd2672
|
||||
- amstaos,tsl2772
|
||||
- amstaos,tmd2772
|
||||
- avago,apds9900
|
||||
- avago,apds9901
|
||||
- avago,apds9930
|
||||
|
||||
reg:
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
$id: http://devicetree.org/schemas/iio/light/vishay,veml6030.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: VEML3235, VEML6030, VEML6035 and VEML7700 Ambient Light Sensors (ALS)
|
||||
title: VEML3235, VEML3328, VEML6030, VEML6035 and VEML7700 Ambient Light Sensors (ALS)
|
||||
|
||||
maintainers:
|
||||
- Rishi Gupta <gupt21@gmail.com>
|
||||
|
|
@ -21,6 +21,7 @@ description: |
|
|||
|
||||
Specifications about the sensors can be found at:
|
||||
https://www.vishay.com/docs/80131/veml3235.pdf
|
||||
https://www.vishay.com/docs/84968/veml3328.pdf
|
||||
https://www.vishay.com/docs/84366/veml6030.pdf
|
||||
https://www.vishay.com/docs/84889/veml6035.pdf
|
||||
https://www.vishay.com/docs/84286/veml7700.pdf
|
||||
|
|
@ -29,6 +30,7 @@ properties:
|
|||
compatible:
|
||||
enum:
|
||||
- vishay,veml3235
|
||||
- vishay,veml3328
|
||||
- vishay,veml6030
|
||||
- vishay,veml6035
|
||||
- vishay,veml7700
|
||||
|
|
@ -79,6 +81,7 @@ allOf:
|
|||
compatible:
|
||||
enum:
|
||||
- vishay,veml3235
|
||||
- vishay,veml3328
|
||||
- vishay,veml7700
|
||||
then:
|
||||
properties:
|
||||
|
|
|
|||
|
|
@ -0,0 +1,63 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/magnetometer/memsic,mmc5983.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: MEMSIC MMC5983MA 3-axis magnetic sensor
|
||||
|
||||
maintainers:
|
||||
- Vladislav Kulikov <vlad.kulikov.c@gmail.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: memsic,mmc5983
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
vdd-supply:
|
||||
description: Regulator that provides power to the sensor
|
||||
|
||||
vddio-supply:
|
||||
description: Regulator that provides power to the digital interface and INT pin
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- vdd-supply
|
||||
|
||||
allOf:
|
||||
- $ref: /schemas/spi/spi-peripheral-props.yaml#
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
magnetometer@30 {
|
||||
compatible = "memsic,mmc5983";
|
||||
reg = <0x30>;
|
||||
vdd-supply = <&vdd_3v3_reg>;
|
||||
vddio-supply = <&vdd_3v3_reg>;
|
||||
};
|
||||
};
|
||||
- |
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
magnetometer@0 {
|
||||
compatible = "memsic,mmc5983";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <10000000>;
|
||||
vdd-supply = <&vdd_3v3_reg>;
|
||||
vddio-supply = <&vdd_3v3_reg>;
|
||||
};
|
||||
};
|
||||
|
|
@ -4,14 +4,18 @@
|
|||
$id: http://devicetree.org/schemas/iio/temperature/adi,ltc2983.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Analog Devices LTC2983, LTC2986, LTM2985 Multi-sensor Temperature system
|
||||
title: Analog Devices LTC2983 and similar Multi-sensor Temperature systems
|
||||
|
||||
maintainers:
|
||||
- Nuno Sá <nuno.sa@analog.com>
|
||||
|
||||
description: |
|
||||
Analog Devices LTC2983, LTC2984, LTC2986, LTM2985 Multi-Sensor Digital
|
||||
Temperature Measurement Systems
|
||||
Analog Devices Multi-Sensor Digital Temperature Measurement Systems:
|
||||
- ADT7604
|
||||
- LTC2983
|
||||
- LTC2984
|
||||
- LTC2986
|
||||
- LTM2985
|
||||
|
||||
https://www.analog.com/media/en/technical-documentation/data-sheets/2983fc.pdf
|
||||
https://www.analog.com/media/en/technical-documentation/data-sheets/2984fb.pdf
|
||||
|
|
@ -43,6 +47,7 @@ properties:
|
|||
compatible:
|
||||
oneOf:
|
||||
- enum:
|
||||
- adi,adt7604
|
||||
- adi,ltc2983
|
||||
- adi,ltc2986
|
||||
- adi,ltm2985
|
||||
|
|
@ -436,6 +441,121 @@ patternProperties:
|
|||
required:
|
||||
- adi,custom-temp
|
||||
|
||||
'^copper-trace@':
|
||||
$ref: '#/$defs/sensor-node'
|
||||
unevaluatedProperties: false
|
||||
description: |
|
||||
Copper trace resistance sensor (some parts only). Two variants exist:
|
||||
sub-ohm (< 1 ohm, no custom table allowed) and standard (> 1 ohm,
|
||||
required custom table).
|
||||
|
||||
properties:
|
||||
reg:
|
||||
minimum: 2
|
||||
maximum: 20
|
||||
|
||||
adi,sensor-type:
|
||||
description: Sensor type for copper trace sensors.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
const: 32
|
||||
|
||||
adi,rsense-handle:
|
||||
description: Associated sense resistor sensor.
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
|
||||
adi,copper-trace-sub-ohm:
|
||||
description:
|
||||
Select the sub-ohm (< 1 ohm) copper trace variant. Custom table
|
||||
and excitation current are not allowed in this mode.
|
||||
type: boolean
|
||||
|
||||
adi,excitation-current-microamp:
|
||||
description:
|
||||
Excitation current applied to the copper trace. Not used in
|
||||
sub-ohm mode. The datasheet recommends 1mA for copper trace
|
||||
sensors due to their typically small resistance.
|
||||
enum: [5, 10, 25, 50, 100, 250, 500, 1000]
|
||||
default: 1000
|
||||
|
||||
adi,custom-copper-trace:
|
||||
description:
|
||||
Resistance-to-temperature table for copper trace sensors with
|
||||
resistance > 1 ohm. Required when adi,copper-trace-sub-ohm is not
|
||||
set. See Page 36 of the datasheet.
|
||||
$ref: /schemas/types.yaml#/definitions/uint64-matrix
|
||||
minItems: 3
|
||||
maxItems: 64
|
||||
items:
|
||||
items:
|
||||
- description: Resistance point in uOhms.
|
||||
- description: Temperature point in uK.
|
||||
|
||||
required:
|
||||
- adi,rsense-handle
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
required:
|
||||
- adi,copper-trace-sub-ohm
|
||||
then:
|
||||
properties:
|
||||
adi,custom-copper-trace: false
|
||||
adi,excitation-current-microamp: false
|
||||
- if:
|
||||
not:
|
||||
required:
|
||||
- adi,copper-trace-sub-ohm
|
||||
then:
|
||||
required:
|
||||
- adi,custom-copper-trace
|
||||
|
||||
'^leak-detector@':
|
||||
$ref: '#/$defs/sensor-node'
|
||||
unevaluatedProperties: false
|
||||
description: |
|
||||
Leak detector sensor (some parts only). Outputs resistance in ohms and
|
||||
a coverage percentage via IIO_COVERAGE (raw/1024 = coverage %).
|
||||
|
||||
properties:
|
||||
reg:
|
||||
minimum: 2
|
||||
maximum: 20
|
||||
|
||||
adi,sensor-type:
|
||||
description: Sensor type for leak detector sensors.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
const: 33
|
||||
|
||||
adi,rsense-handle:
|
||||
description: Associated sense resistor sensor.
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
|
||||
adi,excitation-current-nanoamp:
|
||||
description:
|
||||
Excitation current applied to the leak detector. The correct value
|
||||
depends on the electrical characteristics of the liquid being sensed.
|
||||
For example, 10000 (10µA) is recommended for PG25 (see datasheet
|
||||
Table 39).
|
||||
enum: [250, 500, 1000, 5000, 10000, 25000, 50000, 100000, 250000,
|
||||
500000, 1000000]
|
||||
|
||||
adi,custom-leak-detector:
|
||||
description: |
|
||||
Lookup table mapping resistance to coverage percentage. Entries must
|
||||
be in ascending resistance order.
|
||||
$ref: /schemas/types.yaml#/definitions/uint64-matrix
|
||||
minItems: 3
|
||||
maxItems: 64
|
||||
items:
|
||||
items:
|
||||
- description: Resistance point in uOhms.
|
||||
- description: Coverage data percentage (0 to 100).
|
||||
|
||||
required:
|
||||
- adi,rsense-handle
|
||||
- adi,excitation-current-nanoamp
|
||||
- adi,custom-leak-detector
|
||||
|
||||
'^rsense@':
|
||||
$ref: '#/$defs/sensor-node'
|
||||
unevaluatedProperties: false
|
||||
|
|
@ -477,6 +597,32 @@ allOf:
|
|||
patternProperties:
|
||||
'^temp@': false
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: adi,adt7604
|
||||
then:
|
||||
patternProperties:
|
||||
'^thermocouple@': false
|
||||
'^diode@': false
|
||||
'^adc@': false
|
||||
'^temp@': false
|
||||
'^rtd@':
|
||||
properties:
|
||||
adi,sensor-type:
|
||||
not:
|
||||
const: 18
|
||||
'^thermistor@':
|
||||
properties:
|
||||
adi,sensor-type:
|
||||
not:
|
||||
const: 27
|
||||
else:
|
||||
patternProperties:
|
||||
'^copper-trace@': false
|
||||
'^leak-detector@': false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
|
|
@ -556,4 +702,69 @@ examples:
|
|||
};
|
||||
};
|
||||
};
|
||||
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
temperature-sensor@0 {
|
||||
compatible = "adi,adt7604";
|
||||
reg = <0>;
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupts = <25 IRQ_TYPE_EDGE_RISING>;
|
||||
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
vdd-supply = <&supply>;
|
||||
|
||||
trace_rsense: rsense@2 {
|
||||
reg = <2>;
|
||||
adi,sensor-type = <29>;
|
||||
adi,rsense-val-milli-ohms = <100000>; // 100 ohm
|
||||
};
|
||||
|
||||
copper-trace@4 {
|
||||
reg = <4>;
|
||||
adi,sensor-type = <32>;
|
||||
adi,rsense-handle = <&trace_rsense>;
|
||||
adi,copper-trace-sub-ohm;
|
||||
};
|
||||
|
||||
r_sense: rsense@12 {
|
||||
reg = <12>;
|
||||
adi,sensor-type = <29>;
|
||||
adi,rsense-val-milli-ohms = <1000000>; // 1 kohm
|
||||
};
|
||||
|
||||
leak-detector@14 {
|
||||
reg = <14>;
|
||||
adi,sensor-type = <33>;
|
||||
adi,rsense-handle = <&r_sense>;
|
||||
adi,excitation-current-nanoamp = <10000>;
|
||||
adi,custom-leak-detector =
|
||||
/bits/ 64 < 0 100>,
|
||||
/bits/ 64 < 202020000 99>,
|
||||
/bits/ 64 < 285710000 70>,
|
||||
/bits/ 64 < 333330000 60>,
|
||||
/bits/ 64 < 400000000 50>,
|
||||
/bits/ 64 < 500000000 40>,
|
||||
/bits/ 64 < 666670000 30>,
|
||||
/bits/ 64 < 1000000000 20>,
|
||||
/bits/ 64 < 2000000000 10>,
|
||||
/bits/ 64 <1000000000000 0>;
|
||||
};
|
||||
|
||||
rtd@18 {
|
||||
reg = <18>;
|
||||
adi,sensor-type = <12>; // PT100
|
||||
adi,rsense-handle = <&r_sense>;
|
||||
adi,number-of-wires = <2>;
|
||||
adi,rsense-share;
|
||||
adi,excitation-current-microamp = <500>;
|
||||
adi,rtd-curve = <0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
...
|
||||
|
|
|
|||
|
|
@ -40,6 +40,10 @@ properties:
|
|||
vdd-supply:
|
||||
description: Power supply
|
||||
|
||||
reset-gpios:
|
||||
description: Reset GPIO (active-low)
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
|
|
|||
|
|
@ -0,0 +1,73 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/input/touchscreen/wacom,w9007a-lt03.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Wacom W9000-series penabled I2C touchscreen
|
||||
|
||||
maintainers:
|
||||
- Hendrik Noack <hendrik-noack@gmx.de>
|
||||
|
||||
description: |
|
||||
The W9000-series are penabled touchscreen controllers by Wacom.
|
||||
|
||||
The firmware of controllers in different devices may differ. This can also
|
||||
affect the controller's behavior.
|
||||
|
||||
allOf:
|
||||
- $ref: touchscreen.yaml#
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- wacom,w9002
|
||||
- wacom,w9007a-lt03
|
||||
- wacom,w9007a-v1
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
vdd-supply: true
|
||||
|
||||
flash-mode-gpios:
|
||||
maxItems: 1
|
||||
|
||||
reset-gpios:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
digitizer@56 {
|
||||
compatible = "wacom,w9007a-lt03";
|
||||
reg = <0x56>;
|
||||
interrupt-parent = <&gpd1>;
|
||||
interrupts = <1 IRQ_TYPE_EDGE_RISING>;
|
||||
|
||||
vdd-supply = <&stylus_reg>;
|
||||
|
||||
flash-mode-gpios = <&gpd1 3 GPIO_ACTIVE_HIGH>;
|
||||
reset-gpios = <&gpx0 1 GPIO_ACTIVE_LOW>;
|
||||
|
||||
touchscreen-x-mm = <216>;
|
||||
touchscreen-y-mm = <135>;
|
||||
touchscreen-inverted-x;
|
||||
};
|
||||
};
|
||||
|
|
@ -0,0 +1,131 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/interconnect/qcom,hawi-rpmh.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Qualcomm RPMh Network-On-Chip Interconnect on Hawi
|
||||
|
||||
maintainers:
|
||||
- Vivek Aknurwar <vivek.aknurwar@oss.qualcomm.com>
|
||||
|
||||
description: |
|
||||
RPMh interconnect providers support system bandwidth requirements through
|
||||
RPMh hardware accelerators known as Bus Clock Manager (BCM). The provider is
|
||||
able to communicate with the BCM through the Resource State Coordinator (RSC)
|
||||
associated with each execution environment. Provider nodes must point to at
|
||||
least one RPMh device child node pertaining to their RSC and each provider
|
||||
can map to multiple RPMh resources.
|
||||
|
||||
See also: include/dt-bindings/interconnect/qcom,hawi-rpmh.h
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- qcom,hawi-aggre1-noc
|
||||
- qcom,hawi-clk-virt
|
||||
- qcom,hawi-cnoc-main
|
||||
- qcom,hawi-gem-noc
|
||||
- qcom,hawi-llclpi-noc
|
||||
- qcom,hawi-lpass-ag-noc
|
||||
- qcom,hawi-lpass-lpiaon-noc
|
||||
- qcom,hawi-lpass-lpicx-noc
|
||||
- qcom,hawi-mc-virt
|
||||
- qcom,hawi-mmss-noc
|
||||
- qcom,hawi-nsp-noc
|
||||
- qcom,hawi-pcie-anoc
|
||||
- qcom,hawi-stdst-cfg
|
||||
- qcom,hawi-stdst-main
|
||||
- qcom,hawi-system-noc
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
minItems: 2
|
||||
maxItems: 3
|
||||
|
||||
required:
|
||||
- compatible
|
||||
|
||||
allOf:
|
||||
- $ref: qcom,rpmh-common.yaml#
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- qcom,hawi-clk-virt
|
||||
- qcom,hawi-mc-virt
|
||||
then:
|
||||
properties:
|
||||
reg: false
|
||||
else:
|
||||
required:
|
||||
- reg
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- qcom,hawi-pcie-anoc
|
||||
then:
|
||||
properties:
|
||||
clocks:
|
||||
items:
|
||||
- description: aggre-NOC PCIe AXI clock
|
||||
- description: cfg-NOC PCIe a-NOC AHB clock
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- qcom,hawi-aggre1-noc
|
||||
then:
|
||||
properties:
|
||||
clocks:
|
||||
items:
|
||||
- description: aggre UFS PHY AXI clock
|
||||
- description: aggre USB3 PRIM AXI clock
|
||||
- description: RPMH CC IPA clock
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- qcom,hawi-aggre1-noc
|
||||
- qcom,hawi-pcie-anoc
|
||||
then:
|
||||
required:
|
||||
- clocks
|
||||
else:
|
||||
properties:
|
||||
clocks: false
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
soc {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
|
||||
clk_virt: interconnect-0 {
|
||||
compatible = "qcom,hawi-clk-virt";
|
||||
#interconnect-cells = <2>;
|
||||
qcom,bcm-voters = <&apps_bcm_voter>;
|
||||
};
|
||||
|
||||
aggre_noc: interconnect@f00000 {
|
||||
compatible = "qcom,hawi-aggre1-noc";
|
||||
reg = <0x0 0xf00000 0x0 0x54400>;
|
||||
#interconnect-cells = <2>;
|
||||
clocks = <&gcc_aggre_ufs_phy_axi_clk>,
|
||||
<&gcc_aggre_usb3_prim_axi_clk>,
|
||||
<&rpmhcc_ipa_clk>;
|
||||
qcom,bcm-voters = <&apps_bcm_voter>;
|
||||
};
|
||||
};
|
||||
|
|
@ -26,6 +26,7 @@ properties:
|
|||
- items:
|
||||
- enum:
|
||||
- qcom,glymur-cpu-bwmon
|
||||
- qcom,hawi-cpu-bwmon
|
||||
- qcom,kaanapali-cpu-bwmon
|
||||
- qcom,qcm2290-cpu-bwmon
|
||||
- qcom,qcs615-cpu-bwmon
|
||||
|
|
@ -45,6 +46,7 @@ properties:
|
|||
- const: qcom,sdm845-bwmon # BWMON v4, unified register space
|
||||
- items:
|
||||
- enum:
|
||||
- qcom,hawi-llcc-bwmon
|
||||
- qcom,qcs615-llcc-bwmon
|
||||
- qcom,qcs8300-llcc-bwmon
|
||||
- qcom,sa8775p-llcc-bwmon
|
||||
|
|
|
|||
|
|
@ -0,0 +1,131 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/interconnect/qcom,nord-rpmh.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Qualcomm RPMh Network-On-Chip Interconnect on Nord
|
||||
|
||||
maintainers:
|
||||
- Odelu Kukatla <odelu.kukatla@oss.qualcomm.com>
|
||||
|
||||
description: |
|
||||
RPMh interconnect providers support system bandwidth requirements through
|
||||
RPMh hardware accelerators known as Bus Clock Manager (BCM). The provider is
|
||||
able to communicate with the BCM through the Resource State Coordinator (RSC)
|
||||
associated with each execution environment. Provider nodes must point to at
|
||||
least one RPMh device child node pertaining to their RSC and each provider
|
||||
can map to multiple RPMh resources.
|
||||
|
||||
See also: include/dt-bindings/interconnect/qcom,nord-rpmh.h
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- qcom,nord-aggre1-noc
|
||||
- qcom,nord-aggre1-noc-tile
|
||||
- qcom,nord-aggre2-noc
|
||||
- qcom,nord-aggre2-noc-tile
|
||||
- qcom,nord-clk-virt
|
||||
- qcom,nord-cnoc-cfg
|
||||
- qcom,nord-cnoc-main
|
||||
- qcom,nord-hpass-ag-noc
|
||||
- qcom,nord-hscnoc
|
||||
- qcom,nord-mc-virt
|
||||
- qcom,nord-mmss-noc
|
||||
- qcom,nord-nsp-data-noc-0
|
||||
- qcom,nord-nsp-data-noc-1
|
||||
- qcom,nord-nsp-data-noc-2
|
||||
- qcom,nord-nsp-data-noc-3
|
||||
- qcom,nord-pcie-cfg
|
||||
- qcom,nord-pcie-data-inbound
|
||||
- qcom,nord-pcie-data-outbound
|
||||
- qcom,nord-system-noc
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
minItems: 1
|
||||
maxItems: 4
|
||||
|
||||
required:
|
||||
- compatible
|
||||
|
||||
allOf:
|
||||
- $ref: qcom,rpmh-common.yaml#
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- qcom,nord-clk-virt
|
||||
- qcom,nord-mc-virt
|
||||
then:
|
||||
properties:
|
||||
reg: false
|
||||
else:
|
||||
required:
|
||||
- reg
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- qcom,nord-aggre1-noc-tile
|
||||
then:
|
||||
properties:
|
||||
clocks:
|
||||
items:
|
||||
- description: aggre UFS PHY AXI clock
|
||||
- description: aggre USB2 AXI clock
|
||||
- description: aggre USB3 PRIM AXI clock
|
||||
- description: aggre USB3 SEC AXI clock
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- qcom,nord-aggre2-noc
|
||||
then:
|
||||
properties:
|
||||
clocks:
|
||||
items:
|
||||
- description: RPMH CC IPA clock
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- qcom,nord-aggre1-noc-tile
|
||||
- qcom,nord-aggre2-noc
|
||||
then:
|
||||
required:
|
||||
- clocks
|
||||
else:
|
||||
properties:
|
||||
clocks: false
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
clk_virt: interconnect-clk-virt {
|
||||
compatible = "qcom,nord-clk-virt";
|
||||
#interconnect-cells = <2>;
|
||||
qcom,bcm-voters = <&apps_bcm_voter>;
|
||||
};
|
||||
|
||||
aggre1_noc_tile: interconnect@1720000 {
|
||||
compatible = "qcom,nord-aggre1-noc-tile";
|
||||
reg = <0x01720000 0x23400>;
|
||||
#interconnect-cells = <2>;
|
||||
qcom,bcm-voters = <&apps_bcm_voter>;
|
||||
clocks = <&ne_gcc_aggre_noc_ufs_phy_axi_clk>,
|
||||
<&ne_gcc_aggre_noc_usb2_axi_clk>,
|
||||
<&ne_gcc_aggre_noc_usb3_prim_axi_clk>,
|
||||
<&ne_gcc_aggre_noc_usb3_sec_axi_clk>;
|
||||
};
|
||||
|
|
@ -79,6 +79,19 @@ allOf:
|
|||
- const: aggre2_usb3_axi
|
||||
- const: cfg_noc_usb2_axi
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- qcom,sdm660-bimc
|
||||
- qcom,sdm660-cnoc
|
||||
- qcom,sdm660-gnoc
|
||||
- qcom,sdm660-snoc
|
||||
then:
|
||||
properties:
|
||||
clocks: false
|
||||
clock-names: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/qcom,gcc-sdm660.h>
|
||||
|
|
|
|||
134
Documentation/devicetree/bindings/interconnect/qcom,shikra.yaml
Normal file
134
Documentation/devicetree/bindings/interconnect/qcom,shikra.yaml
Normal file
|
|
@ -0,0 +1,134 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/interconnect/qcom,shikra.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Qualcomm Shikra Network-On-Chip interconnect
|
||||
|
||||
maintainers:
|
||||
- Raviteja Laggyshetty <raviteja.laggyshetty@oss.qualcomm.com>
|
||||
|
||||
description:
|
||||
The Qualcomm Shikra interconnect providers support adjusting the
|
||||
bandwidth requirements between the various NoC fabrics.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- qcom,shikra-config-noc
|
||||
- qcom,shikra-mem-noc-core
|
||||
- qcom,shikra-sys-noc
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
minItems: 1
|
||||
maxItems: 4
|
||||
|
||||
clock-names:
|
||||
minItems: 1
|
||||
maxItems: 4
|
||||
|
||||
# Child node's properties
|
||||
patternProperties:
|
||||
'^interconnect-[a-z0-9]+$':
|
||||
type: object
|
||||
description:
|
||||
The interconnect providers do not have a separate QoS register space,
|
||||
but share parent's space.
|
||||
|
||||
$ref: qcom,rpm-common.yaml#
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- qcom,shikra-clk-virt
|
||||
- qcom,shikra-mc-virt
|
||||
- qcom,shikra-mmrt-virt
|
||||
- qcom,shikra-mmnrt-virt
|
||||
|
||||
required:
|
||||
- compatible
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
allOf:
|
||||
- $ref: qcom,rpm-common.yaml#
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
const: qcom,shikra-mem-noc-core
|
||||
|
||||
then:
|
||||
properties:
|
||||
clocks:
|
||||
items:
|
||||
- description: GPU-NoC AXI clock
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: gpu_axi
|
||||
patternProperties:
|
||||
'^interconnect-[a-z0-9]+$': false
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
const: qcom,shikra-sys-noc
|
||||
|
||||
then:
|
||||
properties:
|
||||
clocks:
|
||||
items:
|
||||
- description: EMAC0-NoC AXI clock.
|
||||
- description: EMAC1-NoC AXI clock.
|
||||
- description: USB2-NoC AXI clock.
|
||||
- description: USB3-NoC AXI clock.
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: emac0_axi
|
||||
- const: emac1_axi
|
||||
- const: usb2_axi
|
||||
- const: usb3_axi
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
const: qcom,shikra-config-noc
|
||||
|
||||
then:
|
||||
properties:
|
||||
clocks: false
|
||||
clock-names: false
|
||||
patternProperties:
|
||||
'^interconnect-[a-z0-9]+$': false
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
interconnect@1880000 {
|
||||
compatible = "qcom,shikra-sys-noc";
|
||||
reg = <0x01880000 0x6a080>;
|
||||
#interconnect-cells = <2>;
|
||||
clocks = <&gcc_emac0_axi_sys_noc_clk>,
|
||||
<&gcc_emac1_axi_sys_noc_clk>,
|
||||
<&gcc_sys_noc_usb2_prim_axi_clk>,
|
||||
<&gcc_sys_noc_usb3_prim_axi_clk>;
|
||||
clock-names = "emac0_axi",
|
||||
"emac1_axi",
|
||||
"usb2_axi",
|
||||
"usb3_axi";
|
||||
|
||||
interconnect-clk {
|
||||
compatible = "qcom,shikra-clk-virt";
|
||||
#interconnect-cells = <2>;
|
||||
};
|
||||
};
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user