Import of kernel-5.14.0-687.5.3.el9_8
This commit is contained in:
parent
4aa4dc0b85
commit
440315429a
@ -93,6 +93,10 @@ Contact: Martin K. Petersen <martin.petersen@oracle.com>
|
||||
Description:
|
||||
Indicates whether a storage device is capable of storing
|
||||
integrity metadata. Set if the device is T10 PI-capable.
|
||||
This flag is set to 1 if the storage media is formatted
|
||||
with T10 Protection Information. If the storage media is
|
||||
not formatted with T10 Protection Information, this flag
|
||||
is set to 0.
|
||||
|
||||
|
||||
What: /sys/block/<disk>/integrity/format
|
||||
@ -101,6 +105,13 @@ Contact: Martin K. Petersen <martin.petersen@oracle.com>
|
||||
Description:
|
||||
Metadata format for integrity capable block device.
|
||||
E.g. T10-DIF-TYPE1-CRC.
|
||||
This field describes the type of T10 Protection Information
|
||||
that the block device can send and receive.
|
||||
If the device can store application integrity metadata but
|
||||
no T10 Protection Information profile is used, this field
|
||||
contains "nop".
|
||||
If the device does not support integrity metadata, this
|
||||
field contains "none".
|
||||
|
||||
|
||||
What: /sys/block/<disk>/integrity/protection_interval_bytes
|
||||
@ -126,7 +137,17 @@ Date: June 2008
|
||||
Contact: Martin K. Petersen <martin.petersen@oracle.com>
|
||||
Description:
|
||||
Number of bytes of integrity tag space available per
|
||||
512 bytes of data.
|
||||
protection_interval_bytes, which is typically
|
||||
the device's logical block size.
|
||||
This field describes the size of the application tag
|
||||
if the storage device is formatted with T10 Protection
|
||||
Information and permits use of the application tag.
|
||||
The tag_size is reported in bytes and indicates the
|
||||
space available for adding an opaque tag to each block
|
||||
(protection_interval_bytes).
|
||||
If the device does not support T10 Protection Information
|
||||
(even if the device provides application integrity
|
||||
metadata space), this field is set to 0.
|
||||
|
||||
|
||||
What: /sys/block/<disk>/integrity/write_generate
|
||||
@ -445,6 +466,21 @@ Description:
|
||||
zone commands, they will be treated as regular block
|
||||
devices and zoned will report "none".
|
||||
|
||||
What: /sys/block/<disk>/queue/max_write_streams
|
||||
Date: November 2024
|
||||
Contact: linux-block@vger.kernel.org
|
||||
Description:
|
||||
[RO] Maximum number of write streams supported, 0 if not
|
||||
supported. If supported, valid values are 1 through
|
||||
max_write_streams, inclusive.
|
||||
|
||||
What: /sys/block/<disk>/queue/write_stream_granularity
|
||||
Date: November 2024
|
||||
Contact: linux-block@vger.kernel.org
|
||||
Description:
|
||||
[RO] Granularity of a write stream in bytes. The granularity
|
||||
of a write stream is the size that should be discarded or
|
||||
overwritten together to avoid write amplification in the device.
|
||||
|
||||
What: /sys/block/<disk>/stat
|
||||
Date: February 2008
|
||||
|
||||
131
Documentation/ABI/testing/debugfs-amd-iommu
Normal file
131
Documentation/ABI/testing/debugfs-amd-iommu
Normal file
@ -0,0 +1,131 @@
|
||||
What: /sys/kernel/debug/iommu/amd/iommu<x>/mmio
|
||||
Date: January 2025
|
||||
Contact: Dheeraj Kumar Srivastava <dheerajkumar.srivastava@amd.com>
|
||||
Description:
|
||||
This file provides read/write access for user input. Users specify the
|
||||
MMIO register offset for iommu<x>, and the file outputs the corresponding
|
||||
MMIO register value of iommu<x>
|
||||
|
||||
Example::
|
||||
|
||||
$ echo "0x18" > /sys/kernel/debug/iommu/amd/iommu00/mmio
|
||||
$ cat /sys/kernel/debug/iommu/amd/iommu00/mmio
|
||||
|
||||
Output::
|
||||
|
||||
Offset:0x18 Value:0x000c22000003f48d
|
||||
|
||||
What: /sys/kernel/debug/iommu/amd/iommu<x>/capability
|
||||
Date: January 2025
|
||||
Contact: Dheeraj Kumar Srivastava <dheerajkumar.srivastava@amd.com>
|
||||
Description:
|
||||
This file provides read/write access for user input. Users specify the
|
||||
capability register offset for iommu<x>, and the file outputs the
|
||||
corresponding capability register value of iommu<x>.
|
||||
|
||||
Example::
|
||||
|
||||
$ echo "0x10" > /sys/kernel/debug/iommu/amd/iommu00/capability
|
||||
$ cat /sys/kernel/debug/iommu/amd/iommu00/capability
|
||||
|
||||
Output::
|
||||
|
||||
Offset:0x10 Value:0x00203040
|
||||
|
||||
What: /sys/kernel/debug/iommu/amd/iommu<x>/cmdbuf
|
||||
Date: January 2025
|
||||
Contact: Dheeraj Kumar Srivastava <dheerajkumar.srivastava@amd.com>
|
||||
Description:
|
||||
This file is a read-only output file containing iommu<x> command
|
||||
buffer entries.
|
||||
|
||||
Examples::
|
||||
|
||||
$ cat /sys/kernel/debug/iommu/amd/iommu<x>/cmdbuf
|
||||
|
||||
Output::
|
||||
|
||||
CMD Buffer Head Offset:339 Tail Offset:339
|
||||
0: 00835001 10000001 00003c00 00000000
|
||||
1: 00000000 30000005 fffff003 7fffffff
|
||||
2: 00835001 10000001 00003c01 00000000
|
||||
3: 00000000 30000005 fffff003 7fffffff
|
||||
4: 00835001 10000001 00003c02 00000000
|
||||
5: 00000000 30000005 fffff003 7fffffff
|
||||
6: 00835001 10000001 00003c03 00000000
|
||||
7: 00000000 30000005 fffff003 7fffffff
|
||||
8: 00835001 10000001 00003c04 00000000
|
||||
9: 00000000 30000005 fffff003 7fffffff
|
||||
10: 00835001 10000001 00003c05 00000000
|
||||
11: 00000000 30000005 fffff003 7fffffff
|
||||
[...]
|
||||
|
||||
What: /sys/kernel/debug/iommu/amd/devid
|
||||
Date: January 2025
|
||||
Contact: Dheeraj Kumar Srivastava <dheerajkumar.srivastava@amd.com>
|
||||
Description:
|
||||
This file provides read/write access for user input. Users specify the
|
||||
device ID, which can be used to dump IOMMU data structures such as the
|
||||
interrupt remapping table and device table.
|
||||
|
||||
Example:
|
||||
|
||||
1.
|
||||
::
|
||||
|
||||
$ echo 0000:01:00.0 > /sys/kernel/debug/iommu/amd/devid
|
||||
$ cat /sys/kernel/debug/iommu/amd/devid
|
||||
|
||||
Output::
|
||||
|
||||
0000:01:00.0
|
||||
|
||||
2.
|
||||
::
|
||||
|
||||
$ echo 01:00.0 > /sys/kernel/debug/iommu/amd/devid
|
||||
$ cat /sys/kernel/debug/iommu/amd/devid
|
||||
|
||||
Output::
|
||||
|
||||
0000:01:00.0
|
||||
|
||||
What: /sys/kernel/debug/iommu/amd/devtbl
|
||||
Date: January 2025
|
||||
Contact: Dheeraj Kumar Srivastava <dheerajkumar.srivastava@amd.com>
|
||||
Description:
|
||||
This file is a read-only output file containing the device table entry
|
||||
for the device ID provided in /sys/kernel/debug/iommu/amd/devid.
|
||||
|
||||
Example::
|
||||
|
||||
$ cat /sys/kernel/debug/iommu/amd/devtbl
|
||||
|
||||
Output::
|
||||
|
||||
DeviceId QWORD[3] QWORD[2] QWORD[1] QWORD[0] iommu
|
||||
0000:01:00.0 0000000000000000 20000001373b8013 0000000000000038 6000000114d7b603 iommu3
|
||||
|
||||
What: /sys/kernel/debug/iommu/amd/irqtbl
|
||||
Date: January 2025
|
||||
Contact: Dheeraj Kumar Srivastava <dheerajkumar.srivastava@amd.com>
|
||||
Description:
|
||||
This file is a read-only output file containing valid IRT table entries
|
||||
for the device ID provided in /sys/kernel/debug/iommu/amd/devid.
|
||||
|
||||
Example::
|
||||
|
||||
$ cat /sys/kernel/debug/iommu/amd/irqtbl
|
||||
|
||||
Output::
|
||||
|
||||
DeviceId 0000:01:00.0
|
||||
IRT[0000] 0000000000000020 0000000000000241
|
||||
IRT[0001] 0000000000000020 0000000000000841
|
||||
IRT[0002] 0000000000000020 0000000000002041
|
||||
IRT[0003] 0000000000000020 0000000000008041
|
||||
IRT[0004] 0000000000000020 0000000000020041
|
||||
IRT[0005] 0000000000000020 0000000000080041
|
||||
IRT[0006] 0000000000000020 0000000000200041
|
||||
IRT[0007] 0000000000000020 0000000000800041
|
||||
[...]
|
||||
@ -67,7 +67,7 @@ Contact: qat-linux@intel.com
|
||||
Description: (RO) Read returns power management information specific to the
|
||||
QAT device.
|
||||
|
||||
This attribute is only available for qat_4xxx devices.
|
||||
This attribute is only available for qat_4xxx and qat_6xxx devices.
|
||||
|
||||
What: /sys/kernel/debug/qat_<device>_<BDF>/cnv_errors
|
||||
Date: January 2024
|
||||
|
||||
@ -32,7 +32,7 @@ Description: (RW) Enables/disables the reporting of telemetry metrics.
|
||||
|
||||
echo 0 > /sys/kernel/debug/qat_4xxx_0000:6b:00.0/telemetry/control
|
||||
|
||||
This attribute is only available for qat_4xxx devices.
|
||||
This attribute is only available for qat_4xxx and qat_6xxx devices.
|
||||
|
||||
What: /sys/kernel/debug/qat_<device>_<BDF>/telemetry/device_data
|
||||
Date: March 2024
|
||||
@ -57,6 +57,7 @@ Description: (RO) Reports device telemetry counters.
|
||||
gp_lat_acc_avg average get to put latency [ns]
|
||||
bw_in PCIe, write bandwidth [Mbps]
|
||||
bw_out PCIe, read bandwidth [Mbps]
|
||||
re_acc_avg average ring empty time [ns]
|
||||
at_page_req_lat_avg Address Translator(AT), average page
|
||||
request latency [ns]
|
||||
at_trans_lat_avg AT, average page translation latency [ns]
|
||||
@ -67,6 +68,10 @@ Description: (RO) Reports device telemetry counters.
|
||||
exec_xlt<N> execution count of Translator slice N
|
||||
util_dcpr<N> utilization of Decompression slice N [%]
|
||||
exec_dcpr<N> execution count of Decompression slice N
|
||||
util_cnv<N> utilization of Compression and verify slice N [%]
|
||||
exec_cnv<N> execution count of Compression and verify slice N
|
||||
util_dcprz<N> utilization of Decompression slice N [%]
|
||||
exec_dcprz<N> execution count of Decompression slice N
|
||||
util_pke<N> utilization of PKE N [%]
|
||||
exec_pke<N> execution count of PKE N
|
||||
util_ucs<N> utilization of UCS slice N [%]
|
||||
@ -81,6 +86,32 @@ Description: (RO) Reports device telemetry counters.
|
||||
exec_cph<N> execution count of Cipher slice N
|
||||
util_ath<N> utilization of Authentication slice N [%]
|
||||
exec_ath<N> execution count of Authentication slice N
|
||||
cmdq_wait_cnv<N> wait time for cmdq N to get Compression and verify
|
||||
slice ownership
|
||||
cmdq_exec_cnv<N> Compression and verify slice execution time while
|
||||
owned by cmdq N
|
||||
cmdq_drain_cnv<N> time taken for cmdq N to release Compression and
|
||||
verify slice ownership
|
||||
cmdq_wait_dcprz<N> wait time for cmdq N to get Decompression
|
||||
slice N ownership
|
||||
cmdq_exec_dcprz<N> Decompression slice execution time while
|
||||
owned by cmdq N
|
||||
cmdq_drain_dcprz<N> time taken for cmdq N to release Decompression
|
||||
slice ownership
|
||||
cmdq_wait_pke<N> wait time for cmdq N to get PKE slice ownership
|
||||
cmdq_exec_pke<N> PKE slice execution time while owned by cmdq N
|
||||
cmdq_drain_pke<N> time taken for cmdq N to release PKE slice
|
||||
ownership
|
||||
cmdq_wait_ucs<N> wait time for cmdq N to get UCS slice ownership
|
||||
cmdq_exec_ucs<N> UCS slice execution time while owned by cmdq N
|
||||
cmdq_drain_ucs<N> time taken for cmdq N to release UCS slice
|
||||
ownership
|
||||
cmdq_wait_ath<N> wait time for cmdq N to get Authentication slice
|
||||
ownership
|
||||
cmdq_exec_ath<N> Authentication slice execution time while owned
|
||||
by cmdq N
|
||||
cmdq_drain_ath<N> time taken for cmdq N to release Authentication
|
||||
slice ownership
|
||||
======================= ========================================
|
||||
|
||||
The telemetry report file can be read with the following command::
|
||||
@ -100,7 +131,7 @@ Description: (RO) Reports device telemetry counters.
|
||||
If a device lacks of a specific accelerator, the corresponding
|
||||
attribute is not reported.
|
||||
|
||||
This attribute is only available for qat_4xxx devices.
|
||||
This attribute is only available for qat_4xxx and qat_6xxx devices.
|
||||
|
||||
What: /sys/kernel/debug/qat_<device>_<BDF>/telemetry/rp_<A/B/C/D>_data
|
||||
Date: March 2024
|
||||
@ -225,4 +256,4 @@ Description: (RW) Selects up to 4 Ring Pairs (RP) to monitor, one per file,
|
||||
``rp2srv`` from sysfs.
|
||||
See Documentation/ABI/testing/sysfs-driver-qat for details.
|
||||
|
||||
This attribute is only available for qat_4xxx devices.
|
||||
This attribute is only available for qat_4xxx and qat_6xxx devices.
|
||||
|
||||
@ -26,6 +26,16 @@ Description:
|
||||
This ID is used to match the device with the appropriate
|
||||
driver.
|
||||
|
||||
What: /sys/class/mdio_bus/<bus>/<device>/c45_phy_ids/mmd<n>_device_id
|
||||
Date: June 2025
|
||||
KernelVersion: 6.17
|
||||
Contact: netdev@vger.kernel.org
|
||||
Description:
|
||||
This attribute contains the 32-bit PHY Identifier as reported
|
||||
by the device during bus enumeration, encoded in hexadecimal.
|
||||
These C45 IDs are used to match the device with the appropriate
|
||||
driver. These files are invisible to the C22 device.
|
||||
|
||||
What: /sys/class/mdio_bus/<bus>/<device>/phy_interface
|
||||
Date: February 2014
|
||||
KernelVersion: 3.15
|
||||
|
||||
48
Documentation/ABI/testing/sysfs-class-platform-profile
Normal file
48
Documentation/ABI/testing/sysfs-class-platform-profile
Normal file
@ -0,0 +1,48 @@
|
||||
What: /sys/class/platform-profile/platform-profile-X/name
|
||||
Date: March 2025
|
||||
KernelVersion: 6.14
|
||||
Description: Name of the class device given by the driver.
|
||||
|
||||
RO
|
||||
|
||||
What: /sys/class/platform-profile/platform-profile-X/choices
|
||||
Date: March 2025
|
||||
KernelVersion: 6.14
|
||||
Description: This file contains a space-separated list of profiles supported
|
||||
for this device.
|
||||
|
||||
Drivers must use the following standard profile-names:
|
||||
|
||||
==================== ========================================
|
||||
low-power Low power consumption
|
||||
cool Cooler operation
|
||||
quiet Quieter operation
|
||||
balanced Balance between low power consumption
|
||||
and performance
|
||||
balanced-performance Balance between performance and low
|
||||
power consumption with a slight bias
|
||||
towards performance
|
||||
performance High performance operation
|
||||
custom Driver defined custom profile
|
||||
==================== ========================================
|
||||
|
||||
RO
|
||||
|
||||
What: /sys/class/platform-profile/platform-profile-X/profile
|
||||
Date: March 2025
|
||||
KernelVersion: 6.14
|
||||
Description: Reading this file gives the current selected profile for this
|
||||
device. Writing this file with one of the strings from
|
||||
platform_profile_choices changes the profile to the new value.
|
||||
|
||||
This file can be monitored for changes by polling for POLLPRI,
|
||||
POLLPRI will be signaled on any changes, independent of those
|
||||
changes coming from a userspace write; or coming from another
|
||||
source such as e.g. a hotkey triggered profile change handled
|
||||
either directly by the embedded-controller or fully handled
|
||||
inside the kernel.
|
||||
|
||||
This file may also emit the string 'custom' to indicate
|
||||
that the driver is using a driver defined custom profile.
|
||||
|
||||
RW
|
||||
@ -273,6 +273,60 @@ Description: Discover CPUs in the same CPU frequency coordination domain
|
||||
This file is only present if the acpi-cpufreq or the cppc-cpufreq
|
||||
drivers are in use.
|
||||
|
||||
What: /sys/devices/system/cpu/cpuX/cpufreq/auto_select
|
||||
Date: May 2025
|
||||
Contact: linux-pm@vger.kernel.org
|
||||
Description: Autonomous selection enable
|
||||
|
||||
Read/write interface to control autonomous selection enable
|
||||
Read returns autonomous selection status:
|
||||
0: autonomous selection is disabled
|
||||
1: autonomous selection is enabled
|
||||
|
||||
Write 'y' or '1' or 'on' to enable autonomous selection.
|
||||
Write 'n' or '0' or 'off' to disable autonomous selection.
|
||||
|
||||
This file is only present if the cppc-cpufreq driver is in use.
|
||||
|
||||
What: /sys/devices/system/cpu/cpuX/cpufreq/auto_act_window
|
||||
Date: May 2025
|
||||
Contact: linux-pm@vger.kernel.org
|
||||
Description: Autonomous activity window
|
||||
|
||||
This file indicates a moving utilization sensitivity window to
|
||||
the platform's autonomous selection policy.
|
||||
|
||||
Read/write an integer represents autonomous activity window (in
|
||||
microseconds) from/to this file. The max value to write is
|
||||
1270000000 but the max significand is 127. This means that if 128
|
||||
is written to this file, 127 will be stored. If the value is
|
||||
greater than 130, only the first two digits will be saved as
|
||||
significand.
|
||||
|
||||
Writing a zero value to this file enable the platform to
|
||||
determine an appropriate Activity Window depending on the workload.
|
||||
|
||||
Writing to this file only has meaning when Autonomous Selection is
|
||||
enabled.
|
||||
|
||||
This file is only present if the cppc-cpufreq driver is in use.
|
||||
|
||||
What: /sys/devices/system/cpu/cpuX/cpufreq/energy_performance_preference_val
|
||||
Date: May 2025
|
||||
Contact: linux-pm@vger.kernel.org
|
||||
Description: Energy performance preference
|
||||
|
||||
Read/write an 8-bit integer from/to this file. This file
|
||||
represents a range of values from 0 (performance preference) to
|
||||
0xFF (energy efficiency preference) that influences the rate of
|
||||
performance increase/decrease and the result of the hardware's
|
||||
energy efficiency and performance optimization policies.
|
||||
|
||||
Writing to this file only has meaning when Autonomous Selection is
|
||||
enabled.
|
||||
|
||||
This file is only present if the cppc-cpufreq driver is in use.
|
||||
|
||||
|
||||
What: /sys/devices/system/cpu/cpu*/cache/index3/cache_disable_{0,1}
|
||||
Date: August 2008
|
||||
@ -525,6 +579,7 @@ What: /sys/devices/system/cpu/vulnerabilities
|
||||
/sys/devices/system/cpu/vulnerabilities/mds
|
||||
/sys/devices/system/cpu/vulnerabilities/meltdown
|
||||
/sys/devices/system/cpu/vulnerabilities/mmio_stale_data
|
||||
/sys/devices/system/cpu/vulnerabilities/old_microcode
|
||||
/sys/devices/system/cpu/vulnerabilities/reg_file_data_sampling
|
||||
/sys/devices/system/cpu/vulnerabilities/retbleed
|
||||
/sys/devices/system/cpu/vulnerabilities/spec_store_bypass
|
||||
@ -703,3 +758,9 @@ Description:
|
||||
(RO) indicates whether or not the kernel updates relevant kexec
|
||||
segments on memory hot un/plug and/or on/offline events, avoiding the
|
||||
need to reload kdump kernel.
|
||||
|
||||
What: /sys/devices/system/cpu/enabled
|
||||
Date: Nov 2022
|
||||
Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org>
|
||||
Description:
|
||||
(RO) the list of CPUs that can be brought online.
|
||||
|
||||
@ -14,7 +14,7 @@ Description: (RW) Reports the current state of the QAT device. Write to
|
||||
It is possible to transition the device from up to down only
|
||||
if the device is up and vice versa.
|
||||
|
||||
This attribute is only available for qat_4xxx devices.
|
||||
This attribute is available for qat_4xxx and qat_6xxx devices.
|
||||
|
||||
What: /sys/bus/pci/devices/<BDF>/qat/cfg_services
|
||||
Date: June 2022
|
||||
@ -23,24 +23,28 @@ Contact: qat-linux@intel.com
|
||||
Description: (RW) Reports the current configuration of the QAT device.
|
||||
Write to the file to change the configured services.
|
||||
|
||||
The values are:
|
||||
One or more services can be enabled per device.
|
||||
Certain configurations are restricted to specific device types;
|
||||
where applicable this is explicitly indicated, for example
|
||||
(qat_6xxx) denotes applicability exclusively to that device series.
|
||||
|
||||
* sym;asym: the device is configured for running crypto
|
||||
services
|
||||
* asym;sym: identical to sym;asym
|
||||
* dc: the device is configured for running compression services
|
||||
* dcc: identical to dc but enables the dc chaining feature,
|
||||
hash then compression. If this is not required chose dc
|
||||
* sym: the device is configured for running symmetric crypto
|
||||
services
|
||||
* asym: the device is configured for running asymmetric crypto
|
||||
services
|
||||
* asym;dc: the device is configured for running asymmetric
|
||||
crypto services and compression services
|
||||
* dc;asym: identical to asym;dc
|
||||
* sym;dc: the device is configured for running symmetric crypto
|
||||
services and compression services
|
||||
* dc;sym: identical to sym;dc
|
||||
The available services include:
|
||||
|
||||
* sym: Configures the device for symmetric cryptographic operations.
|
||||
* asym: Configures the device for asymmetric cryptographic operations.
|
||||
* dc: Configures the device for compression and decompression
|
||||
operations.
|
||||
* dcc: Similar to dc, but with the additional dc chaining feature
|
||||
enabled, cipher then compress (qat_6xxx), hash then compression.
|
||||
If this is not required choose dc.
|
||||
* decomp: Configures the device for decompression operations (qat_6xxx).
|
||||
|
||||
Service combinations are permitted for all services except dcc.
|
||||
On QAT GEN4 devices (qat_4xxx driver) a maximum of two services can be
|
||||
combined and on QAT GEN6 devices (qat_6xxx driver ) a maximum of three
|
||||
services can be combined.
|
||||
The order of services is not significant. For instance, sym;asym is
|
||||
functionally equivalent to asym;sym.
|
||||
|
||||
It is possible to set the configuration only if the device
|
||||
is in the `down` state (see /sys/bus/pci/devices/<BDF>/qat/state)
|
||||
@ -59,7 +63,7 @@ Description: (RW) Reports the current configuration of the QAT device.
|
||||
# cat /sys/bus/pci/devices/<BDF>/qat/cfg_services
|
||||
dc
|
||||
|
||||
This attribute is only available for qat_4xxx devices.
|
||||
This attribute is available for qat_4xxx and qat_6xxx devices.
|
||||
|
||||
What: /sys/bus/pci/devices/<BDF>/qat/pm_idle_enabled
|
||||
Date: June 2023
|
||||
@ -94,7 +98,7 @@ Description: (RW) This configuration option provides a way to force the device i
|
||||
# cat /sys/bus/pci/devices/<BDF>/qat/pm_idle_enabled
|
||||
0
|
||||
|
||||
This attribute is only available for qat_4xxx devices.
|
||||
This attribute is available for qat_4xxx and qat_6xxx devices.
|
||||
|
||||
What: /sys/bus/pci/devices/<BDF>/qat/rp2srv
|
||||
Date: January 2024
|
||||
@ -126,7 +130,7 @@ Description:
|
||||
# cat /sys/bus/pci/devices/<BDF>/qat/rp2srv
|
||||
sym
|
||||
|
||||
This attribute is only available for qat_4xxx devices.
|
||||
This attribute is available for qat_4xxx and qat_6xxx devices.
|
||||
|
||||
What: /sys/bus/pci/devices/<BDF>/qat/num_rps
|
||||
Date: January 2024
|
||||
@ -140,7 +144,7 @@ Description:
|
||||
# cat /sys/bus/pci/devices/<BDF>/qat/num_rps
|
||||
64
|
||||
|
||||
This attribute is only available for qat_4xxx devices.
|
||||
This attribute is available for qat_4xxx and qat_6xxx devices.
|
||||
|
||||
What: /sys/bus/pci/devices/<BDF>/qat/auto_reset
|
||||
Date: May 2024
|
||||
@ -160,4 +164,4 @@ Description: (RW) Reports the current state of the autoreset feature
|
||||
* 0/Nn/off: auto reset disabled. If the device encounters an
|
||||
unrecoverable error, it will not be reset.
|
||||
|
||||
This attribute is only available for qat_4xxx devices.
|
||||
This attribute is available for qat_4xxx and qat_6xxx devices.
|
||||
|
||||
@ -4,7 +4,7 @@ KernelVersion: 6.7
|
||||
Contact: qat-linux@intel.com
|
||||
Description: (RO) Reports the number of correctable errors detected by the device.
|
||||
|
||||
This attribute is only available for qat_4xxx devices.
|
||||
This attribute is only available for qat_4xxx and qat_6xxx devices.
|
||||
|
||||
What: /sys/bus/pci/devices/<BDF>/qat_ras/errors_nonfatal
|
||||
Date: January 2024
|
||||
@ -12,7 +12,7 @@ KernelVersion: 6.7
|
||||
Contact: qat-linux@intel.com
|
||||
Description: (RO) Reports the number of non fatal errors detected by the device.
|
||||
|
||||
This attribute is only available for qat_4xxx devices.
|
||||
This attribute is only available for qat_4xxx and qat_6xxx devices.
|
||||
|
||||
What: /sys/bus/pci/devices/<BDF>/qat_ras/errors_fatal
|
||||
Date: January 2024
|
||||
@ -20,7 +20,7 @@ KernelVersion: 6.7
|
||||
Contact: qat-linux@intel.com
|
||||
Description: (RO) Reports the number of fatal errors detected by the device.
|
||||
|
||||
This attribute is only available for qat_4xxx devices.
|
||||
This attribute is only available for qat_4xxx and qat_6xxx devices.
|
||||
|
||||
What: /sys/bus/pci/devices/<BDF>/qat_ras/reset_error_counters
|
||||
Date: January 2024
|
||||
@ -38,4 +38,4 @@ Description: (WO) Write to resets all error counters of a device.
|
||||
# cat /sys/bus/pci/devices/<BDF>/qat_ras/errors_fatal
|
||||
0
|
||||
|
||||
This attribute is only available for qat_4xxx devices.
|
||||
This attribute is only available for qat_4xxx and qat_6xxx devices.
|
||||
|
||||
@ -31,7 +31,7 @@ Description:
|
||||
* rm_all: Removes all the configured SLAs.
|
||||
* Inputs: None
|
||||
|
||||
This attribute is only available for qat_4xxx devices.
|
||||
This attribute is only available for qat_4xxx and qat_6xxx devices.
|
||||
|
||||
What: /sys/bus/pci/devices/<BDF>/qat_rl/rp
|
||||
Date: January 2024
|
||||
@ -68,7 +68,7 @@ Description:
|
||||
## Write
|
||||
# echo 0x5 > /sys/bus/pci/devices/<BDF>/qat_rl/rp
|
||||
|
||||
This attribute is only available for qat_4xxx devices.
|
||||
This attribute is only available for qat_4xxx and qat_6xxx devices.
|
||||
|
||||
What: /sys/bus/pci/devices/<BDF>/qat_rl/id
|
||||
Date: January 2024
|
||||
@ -101,7 +101,7 @@ Description:
|
||||
# cat /sys/bus/pci/devices/<BDF>/qat_rl/rp
|
||||
0x5 ## ring pair ID 0 and ring pair ID 2
|
||||
|
||||
This attribute is only available for qat_4xxx devices.
|
||||
This attribute is only available for qat_4xxx and qat_6xxx devices.
|
||||
|
||||
What: /sys/bus/pci/devices/<BDF>/qat_rl/cir
|
||||
Date: January 2024
|
||||
@ -135,7 +135,7 @@ Description:
|
||||
# cat /sys/bus/pci/devices/<BDF>/qat_rl/cir
|
||||
500
|
||||
|
||||
This attribute is only available for qat_4xxx devices.
|
||||
This attribute is only available for qat_4xxx and qat_6xxx devices.
|
||||
|
||||
What: /sys/bus/pci/devices/<BDF>/qat_rl/pir
|
||||
Date: January 2024
|
||||
@ -169,7 +169,7 @@ Description:
|
||||
# cat /sys/bus/pci/devices/<BDF>/qat_rl/pir
|
||||
750
|
||||
|
||||
This attribute is only available for qat_4xxx devices.
|
||||
This attribute is only available for qat_4xxx and qat_6xxx devices.
|
||||
|
||||
What: /sys/bus/pci/devices/<BDF>/qat_rl/srv
|
||||
Date: January 2024
|
||||
@ -202,7 +202,7 @@ Description:
|
||||
# cat /sys/bus/pci/devices/<BDF>/qat_rl/srv
|
||||
dc
|
||||
|
||||
This attribute is only available for qat_4xxx devices.
|
||||
This attribute is only available for qat_4xxx and qat_6xxx devices.
|
||||
|
||||
What: /sys/bus/pci/devices/<BDF>/qat_rl/cap_rem
|
||||
Date: January 2024
|
||||
@ -223,4 +223,4 @@ Description:
|
||||
# cat /sys/bus/pci/devices/<BDF>/qat_rl/cap_rem
|
||||
0
|
||||
|
||||
This attribute is only available for qat_4xxx devices.
|
||||
This attribute is only available for qat_4xxx and qat_6xxx devices.
|
||||
|
||||
@ -62,3 +62,13 @@ Description:
|
||||
by VESA DisplayPort Alt Mode on USB Type-C Standard.
|
||||
- 0 when HPD’s logical state is low (HPD_Low) as defined by
|
||||
VESA DisplayPort Alt Mode on USB Type-C Standard.
|
||||
|
||||
What: /sys/bus/typec/devices/.../displayport/irq_hpd
|
||||
Date: June 2025
|
||||
Contact: RD Babiera <rdbabiera@google.com>
|
||||
Description:
|
||||
IRQ_HPD events are sent over the USB PD protocol in Status Update and
|
||||
Attention messages. IRQ_HPD can only be asserted when HPD is high,
|
||||
and is asserted when an IRQ_HPD has been issued since the last Status
|
||||
Update. This is a read only node that returns the number of IRQ events
|
||||
raised in the driver's lifetime.
|
||||
|
||||
@ -108,15 +108,15 @@ Description:
|
||||
number of a "General Purpose Events" (GPE).
|
||||
|
||||
A GPE vectors to a specified handler in AML, which
|
||||
can do a anything the BIOS writer wants from
|
||||
can do anything the BIOS writer wants from
|
||||
OS context. GPE 0x12, for example, would vector
|
||||
to a level or edge handler called _L12 or _E12.
|
||||
The handler may do its business and return.
|
||||
Or the handler may send send a Notify event
|
||||
Or the handler may send a Notify event
|
||||
to a Linux device driver registered on an ACPI device,
|
||||
such as a battery, or a processor.
|
||||
|
||||
To figure out where all the SCI's are coming from,
|
||||
To figure out where all the SCIs are coming from,
|
||||
/sys/firmware/acpi/interrupts contains a file listing
|
||||
every possible source, and the count of how many
|
||||
times it has triggered::
|
||||
|
||||
@ -1,55 +1,71 @@
|
||||
What: /sys/bus/wmi/devices/6932965F-1671-4CEB-B988-D3AB0A901919/dell_privacy_supported_type
|
||||
What: /sys/bus/wmi/devices/6932965F-1671-4CEB-B988-D3AB0A901919[-X]/dell_privacy_supported_type
|
||||
Date: Apr 2021
|
||||
KernelVersion: 5.13
|
||||
Contact: "perry.yuan@dell.com>"
|
||||
Contact: "<perry.yuan@dell.com>"
|
||||
Description:
|
||||
Display which dell hardware level privacy devices are supported
|
||||
“Dell Privacy” is a set of HW, FW, and SW features to enhance
|
||||
Dell’s commitment to platform privacy for MIC, Camera, and
|
||||
ePrivacy screens.
|
||||
The supported hardware privacy devices are:
|
||||
Attributes:
|
||||
Microphone Mute:
|
||||
|
||||
Attributes:
|
||||
Microphone Mute:
|
||||
Identifies the local microphone can be muted by hardware, no applications
|
||||
is available to capture system mic sound
|
||||
|
||||
Camera Shutter:
|
||||
Camera Shutter:
|
||||
Identifies camera shutter controlled by hardware, which is a micromechanical
|
||||
shutter assembly that is built onto the camera module to block capturing images
|
||||
from outside the laptop
|
||||
|
||||
supported:
|
||||
Values:
|
||||
|
||||
supported:
|
||||
The privacy device is supported by this system
|
||||
|
||||
unsupported:
|
||||
unsupported:
|
||||
The privacy device is not supported on this system
|
||||
|
||||
For example to check which privacy devices are supported:
|
||||
For example to check which privacy devices are supported::
|
||||
|
||||
# cat /sys/bus/wmi/drivers/dell-privacy/6932965F-1671-4CEB-B988-D3AB0A901919/dell_privacy_supported_type
|
||||
[Microphone Mute] [supported]
|
||||
[Camera Shutter] [supported]
|
||||
[ePrivacy Screen] [unsupported]
|
||||
# cat /sys/bus/wmi/drivers/dell-privacy/6932965F-1671-4CEB-B988-D3AB0A901919*/dell_privacy_supported_type
|
||||
[Microphone Mute] [supported]
|
||||
[Camera Shutter] [supported]
|
||||
[ePrivacy Screen] [unsupported]
|
||||
|
||||
What: /sys/bus/wmi/devices/6932965F-1671-4CEB-B988-D3AB0A901919/dell_privacy_current_state
|
||||
What: /sys/bus/wmi/devices/6932965F-1671-4CEB-B988-D3AB0A901919[-X]/dell_privacy_current_state
|
||||
Date: Apr 2021
|
||||
KernelVersion: 5.13
|
||||
Contact: "perry.yuan@dell.com>"
|
||||
Contact: "<perry.yuan@dell.com>"
|
||||
Description:
|
||||
Allow user space to check current dell privacy device state.
|
||||
Describes the Device State class exposed by BIOS which can be
|
||||
consumed by various applications interested in knowing the Privacy
|
||||
feature capabilities
|
||||
Attributes:
|
||||
muted:
|
||||
Identifies the privacy device is turned off and cannot send stream to OS applications
|
||||
|
||||
unmuted:
|
||||
Identifies the privacy device is turned on ,audio or camera driver can get
|
||||
stream from mic and camera module to OS applications
|
||||
Attributes:
|
||||
Microphone:
|
||||
Identifies the local microphone can be muted by hardware, no applications
|
||||
is available to capture system mic sound
|
||||
|
||||
For example to check all supported current privacy device states:
|
||||
Camera Shutter:
|
||||
Identifies camera shutter controlled by hardware, which is a micromechanical
|
||||
shutter assembly that is built onto the camera module to block capturing images
|
||||
from outside the laptop
|
||||
|
||||
# cat /sys/bus/wmi/drivers/dell-privacy/6932965F-1671-4CEB-B988-D3AB0A901919/dell_privacy_current_state
|
||||
[Microphone] [unmuted]
|
||||
[Camera Shutter] [unmuted]
|
||||
Values:
|
||||
muted:
|
||||
Identifies the privacy device is turned off
|
||||
and cannot send stream to OS applications
|
||||
|
||||
unmuted:
|
||||
Identifies the privacy device is turned on,
|
||||
audio or camera driver can get stream from mic
|
||||
and camera module to OS applications
|
||||
|
||||
For example to check all supported current privacy device states::
|
||||
|
||||
# cat /sys/bus/wmi/drivers/dell-privacy/6932965F-1671-4CEB-B988-D3AB0A901919*/dell_privacy_current_state
|
||||
[Microphone] [unmuted]
|
||||
[Camera Shutter] [unmuted]
|
||||
|
||||
@ -11,8 +11,10 @@ Description:
|
||||
to take effect.
|
||||
|
||||
Display global reset setting bits for PMC.
|
||||
|
||||
* bit 31 - global reset is locked
|
||||
* bit 20 - global reset is set
|
||||
|
||||
Writing bit 20 value to the etr3 will induce
|
||||
a platform "global reset" upon consequent platform reset,
|
||||
in case the register is not locked.
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
What: /sys/bus/wmi/devices/44FADEB1-B204-40F2-8581-394BBDC1B651/firmware_update_request
|
||||
What: /sys/bus/wmi/devices/44FADEB1-B204-40F2-8581-394BBDC1B651[-X]/firmware_update_request
|
||||
Date: April 2020
|
||||
KernelVersion: 5.7
|
||||
Contact: "Jithu Joseph" <jithu.joseph@intel.com>
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
What: /sys/devices/platform/<platform>/force_power
|
||||
What: /sys/bus/wmi/devices/86CCFD48-205E-4A77-9C48-2021CBEDE341[-X]/force_power
|
||||
Date: September 2017
|
||||
KernelVersion: 4.15
|
||||
Contact: "Mario Limonciello" <mario.limonciello@outlook.com>
|
||||
|
||||
@ -150,3 +150,13 @@ Description:
|
||||
The "mfg_lock" sysfs attribute is write-only.
|
||||
A successful write to this attribute will latch the
|
||||
board-level attributes into EEPROM, making them read-only.
|
||||
|
||||
What: /sys/bus/platform/devices/MLNXBF04:00/rtc_battery
|
||||
Date: June 2025
|
||||
KernelVersion: 6.15
|
||||
Contact: "Xiangrong Li <xiangrongl@nvidia.com>"
|
||||
Description:
|
||||
The "rtc_battery" sysfs attribute is read-only.
|
||||
A successful read from this attribute returns the status of
|
||||
the board's RTC battery. The RTC battery status register is
|
||||
also cleared upon successful read operation.
|
||||
|
||||
@ -22,9 +22,13 @@ Description: A string indicating which backend is in use by the firmware.
|
||||
and is expected to be "ibm,edk2-compat-v1".
|
||||
|
||||
On pseries/PLPKS, this is generated by the kernel based on the
|
||||
version number in the SB_VERSION variable in the keystore, and
|
||||
has the form "ibm,plpks-sb-v<version>", or
|
||||
"ibm,plpks-sb-unknown" if there is no SB_VERSION variable.
|
||||
version number in the SB_VERSION variable in the keystore. The
|
||||
version numbering in the SB_VERSION variable starts from 1. The
|
||||
format string takes the form "ibm,plpks-sb-v<version>" in the
|
||||
case of dynamic key management mode. If the SB_VERSION variable
|
||||
does not exist (or there is an error while reading it), it takes
|
||||
the form "ibm,plpks-sb-v0", indicating that the key management
|
||||
mode is static.
|
||||
|
||||
What: /sys/firmware/secvar/vars/<variable name>
|
||||
Date: August 2019
|
||||
@ -34,6 +38,13 @@ Description: Each secure variable is represented as a directory named as
|
||||
representation. The data and size can be determined by reading
|
||||
their respective attribute files.
|
||||
|
||||
Only secvars relevant to the key management mode are exposed.
|
||||
Only in the dynamic key management mode should the user have
|
||||
access (read and write) to the secure boot secvars db, dbx,
|
||||
grubdb, grubdbx, and sbat. These secvars are not consumed in the
|
||||
static key management mode. PK, trustedcadb and moduledb are the
|
||||
secvars common to both static and dynamic key management modes.
|
||||
|
||||
What: /sys/firmware/secvar/vars/<variable_name>/size
|
||||
Date: August 2019
|
||||
Contact: Nayna Jain <nayna@linux.ibm.com>
|
||||
|
||||
@ -68,22 +68,22 @@ loop_cmd = $(echo-cmd) $(cmd_$(1)) || exit;
|
||||
# * dest folder relative to $(BUILDDIR) and
|
||||
# * cache folder relative to $(BUILDDIR)/.doctrees
|
||||
# $4 dest subfolder e.g. "man" for man pages at userspace-api/media/man
|
||||
# $5 reST source folder relative to $(srctree)/$(src),
|
||||
# $5 reST source folder relative to $(src),
|
||||
# e.g. "userspace-api/media" for the linux-tv book-set at ./Documentation/userspace-api/media
|
||||
|
||||
quiet_cmd_sphinx = SPHINX $@ --> file://$(abspath $(BUILDDIR)/$3/$4)
|
||||
cmd_sphinx = $(MAKE) BUILDDIR=$(abspath $(BUILDDIR)) $(build)=Documentation/userspace-api/media $2 && \
|
||||
PYTHONDONTWRITEBYTECODE=1 \
|
||||
BUILDDIR=$(abspath $(BUILDDIR)) SPHINX_CONF=$(abspath $(srctree)/$(src)/$5/$(SPHINX_CONF)) \
|
||||
BUILDDIR=$(abspath $(BUILDDIR)) SPHINX_CONF=$(abspath $(src)/$5/$(SPHINX_CONF)) \
|
||||
$(PYTHON3) $(srctree)/scripts/jobserver-exec \
|
||||
$(CONFIG_SHELL) $(srctree)/Documentation/sphinx/parallel-wrapper.sh \
|
||||
$(SPHINXBUILD) \
|
||||
-b $2 \
|
||||
-c $(abspath $(srctree)/$(src)) \
|
||||
-c $(abspath $(src)) \
|
||||
-d $(abspath $(BUILDDIR)/.doctrees/$3) \
|
||||
-D version=$(KERNELVERSION) -D release=$(KERNELRELEASE) \
|
||||
$(ALLSPHINXOPTS) \
|
||||
$(abspath $(srctree)/$(src)/$5) \
|
||||
$(abspath $(src)/$5) \
|
||||
$(abspath $(BUILDDIR)/$3/$4)
|
||||
|
||||
YNL_INDEX:=$(srctree)/Documentation/networking/netlink_spec/index.rst
|
||||
|
||||
@ -418,7 +418,6 @@ That is, the recovery API only requires that:
|
||||
- drivers/next/e100.c
|
||||
- drivers/net/e1000
|
||||
- drivers/net/e1000e
|
||||
- drivers/net/ixgb
|
||||
- drivers/net/ixgbe
|
||||
- drivers/net/cxgb3
|
||||
- drivers/net/s2io.c
|
||||
|
||||
@ -92,6 +92,11 @@ Target arguments:
|
||||
allowed. This mode is useful for data recovery if the
|
||||
device cannot be activated in any of the other standard
|
||||
modes.
|
||||
I - inline mode - in this mode, dm-integrity will store integrity
|
||||
data directly in the underlying device sectors.
|
||||
The underlying device must have an integrity profile that
|
||||
allows storing user integrity data and provides enough
|
||||
space for the selected integrity tag.
|
||||
|
||||
5. the number of additional arguments
|
||||
|
||||
|
||||
@ -80,11 +80,11 @@ less sharing than average you'll need a larger-than-average metadata device.
|
||||
|
||||
As a guide, we suggest you calculate the number of bytes to use in the
|
||||
metadata device as 48 * $data_dev_size / $data_block_size but round it up
|
||||
to 2MB if the answer is smaller. If you're creating large numbers of
|
||||
to 2MiB if the answer is smaller. If you're creating large numbers of
|
||||
snapshots which are recording large amounts of change, you may find you
|
||||
need to increase this.
|
||||
|
||||
The largest size supported is 16GB: If the device is larger,
|
||||
The largest size supported is 16GiB: If the device is larger,
|
||||
a warning will be issued and the excess space will not be used.
|
||||
|
||||
Reloading a pool table
|
||||
@ -107,13 +107,13 @@ Using an existing pool device
|
||||
|
||||
$data_block_size gives the smallest unit of disk space that can be
|
||||
allocated at a time expressed in units of 512-byte sectors.
|
||||
$data_block_size must be between 128 (64KB) and 2097152 (1GB) and a
|
||||
multiple of 128 (64KB). $data_block_size cannot be changed after the
|
||||
$data_block_size must be between 128 (64KiB) and 2097152 (1GiB) and a
|
||||
multiple of 128 (64KiB). $data_block_size cannot be changed after the
|
||||
thin-pool is created. People primarily interested in thin provisioning
|
||||
may want to use a value such as 1024 (512KB). People doing lots of
|
||||
snapshotting may want a smaller value such as 128 (64KB). If you are
|
||||
may want to use a value such as 1024 (512KiB). People doing lots of
|
||||
snapshotting may want a smaller value such as 128 (64KiB). If you are
|
||||
not zeroing newly-allocated data, a larger $data_block_size in the
|
||||
region of 256000 (128MB) is suggested.
|
||||
region of 262144 (128MiB) is suggested.
|
||||
|
||||
$low_water_mark is expressed in blocks of size $data_block_size. If
|
||||
free space on the data device drops below this level then a dm event
|
||||
@ -291,7 +291,7 @@ i) Constructor
|
||||
error_if_no_space:
|
||||
Error IOs, instead of queueing, if no space.
|
||||
|
||||
Data block size must be between 64KB (128 sectors) and 1GB
|
||||
Data block size must be between 64KiB (128 sectors) and 1GiB
|
||||
(2097152 sectors) inclusive.
|
||||
|
||||
|
||||
|
||||
@ -87,6 +87,15 @@ panic_on_corruption
|
||||
Panic the device when a corrupted block is discovered. This option is
|
||||
not compatible with ignore_corruption and restart_on_corruption.
|
||||
|
||||
restart_on_error
|
||||
Restart the system when an I/O error is detected.
|
||||
This option can be combined with the restart_on_corruption option.
|
||||
|
||||
panic_on_error
|
||||
Panic the device when an I/O error is detected. This option is
|
||||
not compatible with the restart_on_error option but can be combined
|
||||
with the panic_on_corruption option.
|
||||
|
||||
ignore_zero_blocks
|
||||
Do not verify blocks that are expected to contain zeroes and always return
|
||||
zeroes instead. This may be useful if the partition contains unused blocks
|
||||
@ -142,8 +151,15 @@ root_hash_sig_key_desc <key_description>
|
||||
already in the secondary trusted keyring.
|
||||
|
||||
try_verify_in_tasklet
|
||||
If verity hashes are in cache, verify data blocks in kernel tasklet instead
|
||||
of workqueue. This option can reduce IO latency.
|
||||
If verity hashes are in cache and the IO size does not exceed the limit,
|
||||
verify data blocks in bottom half instead of workqueue. This option can
|
||||
reduce IO latency. The size limits can be configured via
|
||||
/sys/module/dm_verity/parameters/use_bh_bytes. The four parameters
|
||||
correspond to limits for IOPRIO_CLASS_NONE, IOPRIO_CLASS_RT,
|
||||
IOPRIO_CLASS_BE and IOPRIO_CLASS_IDLE in turn.
|
||||
For example:
|
||||
<none>,<rt>,<be>,<idle>
|
||||
4096,4096,4096,4096
|
||||
|
||||
Theory of operation
|
||||
===================
|
||||
|
||||
236
Documentation/admin-guide/hw-vuln/attack_vector_controls.rst
Normal file
236
Documentation/admin-guide/hw-vuln/attack_vector_controls.rst
Normal file
@ -0,0 +1,236 @@
|
||||
.. SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
Attack Vector Controls
|
||||
======================
|
||||
|
||||
Attack vector controls provide a simple method to configure only the mitigations
|
||||
for CPU vulnerabilities which are relevant given the intended use of a system.
|
||||
Administrators are encouraged to consider which attack vectors are relevant and
|
||||
disable all others in order to recoup system performance.
|
||||
|
||||
When new relevant CPU vulnerabilities are found, they will be added to these
|
||||
attack vector controls so administrators will likely not need to reconfigure
|
||||
their command line parameters as mitigations will continue to be correctly
|
||||
applied based on the chosen attack vector controls.
|
||||
|
||||
Attack Vectors
|
||||
--------------
|
||||
|
||||
There are 5 sets of attack-vector mitigations currently supported by the kernel:
|
||||
|
||||
#. :ref:`user_kernel`
|
||||
#. :ref:`user_user`
|
||||
#. :ref:`guest_host`
|
||||
#. :ref:`guest_guest`
|
||||
#. :ref:`smt`
|
||||
|
||||
To control the enabled attack vectors, see :ref:`cmdline`.
|
||||
|
||||
.. _user_kernel:
|
||||
|
||||
User-to-Kernel
|
||||
^^^^^^^^^^^^^^
|
||||
|
||||
The user-to-kernel attack vector involves a malicious userspace program
|
||||
attempting to leak kernel data into userspace by exploiting a CPU vulnerability.
|
||||
The kernel data involved might be limited to certain kernel memory, or include
|
||||
all memory in the system, depending on the vulnerability exploited.
|
||||
|
||||
If no untrusted userspace applications are being run, such as with single-user
|
||||
systems, consider disabling user-to-kernel mitigations.
|
||||
|
||||
Note that the CPU vulnerabilities mitigated by Linux have generally not been
|
||||
shown to be exploitable from browser-based sandboxes. User-to-kernel
|
||||
mitigations are therefore mostly relevant if unknown userspace applications may
|
||||
be run by untrusted users.
|
||||
|
||||
*user-to-kernel mitigations are enabled by default*
|
||||
|
||||
.. _user_user:
|
||||
|
||||
User-to-User
|
||||
^^^^^^^^^^^^
|
||||
|
||||
The user-to-user attack vector involves a malicious userspace program attempting
|
||||
to influence the behavior of another unsuspecting userspace program in order to
|
||||
exfiltrate data. The vulnerability of a userspace program is based on the
|
||||
program itself and the interfaces it provides.
|
||||
|
||||
If no untrusted userspace applications are being run, consider disabling
|
||||
user-to-user mitigations.
|
||||
|
||||
Note that because the Linux kernel contains a mapping of all physical memory,
|
||||
preventing a malicious userspace program from leaking data from another
|
||||
userspace program requires mitigating user-to-kernel attacks as well for
|
||||
complete protection.
|
||||
|
||||
*user-to-user mitigations are enabled by default*
|
||||
|
||||
.. _guest_host:
|
||||
|
||||
Guest-to-Host
|
||||
^^^^^^^^^^^^^
|
||||
|
||||
The guest-to-host attack vector involves a malicious VM attempting to leak
|
||||
hypervisor data into the VM. The data involved may be limited, or may
|
||||
potentially include all memory in the system, depending on the vulnerability
|
||||
exploited.
|
||||
|
||||
If no untrusted VMs are being run, consider disabling guest-to-host mitigations.
|
||||
|
||||
*guest-to-host mitigations are enabled by default if KVM support is present*
|
||||
|
||||
.. _guest_guest:
|
||||
|
||||
Guest-to-Guest
|
||||
^^^^^^^^^^^^^^
|
||||
|
||||
The guest-to-guest attack vector involves a malicious VM attempting to influence
|
||||
the behavior of another unsuspecting VM in order to exfiltrate data. The
|
||||
vulnerability of a VM is based on the code inside the VM itself and the
|
||||
interfaces it provides.
|
||||
|
||||
If no untrusted VMs, or only a single VM is being run, consider disabling
|
||||
guest-to-guest mitigations.
|
||||
|
||||
Similar to the user-to-user attack vector, preventing a malicious VM from
|
||||
leaking data from another VM requires mitigating guest-to-host attacks as well
|
||||
due to the Linux kernel phys map.
|
||||
|
||||
*guest-to-guest mitigations are enabled by default if KVM support is present*
|
||||
|
||||
.. _smt:
|
||||
|
||||
Cross-Thread
|
||||
^^^^^^^^^^^^
|
||||
|
||||
The cross-thread attack vector involves a malicious userspace program or
|
||||
malicious VM either observing or attempting to influence the behavior of code
|
||||
running on the SMT sibling thread in order to exfiltrate data.
|
||||
|
||||
Many cross-thread attacks can only be mitigated if SMT is disabled, which will
|
||||
result in reduced CPU core count and reduced performance.
|
||||
|
||||
If cross-thread mitigations are fully enabled ('auto,nosmt'), all mitigations
|
||||
for cross-thread attacks will be enabled. SMT may be disabled depending on
|
||||
which vulnerabilities are present in the CPU.
|
||||
|
||||
If cross-thread mitigations are partially enabled ('auto'), mitigations for
|
||||
cross-thread attacks will be enabled but SMT will not be disabled.
|
||||
|
||||
If cross-thread mitigations are disabled, no mitigations for cross-thread
|
||||
attacks will be enabled.
|
||||
|
||||
Cross-thread mitigation may not be required if core-scheduling or similar
|
||||
techniques are used to prevent untrusted workloads from running on SMT siblings.
|
||||
|
||||
*cross-thread mitigations default to partially enabled*
|
||||
|
||||
.. _cmdline:
|
||||
|
||||
Command Line Controls
|
||||
---------------------
|
||||
|
||||
Attack vectors are controlled through the mitigations= command line option. The
|
||||
value provided begins with a global option and then may optionally include one
|
||||
or more options to disable various attack vectors.
|
||||
|
||||
Format:
|
||||
| ``mitigations=[global]``
|
||||
| ``mitigations=[global],[attack vectors]``
|
||||
|
||||
Global options:
|
||||
|
||||
============ =============================================================
|
||||
Option Description
|
||||
============ =============================================================
|
||||
'off' All attack vectors disabled.
|
||||
'auto' All attack vectors enabled, partial cross-thread mitigations.
|
||||
'auto,nosmt' All attack vectors enabled, full cross-thread mitigations.
|
||||
============ =============================================================
|
||||
|
||||
Attack vector options:
|
||||
|
||||
================= =======================================
|
||||
Option Description
|
||||
================= =======================================
|
||||
'no_user_kernel' Disables user-to-kernel mitigations.
|
||||
'no_user_user' Disables user-to-user mitigations.
|
||||
'no_guest_host' Disables guest-to-host mitigations.
|
||||
'no_guest_guest' Disables guest-to-guest mitigations
|
||||
'no_cross_thread' Disables all cross-thread mitigations.
|
||||
================= =======================================
|
||||
|
||||
Multiple attack vector options may be specified in a comma-separated list. If
|
||||
the global option is not specified, it defaults to 'auto'. The global option
|
||||
'off' is equivalent to disabling all attack vectors.
|
||||
|
||||
Examples:
|
||||
| ``mitigations=auto,no_user_kernel``
|
||||
|
||||
Enable all attack vectors except user-to-kernel. Partial cross-thread
|
||||
mitigations.
|
||||
|
||||
| ``mitigations=auto,nosmt,no_guest_host,no_guest_guest``
|
||||
|
||||
Enable all attack vectors and cross-thread mitigations except for
|
||||
guest-to-host and guest-to-guest mitigations.
|
||||
|
||||
| ``mitigations=,no_cross_thread``
|
||||
|
||||
Enable all attack vectors but not cross-thread mitigations.
|
||||
|
||||
Interactions with command-line options
|
||||
--------------------------------------
|
||||
|
||||
Vulnerability-specific controls (e.g. "retbleed=off") take precedence over all
|
||||
attack vector controls. Mitigations for individual vulnerabilities may be
|
||||
turned on or off via their command-line options regardless of the attack vector
|
||||
controls.
|
||||
|
||||
Summary of attack-vector mitigations
|
||||
------------------------------------
|
||||
|
||||
When a vulnerability is mitigated due to an attack-vector control, the default
|
||||
mitigation option for that particular vulnerability is used. To use a different
|
||||
mitigation, please use the vulnerability-specific command line option.
|
||||
|
||||
The table below summarizes which vulnerabilities are mitigated when different
|
||||
attack vectors are enabled and assuming the CPU is vulnerable.
|
||||
|
||||
=============== ============== ============ ============= ============== ============ ========
|
||||
Vulnerability User-to-Kernel User-to-User Guest-to-Host Guest-to-Guest Cross-Thread Notes
|
||||
=============== ============== ============ ============= ============== ============ ========
|
||||
BHI X X
|
||||
ITS X X
|
||||
GDS X X X X * (Note 1)
|
||||
L1TF X X * (Note 2)
|
||||
MDS X X X X * (Note 2)
|
||||
MMIO X X X X * (Note 2)
|
||||
Meltdown X
|
||||
Retbleed X X * (Note 3)
|
||||
RFDS X X X X
|
||||
Spectre_v1 X
|
||||
Spectre_v2 X X
|
||||
Spectre_v2_user X X * (Note 1)
|
||||
SRBDS X X X X
|
||||
SRSO X X X X
|
||||
SSB X
|
||||
TAA X X X X * (Note 2)
|
||||
TSA X X X X
|
||||
VMSCAPE X
|
||||
=============== ============== ============ ============= ============== ============ ========
|
||||
|
||||
Notes:
|
||||
1 -- Can be mitigated without disabling SMT.
|
||||
|
||||
2 -- Disables SMT if cross-thread mitigations are fully enabled and the CPU
|
||||
is vulnerable
|
||||
|
||||
3 -- Disables SMT if cross-thread mitigations are fully enabled, the CPU is
|
||||
vulnerable, and STIBP is not supported
|
||||
|
||||
When an attack-vector is disabled, all mitigations for the vulnerabilities
|
||||
listed in the above table are disabled, unless mitigation is required for a
|
||||
different enabled attack-vector or a mitigation is explicitly selected via a
|
||||
vulnerability-specific command line option.
|
||||
@ -9,6 +9,7 @@ are configurable at compile, boot or run time.
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
attack_vector_controls
|
||||
spectre
|
||||
l1tf
|
||||
mds
|
||||
@ -23,5 +24,6 @@ are configurable at compile, boot or run time.
|
||||
gather_data_sampling
|
||||
reg-file-data-sampling
|
||||
rsb
|
||||
old_microcode
|
||||
indirect-target-selection
|
||||
vmscape
|
||||
|
||||
21
Documentation/admin-guide/hw-vuln/old_microcode.rst
Normal file
21
Documentation/admin-guide/hw-vuln/old_microcode.rst
Normal file
@ -0,0 +1,21 @@
|
||||
.. SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
=============
|
||||
Old Microcode
|
||||
=============
|
||||
|
||||
The kernel keeps a table of released microcode. Systems that had
|
||||
microcode older than this at boot will say "Vulnerable". This means
|
||||
that the system was vulnerable to some known CPU issue. It could be
|
||||
security or functional, the kernel does not know or care.
|
||||
|
||||
You should update the CPU microcode to mitigate any exposure. This is
|
||||
usually accomplished by updating the files in
|
||||
/lib/firmware/intel-ucode/ via normal distribution updates. Intel also
|
||||
distributes these files in a github repo:
|
||||
|
||||
https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files.git
|
||||
|
||||
Just like all the other hardware vulnerabilities, exposure is
|
||||
determined at boot. Runtime microcode updates do not change the status
|
||||
of this vulnerability.
|
||||
@ -582,6 +582,38 @@ from within add_taint() whenever the value set in this bitmask matches with the
|
||||
bit flag being set by add_taint().
|
||||
This will cause a kdump to occur at the add_taint()->panic() call.
|
||||
|
||||
Write the dump file to encrypted disk volume
|
||||
============================================
|
||||
|
||||
CONFIG_CRASH_DM_CRYPT can be enabled to support saving the dump file to an
|
||||
encrypted disk volume (only x86_64 supported for now). User space can interact
|
||||
with /sys/kernel/config/crash_dm_crypt_keys for setup,
|
||||
|
||||
1. Tell the first kernel what logon keys are needed to unlock the disk volumes,
|
||||
# Add key #1
|
||||
mkdir /sys/kernel/config/crash_dm_crypt_keys/7d26b7b4-e342-4d2d-b660-7426b0996720
|
||||
# Add key #1's description
|
||||
echo cryptsetup:7d26b7b4-e342-4d2d-b660-7426b0996720 > /sys/kernel/config/crash_dm_crypt_keys/description
|
||||
|
||||
# how many keys do we have now?
|
||||
cat /sys/kernel/config/crash_dm_crypt_keys/count
|
||||
1
|
||||
|
||||
# Add key #2 in the same way
|
||||
|
||||
# how many keys do we have now?
|
||||
cat /sys/kernel/config/crash_dm_crypt_keys/count
|
||||
2
|
||||
|
||||
# To support CPU/memory hot-plugging, re-use keys already saved to reserved
|
||||
# memory
|
||||
echo true > /sys/kernel/config/crash_dm_crypt_key/reuse
|
||||
|
||||
2. Load the dump-capture kernel
|
||||
|
||||
3. After the dump-capture kerne get booted, restore the keys to user keyring
|
||||
echo yes > /sys/kernel/crash_dm_crypt_keys/restore
|
||||
|
||||
Contact
|
||||
=======
|
||||
|
||||
|
||||
@ -602,6 +602,14 @@
|
||||
named mounts. Specifying both "all" and "named" disables
|
||||
all v1 hierarchies.
|
||||
|
||||
cgroup_v1_proc= [KNL] Show also missing controllers in /proc/cgroups
|
||||
Format: { "true" | "false" }
|
||||
/proc/cgroups lists only v1 controllers by default.
|
||||
This compatibility option enables listing also v2
|
||||
controllers (whose v1 code is not compiled!), so that
|
||||
semi-legacy software can check this file to decide
|
||||
about usage of v2 (sic) controllers.
|
||||
|
||||
cgroup_favordynmods= [KNL] Enable or Disable favordynmods.
|
||||
Format: { "true" | "false" }
|
||||
Defaults to the value of CONFIG_CGROUP_FAVOR_DYNMODS.
|
||||
@ -3373,8 +3381,16 @@
|
||||
|
||||
mga= [HW,DRM]
|
||||
|
||||
microcode.force_minrev= [X86]
|
||||
Format: <bool>
|
||||
microcode= [X86] Control the behavior of the microcode loader.
|
||||
Available options, comma separated:
|
||||
|
||||
base_rev=X - with <X> with format: <u32>
|
||||
Set the base microcode revision of each thread when in
|
||||
debug mode.
|
||||
|
||||
dis_ucode_ldr: disable the microcode loader
|
||||
|
||||
force_minrev:
|
||||
Enable or disable the microcode minimal revision
|
||||
enforcement for the runtime microcode loader.
|
||||
|
||||
@ -3408,6 +3424,9 @@
|
||||
arch-independent options, each of which is an
|
||||
aggregation of existing arch-specific options.
|
||||
|
||||
Note, "mitigations" is supported if and only if the
|
||||
kernel was built with CPU_MITIGATIONS=y.
|
||||
|
||||
off
|
||||
Disable all optional CPU mitigations. This
|
||||
improves system performance, but it may also
|
||||
@ -3460,6 +3479,10 @@
|
||||
mmio_stale_data=full,nosmt [X86]
|
||||
retbleed=auto,nosmt [X86]
|
||||
|
||||
[X86] After one of the above options, additionally
|
||||
supports attack-vector based controls as documented in
|
||||
Documentation/admin-guide/hw-vuln/attack_vector_controls.rst
|
||||
|
||||
mminit_loglevel=
|
||||
[KNL] When CONFIG_DEBUG_MEMORY_INIT is set, this
|
||||
parameter allows control of the logging verbosity for
|
||||
@ -4088,6 +4111,18 @@
|
||||
This can be set from sysctl after boot.
|
||||
See Documentation/admin-guide/sysctl/vm.rst for details.
|
||||
|
||||
nvme.quirks= [NVME] A list of quirk entries to augment the built-in
|
||||
nvme quirk list. List entries are separated by a
|
||||
'-' character.
|
||||
Each entry has the form VendorID:ProductID:quirk_names.
|
||||
The IDs are 4-digits hex numbers and quirk_names is a
|
||||
list of quirk names separated by commas. A quirk name
|
||||
can be prefixed by '^', meaning that the specified
|
||||
quirk must be disabled.
|
||||
|
||||
Example:
|
||||
nvme.quirks=7710:2267:bogus_nid,^identify_cns-9900:7711:broken_msi
|
||||
|
||||
ohci1394_dma=early [HW] enable debugging via the ohci1394 driver.
|
||||
See Documentation/core-api/debugging-via-ohci1394.rst for more
|
||||
info.
|
||||
@ -5734,6 +5769,20 @@
|
||||
rhash_entries= [KNL,NET]
|
||||
Set number of hash buckets for route cache
|
||||
|
||||
rh_waived=
|
||||
Enable waived items in RHEL.
|
||||
|
||||
Some specific features, or security mitigations, can be
|
||||
waived (toggled on/off) on demand in RHEL. However,
|
||||
waiving any of these items should be used judiciously,
|
||||
as it generally means the system might end up being
|
||||
considered insecure or even out-of-scope for support.
|
||||
|
||||
Format: <item-1>,<item-2>...<item-n>
|
||||
|
||||
Use 'rh_waived' to enable all waived features listed at
|
||||
Documentation/admin-guide/rh-waived-features.rst
|
||||
|
||||
ring3mwait=disable
|
||||
[KNL] Disable ring 3 MONITOR/MWAIT feature on supported
|
||||
CPUs.
|
||||
@ -5765,6 +5814,9 @@
|
||||
|
||||
rootflags= [KNL] Set root filesystem mount option string
|
||||
|
||||
initramfs_options= [KNL]
|
||||
Specify mount options for for the initramfs mount.
|
||||
|
||||
rootfstype= [KNL] Set root filesystem type
|
||||
|
||||
rootwait [KNL] Wait (indefinitely) for root device to show up.
|
||||
|
||||
35
Documentation/admin-guide/rh-waived-items.rst
Normal file
35
Documentation/admin-guide/rh-waived-items.rst
Normal file
@ -0,0 +1,35 @@
|
||||
.. _rh_waived_items:
|
||||
|
||||
====================
|
||||
Red Hat Waived Items
|
||||
====================
|
||||
|
||||
Waived Items is a mechanism offered by Red Hat which allows customers to "waive"
|
||||
and utilize features that are not enabled by default as these are considered as
|
||||
unmaintained, insecure, rudimentary, or deprecated, but are shipped with the
|
||||
RHEL kernel for customer's convinience only.
|
||||
Waived Items can range from features that can be enabled on demand to specific
|
||||
security mitigations that can be disabled on demand.
|
||||
|
||||
To explicitly "waive" any of these items, RHEL offers the ``rh_waived``
|
||||
kernel boot parameter. To allow set of waived items, append
|
||||
``rh_waived=<item name>,...,<item name>`` to the kernel
|
||||
cmdline.
|
||||
Appending ``rh_waived=features`` will waive all features listed below,
|
||||
and appending ``rh_waived=cves`` will waive all security mitigations
|
||||
listed below.
|
||||
|
||||
The waived items listed in the next session follow the pattern below:
|
||||
|
||||
- item name
|
||||
item description
|
||||
|
||||
List of Red Hat Waived Items
|
||||
============================
|
||||
|
||||
- CVE-2025-38085
|
||||
Waiving this mitigation can help with addressing perceived performace
|
||||
degradation on some workloads utilizing huge-pages [1] at the expense
|
||||
of re-introducing conditions to allow for the data race that leads to
|
||||
the enumerated common vulnerability.
|
||||
[1] https://access.redhat.com/solutions/7132440
|
||||
@ -169,6 +169,8 @@ core_pattern
|
||||
%f executable filename
|
||||
%E executable path
|
||||
%c maximum size of core file by resource limit RLIMIT_CORE
|
||||
%C CPU the task ran on
|
||||
%F pidfd number
|
||||
%<OTHER> both are dropped
|
||||
======== ==========================================
|
||||
|
||||
|
||||
@ -296,6 +296,39 @@ information is missing.
|
||||
To recover from this mode, one needs to flash a valid NVM image to the
|
||||
host controller in the same way it is done in the previous chapter.
|
||||
|
||||
Tunneling events
|
||||
----------------
|
||||
The driver sends ``KOBJ_CHANGE`` events to userspace when there is a
|
||||
tunneling change in the ``thunderbolt_domain``. The notification carries
|
||||
following environment variables::
|
||||
|
||||
TUNNEL_EVENT=<EVENT>
|
||||
TUNNEL_DETAILS=0:12 <-> 1:20 (USB3)
|
||||
|
||||
Possible values for ``<EVENT>`` are:
|
||||
|
||||
activated
|
||||
The tunnel was activated (created).
|
||||
|
||||
changed
|
||||
There is a change in this tunnel. For example bandwidth allocation was
|
||||
changed.
|
||||
|
||||
deactivated
|
||||
The tunnel was torn down.
|
||||
|
||||
low bandwidth
|
||||
The tunnel is not getting optimal bandwidth.
|
||||
|
||||
insufficient bandwidth
|
||||
There is not enough bandwidth for the current tunnel requirements.
|
||||
|
||||
The ``TUNNEL_DETAILS`` is only provided if the tunnel is known. For
|
||||
example, in case of Firmware Connection Manager this is missing or does
|
||||
not provide full tunnel information. In case of Software Connection Manager
|
||||
this includes full tunnel details. The format currently matches what the
|
||||
driver uses when logging. This may change over time.
|
||||
|
||||
Networking over Thunderbolt cable
|
||||
---------------------------------
|
||||
Thunderbolt technology allows software communication between two hosts
|
||||
@ -325,12 +358,7 @@ Forcing power
|
||||
Many OEMs include a method that can be used to force the power of a
|
||||
Thunderbolt controller to an "On" state even if nothing is connected.
|
||||
If supported by your machine this will be exposed by the WMI bus with
|
||||
a sysfs attribute called "force_power".
|
||||
|
||||
For example the intel-wmi-thunderbolt driver exposes this attribute in:
|
||||
/sys/bus/wmi/devices/86CCFD48-205E-4A77-9C48-2021CBEDE341/force_power
|
||||
|
||||
To force the power to on, write 1 to this attribute file.
|
||||
To disable force power, write 0 to this attribute file.
|
||||
a sysfs attribute called "force_power", see
|
||||
Documentation/ABI/testing/sysfs-platform-intel-wmi-thunderbolt for details.
|
||||
|
||||
Note: it's currently not possible to query the force power state of a platform.
|
||||
|
||||
104
Documentation/arch/powerpc/htm.rst
Normal file
104
Documentation/arch/powerpc/htm.rst
Normal file
@ -0,0 +1,104 @@
|
||||
.. SPDX-License-Identifier: GPL-2.0
|
||||
.. _htm:
|
||||
|
||||
===================================
|
||||
HTM (Hardware Trace Macro)
|
||||
===================================
|
||||
|
||||
Athira Rajeev, 2 Mar 2025
|
||||
|
||||
.. contents::
|
||||
:depth: 3
|
||||
|
||||
|
||||
Basic overview
|
||||
==============
|
||||
|
||||
H_HTM is used as an interface for executing Hardware Trace Macro (HTM)
|
||||
functions, including setup, configuration, control and dumping of the HTM data.
|
||||
For using HTM, it is required to setup HTM buffers and HTM operations can
|
||||
be controlled using the H_HTM hcall. The hcall can be invoked for any core/chip
|
||||
of the system from within a partition itself. To use this feature, a debugfs
|
||||
folder called "htmdump" is present under /sys/kernel/debug/powerpc.
|
||||
|
||||
|
||||
HTM debugfs example usage
|
||||
=========================
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
# ls /sys/kernel/debug/powerpc/htmdump/
|
||||
coreindexonchip htmcaps htmconfigure htmflags htminfo htmsetup
|
||||
htmstart htmstatus htmtype nodalchipindex nodeindex trace
|
||||
|
||||
Details on each file:
|
||||
|
||||
* nodeindex, nodalchipindex, coreindexonchip specifies which partition to configure the HTM for.
|
||||
* htmtype: specifies the type of HTM. Supported target is hardwareTarget.
|
||||
* trace: is to read the HTM data.
|
||||
* htmconfigure: Configure/Deconfigure the HTM. Writing 1 to the file will configure the trace, writing 0 to the file will do deconfigure.
|
||||
* htmstart: start/Stop the HTM. Writing 1 to the file will start the tracing, writing 0 to the file will stop the tracing.
|
||||
* htmstatus: get the status of HTM. This is needed to understand the HTM state after each operation.
|
||||
* htmsetup: set the HTM buffer size. Size of HTM buffer is in power of 2
|
||||
* htminfo: provides the system processor configuration details. This is needed to understand the appropriate values for nodeindex, nodalchipindex, coreindexonchip.
|
||||
* htmcaps : provides the HTM capabilities like minimum/maximum buffer size, what kind of tracing the HTM supports etc.
|
||||
* htmflags : allows to pass flags to hcall. Currently supports controlling the wrapping of HTM buffer.
|
||||
|
||||
To see the system processor configuration details:
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
# cat /sys/kernel/debug/powerpc/htmdump/htminfo > htminfo_file
|
||||
|
||||
The result can be interpreted using hexdump.
|
||||
|
||||
To collect HTM traces for a partition represented by nodeindex as
|
||||
zero, nodalchipindex as 1 and coreindexonchip as 12
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
# cd /sys/kernel/debug/powerpc/htmdump/
|
||||
# echo 2 > htmtype
|
||||
# echo 33 > htmsetup ( sets 8GB memory for HTM buffer, number is size in power of 2 )
|
||||
|
||||
This requires a CEC reboot to get the HTM buffers allocated.
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
# cd /sys/kernel/debug/powerpc/htmdump/
|
||||
# echo 2 > htmtype
|
||||
# echo 0 > nodeindex
|
||||
# echo 1 > nodalchipindex
|
||||
# echo 12 > coreindexonchip
|
||||
# echo 1 > htmflags # to set noWrap for HTM buffers
|
||||
# echo 1 > htmconfigure # Configure the HTM
|
||||
# echo 1 > htmstart # Start the HTM
|
||||
# echo 0 > htmstart # Stop the HTM
|
||||
# echo 0 > htmconfigure # Deconfigure the HTM
|
||||
# cat htmstatus # Dump the status of HTM entries as data
|
||||
|
||||
Above will set the htmtype and core details, followed by executing respective HTM operation.
|
||||
|
||||
Read the HTM trace data
|
||||
========================
|
||||
|
||||
After starting the trace collection, run the workload
|
||||
of interest. Stop the trace collection after required period
|
||||
of time, and read the trace file.
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
# cat /sys/kernel/debug/powerpc/htmdump/trace > trace_file
|
||||
|
||||
This trace file will contain the relevant instruction traces
|
||||
collected during the workload execution. And can be used as
|
||||
input file for trace decoders to understand data.
|
||||
|
||||
Benefits of using HTM debugfs interface
|
||||
=======================================
|
||||
|
||||
It is now possible to collect traces for a particular core/chip
|
||||
from within any partition of the system and decode it. Through
|
||||
this enablement, a small partition can be dedicated to collect the
|
||||
trace data and analyze to provide important information for Performance
|
||||
analysis, Software tuning, or Hardware debug.
|
||||
@ -4,8 +4,9 @@
|
||||
AMD HSMP interface
|
||||
============================================
|
||||
|
||||
Newer Fam19h EPYC server line of processors from AMD support system
|
||||
management functionality via HSMP (Host System Management Port).
|
||||
Newer Fam19h(model 0x00-0x1f, 0x30-0x3f, 0x90-0x9f, 0xa0-0xaf),
|
||||
Fam1Ah(model 0x00-0x1f) EPYC server line of processors from AMD support
|
||||
system management functionality via HSMP (Host System Management Port).
|
||||
|
||||
The Host System Management Port (HSMP) is an interface to provide
|
||||
OS-level software with access to system management functions via a
|
||||
@ -13,16 +14,28 @@ set of mailbox registers.
|
||||
|
||||
More details on the interface can be found in chapter
|
||||
"7 Host System Management Port (HSMP)" of the family/model PPR
|
||||
Eg: https://www.amd.com/system/files/TechDocs/55898_B1_pub_0.50.zip
|
||||
Eg: https://www.amd.com/content/dam/amd/en/documents/epyc-technical-docs/programmer-references/55898_B1_pub_0_50.zip
|
||||
|
||||
HSMP interface is supported on EPYC server CPU models only.
|
||||
|
||||
HSMP interface is supported on EPYC line of server CPUs and MI300A (APU).
|
||||
|
||||
|
||||
HSMP device
|
||||
============================================
|
||||
|
||||
amd_hsmp driver under the drivers/platforms/x86/ creates miscdevice
|
||||
/dev/hsmp to let user space programs run hsmp mailbox commands.
|
||||
amd_hsmp driver under drivers/platforms/x86/amd/hsmp/ has separate driver files
|
||||
for ACPI object based probing, platform device based probing and for the common
|
||||
code for these two drivers.
|
||||
|
||||
Kconfig option CONFIG_AMD_HSMP_PLAT compiles plat.c and creates amd_hsmp.ko.
|
||||
Kconfig option CONFIG_AMD_HSMP_ACPI compiles acpi.c and creates hsmp_acpi.ko.
|
||||
Selecting any of these two configs automatically selects CONFIG_AMD_HSMP. This
|
||||
compiles common code hsmp.c and creates hsmp_common.ko module.
|
||||
|
||||
Both the ACPI and plat drivers create the miscdevice /dev/hsmp to let
|
||||
user space programs run hsmp mailbox commands.
|
||||
|
||||
The ACPI object format supported by the driver is defined below.
|
||||
|
||||
$ ls -al /dev/hsmp
|
||||
crw-r--r-- 1 root root 10, 123 Jan 21 21:41 /dev/hsmp
|
||||
@ -58,6 +71,81 @@ Note: lseek() is not supported as entire metrics table is read.
|
||||
Metrics table definitions will be documented as part of Public PPR.
|
||||
The same is defined in the amd_hsmp.h header.
|
||||
|
||||
2. HSMP telemetry sysfs files
|
||||
|
||||
Following sysfs files are available at /sys/devices/platform/AMDI0097:0X/.
|
||||
|
||||
* c0_residency_input: Percentage of cores in C0 state.
|
||||
* prochot_status: Reports 1 if the processor is at thermal threshold value,
|
||||
0 otherwise.
|
||||
* smu_fw_version: SMU firmware version.
|
||||
* protocol_version: HSMP interface version.
|
||||
* ddr_max_bw: Theoretical maximum DDR bandwidth in GB/s.
|
||||
* ddr_utilised_bw_input: Current utilized DDR bandwidth in GB/s.
|
||||
* ddr_utilised_bw_perc_input(%): Percentage of current utilized DDR bandwidth.
|
||||
* mclk_input: Memory clock in MHz.
|
||||
* fclk_input: Fabric clock in MHz.
|
||||
* clk_fmax: Maximum frequency of socket in MHz.
|
||||
* clk_fmin: Minimum frequency of socket in MHz.
|
||||
* cclk_freq_limit_input: Core clock frequency limit per socket in MHz.
|
||||
* pwr_current_active_freq_limit: Current active frequency limit of socket
|
||||
in MHz.
|
||||
* pwr_current_active_freq_limit_source: Source of current active frequency
|
||||
limit.
|
||||
|
||||
ACPI device object format
|
||||
=========================
|
||||
The ACPI object format expected from the amd_hsmp driver
|
||||
for socket with ID00 is given below::
|
||||
|
||||
Device(HSMP)
|
||||
{
|
||||
Name(_HID, "AMDI0097")
|
||||
Name(_UID, "ID00")
|
||||
Name(HSE0, 0x00000001)
|
||||
Name(RBF0, ResourceTemplate()
|
||||
{
|
||||
Memory32Fixed(ReadWrite, 0xxxxxxx, 0x00100000)
|
||||
})
|
||||
Method(_CRS, 0, NotSerialized)
|
||||
{
|
||||
Return(RBF0)
|
||||
}
|
||||
Method(_STA, 0, NotSerialized)
|
||||
{
|
||||
If(LEqual(HSE0, One))
|
||||
{
|
||||
Return(0x0F)
|
||||
}
|
||||
Else
|
||||
{
|
||||
Return(Zero)
|
||||
}
|
||||
}
|
||||
Name(_DSD, Package(2)
|
||||
{
|
||||
Buffer(0x10)
|
||||
{
|
||||
0x9D, 0x61, 0x4D, 0xB7, 0x07, 0x57, 0xBD, 0x48,
|
||||
0xA6, 0x9F, 0x4E, 0xA2, 0x87, 0x1F, 0xC2, 0xF6
|
||||
},
|
||||
Package(3)
|
||||
{
|
||||
Package(2) {"MsgIdOffset", 0x00010934},
|
||||
Package(2) {"MsgRspOffset", 0x00010980},
|
||||
Package(2) {"MsgArgOffset", 0x000109E0}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
HSMP HWMON interface
|
||||
====================
|
||||
HSMP power sensors are registered with the hwmon interface. A separate hwmon
|
||||
directory is created for each socket and the following files are generated
|
||||
within the hwmon directory.
|
||||
- power1_input (read only)
|
||||
- power1_cap_max (read only)
|
||||
- power1_cap (read, write)
|
||||
|
||||
An example
|
||||
==========
|
||||
@ -97,8 +185,8 @@ what happened. The transaction returns 0 on success.
|
||||
|
||||
More details on the interface and message definitions can be found in chapter
|
||||
"7 Host System Management Port (HSMP)" of the respective family/model PPR
|
||||
eg: https://www.amd.com/system/files/TechDocs/55898_B1_pub_0.50.zip
|
||||
eg: https://www.amd.com/content/dam/amd/en/documents/epyc-technical-docs/programmer-references/55898_B1_pub_0_50.zip
|
||||
|
||||
User space C-APIs are made available by linking against the esmi library,
|
||||
which is provided by the E-SMS project https://developer.amd.com/e-sms/.
|
||||
which is provided by the E-SMS project https://www.amd.com/en/developer/e-sms.html.
|
||||
See: https://github.com/amd/esmi_ib_library
|
||||
|
||||
@ -83,14 +83,18 @@ x86_cap/bug_flags[] arrays in kernel/cpu/capflags.c. The names in the
|
||||
resulting x86_cap/bug_flags[] are used to populate /proc/cpuinfo. The naming
|
||||
of flags in the x86_cap/bug_flags[] are as follows:
|
||||
|
||||
a: The name of the flag is from the string in X86_FEATURE_<name> by default.
|
||||
----------------------------------------------------------------------------
|
||||
By default, the flag <name> in /proc/cpuinfo is extracted from the respective
|
||||
X86_FEATURE_<name> in cpufeatures.h. For example, the flag "avx2" is from
|
||||
X86_FEATURE_AVX2.
|
||||
a: Flags do not appear by default in /proc/cpuinfo
|
||||
--------------------------------------------------
|
||||
|
||||
Feature flags are omitted by default from /proc/cpuinfo as it does not make
|
||||
sense for the feature to be exposed to userspace in most cases. For example,
|
||||
X86_FEATURE_ALWAYS is defined in cpufeatures.h but that flag is an internal
|
||||
kernel feature used in the alternative runtime patching functionality. So the
|
||||
flag does not appear in /proc/cpuinfo.
|
||||
|
||||
b: Specify a flag name if absolutely needed
|
||||
-------------------------------------------
|
||||
|
||||
b: The naming can be overridden.
|
||||
--------------------------------
|
||||
If the comment on the line for the #define X86_FEATURE_* starts with a
|
||||
double-quote character (""), the string inside the double-quote characters
|
||||
will be the name of the flags. For example, the flag "sse4_1" comes from
|
||||
@ -101,14 +105,6 @@ needed. For instance, /proc/cpuinfo is a userspace interface and must remain
|
||||
constant. If, for some reason, the naming of X86_FEATURE_<name> changes, one
|
||||
shall override the new naming with the name already used in /proc/cpuinfo.
|
||||
|
||||
c: The naming override can be "", which means it will not appear in /proc/cpuinfo.
|
||||
----------------------------------------------------------------------------------
|
||||
The feature shall be omitted from /proc/cpuinfo if it does not make sense for
|
||||
the feature to be exposed to userspace. For example, X86_FEATURE_ALWAYS is
|
||||
defined in cpufeatures.h but that flag is an internal kernel feature used
|
||||
in the alternative runtime patching functionality. So, its name is overridden
|
||||
with "". Its flag will not appear in /proc/cpuinfo.
|
||||
|
||||
Flags are missing when one or more of these happen
|
||||
==================================================
|
||||
|
||||
|
||||
@ -31,7 +31,6 @@ x86-specific Documentation
|
||||
pti
|
||||
mds
|
||||
microcode
|
||||
resctrl
|
||||
tsx_async_abort
|
||||
buslock
|
||||
usb-legacy-support
|
||||
|
||||
@ -153,3 +153,11 @@ asymmetric system, a broken guest at EL1 could still attempt to execute
|
||||
mode will return to host userspace with an ``exit_reason`` of
|
||||
``KVM_EXIT_FAIL_ENTRY`` and will remain non-runnable until successfully
|
||||
re-initialised by a subsequent ``KVM_ARM_VCPU_INIT`` operation.
|
||||
|
||||
NOHZ FULL
|
||||
---------
|
||||
|
||||
To avoid perturbing an adaptive-ticks CPU (specified using
|
||||
``nohz_full=``) when a 32-bit task is forcefully migrated, these CPUs
|
||||
are treated as 64-bit-only when support for asymmetric 32-bit systems
|
||||
is enabled.
|
||||
|
||||
@ -132,11 +132,21 @@ stable kernels.
|
||||
+----------------+-----------------+-----------------+-----------------------------+
|
||||
| ARM | Cortex-A77 | #1508412 | ARM64_ERRATUM_1508412 |
|
||||
+----------------+-----------------+-----------------+-----------------------------+
|
||||
<<<<<<< HEAD:Documentation/arm64/silicon-errata.rst
|
||||
| ARM | Cortex-A510 | #2051678 | ARM64_ERRATUM_2051678 |
|
||||
+----------------+-----------------+-----------------+-----------------------------+
|
||||
| ARM | Cortex-A510 | #2077057 | ARM64_ERRATUM_2077057 |
|
||||
+----------------+-----------------+-----------------+-----------------------------+
|
||||
| ARM | Cortex-A510 | #2441009 | ARM64_ERRATUM_2441009 |
|
||||
+----------------+-----------------+-----------------+-----------------------------+
|
||||
| ARM | Cortex-A510 | #2658417 | ARM64_ERRATUM_2658417 |
|
||||
=======
|
||||
| ARM | Cortex-A77 | #3324348 | ARM64_ERRATUM_3194386 |
|
||||
+----------------+-----------------+-----------------+-----------------------------+
|
||||
| ARM | Cortex-A78 | #3324344 | ARM64_ERRATUM_3194386 |
|
||||
+----------------+-----------------+-----------------+-----------------------------+
|
||||
| ARM | Cortex-A78C | #3324346,3324347| ARM64_ERRATUM_3194386 |
|
||||
>>>>>>> adeec61a4723 (arm64: errata: Expand speculative SSBS workaround (again)):Documentation/arch/arm64/silicon-errata.rst
|
||||
+----------------+-----------------+-----------------+-----------------------------+
|
||||
| ARM | Cortex-A710 | #2119858 | ARM64_ERRATUM_2119858 |
|
||||
+----------------+-----------------+-----------------+-----------------------------+
|
||||
|
||||
@ -378,6 +378,14 @@ In case of new BPF instructions, once the changes have been accepted
|
||||
into the Linux kernel, please implement support into LLVM's BPF back
|
||||
end. See LLVM_ section below for further information.
|
||||
|
||||
Q: What "BPF_INTERNAL" symbol namespace is for?
|
||||
-----------------------------------------------
|
||||
A: Symbols exported as BPF_INTERNAL can only be used by BPF infrastructure
|
||||
like preload kernel modules with light skeleton. Most symbols outside
|
||||
of BPF_INTERNAL are not expected to be used by code outside of BPF either.
|
||||
Symbols may lack the designation because they predate the namespaces,
|
||||
or due to an oversight.
|
||||
|
||||
Stable submission
|
||||
=================
|
||||
|
||||
|
||||
@ -233,10 +233,16 @@ attempts in order to enforce the LRU property which have increasing impacts on
|
||||
other CPUs involved in the following operation attempts:
|
||||
|
||||
- Attempt to use CPU-local state to batch operations
|
||||
- Attempt to fetch free nodes from global lists
|
||||
- Attempt to fetch ``target_free`` free nodes from global lists
|
||||
- Attempt to pull any node from a global list and remove it from the hashmap
|
||||
- Attempt to pull any node from any CPU's list and remove it from the hashmap
|
||||
|
||||
The number of nodes to borrow from the global list in a batch, ``target_free``,
|
||||
depends on the size of the map. Larger batch size reduces lock contention, but
|
||||
may also exhaust the global structure. The value is computed at map init to
|
||||
avoid exhaustion, by limiting aggregate reservation by all CPUs to half the map
|
||||
size. With a minimum of a single element and maximum budget of 128 at a time.
|
||||
|
||||
This algorithm is described visually in the following diagram. See the
|
||||
description in commit 3a08c2fd7634 ("bpf: LRU List") for a full explanation of
|
||||
the corresponding operations:
|
||||
|
||||
@ -35,18 +35,18 @@ digraph {
|
||||
fn_bpf_lru_list_pop_free_to_local [shape=rectangle,fillcolor=2,
|
||||
label="Flush local pending,
|
||||
Rotate Global list, move
|
||||
LOCAL_FREE_TARGET
|
||||
target_free
|
||||
from global -> local"]
|
||||
// Also corresponds to:
|
||||
// fn__local_list_flush()
|
||||
// fn_bpf_lru_list_rotate()
|
||||
fn___bpf_lru_node_move_to_free[shape=diamond,fillcolor=2,
|
||||
label="Able to free\nLOCAL_FREE_TARGET\nnodes?"]
|
||||
label="Able to free\ntarget_free\nnodes?"]
|
||||
|
||||
fn___bpf_lru_list_shrink_inactive [shape=rectangle,fillcolor=3,
|
||||
label="Shrink inactive list
|
||||
up to remaining
|
||||
LOCAL_FREE_TARGET
|
||||
target_free
|
||||
(global LRU -> local)"]
|
||||
fn___bpf_lru_list_shrink [shape=diamond,fillcolor=2,
|
||||
label="> 0 entries in\nlocal free list?"]
|
||||
|
||||
@ -530,6 +530,77 @@ routines, e.g.:::
|
||||
....
|
||||
}
|
||||
|
||||
Part Ie - IOVA-based DMA mappings
|
||||
---------------------------------
|
||||
|
||||
These APIs allow a very efficient mapping when using an IOMMU. They are an
|
||||
optional path that requires extra code and are only recommended for drivers
|
||||
where DMA mapping performance, or the space usage for storing the DMA addresses
|
||||
matter. All the considerations from the previous section apply here as well.
|
||||
|
||||
::
|
||||
|
||||
bool dma_iova_try_alloc(struct device *dev, struct dma_iova_state *state,
|
||||
phys_addr_t phys, size_t size);
|
||||
|
||||
Is used to try to allocate IOVA space for mapping operation. If it returns
|
||||
false this API can't be used for the given device and the normal streaming
|
||||
DMA mapping API should be used. The ``struct dma_iova_state`` is allocated
|
||||
by the driver and must be kept around until unmap time.
|
||||
|
||||
::
|
||||
|
||||
static inline bool dma_use_iova(struct dma_iova_state *state)
|
||||
|
||||
Can be used by the driver to check if the IOVA-based API is used after a
|
||||
call to dma_iova_try_alloc. This can be useful in the unmap path.
|
||||
|
||||
::
|
||||
|
||||
int dma_iova_link(struct device *dev, struct dma_iova_state *state,
|
||||
phys_addr_t phys, size_t offset, size_t size,
|
||||
enum dma_data_direction dir, unsigned long attrs);
|
||||
|
||||
Is used to link ranges to the IOVA previously allocated. The start of all
|
||||
but the first call to dma_iova_link for a given state must be aligned
|
||||
to the DMA merge boundary returned by ``dma_get_merge_boundary())``, and
|
||||
the size of all but the last range must be aligned to the DMA merge boundary
|
||||
as well.
|
||||
|
||||
::
|
||||
|
||||
int dma_iova_sync(struct device *dev, struct dma_iova_state *state,
|
||||
size_t offset, size_t size);
|
||||
|
||||
Must be called to sync the IOMMU page tables for IOVA-range mapped by one or
|
||||
more calls to ``dma_iova_link()``.
|
||||
|
||||
For drivers that use a one-shot mapping, all ranges can be unmapped and the
|
||||
IOVA freed by calling:
|
||||
|
||||
::
|
||||
|
||||
void dma_iova_destroy(struct device *dev, struct dma_iova_state *state,
|
||||
size_t mapped_len, enum dma_data_direction dir,
|
||||
unsigned long attrs);
|
||||
|
||||
Alternatively drivers can dynamically manage the IOVA space by unmapping
|
||||
and mapping individual regions. In that case
|
||||
|
||||
::
|
||||
|
||||
void dma_iova_unlink(struct device *dev, struct dma_iova_state *state,
|
||||
size_t offset, size_t size, enum dma_data_direction dir,
|
||||
unsigned long attrs);
|
||||
|
||||
is used to unmap a range previously mapped, and
|
||||
|
||||
::
|
||||
|
||||
void dma_iova_free(struct device *dev, struct dma_iova_state *state);
|
||||
|
||||
is used to free the IOVA space. All regions must have been unmapped using
|
||||
``dma_iova_unlink()`` before calling ``dma_iova_free()``.
|
||||
|
||||
Part II - Non-coherent DMA allocations
|
||||
--------------------------------------
|
||||
|
||||
@ -183,6 +183,12 @@ resources, scheduled and executed.
|
||||
BH work items cannot sleep. All other features such as delayed queueing,
|
||||
flushing and canceling are supported.
|
||||
|
||||
``WQ_PERCPU``
|
||||
Work items queued to a per-cpu wq are bound to a specific CPU.
|
||||
This flag is the right choice when cpu locality is important.
|
||||
|
||||
This flag is the complement of ``WQ_UNBOUND``.
|
||||
|
||||
``WQ_UNBOUND``
|
||||
Work items queued to an unbound wq are served by the special
|
||||
worker-pools which host workers which are not bound to any
|
||||
|
||||
@ -22,17 +22,17 @@ $(obj)/%.example.dts: $(src)/%.yaml check_dtschema_version FORCE
|
||||
# Use full schemas when checking %.example.dts
|
||||
DT_TMP_SCHEMA := $(obj)/processed-schema-examples.json
|
||||
|
||||
find_cmd = find $(srctree)/$(src) \( -name '*.yaml' ! \
|
||||
find_cmd = find $(src) \( -name '*.yaml' ! \
|
||||
-name 'processed-schema*' ! \
|
||||
-name '*.example.dt.yaml' \)
|
||||
|
||||
quiet_cmd_yamllint = LINT $(src)
|
||||
cmd_yamllint = ($(find_cmd) | \
|
||||
xargs $(DT_SCHEMA_LINT) -f parsable -c $(srctree)/$(src)/.yamllint) || true
|
||||
xargs $(DT_SCHEMA_LINT) -f parsable -c $(src)/.yamllint) || true
|
||||
|
||||
quiet_cmd_chk_bindings = CHKDT $@
|
||||
cmd_chk_bindings = ($(find_cmd) | \
|
||||
xargs -n200 -P$$(nproc) $(DT_DOC_CHECKER) -u $(srctree)/$(src)) || true
|
||||
xargs -n200 -P$$(nproc) $(DT_DOC_CHECKER) -u $(src)) || true
|
||||
|
||||
quiet_cmd_mk_schema = SCHEMA $@
|
||||
cmd_mk_schema = f=$$(mktemp) ; \
|
||||
|
||||
@ -21,6 +21,7 @@ properties:
|
||||
- const: nvidia,tegra210-aconnect
|
||||
- items:
|
||||
- enum:
|
||||
- nvidia,tegra264-aconnect
|
||||
- nvidia,tegra234-aconnect
|
||||
- nvidia,tegra186-aconnect
|
||||
- nvidia,tegra194-aconnect
|
||||
|
||||
@ -0,0 +1,38 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/amd,ccp-seattle-v1a.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: AMD Cryptographic Coprocessor (ccp)
|
||||
|
||||
maintainers:
|
||||
- Tom Lendacky <thomas.lendacky@amd.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: amd,ccp-seattle-v1a
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
dma-coherent: true
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
crypto@e0100000 {
|
||||
compatible = "amd,ccp-seattle-v1a";
|
||||
reg = <0xe0100000 0x10000>;
|
||||
interrupts = <0 3 4>;
|
||||
dma-coherent;
|
||||
};
|
||||
@ -1,17 +0,0 @@
|
||||
* AMD Cryptographic Coprocessor driver (ccp)
|
||||
|
||||
Required properties:
|
||||
- compatible: Should be "amd,ccp-seattle-v1a"
|
||||
- reg: Address and length of the register set for the device
|
||||
- interrupts: Should contain the CCP interrupt
|
||||
|
||||
Optional properties:
|
||||
- dma-coherent: Present if dma operations are coherent
|
||||
|
||||
Example:
|
||||
ccp@e0100000 {
|
||||
compatible = "amd,ccp-seattle-v1a";
|
||||
reg = <0 0xe0100000 0 0x10000>;
|
||||
interrupt-parent = <&gic>;
|
||||
interrupts = <0 3 4>;
|
||||
};
|
||||
@ -17,6 +17,7 @@ properties:
|
||||
compatible:
|
||||
enum:
|
||||
- nvidia,tegra114-mipi
|
||||
- nvidia,tegra124-mipi
|
||||
- nvidia,tegra210-mipi
|
||||
- nvidia,tegra186-mipi
|
||||
|
||||
|
||||
@ -85,6 +85,7 @@ properties:
|
||||
- nvidia,tegra194-gpio-aon
|
||||
- nvidia,tegra234-gpio
|
||||
- nvidia,tegra234-gpio-aon
|
||||
- nvidia,tegra256-gpio
|
||||
|
||||
reg-names:
|
||||
items:
|
||||
@ -152,6 +153,7 @@ allOf:
|
||||
- nvidia,tegra186-gpio
|
||||
- nvidia,tegra194-gpio
|
||||
- nvidia,tegra234-gpio
|
||||
- nvidia,tegra256-gpio
|
||||
then:
|
||||
properties:
|
||||
interrupts:
|
||||
|
||||
141
Documentation/devicetree/bindings/media/i2c/ovti,ov5642.yaml
Normal file
141
Documentation/devicetree/bindings/media/i2c/ovti,ov5642.yaml
Normal file
@ -0,0 +1,141 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/media/i2c/ovti,ov5642.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: OmniVision OV5642 Image Sensor
|
||||
|
||||
maintainers:
|
||||
- Fabio Estevam <festevam@gmail.com>
|
||||
|
||||
allOf:
|
||||
- $ref: /schemas/media/video-interface-devices.yaml#
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: ovti,ov5642
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
description: XCLK Input Clock
|
||||
|
||||
AVDD-supply:
|
||||
description: Analog voltage supply, 2.8V.
|
||||
|
||||
DVDD-supply:
|
||||
description: Digital core voltage supply, 1.5V.
|
||||
|
||||
DOVDD-supply:
|
||||
description: Digital I/O voltage supply, 1.8V.
|
||||
|
||||
powerdown-gpios:
|
||||
maxItems: 1
|
||||
description: Reference to the GPIO connected to the powerdown pin, if any.
|
||||
|
||||
reset-gpios:
|
||||
maxItems: 1
|
||||
description: Reference to the GPIO connected to the reset pin, if any.
|
||||
|
||||
port:
|
||||
$ref: /schemas/graph.yaml#/$defs/port-base
|
||||
description: |
|
||||
Video output port.
|
||||
|
||||
properties:
|
||||
endpoint:
|
||||
$ref: /schemas/media/video-interfaces.yaml#
|
||||
unevaluatedProperties: false
|
||||
|
||||
properties:
|
||||
bus-type:
|
||||
enum: [5, 6]
|
||||
|
||||
bus-width:
|
||||
enum: [8, 10]
|
||||
default: 10
|
||||
|
||||
data-shift:
|
||||
enum: [0, 2]
|
||||
default: 0
|
||||
|
||||
hsync-active:
|
||||
enum: [0, 1]
|
||||
default: 1
|
||||
|
||||
vsync-active:
|
||||
enum: [0, 1]
|
||||
default: 1
|
||||
|
||||
pclk-sample:
|
||||
enum: [0, 1]
|
||||
default: 1
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
properties:
|
||||
bus-type:
|
||||
const: 6
|
||||
then:
|
||||
properties:
|
||||
hsync-active: false
|
||||
vsync-active: false
|
||||
|
||||
- if:
|
||||
properties:
|
||||
bus-width:
|
||||
const: 10
|
||||
then:
|
||||
properties:
|
||||
data-shift:
|
||||
const: 0
|
||||
|
||||
required:
|
||||
- bus-type
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
- port
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/media/video-interfaces.h>
|
||||
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
camera@3c {
|
||||
compatible = "ovti,ov5642";
|
||||
reg = <0x3c>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pinctrl_ov5642>;
|
||||
clocks = <&clk_ext_camera>;
|
||||
DOVDD-supply = <&vgen4_reg>;
|
||||
AVDD-supply = <&vgen3_reg>;
|
||||
DVDD-supply = <&vgen2_reg>;
|
||||
powerdown-gpios = <&gpio1 19 GPIO_ACTIVE_HIGH>;
|
||||
reset-gpios = <&gpio1 20 GPIO_ACTIVE_LOW>;
|
||||
|
||||
port {
|
||||
ov5642_to_parallel: endpoint {
|
||||
bus-type = <MEDIA_BUS_TYPE_PARALLEL>;
|
||||
remote-endpoint = <¶llel_from_ov5642>;
|
||||
bus-width = <8>;
|
||||
data-shift = <2>; /* lines 9:2 are used */
|
||||
hsync-active = <0>;
|
||||
vsync-active = <0>;
|
||||
pclk-sample = <1>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
@ -1,46 +0,0 @@
|
||||
Texas Instruments TWL family (twl4030) audio module
|
||||
|
||||
The audio module inside the TWL family consist of an audio codec and a vibra
|
||||
driver.
|
||||
|
||||
Required properties:
|
||||
- compatible : must be "ti,twl4030-audio"
|
||||
|
||||
Optional properties, nodes:
|
||||
|
||||
Audio functionality:
|
||||
- codec { }: Need to be present if the audio functionality is used. Within this
|
||||
section the following options can be used:
|
||||
- ti,digimic_delay: Delay need after enabling the digimic to reduce artifacts
|
||||
from the start of the recorded sample (in ms)
|
||||
-ti,ramp_delay_value: HS ramp delay configuration to reduce pop noise
|
||||
-ti,hs_extmute: Use external mute for HS pop reduction
|
||||
-ti,hs_extmute_gpio: Use external GPIO to control the external mute
|
||||
-ti,offset_cncl_path: Offset cancellation path selection, refer to TRM for the
|
||||
valid values.
|
||||
|
||||
Vibra functionality
|
||||
- ti,enable-vibra: Need to be set to <1> if the vibra functionality is used. if
|
||||
missing or it is 0, the vibra functionality is disabled.
|
||||
|
||||
Example:
|
||||
&i2c1 {
|
||||
clock-frequency = <2600000>;
|
||||
|
||||
twl: twl@48 {
|
||||
reg = <0x48>;
|
||||
interrupts = <7>; /* SYS_NIRQ cascaded to intc */
|
||||
interrupt-parent = <&intc>;
|
||||
|
||||
twl_audio: audio {
|
||||
compatible = "ti,twl4030-audio";
|
||||
|
||||
ti,enable-vibra = <1>;
|
||||
|
||||
codec {
|
||||
ti,ramp_delay_value = <3>;
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
};
|
||||
@ -127,6 +127,27 @@ properties:
|
||||
Mark the corresponding energy efficient ethernet mode as
|
||||
broken and request the ethernet to stop advertising it.
|
||||
|
||||
timing-role:
|
||||
$ref: /schemas/types.yaml#/definitions/string
|
||||
enum:
|
||||
- forced-master
|
||||
- forced-slave
|
||||
- preferred-master
|
||||
- preferred-slave
|
||||
description: |
|
||||
Specifies the timing role of the PHY in the network link. This property is
|
||||
required for setups where the role must be explicitly assigned via the
|
||||
device tree due to limitations in hardware strapping or incorrect strap
|
||||
configurations.
|
||||
It is applicable to Single Pair Ethernet (1000/100/10Base-T1) and other
|
||||
PHY types, including 1000Base-T, where it controls whether the PHY should
|
||||
be a master (clock source) or a slave (clock receiver).
|
||||
|
||||
- 'forced-master': The PHY is forced to operate as a master.
|
||||
- 'forced-slave': The PHY is forced to operate as a slave.
|
||||
- 'preferred-master': Prefer the PHY to be master but allow negotiation.
|
||||
- 'preferred-slave': Prefer the PHY to be slave but allow negotiation.
|
||||
|
||||
phy-is-integrated:
|
||||
$ref: /schemas/types.yaml#/definitions/flag
|
||||
description:
|
||||
|
||||
@ -17,6 +17,22 @@ description:
|
||||
allOf:
|
||||
- $ref: ethernet-phy.yaml#
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- ethernet-phy-id001b.b010
|
||||
- ethernet-phy-id001b.b013
|
||||
- ethernet-phy-id001b.b030
|
||||
- ethernet-phy-id001b.b031
|
||||
|
||||
then:
|
||||
properties:
|
||||
nxp,rmii-refclk-out:
|
||||
type: boolean
|
||||
description: Enable 50MHz RMII reference clock output on REF_CLK pin.
|
||||
|
||||
patternProperties:
|
||||
"^ethernet-phy@[0-9a-f]+$":
|
||||
type: object
|
||||
|
||||
@ -96,6 +96,32 @@ properties:
|
||||
- master
|
||||
- slave
|
||||
|
||||
ti,gpio2-clk-out:
|
||||
description: |
|
||||
DP83822 PHY only.
|
||||
The GPIO2 pin on the DP83822 can be configured as clock output. When
|
||||
omitted, the PHY's default will be left as is.
|
||||
|
||||
- 'mac-if': In MII mode the clock frequency is 25-MHz, in RMII Mode the
|
||||
clock frequency is 50-MHz and in RGMII Mode the clock frequency is
|
||||
25-MHz.
|
||||
- 'xi': XI clock(pass-through clock from XI pin).
|
||||
- 'int-ref': Internal reference clock 25-MHz.
|
||||
- 'rmii-master-mode-ref': RMII master mode reference clock 50-MHz. RMII
|
||||
master mode reference clock is identical to MAC IF clock in RMII master
|
||||
mode.
|
||||
- 'free-running': Free running clock 125-MHz.
|
||||
- 'recovered': Recovered clock is a 125-MHz recovered clock from a
|
||||
connected link partner.
|
||||
$ref: /schemas/types.yaml#/definitions/string
|
||||
enum:
|
||||
- mac-if
|
||||
- xi
|
||||
- int-ref
|
||||
- rmii-master-mode-ref
|
||||
- free-running
|
||||
- recovered
|
||||
|
||||
required:
|
||||
- reg
|
||||
|
||||
@ -110,6 +136,7 @@ examples:
|
||||
reg = <0>;
|
||||
rx-internal-delay-ps = <1>;
|
||||
tx-internal-delay-ps = <1>;
|
||||
ti,gpio2-clk-out = "xi";
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@ -12,7 +12,7 @@ maintainers:
|
||||
description: |
|
||||
This node provides properties for configuring the ath9k wireless device.
|
||||
The node is expected to be specified as a child node of the PCI controller
|
||||
to which the wireless chip is connected.
|
||||
or AHB bus to which the wireless chip is connected.
|
||||
|
||||
allOf:
|
||||
- $ref: ieee80211.yaml#
|
||||
@ -35,6 +35,12 @@ properties:
|
||||
- pci168c,0034 # AR9462
|
||||
- pci168c,0036 # AR9565
|
||||
- pci168c,0037 # AR1111 and AR9485
|
||||
- qca,ar9130-wifi
|
||||
- qca,ar9330-wifi
|
||||
- qca,ar9340-wifi
|
||||
- qca,qca9530-wifi
|
||||
- qca,qca9550-wifi
|
||||
- qca,qca9560-wifi
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
@ -88,3 +94,13 @@ examples:
|
||||
nvmem-cell-names = "mac-address", "calibration";
|
||||
};
|
||||
};
|
||||
- |
|
||||
ahb {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
wifi@180c0000 {
|
||||
compatible = "qca,ar9130-wifi";
|
||||
reg = <0x180c0000 0x230000>;
|
||||
interrupts = <2>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -36,6 +36,12 @@ properties:
|
||||
string to uniquely identify variant of the calibration data for designs
|
||||
with colliding bus and device ids
|
||||
|
||||
firmware-name:
|
||||
maxItems: 1
|
||||
description:
|
||||
If present, a board or platform specific string used to lookup
|
||||
usecase-specific firmware files for the device.
|
||||
|
||||
vddrfacmn-supply:
|
||||
description: VDD_RFA_CMN supply regulator handle
|
||||
|
||||
|
||||
@ -0,0 +1,49 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/net/wireless/ralink,rt2880.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Ralink RT2880 wireless device
|
||||
|
||||
maintainers:
|
||||
- Stanislaw Gruszka <stf_xl@wp.pl>
|
||||
|
||||
description: |
|
||||
This node provides properties for configuring RT2880 SOC wifi devices.
|
||||
The node is expected to be specified as a root node of the device.
|
||||
|
||||
allOf:
|
||||
- $ref: ieee80211.yaml#
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- ralink,rt2880-wifi
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
- interrupts
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
wifi@110180000 {
|
||||
compatible = "ralink,rt2880-wifi";
|
||||
reg = <0x10180000 0x40000>;
|
||||
clocks = <&sysc 16>;
|
||||
interrupt-parent = <&cpuintc>;
|
||||
interrupts = <6>;
|
||||
};
|
||||
@ -43,15 +43,15 @@ properties:
|
||||
fsl,phy-tx-vref-tune-percent:
|
||||
description:
|
||||
Tunes the HS DC level relative to the nominal level
|
||||
minimum: 94
|
||||
minimum: 90
|
||||
maximum: 124
|
||||
|
||||
fsl,phy-tx-rise-tune-percent:
|
||||
description:
|
||||
Adjusts the rise/fall time duration of the HS waveform relative to
|
||||
its nominal value
|
||||
minimum: 97
|
||||
maximum: 103
|
||||
minimum: 90
|
||||
maximum: 120
|
||||
|
||||
fsl,phy-tx-preemp-amp-tune-microamp:
|
||||
description:
|
||||
@ -63,8 +63,7 @@ properties:
|
||||
fsl,phy-tx-vboost-level-microvolt:
|
||||
description:
|
||||
Adjust the boosted transmit launch pk-pk differential amplitude
|
||||
minimum: 880
|
||||
maximum: 1120
|
||||
enum: [844, 1008, 1156]
|
||||
|
||||
fsl,phy-comp-dis-tune-percent:
|
||||
description:
|
||||
@ -112,6 +111,34 @@ allOf:
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- fsl,imx8mq-usb-phy
|
||||
- fsl,imx8mp-usb-phy
|
||||
then:
|
||||
properties:
|
||||
fsl,phy-tx-vref-tune-percent:
|
||||
minimum: 94
|
||||
fsl,phy-tx-rise-tune-percent:
|
||||
minimum: 97
|
||||
maximum: 103
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- fsl,imx95-usb-phy
|
||||
then:
|
||||
properties:
|
||||
fsl,phy-tx-vref-tune-percent:
|
||||
maximum: 108
|
||||
fsl,phy-comp-dis-tune-percent:
|
||||
minimum: 94
|
||||
maximum: 104
|
||||
|
||||
- if:
|
||||
required:
|
||||
- orientation-switch
|
||||
|
||||
@ -0,0 +1,35 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/phy/hisilicon,hi6220-usb-phy.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Hisilicon hi6220 USB PHY
|
||||
|
||||
maintainers:
|
||||
- Zhangfei Gao <zhangfei.gao@linaro.org>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: hisilicon,hi6220-usb-phy
|
||||
|
||||
'#phy-cells':
|
||||
const: 0
|
||||
|
||||
phy-supply:
|
||||
description: PHY power supply.
|
||||
|
||||
hisilicon,peripheral-syscon:
|
||||
description: Phandle to the system controller for PHY control.
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
usbphy {
|
||||
compatible = "hisilicon,hi6220-usb-phy";
|
||||
#phy-cells = <0>;
|
||||
phy-supply = <&fixed_5v_hub>;
|
||||
hisilicon,peripheral-syscon = <&sys_ctrl>;
|
||||
};
|
||||
@ -1,19 +0,0 @@
|
||||
TI Keystone USB PHY
|
||||
|
||||
Required properties:
|
||||
- compatible: should be "ti,keystone-usbphy".
|
||||
- #address-cells, #size-cells : should be '1' if the device has sub-nodes
|
||||
with 'reg' property.
|
||||
- reg : Address and length of the usb phy control register set.
|
||||
|
||||
The main purpose of this PHY driver is to enable the USB PHY reference clock
|
||||
gate on the Keystone SOC for both the USB2 and USB3 PHY. Otherwise it is just
|
||||
an NOP PHY driver. Hence this node is referenced as both the usb2 and usb3
|
||||
phy node in the USB Glue layer driver node.
|
||||
|
||||
usb_phy: usb_phy@2620738 {
|
||||
compatible = "ti,keystone-usbphy";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
reg = <0x2620738 32>;
|
||||
};
|
||||
@ -1,16 +0,0 @@
|
||||
Hisilicon hi6220 usb PHY
|
||||
-----------------------
|
||||
|
||||
Required properties:
|
||||
- compatible: should be "hisilicon,hi6220-usb-phy"
|
||||
- #phy-cells: must be 0
|
||||
- hisilicon,peripheral-syscon: phandle of syscon used to control phy.
|
||||
Refer to phy/phy-bindings.txt for the generic PHY binding properties
|
||||
|
||||
Example:
|
||||
usb_phy: usbphy {
|
||||
compatible = "hisilicon,hi6220-usb-phy";
|
||||
#phy-cells = <0>;
|
||||
phy-supply = <&fixed_5v_hub>;
|
||||
hisilicon,peripheral-syscon = <&sys_ctrl>;
|
||||
};
|
||||
@ -1,84 +0,0 @@
|
||||
* ROCKCHIP type-c PHY
|
||||
---------------------
|
||||
|
||||
Required properties:
|
||||
- compatible : must be "rockchip,rk3399-typec-phy"
|
||||
- reg: Address and length of the usb phy control register set
|
||||
- rockchip,grf : phandle to the syscon managing the "general
|
||||
register files"
|
||||
- clocks : phandle + clock specifier for the phy clocks
|
||||
- clock-names : string, clock name, must be "tcpdcore", "tcpdphy-ref";
|
||||
- assigned-clocks: main clock, should be <&cru SCLK_UPHY0_TCPDCORE> or
|
||||
<&cru SCLK_UPHY1_TCPDCORE>;
|
||||
- assigned-clock-rates : the phy core clk frequency, shall be: 50000000
|
||||
- resets : a list of phandle + reset specifier pairs
|
||||
- reset-names : string reset name, must be:
|
||||
"uphy", "uphy-pipe", "uphy-tcphy"
|
||||
|
||||
Optional properties:
|
||||
- extcon : extcon specifier for the Power Delivery
|
||||
|
||||
Required nodes : a sub-node is required for each port the phy provides.
|
||||
The sub-node name is used to identify dp or usb3 port,
|
||||
and shall be the following entries:
|
||||
* "dp-port" : the name of DP port.
|
||||
* "usb3-port" : the name of USB3 port.
|
||||
|
||||
Required properties (port (child) node):
|
||||
- #phy-cells : must be 0, See ./phy-bindings.txt for details.
|
||||
|
||||
Deprecated properties, do not use in new device tree sources, these
|
||||
properties are determined by the compatible value:
|
||||
- rockchip,typec-conn-dir
|
||||
- rockchip,usb3tousb2-en
|
||||
- rockchip,external-psm
|
||||
- rockchip,pipe-status
|
||||
|
||||
Example:
|
||||
tcphy0: phy@ff7c0000 {
|
||||
compatible = "rockchip,rk3399-typec-phy";
|
||||
reg = <0x0 0xff7c0000 0x0 0x40000>;
|
||||
rockchip,grf = <&grf>;
|
||||
extcon = <&fusb0>;
|
||||
clocks = <&cru SCLK_UPHY0_TCPDCORE>,
|
||||
<&cru SCLK_UPHY0_TCPDPHY_REF>;
|
||||
clock-names = "tcpdcore", "tcpdphy-ref";
|
||||
assigned-clocks = <&cru SCLK_UPHY0_TCPDCORE>;
|
||||
assigned-clock-rates = <50000000>;
|
||||
resets = <&cru SRST_UPHY0>,
|
||||
<&cru SRST_UPHY0_PIPE_L00>,
|
||||
<&cru SRST_P_UPHY0_TCPHY>;
|
||||
reset-names = "uphy", "uphy-pipe", "uphy-tcphy";
|
||||
|
||||
tcphy0_dp: dp-port {
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
|
||||
tcphy0_usb3: usb3-port {
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
tcphy1: phy@ff800000 {
|
||||
compatible = "rockchip,rk3399-typec-phy";
|
||||
reg = <0x0 0xff800000 0x0 0x40000>;
|
||||
rockchip,grf = <&grf>;
|
||||
extcon = <&fusb1>;
|
||||
clocks = <&cru SCLK_UPHY1_TCPDCORE>,
|
||||
<&cru SCLK_UPHY1_TCPDPHY_REF>;
|
||||
clock-names = "tcpdcore", "tcpdphy-ref";
|
||||
assigned-clocks = <&cru SCLK_UPHY1_TCPDCORE>;
|
||||
assigned-clock-rates = <50000000>;
|
||||
resets = <&cru SRST_UPHY1>,
|
||||
<&cru SRST_UPHY1_PIPE_L00>,
|
||||
<&cru SRST_P_UPHY1_TCPHY>;
|
||||
reset-names = "uphy", "uphy-pipe", "uphy-tcphy";
|
||||
|
||||
tcphy1_dp: dp-port {
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
|
||||
tcphy1_usb3: usb3-port {
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
};
|
||||
@ -0,0 +1,116 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/phy/rockchip,rk3399-typec-phy.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Rockchip Type-C PHY
|
||||
|
||||
maintainers:
|
||||
- Heiko Stuebner <heiko@sntech.de>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: rockchip,rk3399-typec-phy
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
maxItems: 2
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: tcpdcore
|
||||
- const: tcpdphy-ref
|
||||
|
||||
extcon: true
|
||||
|
||||
power-domains:
|
||||
maxItems: 1
|
||||
|
||||
resets:
|
||||
maxItems: 3
|
||||
|
||||
reset-names:
|
||||
items:
|
||||
- const: uphy
|
||||
- const: uphy-pipe
|
||||
- const: uphy-tcphy
|
||||
|
||||
rockchip,grf:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
description:
|
||||
Phandle to the syscon managing the "general register files" (GRF).
|
||||
|
||||
dp-port:
|
||||
type: object
|
||||
additionalProperties: false
|
||||
|
||||
properties:
|
||||
'#phy-cells':
|
||||
const: 0
|
||||
|
||||
port:
|
||||
$ref: /schemas/graph.yaml#/properties/port
|
||||
description: Connection to USB Type-C connector
|
||||
|
||||
required:
|
||||
- '#phy-cells'
|
||||
|
||||
usb3-port:
|
||||
type: object
|
||||
additionalProperties: false
|
||||
|
||||
properties:
|
||||
'#phy-cells':
|
||||
const: 0
|
||||
|
||||
orientation-switch: true
|
||||
|
||||
port:
|
||||
$ref: /schemas/graph.yaml#/properties/port
|
||||
description: Connection to USB Type-C connector SS port
|
||||
|
||||
required:
|
||||
- '#phy-cells'
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
- clock-names
|
||||
- resets
|
||||
- reset-names
|
||||
- dp-port
|
||||
- usb3-port
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/rk3399-cru.h>
|
||||
|
||||
phy@ff7c0000 {
|
||||
compatible = "rockchip,rk3399-typec-phy";
|
||||
reg = <0xff7c0000 0x40000>;
|
||||
rockchip,grf = <&grf>;
|
||||
extcon = <&fusb0>;
|
||||
clocks = <&cru SCLK_UPHY0_TCPDCORE>,
|
||||
<&cru SCLK_UPHY0_TCPDPHY_REF>;
|
||||
clock-names = "tcpdcore", "tcpdphy-ref";
|
||||
resets = <&cru SRST_UPHY0>,
|
||||
<&cru SRST_UPHY0_PIPE_L00>,
|
||||
<&cru SRST_P_UPHY0_TCPHY>;
|
||||
reset-names = "uphy", "uphy-pipe", "uphy-tcphy";
|
||||
|
||||
dp-port {
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
|
||||
usb3-port {
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
...
|
||||
@ -0,0 +1,37 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/phy/ti,keystone-usbphy.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: TI Keystone USB PHY
|
||||
|
||||
maintainers:
|
||||
- Nishanth Menon <nm@ti.com>
|
||||
- Santosh Shilimkar <ssantosh@kernel.org>
|
||||
|
||||
description:
|
||||
The main purpose of this PHY driver is to enable the USB PHY reference clock
|
||||
gate on the Keystone SOC for both the USB2 and USB3 PHY. Otherwise it is just
|
||||
an NOP PHY driver. Hence this node is referenced as both the usb2 and usb3
|
||||
phy node in the USB Glue layer driver node.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: ti,keystone-usbphy
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
usb-phy@2620738 {
|
||||
compatible = "ti,keystone-usbphy";
|
||||
reg = <0x2620738 32>;
|
||||
};
|
||||
@ -1,25 +0,0 @@
|
||||
ALC5621/ALC5622/ALC5623 audio Codec
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible: "realtek,alc5623"
|
||||
- reg: the I2C address of the device.
|
||||
|
||||
Optional properties:
|
||||
|
||||
- add-ctrl: Default register value for Reg-40h, Additional Control
|
||||
Register. If absent or has the value of 0, the
|
||||
register is untouched.
|
||||
|
||||
- jack-det-ctrl: Default register value for Reg-5Ah, Jack Detect
|
||||
Control Register. If absent or has value 0, the
|
||||
register is untouched.
|
||||
|
||||
Example:
|
||||
|
||||
alc5621: alc5621@1a {
|
||||
compatible = "alc5621";
|
||||
reg = <0x1a>;
|
||||
add-ctrl = <0x3700>;
|
||||
jack-det-ctrl = <0x4810>;
|
||||
};
|
||||
@ -1,24 +0,0 @@
|
||||
* Broadcom BCM2835 SoC I2S/PCM module
|
||||
|
||||
Required properties:
|
||||
- compatible: "brcm,bcm2835-i2s"
|
||||
- reg: Should contain PCM registers location and length.
|
||||
- clocks: the (PCM) clock to use
|
||||
- dmas: List of DMA controller phandle and DMA request line ordered pairs.
|
||||
- dma-names: Identifier string for each DMA request line in the dmas property.
|
||||
These strings correspond 1:1 with the ordered pairs in dmas.
|
||||
|
||||
One of the DMA channels will be responsible for transmission (should be
|
||||
named "tx") and one for reception (should be named "rx").
|
||||
|
||||
Example:
|
||||
|
||||
bcm2835_i2s: i2s@7e203000 {
|
||||
compatible = "brcm,bcm2835-i2s";
|
||||
reg = <0x7e203000 0x24>;
|
||||
clocks = <&clocks BCM2835_CLOCK_PCM>;
|
||||
|
||||
dmas = <&dma 2>,
|
||||
<&dma 3>;
|
||||
dma-names = "tx", "rx";
|
||||
};
|
||||
@ -0,0 +1,51 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/brcm,bcm2835-i2s.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Broadcom BCM2835 SoC I2S/PCM module
|
||||
|
||||
maintainers:
|
||||
- Florian Fainelli <florian.fainelli@broadcom.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: brcm,bcm2835-i2s
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
dmas:
|
||||
items:
|
||||
- description: Transmission DMA controller phandle and request line.
|
||||
- description: Reception DMA controller phandle and request line.
|
||||
|
||||
dma-names:
|
||||
items:
|
||||
- const: tx
|
||||
- const: rx
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
- dmas
|
||||
- dma-names
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/bcm2835.h>
|
||||
|
||||
i2s@7e203000 {
|
||||
compatible = "brcm,bcm2835-i2s";
|
||||
reg = <0x7e203000 0x24>;
|
||||
clocks = <&clocks BCM2835_CLOCK_PCM>;
|
||||
dmas = <&dma 2>, <&dma 3>;
|
||||
dma-names = "tx", "rx";
|
||||
};
|
||||
56
Documentation/devicetree/bindings/sound/cirrus,cs42l84.yaml
Normal file
56
Documentation/devicetree/bindings/sound/cirrus,cs42l84.yaml
Normal file
@ -0,0 +1,56 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/cirrus,cs42l84.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Cirrus Logic CS42L84 audio CODEC
|
||||
|
||||
maintainers:
|
||||
- Martin Povišer <povik+lin@cutebit.org>
|
||||
|
||||
description: |
|
||||
The CS42L84 is a headphone jack codec made by Cirrus Logic and embedded
|
||||
in personal computers sold by Apple. It was first seen in 2021 Macbook
|
||||
Pro models. It has stereo DAC for playback, mono ADC for capture, and
|
||||
is somewhat similar to CS42L42 but with a different regmap.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- cirrus,cs42l84
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
reset-gpios:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
'#sound-dai-cells':
|
||||
const: 0
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
jack_codec: codec@4b {
|
||||
compatible = "cirrus,cs42l84";
|
||||
reg = <0x4b>;
|
||||
reset-gpios = <&pinctrl_nub 4 GPIO_ACTIVE_LOW>;
|
||||
interrupts-extended = <&pinctrl_ap 180 IRQ_TYPE_LEVEL_LOW>;
|
||||
#sound-dai-cells = <0>;
|
||||
};
|
||||
};
|
||||
195
Documentation/devicetree/bindings/sound/cirrus,cs48l32.yaml
Normal file
195
Documentation/devicetree/bindings/sound/cirrus,cs48l32.yaml
Normal file
@ -0,0 +1,195 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/cirrus,cs48l32.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Cirrus Logic CS48L32 audio DSP.
|
||||
|
||||
maintainers:
|
||||
- patches@opensource.cirrus.com
|
||||
|
||||
description: |
|
||||
The CS48L32 is a high-performance low-power audio DSP for smartphones and
|
||||
other portable audio devices. The CS48L32 combines a programmable Halo Core
|
||||
DSP with a variety of power-efficient fixed-function audio processors.
|
||||
|
||||
See also the binding headers:
|
||||
|
||||
include/dt-bindings/sound/cs48l32.yaml
|
||||
|
||||
allOf:
|
||||
- $ref: /schemas/spi/spi-peripheral-props.yaml#
|
||||
- $ref: dai-common.yaml#
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- cirrus,cs48l32
|
||||
|
||||
reg:
|
||||
description: SPI chip-select number.
|
||||
maxItems: 1
|
||||
|
||||
spi-max-frequency:
|
||||
maximum: 25000000
|
||||
|
||||
vdd-a-supply:
|
||||
description: Regulator supplying VDD_A
|
||||
|
||||
vdd-d-supply:
|
||||
description: Regulator supplying VDD_D
|
||||
|
||||
vdd-io-supply:
|
||||
description: Regulator supplying VDD_IO
|
||||
|
||||
vdd-cp-supply:
|
||||
description: Regulator supplying VDD_CP
|
||||
|
||||
reset-gpios:
|
||||
description:
|
||||
One entry specifying the GPIO controlling /RESET. Although optional,
|
||||
it is strongly recommended to use a hardware reset.
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: The clock supplied on MCLK1
|
||||
|
||||
clock-names:
|
||||
const: mclk1
|
||||
|
||||
'#sound-dai-cells':
|
||||
const: 1
|
||||
|
||||
cirrus,in-type:
|
||||
description: |
|
||||
A list of input type settings for each ADC input.
|
||||
Inputs are one of these types:
|
||||
CS48L32_IN_TYPE_DIFF : analog differential (default)
|
||||
CS48L32_IN_TYPE_SE : analog single-ended
|
||||
|
||||
The type of the left (L) and right (R) channel on each input is
|
||||
independently configured, as are the two groups of pins muxable to
|
||||
the input (referred to in the datasheet as "1" and "2").
|
||||
|
||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
items:
|
||||
- description:
|
||||
IN1L_1 analog input type. One of the CS48L32_IN_TYPE_xxx.
|
||||
minimum: 0
|
||||
maximum: 1
|
||||
default: 0
|
||||
- description:
|
||||
IN1R_1 analog input type. One of the CS48L32_IN_TYPE_xxx.
|
||||
minimum: 0
|
||||
maximum: 1
|
||||
default: 0
|
||||
- description:
|
||||
IN1L_2 analog input type. One of the CS48L32_IN_TYPE_xxx.
|
||||
minimum: 0
|
||||
maximum: 1
|
||||
default: 0
|
||||
- description:
|
||||
IN1R_2 analog input type. One of the CS48L32_IN_TYPE_xxx.
|
||||
minimum: 0
|
||||
maximum: 1
|
||||
default: 0
|
||||
|
||||
cirrus,pdm-sup:
|
||||
description: |
|
||||
Indicate which MICBIAS output supplies bias to the microphone.
|
||||
There is one cell per input (IN1, IN2, ...).
|
||||
|
||||
One of the CS48L32_MICBIAS_xxx values.
|
||||
CS48L32_PDM_SUP_VOUT_MIC : mic biased from VOUT_MIC
|
||||
CS48L32_PDM_SUP_MICBIAS1 : mic biased from MICBIAS1
|
||||
|
||||
Also see the INn_PDM_SUP field in the datasheet.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
items:
|
||||
- description: IN1 PDM supply source
|
||||
minimum: 0
|
||||
maximum: 1
|
||||
default: 0
|
||||
- description: IN2 PDM supply source
|
||||
minimum: 0
|
||||
maximum: 1
|
||||
default: 0
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- vdd-a-supply
|
||||
- vdd-d-supply
|
||||
- vdd-io-supply
|
||||
- vdd-cp-supply
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/sound/cs48l32.h>
|
||||
|
||||
spi@e0006000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <0xe0006000 0x1000>;
|
||||
|
||||
codec@1 {
|
||||
compatible = "cirrus,cs48l32";
|
||||
|
||||
reg = <0x1>;
|
||||
spi-max-frequency = <2500000>;
|
||||
|
||||
vdd-a-supply = <®ulator_1v8>;
|
||||
vdd-d-supply = <®ulator_1v2>;
|
||||
vdd-io-supply = <®ulator_1v8>;
|
||||
vdd-cp-supply = <®ulator_1v8>;
|
||||
|
||||
reset-gpios = <&gpio 0 0>;
|
||||
|
||||
clocks = <&clks 0>;
|
||||
clock-names = "mclk1";
|
||||
|
||||
interrupt-parent = <&gpio0>;
|
||||
interrupts = <56 8>;
|
||||
|
||||
#sound-dai-cells = <1>;
|
||||
|
||||
cirrus,in-type = <
|
||||
CS48L32_IN_TYPE_DIFF CS48L32_IN_TYPE_DIFF
|
||||
CS48L32_IN_TYPE_SE CS48L32_IN_TYPE_SE
|
||||
>;
|
||||
|
||||
cirrus,pdm-sup = <
|
||||
CS48L32_PDM_SUP_MICBIAS1 CS48L32_PDM_SUP_MICBIAS1
|
||||
>;
|
||||
};
|
||||
};
|
||||
|
||||
#
|
||||
# Minimal config
|
||||
#
|
||||
- |
|
||||
#include <dt-bindings/sound/cs48l32.h>
|
||||
|
||||
spi@e0006000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <0xe0006000 0x1000>;
|
||||
|
||||
codec@1 {
|
||||
compatible = "cirrus,cs48l32";
|
||||
|
||||
reg = <0x1>;
|
||||
|
||||
vdd-a-supply = <®ulator_1v8>;
|
||||
vdd-d-supply = <®ulator_1v2>;
|
||||
vdd-io-supply = <®ulator_1v8>;
|
||||
vdd-cp-supply = <®ulator_1v8>;
|
||||
};
|
||||
};
|
||||
@ -24,6 +24,10 @@ properties:
|
||||
items:
|
||||
- const: mclk
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
description: interrupt output for headset detection
|
||||
|
||||
"#sound-dai-cells":
|
||||
const: 0
|
||||
|
||||
|
||||
@ -28,6 +28,9 @@ properties:
|
||||
- fsl,imx95-aonmix-mqs
|
||||
- fsl,imx95-netcmix-mqs
|
||||
|
||||
"#sound-dai-cells":
|
||||
const: 0
|
||||
|
||||
clocks:
|
||||
minItems: 1
|
||||
maxItems: 2
|
||||
@ -49,12 +52,17 @@ properties:
|
||||
resets:
|
||||
maxItems: 1
|
||||
|
||||
port:
|
||||
$ref: audio-graph-port.yaml#
|
||||
unevaluatedProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- clocks
|
||||
- clock-names
|
||||
|
||||
allOf:
|
||||
- $ref: dai-common.yaml#
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
@ -86,7 +94,7 @@ allOf:
|
||||
required:
|
||||
- gpr
|
||||
|
||||
additionalProperties: false
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
|
||||
@ -0,0 +1,81 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/fsl,mxs-audio-sgtl5000.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Freescale MXS audio complex with SGTL5000 codec
|
||||
|
||||
maintainers:
|
||||
- Frank Li <Frank.Li@nxp.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
items:
|
||||
- enum:
|
||||
- bluegiga,apx4devkit-sgtl5000
|
||||
- denx,m28evk-sgtl5000
|
||||
- fsl,imx28-evk-sgtl5000
|
||||
- fsl,imx28-mbmx28lc-sgtl5000
|
||||
- fsl,imx28-tx28-sgtl5000
|
||||
- const: fsl,mxs-audio-sgtl5000
|
||||
|
||||
model:
|
||||
$ref: /schemas/types.yaml#/definitions/string
|
||||
description: The user-visible name of this sound complex
|
||||
|
||||
saif-controllers:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle-array
|
||||
description: The phandle list of the MXS SAIF controller
|
||||
|
||||
audio-codec:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
description: The phandle of the SGTL5000 audio codec
|
||||
|
||||
audio-routing:
|
||||
$ref: /schemas/types.yaml#/definitions/non-unique-string-array
|
||||
description: |
|
||||
A list of the connections between audio components.
|
||||
Each entry is a pair of strings, the first being the
|
||||
connection's sink, the second being the connection's
|
||||
source. Valid names could be power supplies, SGTL5000
|
||||
pins, and the jacks on the board:
|
||||
|
||||
Power supplies:
|
||||
* Mic Bias
|
||||
|
||||
SGTL5000 pins:
|
||||
* MIC_IN
|
||||
* LINE_IN
|
||||
* HP_OUT
|
||||
* LINE_OUT
|
||||
|
||||
Board connectors:
|
||||
* Mic Jack
|
||||
* Line In Jack
|
||||
* Headphone Jack
|
||||
* Line Out Jack
|
||||
* Ext Spk
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- saif-controllers
|
||||
- audio-codec
|
||||
|
||||
allOf:
|
||||
- $ref: dai-common.yaml#
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
sound {
|
||||
compatible = "fsl,imx28-evk-sgtl5000", "fsl,mxs-audio-sgtl5000";
|
||||
model = "imx28-evk-sgtl5000";
|
||||
saif-controllers = <&saif0 &saif1>;
|
||||
audio-codec = <&sgtl5000>;
|
||||
audio-routing =
|
||||
"MIC_IN", "Mic Jack",
|
||||
"Mic Jack", "Mic Bias",
|
||||
"Headphone Jack", "HP_OUT";
|
||||
};
|
||||
@ -16,16 +16,23 @@ description: |
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- fsl,imx35-spdif
|
||||
- fsl,vf610-spdif
|
||||
- fsl,imx6sx-spdif
|
||||
- fsl,imx8qm-spdif
|
||||
- fsl,imx8qxp-spdif
|
||||
- fsl,imx8mq-spdif
|
||||
- fsl,imx8mm-spdif
|
||||
- fsl,imx8mn-spdif
|
||||
- fsl,imx8ulp-spdif
|
||||
oneOf:
|
||||
- items:
|
||||
- enum:
|
||||
- fsl,imx35-spdif
|
||||
- fsl,imx6sx-spdif
|
||||
- fsl,imx8mm-spdif
|
||||
- fsl,imx8mn-spdif
|
||||
- fsl,imx8mq-spdif
|
||||
- fsl,imx8qm-spdif
|
||||
- fsl,imx8qxp-spdif
|
||||
- fsl,imx8ulp-spdif
|
||||
- fsl,vf610-spdif
|
||||
- items:
|
||||
- enum:
|
||||
- fsl,imx6sl-spdif
|
||||
- fsl,imx6sx-spdif
|
||||
- const: fsl,imx35-spdif
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
@ -1,56 +0,0 @@
|
||||
Freescale i.MX audio complex with SGTL5000 codec
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : "fsl,imx-audio-sgtl5000"
|
||||
|
||||
- model : The user-visible name of this sound complex
|
||||
|
||||
- ssi-controller : The phandle of the i.MX SSI controller
|
||||
|
||||
- audio-codec : The phandle of the SGTL5000 audio codec
|
||||
|
||||
- audio-routing : A list of the connections between audio components.
|
||||
Each entry is a pair of strings, the first being the
|
||||
connection's sink, the second being the connection's
|
||||
source. Valid names could be power supplies, SGTL5000
|
||||
pins, and the jacks on the board:
|
||||
|
||||
Power supplies:
|
||||
* Mic Bias
|
||||
|
||||
SGTL5000 pins:
|
||||
* MIC_IN
|
||||
* LINE_IN
|
||||
* HP_OUT
|
||||
* LINE_OUT
|
||||
|
||||
Board connectors:
|
||||
* Mic Jack
|
||||
* Line In Jack
|
||||
* Headphone Jack
|
||||
* Line Out Jack
|
||||
* Ext Spk
|
||||
|
||||
- mux-int-port : The internal port of the i.MX audio muxer (AUDMUX)
|
||||
|
||||
- mux-ext-port : The external port of the i.MX audio muxer
|
||||
|
||||
Note: The AUDMUX port numbering should start at 1, which is consistent with
|
||||
hardware manual.
|
||||
|
||||
Example:
|
||||
|
||||
sound {
|
||||
compatible = "fsl,imx51-babbage-sgtl5000",
|
||||
"fsl,imx-audio-sgtl5000";
|
||||
model = "imx51-babbage-sgtl5000";
|
||||
ssi-controller = <&ssi1>;
|
||||
audio-codec = <&sgtl5000>;
|
||||
audio-routing =
|
||||
"MIC_IN", "Mic Jack",
|
||||
"Mic Jack", "Mic Bias",
|
||||
"Headphone Jack", "HP_OUT";
|
||||
mux-int-port = <1>;
|
||||
mux-ext-port = <3>;
|
||||
};
|
||||
@ -77,11 +77,11 @@ additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
audio-codec@3a {
|
||||
compatible = "maxim,max98927";
|
||||
reg = <0x3a>;
|
||||
|
||||
@ -0,0 +1,228 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/mediatek,mt8183-audio.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Mediatek AFE PCM controller for mt8183
|
||||
|
||||
maintainers:
|
||||
- Julien Massot <jmassot@collabora.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: mediatek,mt8183-audio
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
resets:
|
||||
maxItems: 1
|
||||
|
||||
reset-names:
|
||||
const: audiosys
|
||||
|
||||
power-domains:
|
||||
maxItems: 1
|
||||
|
||||
memory-region:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: AFE clock
|
||||
- description: ADDA DAC clock
|
||||
- description: ADDA DAC pre-distortion clock
|
||||
- description: ADDA ADC clock
|
||||
- description: ADDA6 ADC clock
|
||||
- description: Audio low-jitter 22.5792m clock
|
||||
- description: Audio low-jitter 24.576m clock
|
||||
- description: Audio PLL1 tuner clock
|
||||
- description: Audio PLL2 tuner clock
|
||||
- description: I2S1 bit clock
|
||||
- description: I2S2 bit clock
|
||||
- description: I2S3 bit clock
|
||||
- description: I2S4 bit clock
|
||||
- description: Audio Time-Division Multiplexing interface clock
|
||||
- description: Powerdown Audio test model clock
|
||||
- description: Audio infra sys clock
|
||||
- description: Audio infra 26M clock
|
||||
- description: Mux for audio clock
|
||||
- description: Mux for audio internal bus clock
|
||||
- description: Mux main divider by 4
|
||||
- description: Primary audio mux
|
||||
- description: Primary audio PLL
|
||||
- description: Secondary audio mux
|
||||
- description: Secondary audio PLL
|
||||
- description: Primary audio en-generator clock
|
||||
- description: Primary PLL divider by 4 for IEC
|
||||
- description: Secondary audio en-generator clock
|
||||
- description: Secondary PLL divider by 8 for IEC
|
||||
- description: Mux selector for I2S port 0
|
||||
- description: Mux selector for I2S port 1
|
||||
- description: Mux selector for I2S port 2
|
||||
- description: Mux selector for I2S port 3
|
||||
- description: Mux selector for I2S port 4
|
||||
- description: Mux selector for I2S port 5
|
||||
- description: APLL1 and APLL2 divider for I2S port 0
|
||||
- description: APLL1 and APLL2 divider for I2S port 1
|
||||
- description: APLL1 and APLL2 divider for I2S port 2
|
||||
- description: APLL1 and APLL2 divider for I2S port 3
|
||||
- description: APLL1 and APLL2 divider for I2S port 4
|
||||
- description: APLL1 and APLL2 divider for IEC
|
||||
- description: 26MHz clock for audio subsystem
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: aud_afe_clk
|
||||
- const: aud_dac_clk
|
||||
- const: aud_dac_predis_clk
|
||||
- const: aud_adc_clk
|
||||
- const: aud_adc_adda6_clk
|
||||
- const: aud_apll22m_clk
|
||||
- const: aud_apll24m_clk
|
||||
- const: aud_apll1_tuner_clk
|
||||
- const: aud_apll2_tuner_clk
|
||||
- const: aud_i2s1_bclk_sw
|
||||
- const: aud_i2s2_bclk_sw
|
||||
- const: aud_i2s3_bclk_sw
|
||||
- const: aud_i2s4_bclk_sw
|
||||
- const: aud_tdm_clk
|
||||
- const: aud_tml_clk
|
||||
- const: aud_infra_clk
|
||||
- const: mtkaif_26m_clk
|
||||
- const: top_mux_audio
|
||||
- const: top_mux_aud_intbus
|
||||
- const: top_syspll_d2_d4
|
||||
- const: top_mux_aud_1
|
||||
- const: top_apll1_ck
|
||||
- const: top_mux_aud_2
|
||||
- const: top_apll2_ck
|
||||
- const: top_mux_aud_eng1
|
||||
- const: top_apll1_d8
|
||||
- const: top_mux_aud_eng2
|
||||
- const: top_apll2_d8
|
||||
- const: top_i2s0_m_sel
|
||||
- const: top_i2s1_m_sel
|
||||
- const: top_i2s2_m_sel
|
||||
- const: top_i2s3_m_sel
|
||||
- const: top_i2s4_m_sel
|
||||
- const: top_i2s5_m_sel
|
||||
- const: top_apll12_div0
|
||||
- const: top_apll12_div1
|
||||
- const: top_apll12_div2
|
||||
- const: top_apll12_div3
|
||||
- const: top_apll12_div4
|
||||
- const: top_apll12_divb
|
||||
- const: top_clk26m_clk
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- interrupts
|
||||
- resets
|
||||
- reset-names
|
||||
- power-domains
|
||||
- clocks
|
||||
- clock-names
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/mt8183-clk.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/power/mt8183-power.h>
|
||||
#include <dt-bindings/reset/mt8183-resets.h>
|
||||
|
||||
audio-controller {
|
||||
compatible = "mediatek,mt8183-audio";
|
||||
interrupts = <GIC_SPI 161 IRQ_TYPE_LEVEL_LOW>;
|
||||
resets = <&watchdog MT8183_TOPRGU_AUDIO_SW_RST>;
|
||||
reset-names = "audiosys";
|
||||
power-domains = <&spm MT8183_POWER_DOMAIN_AUDIO>;
|
||||
clocks = <&audiosys CLK_AUDIO_AFE>,
|
||||
<&audiosys CLK_AUDIO_DAC>,
|
||||
<&audiosys CLK_AUDIO_DAC_PREDIS>,
|
||||
<&audiosys CLK_AUDIO_ADC>,
|
||||
<&audiosys CLK_AUDIO_PDN_ADDA6_ADC>,
|
||||
<&audiosys CLK_AUDIO_22M>,
|
||||
<&audiosys CLK_AUDIO_24M>,
|
||||
<&audiosys CLK_AUDIO_APLL_TUNER>,
|
||||
<&audiosys CLK_AUDIO_APLL2_TUNER>,
|
||||
<&audiosys CLK_AUDIO_I2S1>,
|
||||
<&audiosys CLK_AUDIO_I2S2>,
|
||||
<&audiosys CLK_AUDIO_I2S3>,
|
||||
<&audiosys CLK_AUDIO_I2S4>,
|
||||
<&audiosys CLK_AUDIO_TDM>,
|
||||
<&audiosys CLK_AUDIO_TML>,
|
||||
<&infracfg CLK_INFRA_AUDIO>,
|
||||
<&infracfg CLK_INFRA_AUDIO_26M_BCLK>,
|
||||
<&topckgen CLK_TOP_MUX_AUDIO>,
|
||||
<&topckgen CLK_TOP_MUX_AUD_INTBUS>,
|
||||
<&topckgen CLK_TOP_SYSPLL_D2_D4>,
|
||||
<&topckgen CLK_TOP_MUX_AUD_1>,
|
||||
<&topckgen CLK_TOP_APLL1_CK>,
|
||||
<&topckgen CLK_TOP_MUX_AUD_2>,
|
||||
<&topckgen CLK_TOP_APLL2_CK>,
|
||||
<&topckgen CLK_TOP_MUX_AUD_ENG1>,
|
||||
<&topckgen CLK_TOP_APLL1_D8>,
|
||||
<&topckgen CLK_TOP_MUX_AUD_ENG2>,
|
||||
<&topckgen CLK_TOP_APLL2_D8>,
|
||||
<&topckgen CLK_TOP_MUX_APLL_I2S0>,
|
||||
<&topckgen CLK_TOP_MUX_APLL_I2S1>,
|
||||
<&topckgen CLK_TOP_MUX_APLL_I2S2>,
|
||||
<&topckgen CLK_TOP_MUX_APLL_I2S3>,
|
||||
<&topckgen CLK_TOP_MUX_APLL_I2S4>,
|
||||
<&topckgen CLK_TOP_MUX_APLL_I2S5>,
|
||||
<&topckgen CLK_TOP_APLL12_DIV0>,
|
||||
<&topckgen CLK_TOP_APLL12_DIV1>,
|
||||
<&topckgen CLK_TOP_APLL12_DIV2>,
|
||||
<&topckgen CLK_TOP_APLL12_DIV3>,
|
||||
<&topckgen CLK_TOP_APLL12_DIV4>,
|
||||
<&topckgen CLK_TOP_APLL12_DIVB>,
|
||||
<&clk26m>;
|
||||
clock-names = "aud_afe_clk",
|
||||
"aud_dac_clk",
|
||||
"aud_dac_predis_clk",
|
||||
"aud_adc_clk",
|
||||
"aud_adc_adda6_clk",
|
||||
"aud_apll22m_clk",
|
||||
"aud_apll24m_clk",
|
||||
"aud_apll1_tuner_clk",
|
||||
"aud_apll2_tuner_clk",
|
||||
"aud_i2s1_bclk_sw",
|
||||
"aud_i2s2_bclk_sw",
|
||||
"aud_i2s3_bclk_sw",
|
||||
"aud_i2s4_bclk_sw",
|
||||
"aud_tdm_clk",
|
||||
"aud_tml_clk",
|
||||
"aud_infra_clk",
|
||||
"mtkaif_26m_clk",
|
||||
"top_mux_audio",
|
||||
"top_mux_aud_intbus",
|
||||
"top_syspll_d2_d4",
|
||||
"top_mux_aud_1",
|
||||
"top_apll1_ck",
|
||||
"top_mux_aud_2",
|
||||
"top_apll2_ck",
|
||||
"top_mux_aud_eng1",
|
||||
"top_apll1_d8",
|
||||
"top_mux_aud_eng2",
|
||||
"top_apll2_d8",
|
||||
"top_i2s0_m_sel",
|
||||
"top_i2s1_m_sel",
|
||||
"top_i2s2_m_sel",
|
||||
"top_i2s3_m_sel",
|
||||
"top_i2s4_m_sel",
|
||||
"top_i2s5_m_sel",
|
||||
"top_apll12_div0",
|
||||
"top_apll12_div1",
|
||||
"top_apll12_div2",
|
||||
"top_apll12_div3",
|
||||
"top_apll12_div4",
|
||||
"top_apll12_divb",
|
||||
"top_clk26m_clk";
|
||||
};
|
||||
|
||||
...
|
||||
@ -0,0 +1,49 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/mediatek,mt8183_da7219.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: MediaTek MT8183 sound card with external codecs
|
||||
|
||||
maintainers:
|
||||
- Julien Massot <jmassot@collabora.com>
|
||||
|
||||
description:
|
||||
MediaTek MT8183 SoC-based sound cards with DA7219 as headset codec,
|
||||
and MAX98357A, RT1015 or RT1015P as speaker amplifiers. Optionally includes HDMI codec.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- mediatek,mt8183_da7219_max98357
|
||||
- mediatek,mt8183_da7219_rt1015
|
||||
- mediatek,mt8183_da7219_rt1015p
|
||||
|
||||
mediatek,headset-codec:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
description: Phandle to the DA7219 headset codec.
|
||||
|
||||
mediatek,platform:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
description: Phandle to the MT8183 ASoC platform (e.g., AFE node).
|
||||
|
||||
mediatek,hdmi-codec:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
description: Optional phandle to the HDMI codec (e.g., IT6505).
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- mediatek,headset-codec
|
||||
- mediatek,platform
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
sound {
|
||||
compatible = "mediatek,mt8183_da7219_max98357";
|
||||
mediatek,headset-codec = <&da7219>;
|
||||
mediatek,hdmi-codec = <&it6505dptx>;
|
||||
mediatek,platform = <&afe>;
|
||||
};
|
||||
@ -0,0 +1,59 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/mediatek,mt8183_mt6358_ts3a227.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: MediaTek MT8183 sound card with MT6358, TS3A227, and MAX98357/RT1015 codecs
|
||||
|
||||
maintainers:
|
||||
- Julien Massot <julien.massot@collabora.com>
|
||||
|
||||
description:
|
||||
MediaTek MT8183 SoC-based sound cards using the MT6358 codec,
|
||||
with optional TS3A227 headset codec, EC codec (via Chrome EC), and HDMI audio.
|
||||
Speaker amplifier can be one of MAX98357A/B, RT1015, or RT1015P.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- mediatek,mt8183_mt6358_ts3a227_max98357
|
||||
- mediatek,mt8183_mt6358_ts3a227_max98357b
|
||||
- mediatek,mt8183_mt6358_ts3a227_rt1015
|
||||
- mediatek,mt8183_mt6358_ts3a227_rt1015p
|
||||
|
||||
mediatek,platform:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
description: Phandle to the MT8183 ASoC platform node (e.g., AFE).
|
||||
|
||||
mediatek,headset-codec:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
description: Phandle to the TS3A227 headset codec.
|
||||
|
||||
mediatek,ec-codec:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
description: |
|
||||
Optional phandle to a ChromeOS EC codec node.
|
||||
See bindings in google,cros-ec-codec.yaml.
|
||||
|
||||
mediatek,hdmi-codec:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
description: Optional phandle to an HDMI audio codec node.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- mediatek,platform
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
sound {
|
||||
compatible = "mediatek,mt8183_mt6358_ts3a227_max98357";
|
||||
mediatek,headset-codec = <&ts3a227>;
|
||||
mediatek,ec-codec = <&ec_codec>;
|
||||
mediatek,hdmi-codec = <&it6505dptx>;
|
||||
mediatek,platform = <&afe>;
|
||||
};
|
||||
|
||||
...
|
||||
@ -1,42 +0,0 @@
|
||||
Mediatek AFE PCM controller for mt8183
|
||||
|
||||
Required properties:
|
||||
- compatible = "mediatek,mt68183-audio";
|
||||
- reg: register location and size
|
||||
- interrupts: should contain AFE interrupt
|
||||
- resets: Must contain an entry for each entry in reset-names
|
||||
See ../reset/reset.txt for details.
|
||||
- reset-names: should have these reset names:
|
||||
"audiosys";
|
||||
- power-domains: should define the power domain
|
||||
- clocks: Must contain an entry for each entry in clock-names
|
||||
- clock-names: should have these clock names:
|
||||
"infra_sys_audio_clk",
|
||||
"mtkaif_26m_clk",
|
||||
"top_mux_audio",
|
||||
"top_mux_aud_intbus",
|
||||
"top_sys_pll3_d4",
|
||||
"top_clk26m_clk";
|
||||
|
||||
Example:
|
||||
|
||||
afe: mt8183-afe-pcm@11220000 {
|
||||
compatible = "mediatek,mt8183-audio";
|
||||
reg = <0 0x11220000 0 0x1000>;
|
||||
interrupts = <GIC_SPI 161 IRQ_TYPE_LEVEL_LOW>;
|
||||
resets = <&watchdog MT8183_TOPRGU_AUDIO_SW_RST>;
|
||||
reset-names = "audiosys";
|
||||
power-domains = <&scpsys MT8183_POWER_DOMAIN_AUDIO>;
|
||||
clocks = <&infrasys CLK_INFRA_AUDIO>,
|
||||
<&infrasys CLK_INFRA_AUDIO_26M_BCLK>,
|
||||
<&topckgen CLK_TOP_MUX_AUDIO>,
|
||||
<&topckgen CLK_TOP_MUX_AUD_INTBUS>,
|
||||
<&topckgen CLK_TOP_SYSPLL_D2_D4>,
|
||||
<&clk26m>;
|
||||
clock-names = "infra_sys_audio_clk",
|
||||
"mtkaif_26m_clk",
|
||||
"top_mux_audio",
|
||||
"top_mux_aud_intbus",
|
||||
"top_sys_pll_d2_d4",
|
||||
"top_clk26m_clk";
|
||||
};
|
||||
@ -1,21 +0,0 @@
|
||||
MT8183 with MT6358, DA7219, MAX98357, and RT1015 CODECS
|
||||
|
||||
Required properties:
|
||||
- compatible : "mediatek,mt8183_da7219_max98357" for MAX98357A codec
|
||||
"mediatek,mt8183_da7219_rt1015" for RT1015 codec
|
||||
"mediatek,mt8183_da7219_rt1015p" for RT1015P codec
|
||||
- mediatek,headset-codec: the phandles of da7219 codecs
|
||||
- mediatek,platform: the phandle of MT8183 ASoC platform
|
||||
|
||||
Optional properties:
|
||||
- mediatek,hdmi-codec: the phandles of HDMI codec
|
||||
|
||||
Example:
|
||||
|
||||
sound {
|
||||
compatible = "mediatek,mt8183_da7219_max98357";
|
||||
mediatek,headset-codec = <&da7219>;
|
||||
mediatek,hdmi-codec = <&it6505dptx>;
|
||||
mediatek,platform = <&afe>;
|
||||
};
|
||||
|
||||
@ -1,25 +0,0 @@
|
||||
MT8183 with MT6358, TS3A227, MAX98357, and RT1015 CODECS
|
||||
|
||||
Required properties:
|
||||
- compatible : "mediatek,mt8183_mt6358_ts3a227_max98357" for MAX98357A codec
|
||||
"mediatek,mt8183_mt6358_ts3a227_max98357b" for MAX98357B codec
|
||||
"mediatek,mt8183_mt6358_ts3a227_rt1015" for RT1015 codec
|
||||
"mediatek,mt8183_mt6358_ts3a227_rt1015p" for RT1015P codec
|
||||
- mediatek,platform: the phandle of MT8183 ASoC platform
|
||||
|
||||
Optional properties:
|
||||
- mediatek,headset-codec: the phandles of ts3a227 codecs
|
||||
- mediatek,ec-codec: the phandle of EC codecs.
|
||||
See google,cros-ec-codec.txt for more details.
|
||||
- mediatek,hdmi-codec: the phandles of HDMI codec
|
||||
|
||||
Example:
|
||||
|
||||
sound {
|
||||
compatible = "mediatek,mt8183_mt6358_ts3a227_max98357";
|
||||
mediatek,headset-codec = <&ts3a227>;
|
||||
mediatek,ec-codec = <&ec_codec>;
|
||||
mediatek,hdmi-codec = <&it6505dptx>;
|
||||
mediatek,platform = <&afe>;
|
||||
};
|
||||
|
||||
@ -1,42 +0,0 @@
|
||||
* Freescale MXS audio complex with SGTL5000 codec
|
||||
|
||||
Required properties:
|
||||
- compatible : "fsl,mxs-audio-sgtl5000"
|
||||
- model : The user-visible name of this sound complex
|
||||
- saif-controllers : The phandle list of the MXS SAIF controller
|
||||
- audio-codec : The phandle of the SGTL5000 audio codec
|
||||
- audio-routing : A list of the connections between audio components.
|
||||
Each entry is a pair of strings, the first being the
|
||||
connection's sink, the second being the connection's
|
||||
source. Valid names could be power supplies, SGTL5000
|
||||
pins, and the jacks on the board:
|
||||
|
||||
Power supplies:
|
||||
* Mic Bias
|
||||
|
||||
SGTL5000 pins:
|
||||
* MIC_IN
|
||||
* LINE_IN
|
||||
* HP_OUT
|
||||
* LINE_OUT
|
||||
|
||||
Board connectors:
|
||||
* Mic Jack
|
||||
* Line In Jack
|
||||
* Headphone Jack
|
||||
* Line Out Jack
|
||||
* Ext Spk
|
||||
|
||||
Example:
|
||||
|
||||
sound {
|
||||
compatible = "fsl,imx28-evk-sgtl5000",
|
||||
"fsl,mxs-audio-sgtl5000";
|
||||
model = "imx28-evk-sgtl5000";
|
||||
saif-controllers = <&saif0 &saif1>;
|
||||
audio-codec = <&sgtl5000>;
|
||||
audio-routing =
|
||||
"MIC_IN", "Mic Jack",
|
||||
"Mic Jack", "Mic Bias",
|
||||
"Headphone Jack", "HP_OUT";
|
||||
};
|
||||
@ -23,6 +23,7 @@ properties:
|
||||
enum:
|
||||
- nvidia,tegra210-audio-graph-card
|
||||
- nvidia,tegra186-audio-graph-card
|
||||
- nvidia,tegra264-audio-graph-card
|
||||
|
||||
clocks:
|
||||
minItems: 2
|
||||
|
||||
@ -31,7 +31,9 @@ properties:
|
||||
|
||||
compatible:
|
||||
oneOf:
|
||||
- const: nvidia,tegra186-asrc
|
||||
- enum:
|
||||
- nvidia,tegra186-asrc
|
||||
- nvidia,tegra264-asrc
|
||||
- items:
|
||||
- enum:
|
||||
- nvidia,tegra234-asrc
|
||||
|
||||
@ -29,6 +29,7 @@ properties:
|
||||
- const: nvidia,tegra186-dspk
|
||||
- items:
|
||||
- enum:
|
||||
- nvidia,tegra264-dspk
|
||||
- nvidia,tegra234-dspk
|
||||
- nvidia,tegra194-dspk
|
||||
- const: nvidia,tegra186-dspk
|
||||
|
||||
@ -26,6 +26,7 @@ properties:
|
||||
- enum:
|
||||
- nvidia,tegra210-admaif
|
||||
- nvidia,tegra186-admaif
|
||||
- nvidia,tegra264-admaif
|
||||
- items:
|
||||
- enum:
|
||||
- nvidia,tegra234-admaif
|
||||
@ -39,6 +40,19 @@ properties:
|
||||
|
||||
dma-names: true
|
||||
|
||||
interconnects:
|
||||
items:
|
||||
- description: APE read memory client
|
||||
- description: APE write memory client
|
||||
|
||||
interconnect-names:
|
||||
items:
|
||||
- const: dma-mem # read
|
||||
- const: write
|
||||
|
||||
iommus:
|
||||
maxItems: 1
|
||||
|
||||
ports:
|
||||
$ref: /schemas/graph.yaml#/properties/ports
|
||||
description: |
|
||||
@ -74,6 +88,9 @@ then:
|
||||
Should be "tx1", "tx2" ... "tx10" for DMA Tx channel
|
||||
minItems: 1
|
||||
maxItems: 20
|
||||
interconnects: false
|
||||
interconnect-names: false
|
||||
iommus: false
|
||||
|
||||
else:
|
||||
properties:
|
||||
|
||||
@ -27,7 +27,9 @@ properties:
|
||||
|
||||
compatible:
|
||||
oneOf:
|
||||
- const: nvidia,tegra210-adx
|
||||
- enum:
|
||||
- nvidia,tegra210-adx
|
||||
- nvidia,tegra264-adx
|
||||
- items:
|
||||
- enum:
|
||||
- nvidia,tegra234-adx
|
||||
|
||||
@ -27,6 +27,7 @@ properties:
|
||||
- nvidia,tegra210-ahub
|
||||
- nvidia,tegra186-ahub
|
||||
- nvidia,tegra234-ahub
|
||||
- nvidia,tegra264-ahub
|
||||
- items:
|
||||
- const: nvidia,tegra194-ahub
|
||||
- const: nvidia,tegra186-ahub
|
||||
|
||||
@ -26,11 +26,13 @@ properties:
|
||||
|
||||
compatible:
|
||||
oneOf:
|
||||
- const: nvidia,tegra210-amx
|
||||
- enum:
|
||||
- nvidia,tegra210-amx
|
||||
- nvidia,tegra194-amx
|
||||
- nvidia,tegra264-amx
|
||||
- items:
|
||||
- const: nvidia,tegra186-amx
|
||||
- const: nvidia,tegra210-amx
|
||||
- const: nvidia,tegra194-amx
|
||||
- items:
|
||||
- const: nvidia,tegra234-amx
|
||||
- const: nvidia,tegra194-amx
|
||||
|
||||
@ -28,6 +28,7 @@ properties:
|
||||
- const: nvidia,tegra210-dmic
|
||||
- items:
|
||||
- enum:
|
||||
- nvidia,tegra264-dmic
|
||||
- nvidia,tegra234-dmic
|
||||
- nvidia,tegra194-dmic
|
||||
- nvidia,tegra186-dmic
|
||||
|
||||
@ -25,7 +25,9 @@ properties:
|
||||
|
||||
compatible:
|
||||
oneOf:
|
||||
- const: nvidia,tegra210-i2s
|
||||
- enum:
|
||||
- nvidia,tegra210-i2s
|
||||
- nvidia,tegra264-i2s
|
||||
- items:
|
||||
- enum:
|
||||
- nvidia,tegra234-i2s
|
||||
|
||||
@ -23,6 +23,7 @@ properties:
|
||||
- const: nvidia,tegra210-mbdrc
|
||||
- items:
|
||||
- enum:
|
||||
- nvidia,tegra264-mbdrc
|
||||
- nvidia,tegra234-mbdrc
|
||||
- nvidia,tegra194-mbdrc
|
||||
- nvidia,tegra186-mbdrc
|
||||
|
||||
@ -28,6 +28,7 @@ properties:
|
||||
- const: nvidia,tegra210-amixer
|
||||
- items:
|
||||
- enum:
|
||||
- nvidia,tegra264-amixer
|
||||
- nvidia,tegra234-amixer
|
||||
- nvidia,tegra194-amixer
|
||||
- nvidia,tegra186-amixer
|
||||
|
||||
@ -31,6 +31,7 @@ properties:
|
||||
- const: nvidia,tegra210-mvc
|
||||
- items:
|
||||
- enum:
|
||||
- nvidia,tegra264-mvc
|
||||
- nvidia,tegra234-mvc
|
||||
- nvidia,tegra194-mvc
|
||||
- nvidia,tegra186-mvc
|
||||
|
||||
@ -25,6 +25,7 @@ properties:
|
||||
- const: nvidia,tegra210-ope
|
||||
- items:
|
||||
- enum:
|
||||
- nvidia,tegra264-ope
|
||||
- nvidia,tegra234-ope
|
||||
- nvidia,tegra194-ope
|
||||
- nvidia,tegra186-ope
|
||||
|
||||
@ -24,6 +24,7 @@ properties:
|
||||
- const: nvidia,tegra210-peq
|
||||
- items:
|
||||
- enum:
|
||||
- nvidia,tegra264-peq
|
||||
- nvidia,tegra234-peq
|
||||
- nvidia,tegra194-peq
|
||||
- nvidia,tegra186-peq
|
||||
|
||||
@ -28,6 +28,7 @@ properties:
|
||||
- const: nvidia,tegra210-sfc
|
||||
- items:
|
||||
- enum:
|
||||
- nvidia,tegra264-sfc
|
||||
- nvidia,tegra234-sfc
|
||||
- nvidia,tegra194-sfc
|
||||
- nvidia,tegra186-sfc
|
||||
|
||||
@ -20,14 +20,17 @@ properties:
|
||||
|
||||
compatible:
|
||||
oneOf:
|
||||
- const: nvidia,tegra30-hda
|
||||
- enum:
|
||||
- nvidia,tegra30-hda
|
||||
- nvidia,tegra194-hda
|
||||
- nvidia,tegra234-hda
|
||||
- nvidia,tegra264-hda
|
||||
- items:
|
||||
- enum:
|
||||
- nvidia,tegra234-hda
|
||||
- nvidia,tegra194-hda
|
||||
- nvidia,tegra186-hda
|
||||
- nvidia,tegra210-hda
|
||||
- nvidia,tegra124-hda
|
||||
- nvidia,tegra114-hda
|
||||
- const: nvidia,tegra30-hda
|
||||
- items:
|
||||
- const: nvidia,tegra132-hda
|
||||
@ -42,24 +45,20 @@ properties:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
minItems: 2
|
||||
minItems: 1
|
||||
maxItems: 3
|
||||
|
||||
clock-names:
|
||||
minItems: 2
|
||||
items:
|
||||
- const: hda
|
||||
- const: hda2hdmi
|
||||
- const: hda2codec_2x
|
||||
minItems: 1
|
||||
maxItems: 3
|
||||
|
||||
resets:
|
||||
minItems: 2
|
||||
maxItems: 3
|
||||
|
||||
reset-names:
|
||||
items:
|
||||
- const: hda
|
||||
- const: hda2hdmi
|
||||
- const: hda2codec_2x
|
||||
minItems: 2
|
||||
maxItems: 3
|
||||
|
||||
power-domains:
|
||||
maxItems: 1
|
||||
@ -90,6 +89,92 @@ required:
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- nvidia,tegra30-hda
|
||||
then:
|
||||
properties:
|
||||
clocks:
|
||||
minItems: 3
|
||||
clock-names:
|
||||
items:
|
||||
- const: hda
|
||||
- const: hda2hdmi
|
||||
- const: hda2codec_2x
|
||||
resets:
|
||||
minItems: 3
|
||||
reset-names:
|
||||
items:
|
||||
- const: hda
|
||||
- const: hda2hdmi
|
||||
- const: hda2codec_2x
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- nvidia,tegra194-hda
|
||||
then:
|
||||
properties:
|
||||
clocks:
|
||||
minItems: 3
|
||||
clock-names:
|
||||
items:
|
||||
- const: hda
|
||||
- const: hda2hdmi
|
||||
- const: hda2codec_2x
|
||||
resets:
|
||||
maxItems: 2
|
||||
reset-names:
|
||||
items:
|
||||
- const: hda
|
||||
- const: hda2hdmi
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- nvidia,tegra234-hda
|
||||
then:
|
||||
properties:
|
||||
clocks:
|
||||
minItems: 2
|
||||
maxItems: 2
|
||||
clock-names:
|
||||
items:
|
||||
- const: hda
|
||||
- const: hda2codec_2x
|
||||
resets:
|
||||
maxItems: 2
|
||||
reset-names:
|
||||
items:
|
||||
- const: hda
|
||||
- const: hda2codec_2x
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- nvidia,tegra264-hda
|
||||
then:
|
||||
properties:
|
||||
clocks:
|
||||
maxItems: 1
|
||||
clock-names:
|
||||
items:
|
||||
- const: hda
|
||||
resets:
|
||||
maxItems: 2
|
||||
reset-names:
|
||||
items:
|
||||
- const: hda
|
||||
- const: hda2codec_2x
|
||||
power-domains: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include<dt-bindings/clock/tegra124-car-common.h>
|
||||
|
||||
@ -1,62 +0,0 @@
|
||||
* Texas Instruments SoC with twl4030 based audio setups
|
||||
|
||||
Required properties:
|
||||
- compatible: "ti,omap-twl4030"
|
||||
- ti,model: Name of the sound card (for example "omap3beagle")
|
||||
- ti,mcbsp: phandle for the McBSP node
|
||||
|
||||
Optional properties:
|
||||
- ti,codec: phandle for the twl4030 audio node
|
||||
- ti,mcbsp-voice: phandle for the McBSP node connected to the voice port of twl
|
||||
- ti, jack-det-gpio: Jack detect GPIO
|
||||
- ti,audio-routing: List of connections between audio components.
|
||||
Each entry is a pair of strings, the first being the connection's sink,
|
||||
the second being the connection's source.
|
||||
If the routing is not provided all possible connection will be available
|
||||
|
||||
Available audio endpoints for the audio-routing table:
|
||||
|
||||
Board connectors:
|
||||
* Headset Stereophone
|
||||
* Earpiece Spk
|
||||
* Handsfree Spk
|
||||
* Ext Spk
|
||||
* Main Mic
|
||||
* Sub Mic
|
||||
* Headset Mic
|
||||
* Carkit Mic
|
||||
* Digital0 Mic
|
||||
* Digital1 Mic
|
||||
* Line In
|
||||
|
||||
twl4030 pins:
|
||||
* HSOL
|
||||
* HSOR
|
||||
* EARPIECE
|
||||
* HFL
|
||||
* HFR
|
||||
* PREDRIVEL
|
||||
* PREDRIVER
|
||||
* CARKITL
|
||||
* CARKITR
|
||||
* MAINMIC
|
||||
* SUBMIC
|
||||
* HSMIC
|
||||
* DIGIMIC0
|
||||
* DIGIMIC1
|
||||
* CARKITMIC
|
||||
* AUXL
|
||||
* AUXR
|
||||
|
||||
* Headset Mic Bias
|
||||
* Mic Bias 1 /* Used for Main Mic or Digimic0 */
|
||||
* Mic Bias 2 /* Used for Sub Mic or Digimic1 */
|
||||
|
||||
Example:
|
||||
|
||||
sound {
|
||||
compatible = "ti,omap-twl4030";
|
||||
ti,model = "omap3beagle";
|
||||
|
||||
ti,mcbsp = <&mcbsp2>;
|
||||
};
|
||||
134
Documentation/devicetree/bindings/sound/qcom,pm4125-codec.yaml
Normal file
134
Documentation/devicetree/bindings/sound/qcom,pm4125-codec.yaml
Normal file
@ -0,0 +1,134 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/qcom,pm4125-codec.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Qualcomm PM4125 Audio Codec
|
||||
|
||||
maintainers:
|
||||
- Alexey Klimov <alexey.klimov@linaro.org>
|
||||
|
||||
description:
|
||||
The audio codec IC found on Qualcomm PM4125/PM2250 PMIC.
|
||||
It has RX and TX Soundwire slave devices.
|
||||
|
||||
allOf:
|
||||
- $ref: dai-common.yaml#
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: qcom,pm4125-codec
|
||||
|
||||
reg:
|
||||
description:
|
||||
Specifies the SPMI base address for the audio codec peripherals. The
|
||||
address space contains reset register needed to power-on the codec.
|
||||
maxItems: 1
|
||||
|
||||
reg-names:
|
||||
maxItems: 1
|
||||
|
||||
vdd-io-supply:
|
||||
description: A reference to the 1.8V I/O supply
|
||||
|
||||
vdd-cp-supply:
|
||||
description: A reference to the charge pump I/O supply
|
||||
|
||||
vdd-mic-bias-supply:
|
||||
description: A reference to the 3.3V mic bias supply
|
||||
|
||||
vdd-pa-vpos-supply:
|
||||
description: A reference to the PA VPOS supply
|
||||
|
||||
qcom,tx-device:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle-array
|
||||
description: A reference to Soundwire tx device phandle
|
||||
|
||||
qcom,rx-device:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle-array
|
||||
description: A reference to Soundwire rx device phandle
|
||||
|
||||
qcom,micbias1-microvolt:
|
||||
description: micbias1 voltage
|
||||
minimum: 1800000
|
||||
maximum: 2850000
|
||||
|
||||
qcom,micbias2-microvolt:
|
||||
description: micbias2 voltage
|
||||
minimum: 1800000
|
||||
maximum: 2850000
|
||||
|
||||
qcom,micbias3-microvolt:
|
||||
description: micbias3 voltage
|
||||
minimum: 1800000
|
||||
maximum: 2850000
|
||||
|
||||
qcom,mbhc-buttons-vthreshold-microvolt:
|
||||
description:
|
||||
Array of 8 Voltage threshold values corresponding to headset
|
||||
button0 - button7
|
||||
minItems: 8
|
||||
maxItems: 8
|
||||
|
||||
'#sound-dai-cells':
|
||||
const: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- vdd-io-supply
|
||||
- vdd-cp-supply
|
||||
- vdd-mic-bias-supply
|
||||
- vdd-pa-vpos-supply
|
||||
- qcom,tx-device
|
||||
- qcom,rx-device
|
||||
- qcom,micbias1-microvolt
|
||||
- qcom,micbias2-microvolt
|
||||
- qcom,micbias3-microvolt
|
||||
- '#sound-dai-cells'
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/spmi/spmi.h>
|
||||
|
||||
spmi {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <0>;
|
||||
|
||||
pmic {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
audio-codec@f000 {
|
||||
compatible = "qcom,pm4125-codec";
|
||||
reg = <0xf000>;
|
||||
vdd-io-supply = <&pm4125_l15>;
|
||||
vdd-cp-supply = <&pm4125_s4>;
|
||||
vdd-pa-vpos-supply = <&pm4125_s4>;
|
||||
vdd-mic-bias-supply = <&pm4125_l22>;
|
||||
qcom,micbias1-microvolt = <1800000>;
|
||||
qcom,micbias2-microvolt = <1800000>;
|
||||
qcom,micbias3-microvolt = <1800000>;
|
||||
qcom,rx-device = <&pm4125_rx>;
|
||||
qcom,tx-device = <&pm4125_tx>;
|
||||
#sound-dai-cells = <1>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/* ... */
|
||||
|
||||
soundwire@a610000 {
|
||||
reg = <0x0a610000 0x2000>;
|
||||
#address-cells = <2>;
|
||||
#size-cells = <0>;
|
||||
pm4125_rx: audio-codec@0,4 {
|
||||
compatible = "sdw20217010c00";
|
||||
reg = <0 4>;
|
||||
qcom,rx-port-mapping = <1 3>;
|
||||
};
|
||||
};
|
||||
...
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user