Merge 0d8c113493 ("Merge tag 'v7.2-p1' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6") into android-mainline

Steps on the way to v7.2-rc1

Change-Id: Ib2adbc3c80637b012005a63324b4847901032417
Signed-off-by: Carlos Llamas <cmllamas@google.com>
This commit is contained in:
Carlos Llamas authored and android-test-infra-autosubmit@system.gserviceaccount.com committed 2026-07-28 09:09:00 -07:00
commit ae567e8652
867 files changed
+19737 -13940

No files matched your search

+3
View File
@@ -197,6 +197,9 @@ S: Hauptstrasse 19
S: 79837 St. Blasien
S: Germany
N: Ferenc Bakonyi
D: Hercules graphics adapter framebuffer driver
N: Krishna Balasubramanian
E: balasub@cis.ohio-state.edu
D: Wrote SYS V IPC (part of standard kernel since 0.99.10)
@@ -27,6 +27,20 @@ Description:
Some devices have a variable update rate or interval.
This attribute can be used to change it to the desired value.
What: /sys/class/hwmon/hwmonX/update_interval_us
Description:
The interval at which the chip will update readings,
expressed in microseconds.
Unit: microsecond
RW
Some devices have a variable update rate or interval and
require finer-than-millisecond control.
This attribute can be used to change it to the desired value.
Drivers implementing this attribute should also implement
update_interval for millisecond-based userspace interfaces.
What: /sys/class/hwmon/hwmonX/inY_min
Description:
Voltage min value.
@@ -0,0 +1,97 @@
What: /sys/bus/pci/devices/<BDF>/qat_kpt/
Date: August 2026
KernelVersion: 7.2
Contact: qat-linux@intel.com
Description:
Directory containing attributes related to the QAT Key Protection
Technology (KPT) feature. KPT allows cryptographic keys to be used
by the accelerator without being exposed in plaintext to the host.
What: /sys/bus/pci/devices/<BDF>/qat_kpt/enable
Date: August 2026
KernelVersion: 7.2
Contact: qat-linux@intel.com
Description:
(RW) Enables or disables Key Protection Technology (KPT).
Write 1 to enable KPT, or 0 to disable it.
Example usage::
# cat /sys/bus/pci/devices/<BDF>/qat_kpt/enable
0
# echo 1 > /sys/bus/pci/devices/<BDF>/qat_kpt/enable
This attribute is only available on devices that support KPT.
What: /sys/bus/pci/devices/<BDF>/qat_kpt/swk_cnt_per_fn
Date: August 2026
KernelVersion: 7.2
Contact: qat-linux@intel.com
Description:
(RW) Configures the maximum number of KPT symmetric wrapping keys
(SWKs) that a Virtual Function (VF) may be associated with.
Valid values range from 0 to 128. A value of 0 indicates no limit.
Example usage::
# cat /sys/bus/pci/devices/<BDF>/qat_kpt/swk_cnt_per_fn
128
# echo 128 > /sys/bus/pci/devices/<BDF>/qat_kpt/swk_cnt_per_fn
This attribute is only available on devices that support KPT.
What: /sys/bus/pci/devices/<BDF>/qat_kpt/swk_cnt_per_pasid
Date: August 2026
KernelVersion: 7.2
Contact: qat-linux@intel.com
Description:
(RW) Configures the maximum number of KPT symmetric wrapping keys
(SWKs) per Process Address Space ID (PASID).
Valid values range from 0 to 128. A value of 0 indicates no limit.
Example usage::
# cat /sys/bus/pci/devices/<BDF>/qat_kpt/swk_cnt_per_pasid
128
# echo 128 > /sys/bus/pci/devices/<BDF>/qat_kpt/swk_cnt_per_pasid
This attribute is only available on devices that support KPT.
What: /sys/bus/pci/devices/<BDF>/qat_kpt/swk_max_ttl
Date: August 2026
KernelVersion: 7.2
Contact: qat-linux@intel.com
Description:
(RW) Configures the maximum Time To Live (TTL) for KPT symmetric
wrapping keys (SWK).
Valid values range from 0 to 31536000 seconds. A value of 0
indicates that the SWK TTL is unlimited.
Example usage::
# cat /sys/bus/pci/devices/<BDF>/qat_kpt/swk_max_ttl
1000
# echo 1000 > /sys/bus/pci/devices/<BDF>/qat_kpt/swk_max_ttl
This attribute is only available on devices that support KPT.
What: /sys/bus/pci/devices/<BDF>/qat_kpt/swk_shared
Date: August 2026
KernelVersion: 7.2
Contact: qat-linux@intel.com
Description:
(RW) Controls shared mode for KPT symmetric wrapping keys (SWK).
Write 1 to enable shared mode, or 0 to disable it (non-shared mode).
Example usage::
# cat /sys/bus/pci/devices/<BDF>/qat_kpt/swk_shared
0
# echo 1 > /sys/bus/pci/devices/<BDF>/qat_kpt/swk_shared
This attribute is only available on devices that support KPT.
@@ -209,7 +209,7 @@ Date: January 2024
KernelVersion: 6.7
Contact: qat-linux@intel.com
Description:
(RW) This file will return the remaining capability for a
(RW) This file will return the remaining capacity for a
particular service/sla. This is the remaining value that a new
SLA can be set to or a current SLA can be increased with.
@@ -206,7 +206,7 @@ non-\ ``NULL``, locklessly accessing the ``->a`` and ``->b`` fields.
1 bool add_gp_buggy(int a, int b)
2 {
3 p = kmalloc(sizeof(*p), GFP_KERNEL);
3 p = kmalloc_obj(*p);
4 if (!p)
5 return -ENOMEM;
6 spin_lock(&gp_lock);
@@ -228,7 +228,7 @@ their rights to reorder this code as follows:
1 bool add_gp_buggy_optimized(int a, int b)
2 {
3 p = kmalloc(sizeof(*p), GFP_KERNEL);
3 p = kmalloc_obj(*p);
4 if (!p)
5 return -ENOMEM;
6 spin_lock(&gp_lock);
@@ -264,7 +264,7 @@ shows an example of insertion:
1 bool add_gp(int a, int b)
2 {
3 p = kmalloc(sizeof(*p), GFP_KERNEL);
3 p = kmalloc_obj(*p);
4 if (!p)
5 return -ENOMEM;
6 spin_lock(&gp_lock);
+1 -1
View File
@@ -276,7 +276,7 @@ The RCU version of audit_upd_rule() is as follows::
list_for_each_entry(e, list, list) {
if (!audit_compare_rule(rule, &e->rule)) {
ne = kmalloc(sizeof(*entry), GFP_ATOMIC);
ne = kmalloc_obj(*entry, GFP_ATOMIC);
if (ne == NULL)
return -ENOMEM;
audit_copy_rule(&ne->rule, &e->rule);
+2 -2
View File
@@ -468,7 +468,7 @@ uses of RCU may be found in listRCU.rst and NMI-RCU.rst.
struct foo *new_fp;
struct foo *old_fp;
new_fp = kmalloc(sizeof(*new_fp), GFP_KERNEL);
new_fp = kmalloc_obj(*new_fp);
spin_lock(&foo_mutex);
old_fp = rcu_dereference_protected(gbl_foo, lockdep_is_held(&foo_mutex));
*new_fp = *old_fp;
@@ -570,7 +570,7 @@ The foo_update_a() function might then be written as follows::
struct foo *new_fp;
struct foo *old_fp;
new_fp = kmalloc(sizeof(*new_fp), GFP_KERNEL);
new_fp = kmalloc_obj(*new_fp);
spin_lock(&foo_mutex);
old_fp = rcu_dereference_protected(gbl_foo, lockdep_is_held(&foo_mutex));
*new_fp = *old_fp;
+4 -4
View File
@@ -68,10 +68,10 @@ Here is what the fields mean:
Legacy behavior of binfmt_misc is to pass the full path
of the binary to the interpreter as an argument. When this flag is
included, binfmt_misc will open the file for reading and pass its
descriptor as an argument, instead of the full path, thus allowing
the interpreter to execute non-readable binaries. This feature
should be used with care - the interpreter has to be trusted not to
emit the contents of the non-readable binary.
descriptor into the auxilary vector with the key "AT_EXECFD", thus
allowing the interpreter to execute non-readable binaries. This
feature should be used with care - the interpreter has to be trusted
not to emit the contents of the non-readable binary.
``C`` - credentials
Currently, the behavior of binfmt_misc is to calculate
the credentials and security token of the new process according to
+2 -2
View File
@@ -63,8 +63,8 @@ Documentation/admin-guide/tainted-kernels.rst, "being loaded" is
annotated with "+", and "being unloaded" is annotated with "-".
Where is the Oops message is located?
-------------------------------------
Where is the Oops message located?
----------------------------------
Normally the Oops text is read from the kernel buffers by klogd and
handed to ``syslogd`` which writes it to a syslog file, typically
@@ -38,12 +38,12 @@ You can view the currently configured behaviour in the *prdbg* catalog::
:#> head -n7 /proc/dynamic_debug/control
# filename:lineno [module]function flags format
init/main.c:1179 [main]initcall_blacklist =_ "blacklisting initcall %s\012
init/main.c:1218 [main]initcall_blacklisted =_ "initcall %s blacklisted\012"
init/main.c:1424 [main]run_init_process =_ " with arguments:\012"
init/main.c:1426 [main]run_init_process =_ " %s\012"
init/main.c:1427 [main]run_init_process =_ " with environment:\012"
init/main.c:1429 [main]run_init_process =_ " %s\012"
init/main.c:1179 [main]initcall_blacklist =_ "blacklisting initcall %s\n"
init/main.c:1218 [main]initcall_blacklisted =_ "initcall %s blacklisted\n"
init/main.c:1424 [main]run_init_process =_ " with arguments:\n"
init/main.c:1426 [main]run_init_process =_ " %s\n"
init/main.c:1427 [main]run_init_process =_ " with environment:\n"
init/main.c:1429 [main]run_init_process =_ " %s\n"
The 3rd space-delimited column shows the current flags, preceded by
a ``=`` for easy use with grep/cut. ``=p`` shows enabled callsites.
@@ -59,10 +59,10 @@ query/commands to the control file. Example::
:#> ddcmd '-p; module main func run* +p'
:#> grep =p /proc/dynamic_debug/control
init/main.c:1424 [main]run_init_process =p " with arguments:\012"
init/main.c:1426 [main]run_init_process =p " %s\012"
init/main.c:1427 [main]run_init_process =p " with environment:\012"
init/main.c:1429 [main]run_init_process =p " %s\012"
init/main.c:1424 [main]run_init_process =p " with arguments:\n"
init/main.c:1426 [main]run_init_process =p " %s\n"
init/main.c:1427 [main]run_init_process =p " with environment:\n"
init/main.c:1429 [main]run_init_process =p " %s\n"
Error messages go to console/syslog::
@@ -109,10 +109,19 @@ The match-spec's select *prdbgs* from the catalog, upon which to apply
the flags-spec, all constraints are ANDed together. An absent keyword
is the same as keyword "*".
Note that since the match-spec can be empty, the flags are checked 1st,
then the pairs of keyword and value. Flag errs will hide keyword errs::
A match specification is a keyword, which selects the attribute of
the callsite to be compared, and a value to compare against. Possible
keywords are:::
bash-5.2# ddcmd mod bar +foo
dyndbg: read 13 bytes from userspace
dyndbg: query 0: "mod bar +foo" mod:*
dyndbg: unknown flag 'o'
dyndbg: flags parse failed
dyndbg: processed 1 queries, with 0 matches, 1 errs
So a match-spec is a keyword, which selects the attribute of the
callsite to be compared, and a value to compare against. Possible
keywords are::
match-spec ::= 'func' string |
'file' string |
+40 -39
View File
@@ -24,7 +24,6 @@
IP_PNP IP DHCP, BOOTP, or RARP is enabled.
IPV6 IPv6 support is enabled.
ISAPNP ISA PnP code is enabled.
ISDN Appropriate ISDN support is enabled.
ISOL CPU Isolation is enabled.
JOY Appropriate joystick support is enabled.
KGDB Kernel debugger support is enabled.
@@ -36,7 +35,6 @@
M68k M68k architecture is enabled.
These options have more detailed description inside of
Documentation/arch/m68k/kernel-options.rst.
MDA MDA console support is enabled.
MIPS MIPS architecture is enabled.
MOUSE Appropriate mouse support is enabled.
MSI Message Signaled Interrupts (PCI).
@@ -2232,9 +2230,6 @@ Kernel parameters
syscalls, essentially overriding IA32_EMULATION_DEFAULT_DISABLED at
boot time. When false, unconditionally disables IA32 emulation.
icn= [HW,ISDN]
Format: <io>[,<membase>[,<icn_id>[,<icn_id2>]]]
idle= [X86,EARLY]
Format: idle=poll, idle=halt, idle=nomwait
@@ -2571,23 +2566,41 @@ Kernel parameters
Don't force hardware IOMMU usage when it is not
needed. (default).
biomerge
panic
nopanic
merge
Do scatter-gather (SG) merging. Implies "force"
(experimental).
nomerge
Don't do scatter-gather (SG) merging.
biomerge
Do scatter-gather (SG) merging. Implies "force"
(experimental). [same as "merge"]
panic
Always panic when IOMMU overflows.
nopanic
Don't panic on IOMMU overflows.
pt
Use passththrough mode by default
(Equivalent to iommu.passthrough=1)
nopt
Use translated mode for DMA by default
(Equivalent to iommu.passthrough=0)
soft
Use software bounce buffering (SWIOTLB) (default for
Intel machines). This can be used to prevent the usage
of an available hardware IOMMU.
pt
nopt
nobypass [PPC/POWERNV]
Disable IOMMU bypass, using IOMMU for PCI devices.
usedac
Use the DAC on VIA PCI bridge
(default: disable the VIA PCI bridge DAC)
AMD Gart HW IOMMU-specific options:
AMD Gart HW IOMMU-specific options: (CONFIG_GART_IOMMU)
<size>
Set the size of the remapping area in bytes.
@@ -2595,6 +2608,9 @@ Kernel parameters
allowed
Overwrite iommu off workarounds for specific chipsets
force
Overwrite iommu off workarounds for specific chipsets
fullflush
Flush IOMMU on each allocation (default).
@@ -2605,21 +2621,16 @@ Kernel parameters
Allocate an own aperture over RAM with size
32MB<<order. (default: order=1, i.e. 64MB)
merge
Do scatter-gather (SG) merging. Implies "force"
(experimental).
nomerge
Don't do scatter-gather (SG) merging.
noaperture
Ask the IOMMU not to touch the aperture for AGP.
noagp
Don't initialize the AGP driver and use full aperture.
panic
Always panic when IOMMU overflows.
iommu= [PPC/POWERNV]
nobypass
Disable IOMMU bypass, using IOMMU for PCI devices.
iommu.forcedac= [ARM64,X86,EARLY] Control IOVA allocation for PCI devices.
Format: { "0" | "1" }
@@ -2742,7 +2753,6 @@ Kernel parameters
Format: <RDP>,<reset>,<pci_scan>,<verbosity>
isolcpus= [KNL,SMP,ISOL] Isolate a given set of CPUs from disturbance.
[Deprecated - use cpusets instead]
Format: [flag-list,]<cpu-list>
Specify one or more CPUs to isolate from disturbances
@@ -2767,11 +2777,10 @@ Kernel parameters
Isolate from the general SMP balancing and scheduling
algorithms. Note that performing domain isolation this way
is irreversible: it's not possible to bring back a CPU to
the domains once isolated through isolcpus. It's strongly
advised to use cpusets instead to disable scheduler load
balancing through the "cpuset.sched_load_balance" file.
It offers a much more flexible interface where CPUs can
move in and out of an isolated set anytime.
the domains once isolated through this boot time
configuration. Use cpusets for a dynamic configuration
which can be altered at runtime. For details see
Documentation/admin-guide/cpu-isolation.rst.
You can move a process onto or off an "isolated" CPU via
the CPU affinity syscalls or cpuset.
@@ -3803,10 +3812,6 @@ Kernel parameters
md= [HW] RAID subsystems devices and level
See Documentation/admin-guide/md.rst.
mdacon= [MDA]
Format: <first>,<last>
Specifies range of consoles to be captured by the MDA.
mds= [X86,INTEL,EARLY]
Control mitigation for the Micro-architectural Data
Sampling (MDS) vulnerability.
@@ -4627,7 +4632,7 @@ Kernel parameters
nosmt [KNL,MIPS,PPC,EARLY] Disable symmetric multithreading (SMT).
Equivalent to smt=1.
[KNL,LOONGARCH,X86,PPC,S390] Disable symmetric multithreading (SMT).
[KNL,LOONGARCH,X86,ARM64,PPC,S390] Disable symmetric multithreading (SMT).
nosmt=force: Force disable SMT, cannot be undone
via the sysfs control file.
@@ -5020,8 +5025,6 @@ Kernel parameters
the specified number of seconds. This is to be used if
your oopses keep scrolling off the screen.
pcbit= [HW,ISDN]
pci=option[,option...] [PCI,EARLY] various PCI subsystem options.
Some options herein operate on a specific device
@@ -6776,8 +6779,6 @@ Kernel parameters
restrictions other than those given by hardware at the
cost of significant additional memory use for tables.
sa1100ir [NET]
See drivers/net/irda/sa1100_ir.c.
sched_proxy_exec= [KNL]
Enables or disables "proxy execution" style
@@ -7424,10 +7425,10 @@ Kernel parameters
Set the STI (builtin display/keyboard on the HP-PARISC
machines) console (graphic card) which should be used
as the initial boot-console.
See also comment in drivers/video/console/sticore.c.
See also comment in drivers/video/sticore.c.
sti_font= [HW]
See comment in drivers/video/console/sticore.c.
See comment in drivers/video/sticore.c.
stifb= [HW]
Format: bpp:<bpp1>[:<bpp2>[:<bpp3>...]]
+1 -1
View File
@@ -89,7 +89,7 @@ statically linked into the kernel). Those options are:
set to 0xffffffff, meaning that all possible events
will be tried. You can use the following bits to
construct your own event mask (from
drivers/char/sonypi.h)::
include/linux/sonypi.h)::
SONYPI_JOGGER_MASK 0x0001
SONYPI_CAPTURE_MASK 0x0002
+1 -1
View File
@@ -734,7 +734,7 @@ also have
They should be scaled by the bitmap_chunksize.
sync_speed_min, sync_speed_max
This are similar to ``/proc/sys/dev/raid/speed_limit_{min,max}``
These are similar to ``/proc/sys/dev/raid/speed_limit_{min,max}``
however they only apply to the particular array.
If no value has been written to these, or if the word ``system``
@@ -217,7 +217,7 @@ again.
There is a catch: 'localmodconfig' is likely to disable kernel features you
did not use since you booted your Linux -- like drivers for currently
disconnected peripherals or a virtualization software not haven't used yet.
disconnected peripherals or virtualization software not currently in use.
You can reduce or nearly eliminate that risk with tricks the reference
section outlines; but when building a kernel just for quick testing purposes
it is often negligible if such features are missing. But you should keep that
@@ -129,7 +129,7 @@ After these preparations you'll now enter the main part:
situations; during the merge window that actually might be even the best
approach, but in that development phase it can be an even better idea to
suspend your efforts for a few days anyway. Whatever version you choose,
ideally use a 'vanilla' build. Ignoring these advices will dramatically
ideally use a 'vanilla' build. Ignoring all of this advice will dramatically
increase the risk your report will be rejected or ignored.
* Ensure the kernel you just installed does not 'taint' itself when
@@ -795,7 +795,7 @@ Install a fresh kernel for testing
situations; during the merge window that actually might be even the best
approach, but in that development phase it can be an even better idea to
suspend your efforts for a few days anyway. Whatever version you choose,
ideally use a 'vanilla' built. Ignoring these advices will dramatically
ideally use a 'vanilla' built. Ignoring all of this advice will dramatically
increase the risk your report will be rejected or ignored.*
As mentioned in the detailed explanation for the first step already: Like most
+5 -6
View File
@@ -36,12 +36,11 @@ Table : Subdirectories in /proc/sys/net
========= =================== = ========== ===================
802 E802 protocol mptcp Multipath TCP
appletalk Appletalk protocol netfilter Network Filter
ax25 AX25 netrom NET/ROM
bridge Bridging rose X.25 PLP layer
core General parameter tipc TIPC
ethernet Ethernet protocol unix Unix domain sockets
ipv4 IP version 4 vsock VSOCK sockets
ipv6 IP version 6 x25 X.25 protocol
bridge Bridging tipc TIPC
core General parameter unix Unix domain sockets
ethernet Ethernet protocol vsock VSOCK sockets
ipv4 IP version 4 x25 X.25 protocol
ipv6 IP version 6
========= =================== = ========== ===================
1. /proc/sys/net/core - Network core options
+29 -12
View File
@@ -202,6 +202,15 @@ database. To get out of this mode press ctrl+d. -p option is used to
specify the number of file path components to display. -p10 is optimal
for browsing kernel sources.
Alternatively, the kernel build system can generate the cscope database::
make cscope
To exclude directories from the generated database, pass IGNORE_DIRS to
the cscope target. For example, to exclude Documentation/, run::
make IGNORE_DIRS="Documentation" cscope
What is perf and how do we use it?
==================================
@@ -243,13 +252,21 @@ which can help mitigate performance regressions. It also acts as a common
benchmarking framework, enabling developers to easily create test cases,
integrate transparently, and use performance-rich tooling.
"perf bench all" command runs the following benchmarks:
"perf bench all" runs all available benchmarks in the perf bench
framework. The exact set of benchmarks depends on the perf version and on
the features enabled when perf was built.
* sched/messaging
* sched/pipe
* syscall/basic
* mem/memcpy
* mem/memset
To list the benchmark collections available on the current system, run::
perf bench
To list benchmarks in a collection, run::
perf bench <collection>
For example, to list the benchmarks in the mem collection, run::
perf bench mem
What is stress-ng and how do we use it?
=======================================
@@ -271,17 +288,17 @@ exercised:
The following command runs the stressor::
stress-ng --netdev 1 -t 60 --metrics command.
stress-ng --netdev 1 -t 60 --metrics
We can use the perf record command to record the events and information
associated with a process. This command records the profiling data in the
perf.data file in the same directory.
Using the following commands you can record the events associated with the
netdev stressor, view the generated report perf.data and annotate the to
view the statistics of each instruction of the program::
netdev stressor, view the generated report perf.data and annotate the output
to view the statistics of each instruction of the program::
perf record stress-ng --netdev 1 -t 60 --metrics command.
perf record -- stress-ng --netdev 1 -t 60 --metrics
perf report
perf annotate
@@ -349,13 +366,13 @@ times each system call is invoked, and the corresponding Linux subsystem.
+-------------------+-----------+-----------------+-------------------------+
| geteuid | 1 | Process Mgmt. | sys_geteuid() |
+-------------------+-----------+-----------------+-------------------------+
| getegid | 1 | Process Mgmt. | sys_getegid |
| getegid | 1 | Process Mgmt. | sys_getegid() |
+-------------------+-----------+-----------------+-------------------------+
| close | 49951 | Filesystem | sys_close() |
+-------------------+-----------+-----------------+-------------------------+
| pipe | 604 | Filesystem | sys_pipe() |
+-------------------+-----------+-----------------+-------------------------+
| openat | 48560 | Filesystem | sys_opennat() |
| openat | 48560 | Filesystem | sys_openat() |
+-------------------+-----------+-----------------+-------------------------+
| fstat | 8338 | Filesystem | sys_fstat() |
+-------------------+-----------+-----------------+-------------------------+
+1 -1
View File
@@ -36,7 +36,7 @@ Important note on ARC processors configurability
ARC processors are highly configurable and several configurable options
are supported in Linux. Some options are transparent to software
(i.e cache geometries, some can be detected at runtime and configured
(e.g., cache geometries), some can be detected at runtime and configured
and used accordingly, while some need to be explicitly selected or configured
in the kernel's configuration utility (AKA "make menuconfig").
+1 -1
View File
@@ -314,7 +314,7 @@ Kernel boot arguments
omapfb.mode=<display>:<mode>[,...]
- Default video mode for specified displays. For example,
"dvi:800x400MR-24@60". See drivers/video/modedb.c.
"dvi:800x400MR-24@60". See drivers/video/fbdev/core/modedb.c.
There are also two special modes: "pal" and "ntsc" that
can be used to tv out.
@@ -163,4 +163,4 @@ BEGIN {
}
}
// && ! /clksrc_clk.*=.*{/ { print $0 }
// && ! /clksrc_clk.*=.*{/ { print $0 }}
+2 -2
View File
@@ -102,10 +102,10 @@ Features and limitations
if (I_won) {
/* we won the town election, let's go for the state */
my_state = states[(this_cpu >> 8) & 0xf];
I_won = vlock_lock(my_state, this_cpu & 0xf));
I_won = vlock_lock(my_state, this_cpu & 0xf);
if (I_won) {
/* and so on */
I_won = vlock_lock(the_whole_country, this_cpu & 0xf];
I_won = vlock_lock(the_whole_country, this_cpu & 0xf);
if (I_won) {
/* ... */
}
@@ -222,7 +222,7 @@ programs should not retry in case of a non-zero system call return.
address ABI control and MTE configuration of a process as per the
``prctl()`` options described in
Documentation/arch/arm64/tagged-address-abi.rst and above. The corresponding
``regset`` is 1 element of 8 bytes (``sizeof(long))``).
``regset`` is 1 element of 8 bytes (``sizeof(long)``).
Core dump support
-----------------
+1 -1
View File
@@ -293,7 +293,7 @@ Simple example
//Format CRB request with compression or
//uncompression
// Refer tests for vas_copy/vas_paste
vas_copy((&crb, 0, 1);
vas_copy(&crb, 0, 1);
vas_paste(addr, 0, 1);
// Poll on csb.flags with timeout
// csb address is listed in CRB
@@ -457,7 +457,7 @@ bits set, and terminate at a CCB that has the Conditional bit set, but not the P
Offset Size Field Description
Bits Field Description
[15:14] Secondary Input Element Size (see Section 36.2.1.1.4,
“Secondary Input Element Size”
“Secondary Input Element Size”)
[13:10] Output Format (see Section 36.2.1.1.6, “Output Format”)
[9] Padding Direction selector: A value of 1 causes padding bytes
to be added to the left side of output elements. A value of 0
@@ -656,7 +656,7 @@ Offset Size Field Description
[18:16] Secondary Input Starting Offset (see Section 36.2.1.1.5, “Input
Element Offsets”)
[15:14] Secondary Input Element Size (see Section 36.2.1.1.4,
“Secondary Input Element Size”
“Secondary Input Element Size”)
[13:10] Output Format (see Section 36.2.1.1.6, “Output Format”)
[9:5] Operand size for first scan criteria value. In a scan value
operation, this is one of two potential exact match values.
@@ -793,13 +793,13 @@ Offset Size Field Description
[18:16] Secondary Input Starting Offset (see Section 36.2.1.1.5, “Input
Element Offsets”)
[15:14] Secondary Input Element Size (see Section 36.2.1.1.4,
“Secondary Input Element Size”
“Secondary Input Element Size”)
[13:10] Output Format (see Section 36.2.1.1.6, “Output Format”)
[9] Reserved
[8:0] Test value used for comparison against the most significant bits
in the input values, when using 2 or 3 byte input elements.
8 8 Completion (same fields as Section 36.2.1.2, “Extract command”
16 8 Primary Input (same fields as Section 36.2.1.2, “Extract command”
8 8 Completion (same fields as Section 36.2.1.2, “Extract command”)
16 8 Primary Input (same fields as Section 36.2.1.2, “Extract command”)
24 8 Data Access Control (same fields as Section 36.2.1.2, “Extract command”,
except Primary Input Length Format may not use the 0x0 value)
32 8 Secondary Input, if used by Primary Input Format. Same fields as Primary
@@ -880,7 +880,7 @@ Offset Size Field Description
[18:16] Secondary Input Starting Offset (see Section 36.2.1.1.5, “Input
Element Offsets”)
[15:14] Secondary Input Element Size (see Section 36.2.1.1.4,
“Secondary Input Element Size”
“Secondary Input Element Size”)
524
@@ -895,8 +895,8 @@ Offset Size Field Description
causes padding bytes to be added to the right side of output
elements.
[8:0] Reserved
8 8 Completion (same fields as Section 36.2.1.2, “Extract command”
16 8 Primary Input (same fields as Section 36.2.1.2, “Extract command”
8 8 Completion (same fields as Section 36.2.1.2, “Extract command”)
16 8 Primary Input (same fields as Section 36.2.1.2, “Extract command”)
24 8 Data Access Control (same fields as Section 36.2.1.2, “Extract command”)
32 8 Secondary Bit Vector Input. Same fields as Primary Input.
40 8 Reserved
@@ -949,7 +949,7 @@ Offset Size Field Description
[31] If set, this CCB functions as a Sync command. If clear, this
CCB functions as a No-op command.
[30:0] Reserved
8 8 Completion (same fields as Section 36.2.1.2, “Extract command”
8 8 Completion (same fields as Section 36.2.1.2, “Extract command”)
16 46 Reserved
36.2.2. CCB Completion Area
@@ -438,7 +438,7 @@ that in user land::
The output bitmap is ready for consumption immediately after the
completion status indicates success.
Excer[t from UltraSPARC Virtual Machine Specification
Excerpt from UltraSPARC Virtual Machine Specification
=====================================================
.. include:: dax-hv-api.txt
+2 -2
View File
@@ -182,8 +182,8 @@ address spaces via an attribute based mechanism in Clang 2.6 and newer
versions:
==================================== =====================================
__attribute__((address_space(256)) Variable is addressed relative to GS
__attribute__((address_space(257)) Variable is addressed relative to FS
__attribute__(address_space(256)) Variable is addressed relative to GS
__attribute__(address_space(257)) Variable is addressed relative to FS
==================================== =====================================
FS/GS based addressing with inline assembly
+1 -1
View File
@@ -154,7 +154,7 @@ bio_free() will automatically free the bip.
----------------
Block devices can set up the integrity information in the integrity
sub-struture of the queue_limits structure.
sub-structure of the queue_limits structure.
Layered block devices will need to pick a profile that's appropriate
for all subdevices. queue_limits_stack_integrity() can help with that. DM
+1 -1
View File
@@ -99,7 +99,7 @@ the same RCU read side critical section.
A typical layout example would look like this on the update side
(``housekeeping_update()``)::
rcu_assign_pointer(housekeeping_cpumasks[type], trial);
rcu_assign_pointer(housekeeping.cpumasks[type], trial);
synchronize_rcu();
flush_workqueue(example_workqueue);
+2 -2
View File
@@ -40,7 +40,7 @@ kref_init as so::
struct my_data *data;
data = kmalloc(sizeof(*data), GFP_KERNEL);
data = kmalloc_obj(*data);
if (!data)
return -ENOMEM;
kref_init(&data->refcount);
@@ -100,7 +100,7 @@ thread to process::
int rv = 0;
struct my_data *data;
struct task_struct *task;
data = kmalloc(sizeof(*data), GFP_KERNEL);
data = kmalloc_obj(*data);
if (!data)
return -ENOMEM;
kref_init(&data->refcount);
+3 -3
View File
@@ -112,7 +112,7 @@ list:
/* State 1 */
grock = kzalloc(sizeof(*grock), GFP_KERNEL);
grock = kzalloc_obj(*grock);
if (!grock)
return -ENOMEM;
grock->name = "Grock";
@@ -123,7 +123,7 @@ list:
/* State 2 */
dimitri = kzalloc(sizeof(*dimitri), GFP_KERNEL);
dimitri = kzalloc_obj(*dimitri);
if (!dimitri)
return -ENOMEM;
dimitri->name = "Dimitri";
@@ -752,7 +752,7 @@ This is because list_splice() did not reinitialize the list_head it took
entries from, leaving its pointer pointing into what is now a different list.
If we want to avoid this situation, list_splice_init() can be used. It does the
same thing as list_splice(), except reinitalizes the donor list_head after the
same thing as list_splice(), except reinitializes the donor list_head after the
transplant.
Concurrency considerations
+1 -1
View File
@@ -25,7 +25,7 @@ Scheduling
==========
The core principles of Linux scheduling and the associated user-space API are
documented in the man page sched(7)
documented in the man page
`sched(7) <https://man7.org/linux/man-pages/man7/sched.7.html>`_.
By default, the Linux kernel uses the SCHED_OTHER scheduling policy. Under
this policy, a task is preempted when the scheduler determines that it has
+1 -1
View File
@@ -159,7 +159,7 @@ Code Example For Random Number Generator Usage
static int get_random_numbers(u8 *buf, unsigned int len)
{
struct crypto_rng *rng = NULL;
char *drbg = "drbg_nopr_sha256"; /* Hash DRBG with SHA-256, no PR */
char *drbg = "stdrng";
int ret;
if (!buf || !len) {
+83 -44
View File
@@ -4,26 +4,88 @@ User Space Interface
Introduction
------------
The concepts of the kernel crypto API visible to kernel space is fully
applicable to the user space interface as well. Therefore, the kernel
crypto API high level discussion for the in-kernel use cases applies
here as well.
AF_ALG provides unprivileged userspace programs access to arbitrary hash,
symmetric cipher, AEAD, and RNG algorithms that are implemented in kernel-mode
code.
The major difference, however, is that user space can only act as a
consumer and never as a provider of a transformation or cipher
algorithm.
AF_ALG is insecure and is deprecated. Originally added to the kernel in 2010,
most kernel developers now consider it to be a mistake. Support for hardware
accelerators, which was the original purpose of AF_ALG, has been removed.
The following covers the user space interface exported by the kernel
crypto API. A working example of this description is libkcapi that can
be obtained from [1]. That library can be used by user space
applications that require cryptographic services from the kernel.
AF_ALG continues to be supported only for backwards compatibility. On systems
where no programs using AF_ALG remain, the support for it should be disabled by
disabling ``CONFIG_CRYPTO_USER_API_*``.
Some details of the in-kernel kernel crypto API aspects do not apply to
user space, however. This includes the difference between synchronous
and asynchronous invocations. The user space API call is fully
synchronous.
Deprecation
-----------
[1] https://www.chronox.de/libkcapi/index.html
AF_ALG was originally intended to provide userspace programs access to crypto
accelerators that they wouldn't otherwise have access to.
However, that capability turned out to not be useful on very many systems. More
significantly, the actual implementation exposes a vastly greater amount of
functionality than that. It actually provides access to all software algorithms.
This includes arbitrary compositions of different algorithms created via a
complex template system, as well as algorithms that only make sense as internal
implementation details of other algorithms. In the past, it also included full
zero-copy support, which was difficult for the kernel to implement securely.
Ultimately, these algorithms are just math computations. They use the same
instructions that userspace programs already have access to, just accessed in a
much more convoluted and less efficient way.
Indeed, userspace code is nearly always what is being used anyway. These same
algorithms are widely implemented in userspace crypto libraries.
Even when zero-copy and off-CPU accelerators were supported, AF_ALG was usually
much slower than optimized software cryptography in userspace. This was
especially true for the small message sizes usually seen in performance-critical
workloads. While it was possible to demonstrate performance wins for hashing
large files on embedded devices, it is hard to imagine a situation where this
would be performance-critical.
Nowadays, AF_ALG no longer supports zero-copy or off-CPU accelerators.
Therefore, it is *always* slower than an optimized userspace implementation,
even for large messages. The only possible advantage left is that it avoids
duplicating code between kernel and userspace. However, userspace
implementations, especially hardware-accelerated ones, do not need to be large.
Just because OpenSSL is huge does not mean that all userspace cryptography
libraries are.
Meanwhile, AF_ALG hasn't been withstanding modern vulnerability discovery tools
such as syzbot and large language models. It receives a steady stream of CVEs.
Some of the examples include:
- CVE-2026-31677
- CVE-2026-31431 (https://copy.fail)
- CVE-2025-38079
- CVE-2025-37808
- CVE-2024-26824
- CVE-2022-48781
- CVE-2019-8912
- CVE-2018-14619
- CVE-2017-18075
- CVE-2017-17806
- CVE-2017-17805
- CVE-2016-10147
- CVE-2015-8970
- CVE-2015-3331
- CVE-2014-9644
- CVE-2013-7421
- CVE-2011-4081
Hardware accelerator drivers are frequently buggy. To reduce attack surface,
AF_ALG now only provides access to algorithms implemented in software. This
means that AF_ALG no longer fulfills its original purpose.
It is recommended that, whenever possible, userspace programs be migrated to
userspace crypto code (which again, is what is normally used anyway) and
``CONFIG_CRYPTO_USER_API_*`` be disabled. On systems that use SELinux, SELinux
can also be used to restrict the use of AF_ALG to trusted programs.
The remainder of this documentation provides the historical documentation for
the deprecated AF_ALG interface.
User Space API General Remarks
------------------------------
@@ -297,7 +359,7 @@ follows:
struct sockaddr_alg sa = {
.salg_family = AF_ALG,
.salg_type = "rng", /* this selects the random number generator */
.salg_name = "drbg_nopr_sha256" /* this is the RNG name */
.salg_name = "stdrng" /* this is the RNG name */
};
@@ -327,33 +389,10 @@ CRYPTO_USER_API_RNG_CAVP option:
Zero-Copy Interface
-------------------
In addition to the send/write/read/recv system call family, the AF_ALG
interface can be accessed with the zero-copy interface of
splice/vmsplice. As the name indicates, the kernel tries to avoid a copy
operation into kernel space.
The zero-copy operation requires data to be aligned at the page
boundary. Non-aligned data can be used as well, but may require more
operations of the kernel which would defeat the speed gains obtained
from the zero-copy interface.
The system-inherent limit for the size of one zero-copy operation is 16
pages. If more data is to be sent to AF_ALG, user space must slice the
input into segments with a maximum size of 16 pages.
Zero-copy can be used with the following code example (a complete
working example is provided with libkcapi):
::
int pipes[2];
pipe(pipes);
/* input data in iov */
vmsplice(pipes[1], iov, iovlen, SPLICE_F_GIFT);
/* opfd is the file descriptor returned from accept() system call */
splice(pipes[0], NULL, opfd, NULL, ret, 0);
read(opfd, out, outlen);
AF_ALG used to have zero-copy support, but it was removed due to it being a
frequent source of vulnerabilities. For backwards compatibility the splice()
and sendfile() system calls are still supported, but the kernel will make an
internal copy of the data before passing it to the crypto code.
Setsockopt Interface
@@ -14,6 +14,7 @@ properties:
items:
- enum:
- qcom,eliza-inline-crypto-engine
- qcom,hawi-inline-crypto-engine
- qcom,kaanapali-inline-crypto-engine
- qcom,milos-inline-crypto-engine
- qcom,qcs8300-inline-crypto-engine
@@ -17,11 +17,14 @@ properties:
- qcom,prng-ee # 8996 and later using EE
- items:
- enum:
- qcom,glymur-trng
- qcom,hawi-trng
- qcom,ipq5332-trng
- qcom,ipq5424-trng
- qcom,ipq9574-trng
- qcom,kaanapali-trng
- qcom,milos-trng
- qcom,nord-trng
- qcom,qcs615-trng
- qcom,qcs8300-trng
- qcom,sa8255p-trng
@@ -45,7 +45,11 @@ properties:
- items:
- enum:
- qcom,eliza-qce
- qcom,glymur-qce
- qcom,kaanapali-qce
- qcom,milos-qce
- qcom,nord-qce
- qcom,qcs615-qce
- qcom,qcs8300-qce
- qcom,sa8775p-qce
@@ -0,0 +1,272 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/adi,ltc4283.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: LTC4283 Negative Voltage Hot Swap Controller
maintainers:
- Nuno Sá <nuno.sa@analog.com>
description: |
The LTC4283 negative voltage hot swap controller drives an external N-channel
MOSFET to allow a board to be safely inserted and removed from a live
backplane.
https://www.analog.com/media/en/technical-documentation/data-sheets/ltc4283.pdf
properties:
compatible:
enum:
- adi,ltc4283
reg:
maxItems: 1
adi,rsense-nano-ohms:
description: Value of the sense resistor.
adi,current-limit-sense-microvolt:
description:
The current limit sense voltage of the chip is adjustable between
15mV and 30mV in 1mV steps. This effectively limits the current
on the load.
minimum: 15000
maximum: 30000
default: 15000
adi,current-limit-foldback-factor:
description:
Specifies the foldback factor for the current limit. The current limit
can be reduced (folded back) to one of four preset levels. The value
represents the percentage of the current limit sense voltage to use
during foldback. A value of 100 means no foldback.
$ref: /schemas/types.yaml#/definitions/uint32
enum: [10, 20, 50, 100]
default: 100
adi,cooling-delay-ms:
description:
Cooling time to apply after an overcurrent fault, FET bad or
external fault.
enum: [512, 1002, 2005, 4100, 8190, 16400, 32800, 65600]
default: 512
adi,fet-bad-timer-delay-ms:
description:
FET bad timer delay. After a FET bad status condition is detected,
this timer is started. If the condition persists for the
specified time, the FET is turned off and a fault is logged.
enum: [256, 512, 1002, 2005]
default: 256
adi,power-good-reset-on-fet:
description:
If set, resets the power good status when the MOSFET is turned off.
Otherwise, it resets when a low output voltage is detected.
type: boolean
adi,fet-turn-off-disable:
description:
If set, the MOSFET is not turned off when a FET fault is detected.
type: boolean
adi,tmr-pull-down-disable:
description: Disables 2uA pull-down current on the TMR pin.
type: boolean
adi,dvdt-inrush-control-disable:
description:
Disables dV/dt inrush control during startup. In dV/dt mode, the inrush
current is limited by controlling a constant output voltage ramp rate.
When disabled, the inrush control mechanism is active current limiting.
type: boolean
adi,fault-log-enable:
description:
If set, enables logging fault registers and ADC data into EEPROM upon a
fault.
type: boolean
adi,vpower-drns-enable:
description:
If set, enables the attenuated MOSFET drain voltage to be monitored. This
effectively means that the MOSFET power is monitored. If not set, the
attenuated input voltage (and hence input power) is monitored.
type: boolean
adi,external-fault-fet-off-enable:
description: Turns MOSFET off following an external fault.
type: boolean
adi,undervoltage-retry-disable:
description: Do not retry to turn on the MOSFET after an undervoltage fault.
type: boolean
adi,overvoltage-retry-disable:
description: Do not retry to turn on the MOSFET after an overvoltage fault.
type: boolean
adi,external-fault-retry-enable:
description: Retry to turn on the MOSFET after an external fault.
type: boolean
adi,overcurrent-retries:
description: Configures auto-retry following an Overcurrent fault.
$ref: /schemas/types.yaml#/definitions/string
enum: [latch-off, "1", "7", unlimited]
default: latch-off
adi,fet-bad-retries:
description:
Configures auto-retry following a FET bad fault and a consequent MOSFET
turn off.
$ref: /schemas/types.yaml#/definitions/string
enum: [latch-off, "1", "7", unlimited]
default: latch-off
adi,pgio1-func:
description: Configures the function of the PGIO1 pin.
$ref: /schemas/types.yaml#/definitions/string
enum: [inverted_power_good, power_good, gpio]
default: inverted_power_good
adi,pgio2-func:
description: Configures the function of the PGIO2 pin.
$ref: /schemas/types.yaml#/definitions/string
enum: [inverted_power_good, power_good, gpio, active_current_limiting]
default: inverted_power_good
adi,pgio3-func:
description: Configures the function of the PGIO3 pin.
$ref: /schemas/types.yaml#/definitions/string
enum: [inverted_power_good_input, power_good_input, gpio]
default: inverted_power_good_input
adi,pgio4-func:
description: Configures the function of the PGIO4 pin.
$ref: /schemas/types.yaml#/definitions/string
enum: [inverted_external_fault, external_fault, gpio]
default: inverted_external_fault
adi,gpio-on-adio1:
description: If set, the ADIO1 pin is used as a GPIO.
type: boolean
adi,gpio-on-adio2:
description: If set, the ADIO2 pin is used as a GPIO.
type: boolean
adi,gpio-on-adio3:
description: If set, the ADIO3 pin is used as a GPIO.
type: boolean
adi,gpio-on-adio4:
description: If set, the ADIO4 pin is used as a GPIO.
type: boolean
gpio-controller: true
'#gpio-cells':
const: 2
dependencies:
adi,gpio-on-adio1:
- gpio-controller
- '#gpio-cells'
adi,gpio-on-adio2:
- gpio-controller
- '#gpio-cells'
adi,gpio-on-adio3:
- gpio-controller
- '#gpio-cells'
adi,gpio-on-adio4:
- gpio-controller
- '#gpio-cells'
adi,external-fault-retry-enable:
- adi,pgio4-func
adi,external-fault-fet-off-enable:
- adi,pgio4-func
required:
- compatible
- reg
- adi,rsense-nano-ohms
allOf:
- if:
properties:
adi,pgio1-func:
const: gpio
required:
- adi,pgio1-func
then:
required:
- gpio-controller
- '#gpio-cells'
- if:
properties:
adi,pgio2-func:
const: gpio
required:
- adi,pgio2-func
then:
required:
- gpio-controller
- '#gpio-cells'
- if:
properties:
adi,pgio3-func:
const: gpio
required:
- adi,pgio3-func
then:
required:
- gpio-controller
- '#gpio-cells'
- if:
properties:
adi,pgio4-func:
const: gpio
required:
- adi,pgio4-func
then:
properties:
adi,external-fault-retry-enable: false
adi,external-fault-fet-off-enable: false
required:
- gpio-controller
- '#gpio-cells'
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
swap-controller@15 {
compatible = "adi,ltc4283";
reg = <0x15>;
adi,rsense-nano-ohms = <500>;
adi,current-limit-sense-microvolt = <25000>;
adi,current-limit-foldback-factor = <10>;
adi,cooling-delay-ms = <8190>;
adi,fet-bad-timer-delay-ms = <512>;
adi,external-fault-fet-off-enable;
adi,pgio4-func = "external_fault";
adi,gpio-on-adio1;
adi,pgio1-func = "gpio";
gpio-controller;
#gpio-cells = <2>;
};
};
...
@@ -54,6 +54,13 @@ properties:
interrupts:
maxItems: 1
ti,alert-polarity-active-high:
description: Alert pin is asserted based on the value of alert polarity
bit of configuration register. Default value is normal (0 which maps to
active-low). The other value is inverted (1 which maps to active-high).
Specify this property to set the alert polarity to active-high.
$ref: /schemas/types.yaml#/definitions/flag
required:
- compatible
- reg
@@ -0,0 +1,193 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/microchip,emc1812.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Microchip EMC1812/13/14/15/33 multichannel temperature sensor
maintainers:
- Marius Cristea <marius.cristea@microchip.com>
description: |
The Microchip EMC1812/13/14/15/33 is a high-accuracy 2-wire multichannel
low-voltage remote diode temperature monitor.
The datasheet can be found here:
https://ww1.microchip.com/downloads/aemDocuments/documents/MSLD/ProductDocuments/DataSheets/EMC1812-3-4-5-33-Data-Sheet-DS20005751.pdf
EMC1812 has one external remote temperature monitoring channel
EMC1813 has two external remote temperature monitoring channels
EMC1814 has three external remote temperature monitoring channels and
channels 2 and 3 support anti parallel diode
EMC1815 has four external remote temperature monitoring channels and
channels 1/2 and 3/4 support anti parallel diode
EMC1833 has two external remote temperature monitoring channels and
channels 1 and 2 support anti parallel diode
properties:
compatible:
enum:
- microchip,emc1812
- microchip,emc1813
- microchip,emc1814
- microchip,emc1815
- microchip,emc1833
reg:
maxItems: 1
interrupts:
items:
- description: alert-therm2 asserts when the ALERT limit is exceeded.
- description: therm-addr asserts when the THERM limit is exceeded.
minItems: 1
interrupt-names:
items:
- const: alert-therm2
- const: therm-addr
minItems: 1
"#address-cells":
const: 1
"#size-cells":
const: 0
microchip,enable-anti-parallel:
description:
Enable anti-parallel diode mode operation. EMC1814, EMC1815 and EMC1833
support reading two external diodes in anti-parallel connection on the
same set of pins. Disabling APD functionality to implement substrate
diodes on devices that support APD eliminates the benefit of APD
(two diodes on one channel).
type: boolean
microchip,parasitic-res-on-channel1-2:
description:
Indicates that the chip and the diodes/transistors are sufficiently
far apart that a parasitic resistance is added to the wires, which can
affect the measurements. Due to the availability of only a single
configuration bit in hardware, channels 1 and 2 are affected together.
If channel 2 is not available in hardware, this setting affects only
channel 1.
type: boolean
microchip,parasitic-res-on-channel3-4:
description:
Indicates that the chip and the diodes/transistors are sufficiently
far apart that a parasitic resistance is added to the wires, which can
affect the measurements. Due to the availability of only a single
configuration bit in hardware, channels 3 and 4 are affected together.
If channel 4 is not available in hardware, this setting affects only
channel 3.
type: boolean
vdd-supply: true
patternProperties:
"^channel@[0-4]$":
description: |
Represents the temperature channels.
0: Internal sensor
1-4: External remote diodes
type: object
properties:
reg:
maxItems: 1
label:
description: Unique name to identify which channel this is.
required:
- reg
additionalProperties: false
required:
- compatible
- reg
- vdd-supply
allOf:
# EMC1812: 1 Internal, 1 External Channels, No APD,
# parasitic-res-on-channel1-2: for channel 1
- if:
properties:
compatible:
const: microchip,emc1812
then:
properties:
microchip,enable-anti-parallel: false
microchip,parasitic-res-on-channel3-4: false
patternProperties:
"^channel@[2-4]$": false
# EMC1813: 1 Internal, 2 External Channels, No APD,
# parasitic-res-on-channel1-2: on both channel 1 & 2
- if:
properties:
compatible:
const: microchip,emc1813
then:
properties:
microchip,enable-anti-parallel: false
microchip,parasitic-res-on-channel3-4: false
patternProperties:
"^channel@[3-4]$": false
# EMC1833: 1 Internal, 2 External Channels, Supports APD,
# parasitic-res-on-channel1-2: on both channel 1 & 2
- if:
properties:
compatible:
const: microchip,emc1833
then:
properties:
microchip,parasitic-res-on-channel3-4: false
patternProperties:
"^channel@[3-4]$": false
# EMC1814: 1 Internal, 3 External Channels, Supports APD,
# parasitic-res-on-channel1-2: on both channel 1 & 2
# parasitic-res-on-channel3-4: for channel 3
- if:
properties:
compatible:
const: microchip,emc1814
then:
properties:
channel@4: false
unevaluatedProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
temperature-sensor@4c {
compatible = "microchip,emc1813";
reg = <0x4c>;
#address-cells = <1>;
#size-cells = <0>;
microchip,parasitic-res-on-channel1-2;
vdd-supply = <&vdd>;
channel@1 {
reg = <1>;
label = "External CH1 Temperature";
};
channel@2 {
reg = <2>;
label = "External CH2 Temperature";
};
};
};
@@ -54,6 +54,12 @@ patternProperties:
The fan number used to determine the associated PWM channel.
maxItems: 1
fan-shutdown-percent:
description:
PWM duty cycle in percent applied to the fan during shutdown.
minimum: 0
maximum: 100
required:
- reg
@@ -80,12 +86,14 @@ examples:
fan@0 {
reg = <0x0>;
pwms = <&fan_controller 26000 PWM_POLARITY_INVERTED 1>;
fan-shutdown-percent = <100>;
#cooling-cells = <2>;
};
fan@1 {
reg = <0x1>;
pwms = <&fan_controller 26000 0 1>;
fan-shutdown-percent = <50>;
#cooling-cells = <2>;
};
@@ -1,20 +0,0 @@
Bindings for the fan / temperature monitor microcontroller used on
the Zyxel NSA 320 and several subsequent models.
Required properties:
- compatible : "zyxel,nsa320-mcu"
- data-gpios : The GPIO pin connected to the data line on the MCU
- clk-gpios : The GPIO pin connected to the clock line on the MCU
- act-gpios : The GPIO pin connected to the active line on the MCU
Example:
hwmon {
compatible = "zyxel,nsa320-mcu";
pinctrl-0 = <&pmx_mcu_data &pmx_mcu_clk &pmx_mcu_act>;
pinctrl-names = "default";
data-gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>;
clk-gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>;
act-gpios = <&gpio0 17 GPIO_ACTIVE_LOW>;
};
@@ -0,0 +1,66 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/pmbus/adi,max20830.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Analog Devices MAX20830 Step-Down Switching Regulator with PMBus
maintainers:
- Alexis Czezar Torreno <alexisczezar.torreno@analog.com>
description: |
The MAX20830 is a fully integrated step-down DC-DC switching regulator with
PMBus interface. It provides 2.7V to 16V input, 0.4V to 5.8V adjustable
output, and up to 30A output current. It allows monitoring of input/output
voltage, output current and temperature through the PMBus serial interface.
Datasheet:
https://www.analog.com/en/products/max20830.html
allOf:
- $ref: /schemas/regulator/regulator.yaml#
properties:
compatible:
const: adi,max20830
reg:
maxItems: 1
vddh-supply:
description:
Phandle to the regulator that provides the VDDH power supply.
avdd-supply:
description:
Phandle to the regulator that provides the AVDD power supply.
ldoin-supply:
description:
Optional 2.5V to 5.5V LDO input supply.
pwr-good-gpios:
description:
GPIO connected to the power-good status output pin.
maxItems: 1
required:
- compatible
- reg
- vddh-supply
unevaluatedProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
regulator@30 {
compatible = "adi,max20830";
reg = <0x30>;
vddh-supply = <&vddh>;
};
};
...
@@ -0,0 +1,45 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/pmbus/adi,max20860a.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Analog Devices MAX20860A Step-Down Converter
maintainers:
- Sanman Pradhan <psanman@juniper.net>
description: |
The MAX20860A is a fully integrated step-down DC-DC switching regulator
with PMBus interface for monitoring input/output voltage, output current
and temperature.
Datasheet: https://www.analog.com/en/products/max20860a.html
allOf:
- $ref: /schemas/regulator/regulator.yaml#
properties:
compatible:
const: adi,max20860a
reg:
maxItems: 1
required:
- compatible
- reg
unevaluatedProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
regulator@40 {
compatible = "adi,max20860a";
reg = <0x40>;
};
};
@@ -5,23 +5,31 @@
$id: http://devicetree.org/schemas/hwmon/pmbus/infineon,xdp720.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Infineon XDP720 Digital eFuse Controller
title: Infineon XDP720 / XDP730 Digital eFuse Controllers
maintainers:
- Ashish Yadav <ashish.yadav@infineon.com>
description: |
The XDP720 is an eFuse with integrated current sensor and digital
controller. It provides accurate system telemetry (V, I, P, T) and
reports analog current at the IMON pin for post-processing.
The XDP720 and XDP730 are PMBus-compliant digital eFuse controllers
with an integrated current sensor. They provide accurate system
telemetry (V, I, P, T) and report analog current at the IMON pin for
post-processing.
Datasheet:
https://www.infineon.com/assets/row/public/documents/24/49/infineon-xdp720-001-datasheet-en.pdf
Both parts share the same PMBus register map and direct-format
coefficients; they differ in the GIMON gain step exposed via the
TELEMETRY_AVG register (bit 10) and in the VDD_VIN pin number
(XDP720: pin 9, XDP730: pin 20).
Datasheets:
- XDP720: https://www.infineon.com/assets/row/public/documents/24/49/infineon-xdp720-001-datasheet-en.pdf
- XDP730: https://www.infineon.com/assets/row/public/documents/24/49/infineon-xdp730-001-datasheet-en.pdf
properties:
compatible:
enum:
- infineon,xdp720
- infineon,xdp730
reg:
maxItems: 1
@@ -33,9 +41,9 @@ properties:
vdd-vin-supply:
description:
Supply for the VDD_VIN pin (pin 9), the IC controller power supply.
Typically connected to the input bus (VIN) through a 100 ohm / 100 nF
RC filter.
Supply for the VDD_VIN pin (XDP720 pin 9, XDP730 pin 20), the IC
controller power supply. Typically connected to the input bus
(VIN) through a 100 ohm / 100 nF RC filter.
required:
- compatible
@@ -50,7 +58,7 @@ examples:
#address-cells = <1>;
#size-cells = <0>;
hwmon@11 {
efuse@11 {
compatible = "infineon,xdp720";
reg = <0x11>;
vdd-vin-supply = <&vdd_vin>;
@@ -0,0 +1,54 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/zyxel,nsa320-mcu.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: ZyXEL NSA320 MCU
maintainers:
- Adam Baker <linux@baker-net.org.uk>
- Guenter Roeck <linux@roeck-us.net>
description:
The ZyXEL NSA320 uses a dedicated microcontroller to manage system-critical
functions like fan speed and power monitoring. It is connected to the SoC
via a GPIO-based serial protocol.
properties:
compatible:
const: zyxel,nsa320-mcu
data-gpios:
maxItems: 1
description: GPIO pin connected to the data line on the MCU.
clk-gpios:
maxItems: 1
description: GPIO pin connected to the clock line on the MCU.
act-gpios:
maxItems: 1
description: GPIO pin connected to the active line on the MCU.
required:
- compatible
- data-gpios
- clk-gpios
- act-gpios
additionalProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
hwmon {
compatible = "zyxel,nsa320-mcu";
pinctrl-0 = <&pmx_mcu_data &pmx_mcu_clk &pmx_mcu_act>;
pinctrl-names = "default";
data-gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>;
clk-gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>;
act-gpios = <&gpio0 17 GPIO_ACTIVE_LOW>;
};
@@ -1,7 +1,7 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/mmc/sdhci-msm.yaml#
$id: http://devicetree.org/schemas/mmc/qcom,sdhci-msm.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm SDHCI controller (sdhci-msm)
@@ -37,6 +37,8 @@ properties:
- const: qcom,sdhci-msm-v4 # for sdcc versions less than 5.0
- items:
- enum:
- qcom,eliza-sdhci
- qcom,hawi-sdhci
- qcom,ipq5018-sdhci
- qcom,ipq5210-sdhci
- qcom,ipq5332-sdhci
@@ -62,6 +64,7 @@ properties:
- qcom,sdx55-sdhci
- qcom,sdx65-sdhci
- qcom,sdx75-sdhci
- qcom,shikra-sdhci
- qcom,sm6115-sdhci
- qcom,sm6125-sdhci
- qcom,sm6350-sdhci
@@ -52,6 +52,7 @@ properties:
- renesas,sdhi-r8a77980 # R-Car V3H
- renesas,sdhi-r8a77990 # R-Car E3
- renesas,sdhi-r8a77995 # R-Car D3
- renesas,sdhi-r8a779md # R-Car M3Le
- const: renesas,rcar-gen3-sdhi # R-Car Gen3 or RZ/G2
- items:
- enum:
@@ -44,6 +44,18 @@ properties:
- const: axi
- const: sdh
pinctrl-names:
minItems: 1
items:
- const: default
- const: uhs
pinctrl-0:
description: Default pinctrl state for 3.3V operation
pinctrl-1:
description: Optional pinctrl state for 1.8V UHS operation with "uhs" name
required:
- compatible
- reg
@@ -62,4 +74,7 @@ examples:
interrupt-parent = <&plic>;
clocks = <&clk_apmu 10>, <&clk_apmu 13>;
clock-names = "core", "io";
pinctrl-names = "default", "uhs";
pinctrl-0 = <&sdhci_default_cfg>;
pinctrl-1 = <&sdhci_uhs_cfg>;
};
@@ -0,0 +1,70 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/mediatek,mt6311-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: MediaTek MT6311 Regulator
maintainers:
- AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
description:
The MediaTek MT6311 is an I2C power management IC that provides one step-down
converter and one low-dropout regulator. The regulators are named VDVFS and
VBIASN, respectively.
properties:
compatible:
const: mediatek,mt6311-regulator
reg:
description: I2C slave address.
maxItems: 1
regulators:
type: object
description: List of regulators provided by this controller.
patternProperties:
"^(VDVFS|VBIASN)$":
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
additionalProperties: false
required:
- compatible
- reg
- regulators
additionalProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
pmic@6b {
compatible = "mediatek,mt6311-regulator";
reg = <0x6b>;
regulators {
VDVFS {
regulator-name = "VDVFS";
regulator-min-microvolt = <600000>;
regulator-max-microvolt = <1400000>;
regulator-ramp-delay = <10000>;
};
VBIASN {
regulator-name = "VBIASN";
regulator-min-microvolt = <200000>;
regulator-max-microvolt = <800000>;
};
};
};
};
...
@@ -1,35 +0,0 @@
Mediatek MT6311 Regulator
Required properties:
- compatible: "mediatek,mt6311-regulator"
- reg: I2C slave address, usually 0x6b.
- regulators: List of regulators provided by this controller. It is named
to VDVFS and VBIASN.
The definition for each of these nodes is defined using the standard binding
for regulators at Documentation/devicetree/bindings/regulator/regulator.txt.
The valid names for regulators are:
BUCK:
VDVFS
LDO:
VBIASN
Example:
mt6311: pmic@6b {
compatible = "mediatek,mt6311-regulator";
reg = <0x6b>;
regulators {
mt6311_vcpu_reg: VDVFS {
regulator-name = "VDVFS";
regulator-min-microvolt = < 600000>;
regulator-max-microvolt = <1400000>;
regulator-ramp-delay = <10000>;
};
mt6311_ldo_reg: VBIASN {
regulator-name = "VBIASN";
regulator-min-microvolt = <200000>;
regulator-max-microvolt = <800000>;
};
};
};
@@ -18,84 +18,50 @@ patternProperties:
"^buck_v(s1|gpu11|modem|pu|core|s2|pa|proc2|proc1|core_sshub)$":
type: object
$ref: regulator.yaml#
properties:
regulator-name:
pattern: "^v(s1|gpu11|modem|pu|core|s2|pa|proc2|proc1|core_sshub)$"
unevaluatedProperties: false
"^ldo_v(ibr|rf12|usb|camio|efuse|xo22)$":
type: object
$ref: regulator.yaml#
properties:
regulator-name:
pattern: "^v(ibr|rf12|usb|camio|efuse|xo22)$"
unevaluatedProperties: false
"^ldo_v(rfck|emc|a12|a09|ufs|bbck)$":
type: object
$ref: regulator.yaml#
properties:
regulator-name:
pattern: "^v(rfck|emc|a12|a09|ufs|bbck)$"
unevaluatedProperties: false
"^ldo_vcn(18|13|33_1_bt|13_1_wifi|33_2_bt|33_2_wifi)$":
"^ldo_vcn(18|13|33_[12])$":
type: object
$ref: regulator.yaml#
properties:
regulator-name:
pattern: "^vcn(18|13|33_1_bt|13_1_wifi|33_2_bt|33_2_wifi)$"
unevaluatedProperties: false
"^ldo_vsram_(proc2|others|md|proc1|others_sshub)$":
type: object
$ref: regulator.yaml#
properties:
regulator-name:
pattern: "^vsram_(proc2|others|md|proc1|others_sshub)$"
unevaluatedProperties: false
"^ldo_v(fe|bif|io)28$":
type: object
$ref: regulator.yaml#
properties:
regulator-name:
pattern: "^v(fe|bif|io)28$"
unevaluatedProperties: false
"^ldo_v(aud|io|aux|rf|m)18$":
type: object
$ref: regulator.yaml#
properties:
regulator-name:
pattern: "^v(aud|io|aux|rf|m)18$"
unevaluatedProperties: false
"^ldo_vsim[12]$":
type: object
$ref: regulator.yaml#
unevaluatedProperties: false
properties:
regulator-name:
pattern: "^vsim[12]$"
required:
- regulator-name
"^ldo_vcn33_[12]_(bt|wifi)$":
type: object
$ref: regulator.yaml#
description:
vcn33_[12]_(bt|wifi) are incorrect representations.
Use vcn33_[12] instead.
deprecated: true
unevaluatedProperties: false
additionalProperties: false
@@ -246,13 +212,8 @@ examples:
regulator-min-microvolt = <900000>;
regulator-max-microvolt = <1300000>;
};
mt6359_vcn33_1_bt_ldo_reg: ldo_vcn33_1_bt {
regulator-name = "vcn33_1_bt";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <3500000>;
};
mt6359_vcn33_1_wifi_ldo_reg: ldo_vcn33_1_wifi {
regulator-name = "vcn33_1_wifi";
mt6359_vcn33_1_bt_ldo_reg: ldo_vcn33_1 {
regulator-name = "vcn33_1";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <3500000>;
};
@@ -313,13 +274,8 @@ examples:
regulator-min-microvolt = <2500000>;
regulator-max-microvolt = <3300000>;
};
mt6359_vcn33_2_bt_ldo_reg: ldo_vcn33_2_bt {
regulator-name = "vcn33_2_bt";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <3500000>;
};
mt6359_vcn33_2_wifi_ldo_reg: ldo_vcn33_2_wifi {
regulator-name = "vcn33_2_wifi";
mt6359_vcn33_2_bt_ldo_reg: ldo_vcn33_2 {
regulator-name = "vcn33_2";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <3500000>;
};
@@ -17,6 +17,10 @@ properties:
compatible:
const: mediatek,mt6360-regulator
BUCK1_VIN-supply:
description: Input supply phandle(s) for BUCK1
BUCK2_VIN-supply:
description: Input supply phandle(s) for BUCK2
LDO_VIN1-supply:
description: Input supply phandle(s) for LDO1/2/3
LDO_VIN2-supply:
@@ -51,6 +51,7 @@ description: |
For PM8450, smps1 - smps6, ldo1 - ldo4
For PM8550, smps1 - smps6, ldo1 - ldo17, bob1 - bob2
For PM8998, smps1 - smps13, ldo1 - ldo28, lvs1 - lvs2
For PMAU0102, smps1 - smps8, ldo1 - ldo3
For PMH0101, ldo1 - ldo18, bob1 - bob2
For PMH0104, smps1 - smps4
For PMH0110, smps1 - smps10, ldo1 - ldo4
@@ -87,6 +88,7 @@ properties:
- qcom,pm8550ve-rpmh-regulators
- qcom,pm8550vs-rpmh-regulators
- qcom,pm8998-rpmh-regulators
- qcom,pmau0102-rpmh-regulators
- qcom,pmc8180-rpmh-regulators
- qcom,pmc8180c-rpmh-regulators
- qcom,pmc8380-rpmh-regulators
@@ -417,6 +419,7 @@ allOf:
properties:
compatible:
enum:
- qcom,pmau0102-rpmh-regulators
- qcom,pmc8380-rpmh-regulators
- qcom,pm8550ve-rpmh-regulators
then:
@@ -35,6 +35,12 @@ description:
For pm660l s1, s2, s3, s5, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, bob
For pm8019, s1, s2, s3, s4, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11,
l12, l13, l14
For pm8150, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, l1, l2, l3, l4, l5, l6,
l7, l8, l9, l10, l11, l12, l13, l14, l15, l16, l17, l18
For pm8226, s1, s2, s3, s4, s5, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10,
l11, l12, l13, l14, l15, l16, l17, l18, l19, l20, l21, l22, l23, l24, l25,
l26, l27, l28, lvs1
@@ -91,6 +97,8 @@ properties:
- qcom,rpm-pm6125-regulators
- qcom,rpm-pm660-regulators
- qcom,rpm-pm660l-regulators
- qcom,rpm-pm8019-regulators
- qcom,rpm-pm8150-regulators
- qcom,rpm-pm8226-regulators
- qcom,rpm-pm8841-regulators
- qcom,rpm-pm8909-regulators
@@ -0,0 +1,77 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/sgmicro,sgm3804.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: SG Micro SGM3804 Single Inductor Dual Output Buck/Boost Converter
maintainers:
- Neil Armstrong <neil.armstrong@linaro.org>
description:
The SGM3804 is a dual voltage regulator, designed to support positive/negative
supply for driving LCD panels. It support software-configurable output
switching. The output voltages can be programmed via an I2C compatible interface.
properties:
compatible:
const: sgmicro,sgm3804
reg:
maxItems: 1
vin-supply: true
patternProperties:
"^(pos|neg)$":
type: object
$ref: regulator.yaml#
properties:
enable-gpios: true
unevaluatedProperties: false
required:
- enable-gpios
required:
- compatible
- reg
- pos
- neg
additionalProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
regulator@3e {
compatible = "sgmicro,sgm3804";
reg = <0x3e>;
vin-supply = <&vin_reg>;
pos {
regulator-name = "outpos";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
enable-gpios = <&gpio 17 GPIO_ACTIVE_HIGH>;
};
neg {
regulator-name = "outneg";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
enable-gpios = <&gpio 18 GPIO_ACTIVE_HIGH>;
};
};
};
...
@@ -11,12 +11,13 @@ maintainers:
properties:
$nodename:
pattern: "^rng@[0-9a-f]+$"
pattern: "^rng(@[0-9a-f]+)?$"
compatible:
oneOf:
- enum:
- mediatek,mt7623-rng
- mediatek,mt7981-rng
- items:
- enum:
- mediatek,mt7622-rng
@@ -25,6 +26,11 @@ properties:
- mediatek,mt8365-rng
- mediatek,mt8516-rng
- const: mediatek,mt7623-rng
- items:
- enum:
- mediatek,mt7987-rng
- mediatek,mt7988-rng
- const: mediatek,mt7981-rng
reg:
maxItems: 1
@@ -38,18 +44,37 @@ properties:
required:
- compatible
- reg
- clocks
- clock-names
allOf:
- if:
properties:
compatible:
contains:
const: mediatek,mt7981-rng
then:
properties:
reg: false
clocks: false
clock-names: false
else:
required:
- reg
- clocks
- clock-names
additionalProperties: false
examples:
- |
#include <dt-bindings/clock/mt2701-clk.h>
rng: rng@1020f000 {
compatible = "mediatek,mt7623-rng";
reg = <0x1020f000 0x1000>;
clocks = <&infracfg CLK_INFRA_TRNG>;
clock-names = "rng";
rng@1020f000 {
compatible = "mediatek,mt7623-rng";
reg = <0x1020f000 0x1000>;
clocks = <&infracfg CLK_INFRA_TRNG>;
clock-names = "rng";
};
- |
rng {
compatible = "mediatek,mt7981-rng";
};
@@ -1,58 +0,0 @@
* Nuvoton FLASH Interface Unit (FIU) SPI Controller
NPCM FIU supports single, dual and quad communication interface.
The NPCM7XX supports three FIU modules,
FIU0 and FIUx supports two chip selects,
FIU3 support four chip select.
The NPCM8XX supports four FIU modules,
FIU0 and FIUx supports two chip selects,
FIU1 and FIU3 supports four chip selects.
Required properties:
- compatible : "nuvoton,npcm750-fiu" for Poleg NPCM7XX BMC
"nuvoton,npcm845-fiu" for Arbel NPCM8XX BMC
- #address-cells : should be 1.
- #size-cells : should be 0.
- reg : the first contains the register location and length,
the second contains the memory mapping address and length
- reg-names: Should contain the reg names "control" and "memory"
- clocks : phandle of FIU reference clock.
Required properties in case the pins can be muxed:
- pinctrl-names : a pinctrl state named "default" must be defined.
- pinctrl-0 : phandle referencing pin configuration of the device.
Optional property:
- nuvoton,spix-mode: enable spix-mode for an expansion bus to an ASIC or CPLD.
Aliases:
- All the FIU controller nodes should be represented in the aliases node using
the following format 'fiu{n}' where n is a unique number for the alias.
In the NPCM7XX BMC:
fiu0 represent fiu 0 controller
fiu1 represent fiu 3 controller
fiu2 represent fiu x controller
In the NPCM8XX BMC:
fiu0 represent fiu 0 controller
fiu1 represent fiu 1 controller
fiu2 represent fiu 3 controller
fiu3 represent fiu x controller
Example:
fiu3: spi@c00000000 {
compatible = "nuvoton,npcm750-fiu";
#address-cells = <1>;
#size-cells = <0>;
reg = <0xfb000000 0x1000>, <0x80000000 0x10000000>;
reg-names = "control", "memory";
clocks = <&clk NPCM7XX_CLK_AHB>;
pinctrl-names = "default";
pinctrl-0 = <&spi3_pins>;
flash@0 {
...
};
};
@@ -0,0 +1,93 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/spi/nuvoton,npcm750-fiu.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Nuvoton NPCM Flash Interface Unit (FIU) SPI Controller
maintainers:
- Tomer Maimon <tmaimon77@gmail.com>
allOf:
- $ref: /schemas/spi/spi-controller.yaml#
description: |
NPCM FIU supports single, dual and quad communication interface.
The NPCM7XX supports three FIU modules:
FIU0 and FIUx support two chip selects
FIU3 supports four chip selects.
The NPCM8XX supports four FIU modules:
FIU0 and FIUx support two chip selects
FIU1 and FIU3 support four chip selects.
The FIU control register block is always required. The direct-mapped
flash window is optional because the controller can still access flash
through the UMA path when that mapping is not described.
Alias convention:
The '/aliases' node should define:
For NPCM7xx: fiu0=&fiu0; fiu1=&fiu3; fiu2=&fiux;
For NPCM8xx: fiu0=&fiu0; fiu1=&fiu3; fiu2=&fiux; fiu3=&fiu1;
properties:
compatible:
enum:
- nuvoton,npcm750-fiu # Poleg NPCM7XX
- nuvoton,npcm845-fiu # Arbel NPCM8XX
reg:
description:
The first resource is the FIU control register block. An optional second
resource describes the direct-mapped flash window used for direct
read/write accesses.
minItems: 1
items:
- description: FIU control registers
- description: Memory-mapped flash contents
reg-names:
description:
Resource names for the control registers and optional direct-mapped
flash window.
minItems: 1
items:
- const: control
- const: memory
clocks:
maxItems: 1
description: FIU reference clock.
nuvoton,spix-mode:
type: boolean
description: Enable SPIX mode for an expansion bus to an ASIC or CPLD.
required:
- compatible
- reg
- reg-names
- clocks
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/clock/nuvoton,npcm7xx-clock.h>
spi@fb000000 {
compatible = "nuvoton,npcm750-fiu";
reg = <0xfb000000 0x1000>, <0x80000000 0x10000000>;
reg-names = "control", "memory";
#address-cells = <1>;
#size-cells = <0>;
clocks = <&clk NPCM7XX_CLK_SPI0>;
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
#address-cells = <1>;
#size-cells = <1>;
};
};
@@ -13,13 +13,11 @@ description: The QSPI controller allows SPI protocol communication in single,
dual, or quad wire transmission modes for read/write access to slaves such
as NOR flash.
allOf:
- $ref: /schemas/spi/spi-controller.yaml#
properties:
compatible:
items:
- enum:
- qcom,qcs615-qspi
- qcom,sc7180-qspi
- qcom,sc7280-qspi
- qcom,sdm845-qspi
@@ -67,6 +65,23 @@ required:
- clock-names
- clocks
allOf:
- $ref: /schemas/spi/spi-controller.yaml#
- if:
properties:
compatible:
contains:
const: qcom,qcs615-qspi
then:
properties:
interconnects:
minItems: 2
interconnect-names:
minItems: 2
required:
- interconnects
- interconnect-names
unevaluatedProperties: false
examples:
@@ -0,0 +1,84 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/spi/spacemit,k1-spi.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: SpacemiT K1 SoC Serial Peripheral Interface (SPI)
maintainers:
- Alex Elder <elder@kernel.org>
description:
The SpacemiT K1 SoC implements a SPI controller that has two 32-entry
FIFOs, for transmit and receive. Details are currently available in
section 18.2.1 of the K1 User Manual, found in the SpacemiT Keystone
K1 Documentation[1]. The controller transfers words using PIO. DMA
transfers are supported as well, if both TX and RX DMA channels are
specified,
[1] https://developer.spacemit.com/documentation
allOf:
- $ref: /schemas/spi/spi-controller.yaml#
properties:
compatible:
const: spacemit,k1-spi
reg:
maxItems: 1
clocks:
items:
- description: Core clock
- description: Bus clock
clock-names:
items:
- const: core
- const: bus
resets:
maxItems: 1
interrupts:
maxItems: 1
dmas:
items:
- description: RX DMA channel
- description: TX DMA channel
dma-names:
items:
- const: rx
- const: tx
required:
- compatible
- reg
- clocks
- clock-names
- resets
- interrupts
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/clock/spacemit,k1-syscon.h>
spi@d401c000 {
compatible = "spacemit,k1-spi";
reg = <0xd401c000 0x30>;
#address-cells = <1>;
#size-cells = <0>;
clocks = <&syscon_apbc CLK_SSP3>,
<&syscon_apbc CLK_SSP3_BUS>;
clock-names = "core", "bus";
resets = <&syscon_apbc RESET_SSP3>;
interrupts = <55>;
dmas = <&pdma 20>, <&pdma 19>;
dma-names = "rx", "tx";
};
@@ -67,8 +67,10 @@ properties:
- arduino,unoq-mcu
# Temperature monitoring of Astera Labs PT5161L PCIe retimer
- asteralabs,pt5161l
# i2c h/w elliptic curve crypto module
# ATECC508A - i2c h/w elliptic curve crypto module
- atmel,atecc508a
# ATECC608B - i2c h/w elliptic curve crypto module
- atmel,atecc608b
# ATSHA204 - i2c h/w symmetric crypto module
- atmel,atsha204
# ATSHA204A - i2c h/w symmetric crypto module
@@ -99,6 +101,8 @@ properties:
- delta,dps800
# Delta Electronics DPS920AB 920W 54V Power Supply
- delta,dps920ab
# 600W Non-isolated 1/8th Brick DC/DC Power Modules
- delta,e50sn12051
# 1/4 Brick DC/DC Regulated Power Module
- delta,q54sj108a2
# 1300W 1/4 Brick DC/DC Regulated Power Module
@@ -192,6 +196,8 @@ properties:
- jedec,spd5118
# Linear Technology LTC2488
- lineartechnology,ltc2488
# Regulated 12V, 860W, Digital DC/DC Power Module
- luxshare,lx1308
# 5 Bit Programmable, Pulse-Width Modulator
- maxim,ds1050
# 10 kOhm digital potentiometer with I2C interface
@@ -336,6 +342,8 @@ properties:
- mps,mp29612
# Monolithic Power Systems Inc. multi-phase controller mp29816
- mps,mp29816
# Monolithic Power Systems Inc. multi-phase controller mp2985
- mps,mp2985
# Monolithic Power Systems Inc. multi-phase controller mp2993
- mps,mp2993
# Monolithic Power Systems Inc. hot-swap protection device
@@ -352,6 +360,8 @@ properties:
- mps,mp9941
# Monolithic Power Systems Inc. digital step-down converter mp9945
- mps,mp9945
# Murata D1U74T-W power supply unit
- murata,d1u74t
# Temperature sensor with integrated fan control
- national,lm63
# Temperature sensor with integrated fan control
@@ -981,6 +981,8 @@ patternProperties:
description: Shenzhen Luckfox Technology Co., Ltd.
"^lunzn,.*":
description: Shenzhen Lunzn Technology Co., Ltd.
"^luxshare,.*":
description: Luxshare-ICT Co., Ltd.
"^luxul,.*":
description: Lagrand | AV
"^lwn,.*":
@@ -0,0 +1,53 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/andestech,ae350-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Andes ATCWDT200 Watchdog Timer
maintainers:
- CL Wang <cl634@andestech.com>
allOf:
- $ref: watchdog.yaml#
properties:
compatible:
oneOf:
- items:
- enum:
- andestech,qilai-wdt
- const: andestech,ae350-wdt
- const: andestech,ae350-wdt
reg:
maxItems: 1
clocks:
maxItems: 1
andestech,clock-source:
$ref: /schemas/types.yaml#/definitions/uint32
enum: [0, 1]
description: |
Select the clock source for the watchdog timer.
0 - External clock
1 - P clock
required:
- compatible
- reg
- clocks
- andestech,clock-source
unevaluatedProperties: false
examples:
- |
watchdog@f0500000 {
compatible = "andestech,ae350-wdt";
reg = <0xf0500000 0x20>;
clocks = <&clk_wdt>;
andestech,clock-source = <0>;
};
@@ -16,7 +16,9 @@ properties:
compatible:
oneOf:
- items:
- const: apple,t6020-wdt
- enum:
- apple,t6020-wdt
- apple,t8122-wdt
- const: apple,t8103-wdt
- items:
- enum:
@@ -18,12 +18,7 @@ allOf:
properties:
compatible:
oneOf:
- items:
- enum:
- kontron,sa67mcu-wdt
- const: kontron,sl28cpld-wdt
- const: kontron,sl28cpld-wdt
const: kontron,sl28cpld-wdt
reg:
maxItems: 1
@@ -18,15 +18,19 @@ properties:
- items:
- enum:
- qcom,apss-wdt-glymur
- qcom,apss-wdt-hawi
- qcom,kpss-wdt-ipq4019
- qcom,apss-wdt-ipq5018
- qcom,apss-wdt-ipq5210
- qcom,apss-wdt-ipq5332
- qcom,apss-wdt-ipq5424
- qcom,apss-wdt-ipq9574
- qcom,apss-wdt-ipq9650
- qcom,apss-wdt-kaanapali
- qcom,apss-wdt-msm8226
- qcom,apss-wdt-msm8974
- qcom,apss-wdt-msm8994
- qcom,apss-wdt-nord
- qcom,apss-wdt-qcm2290
- qcom,apss-wdt-qcs404
- qcom,apss-wdt-qcs615
@@ -40,6 +44,7 @@ properties:
- qcom,apss-wdt-sdm845
- qcom,apss-wdt-sdx55
- qcom,apss-wdt-sdx65
- qcom,apss-wdt-shikra
- qcom,apss-wdt-sm6115
- qcom,apss-wdt-sm6350
- qcom,apss-wdt-sm8150
@@ -84,6 +89,12 @@ properties:
minItems: 1
maxItems: 5
sram:
maxItems: 1
description:
A reference to an region residing in IMEM(on-chip SRAM), which contains
the system restart reason value populated by the bootloader.
required:
- compatible
- reg
@@ -89,11 +89,11 @@ examples:
- |
#include <dt-bindings/clock/renesas,r9a09g057-cpg.h>
watchdog@11c00400 {
watchdog@14400000 {
compatible = "renesas,r9a09g057-wdt";
reg = <0x11c00400 0x400>;
clocks = <&cpg CPG_MOD 0x4b>, <&cpg CPG_MOD 0x4c>;
reg = <0x14400000 0x400>;
clocks = <&cpg CPG_MOD 0x4d>, <&cpg CPG_MOD 0x4e>;
clock-names = "pclk", "oscclk";
resets = <&cpg 0x75>;
resets = <&cpg 0x76>;
power-domains = <&cpg>;
};
@@ -18,6 +18,7 @@ properties:
- renesas,r9a07g044-wdt # RZ/G2{L,LC}
- renesas,r9a07g054-wdt # RZ/V2L
- renesas,r9a08g045-wdt # RZ/G3S
- renesas,r9a08g046-wdt # RZ/G3L
- const: renesas,rzg2l-wdt
- items:
@@ -29,7 +29,6 @@ properties:
required:
- compatible
- reg
- interrupts
- clocks
allOf:
@@ -29,10 +29,12 @@ properties:
- rockchip,rk3368-wdt
- rockchip,rk3399-wdt
- rockchip,rk3506-wdt
- rockchip,rk3528-wdt
- rockchip,rk3562-wdt
- rockchip,rk3568-wdt
- rockchip,rk3576-wdt
- rockchip,rk3588-wdt
- rockchip,rv1103b-wdt
- rockchip,rv1108-wdt
- rockchip,rv1126-wdt
- const: snps,dw-wdt
@@ -0,0 +1,40 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/watchdog/technologic,ts4800-wdt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Technologic Systems TS-4800 Watchdog
maintainers:
- Eduard Bostina <egbostina@gmail.com>
properties:
compatible:
const: technologic,ts4800-wdt
syscon:
$ref: /schemas/types.yaml#/definitions/phandle-array
items:
- items:
- description: Phandle to the FPGA's syscon
- description: Offset to the watchdog register
description: Phandle / integers array that points to the syscon node which
describes the FPGA's syscon registers.
required:
- compatible
- syscon
allOf:
- $ref: watchdog.yaml#
unevaluatedProperties: false
examples:
- |
watchdog {
compatible = "technologic,ts4800-wdt";
syscon = <&syscon 0xe>;
timeout-sec = <10>;
};
@@ -23,6 +23,7 @@ allOf:
properties:
compatible:
enum:
- ti,am62l-rti-wdt
- ti,j7-rti-wdt
reg:
@@ -1,25 +0,0 @@
Technologic Systems Watchdog
Required properties:
- compatible: must be "technologic,ts4800-wdt"
- syscon: phandle / integer array that points to the syscon node which
describes the FPGA's syscon registers.
- phandle to FPGA's syscon
- offset to the watchdog register
Optional property:
- timeout-sec: contains the watchdog timeout in seconds.
Example:
syscon: syscon@b0010000 {
compatible = "syscon", "simple-mfd";
reg = <0xb0010000 0x3d>;
reg-io-width = <2>;
wdt@e {
compatible = "technologic,ts4800-wdt";
syscon = <&syscon 0xe>;
timeout-sec = <10>;
};
}
+2
View File
@@ -1,3 +1,5 @@
.. SPDX-License-Identifier: GPL-2.0
================
EISA bus support
================
+2 -2
View File
@@ -87,8 +87,8 @@ a message and a callback function to the API and return immediately).
struct async_pkt ap;
struct sync_pkt sp;
dc_sync = kzalloc(sizeof(*dc_sync), GFP_KERNEL);
dc_async = kzalloc(sizeof(*dc_async), GFP_KERNEL);
dc_sync = kzalloc_obj(*dc_sync);
dc_async = kzalloc_obj(*dc_async);
/* Populate non-blocking mode client */
dc_async->cl.dev = &pdev->dev;
+1 -1
View File
@@ -42,7 +42,7 @@ Example:
...
my_fh = kzalloc(sizeof(*my_fh), GFP_KERNEL);
my_fh = kzalloc_obj(*my_fh);
...
+14 -8
View File
@@ -28,8 +28,10 @@ Only the low 8 bits of gid are stored. The current version of
mkcramfs simply truncates to 8 bits, which is a potential security
issue.
Hard links are supported, but hard linked files
will still have a link count of 1 in the cramfs image.
Hard links are not preserved. mkcramfs deduplicates files with
identical content, but two names for the same on-disk inode in the
source tree become two separate (content-shared) entries in the
image, and cramfs always reports a link count of 1.
Cramfs directories have no ``.`` or ``..`` entries. Directories (like
every other file on cramfs) always have a link count of 1. (There's
@@ -40,12 +42,16 @@ No timestamps are stored in a cramfs, so these default to the epoch
the update lasts only as long as the inode is cached in memory, after
which the timestamp reverts to 1970, i.e. moves backwards in time.
Currently, cramfs must be written and read with architectures of the
same endianness, and can be read only by kernels with PAGE_SIZE
== 4096. At least the latter of these is a bug, but it hasn't been
decided what the best fix is. For the moment if you have larger pages
you can just change the #define in mkcramfs.c, so long as you don't
mind the filesystem becoming unreadable to future kernels.
The on-disk layout is host-endian: the kernel does not swab, and
refuses to mount an image whose endianness does not match the CPU.
For cross-builds, mkcramfs -B / -L forces the output endianness so
that a host of one endianness can produce an image for a target of
the other.
The on-disk block size is fixed at 4096 bytes. On systems with a
larger PAGE_SIZE you can change the #define in mkcramfs.c, with the
caveat that the resulting image will only be readable on kernels
configured for the same PAGE_SIZE.
Memory Mapped cramfs image
+1 -1
View File
@@ -570,7 +570,7 @@ write_info: yes dqonoff_sem
FS recursion means calling ->quota_read() and ->quota_write() from superblock
operations.
More details about quota locking can be found in fs/dquot.c.
More details about quota locking can be found in fs/quota/dquot.c.
vm_operations_struct
====================
+9 -9
View File
@@ -23,13 +23,13 @@ fixes/update part 1.1 Stefani Seibold <stefani@seibold.net> June 9 2009
1 Collecting System Information
1.1 Process-Specific Subdirectories
1.2 Kernel data
1.3 IDE devices in /proc/ide
1.4 Networking info in /proc/net
1.5 SCSI info
1.6 Parallel port info in /proc/parport
1.7 TTY info in /proc/tty
1.8 Miscellaneous kernel statistics in /proc/stat
1.9 Ext4 file system parameters
1.3 Networking info in /proc/net
1.4 SCSI info
1.5 Parallel port info in /proc/parport
1.6 TTY info in /proc/tty
1.7 Miscellaneous kernel statistics in /proc/stat
1.8 Ext4 file system parameters
1.9 /proc/consoles - Shows registered system consoles
2 Modifying System Parameters
@@ -119,7 +119,7 @@ PTRACE_MODE_ATTACH permissions; CAP_PERFMON capability does not grant access
to /proc/PID/mem for other processes.
Note that an open file descriptor to /proc/<pid> or to any of its
contained files or subdirectories does not prevent <pid> being reused
contained files or subdirectories does not prevent <pid> from being reused
for some other process in the event that <pid> exits. Operations on
open /proc/<pid> file descriptors corresponding to dead processes
never act on any new process that the kernel may, through chance, have
@@ -2212,7 +2212,7 @@ the process is maintaining. Example output::
| lr-------- 1 root root 64 Jan 27 11:24 400000-41a000 -> /usr/bin/ls
The name of a link represents the virtual memory bounds of a mapping, i.e.
vm_area_struct::vm_start-vm_area_struct::vm_end.
vm_area_struct::vm_start - vm_area_struct::vm_end.
The main purpose of the map_files is to retrieve a set of memory mapped
files in a fast way instead of parsing /proc/<pid>/maps or
+1 -1
View File
@@ -568,7 +568,7 @@ ENOSPC:
EPERM/EACCES:
Returned for an operation that is valid, but needs more privileges.
E.g. root-only or much more common, DRM master-only operations return
this when called by unpriviledged clients. There's no clear
this when called by unprivileged clients. There's no clear
difference between EACCES and EPERM.
ENODEV:
+31 -6
View File
@@ -30,11 +30,36 @@ Check the datasheet for details.
sysfs-Interface
---------------
================ =================
in0_input vdd voltage input
in[1-8]_input analog 1-8 input
temp1_input temperature input
================ =================
================ =================================
in0_input vdd voltage input
in0_min vdd low limit
in0_max vdd high limit
in0_alarm vdd alarm
in[1-8]_input analog 1-8 input
in[1-8]_min analog input low limit
in[1-8]_max analog input high limit
in[1-8]_alarm analog input alarm
temp1_input internal temperature input
temp1_min internal temperature low limit
temp1_max internal temperature high limit
temp1_min_alarm internal temperature low alarm
temp1_max_alarm internal temperature high alarm
================ =================================
If the external temperature sensor is enabled, the following attributes are
also available:
================ ================================================
temp2_input external temperature input
temp2_min external temperature low limit
temp2_max external temperature high limit
temp2_min_alarm external temperature low alarm
temp2_max_alarm external temperature high alarm
temp2_fault external temperature sensor fault
================ ================================================
If the external temperature sensor is enabled, analog inputs in1 and in2 are
not available.
Besides standard interfaces, this driver adds (0 = off, 1 = on):
@@ -47,4 +72,4 @@ Besides standard interfaces, this driver adds (0 = off, 1 = on):
Notes
-----
SPI, external temperature sensor and limit registers are not supported yet.
SPI is not supported yet.
@@ -0,0 +1,56 @@
.. SPDX-License-Identifier: GPL-2.0-or-later
Kernel driver arctic_fan_controller
=====================================
Supported devices:
* ARCTIC Fan Controller (USB HID, VID 0x3904, PID 0xF001)
Author: Aureo Serrano de Souza <aureo.serrano@arctic.de>
Description
-----------
This driver provides hwmon support for the ARCTIC Fan Controller, a USB
Custom HID device with 10 fan channels. The device sends IN reports about
once per second containing current RPM values (bytes 11-30, 10 x uint16 LE).
Fan speed control is manual-only: the device does not change PWM
autonomously; it only applies a new duty cycle when it receives an OUT
report from the host.
After the device applies an OUT report, it sends back a 2-byte ACK IN
report (Report ID 0x02, byte 1 = 0x00 on success) confirming the command
was applied.
Usage notes
-----------
Since it is a USB device, hotplug is supported. The device is autodetected.
The device does not support GET_REPORT, so the driver cannot read back the
current hardware PWM state at probe time. The cached PWM values (readable
via pwm[1-10]) start at 0 and reflect only values that have been
successfully written. Because each OUT report carries all 10 channel values,
writing a single channel also sends the cached values for all other channels.
Users should set all channels to the desired values before relying on the
cached state.
On system suspend, the device may lose power and reset its PWM channels to
hardware defaults. The driver clears its cached duty values on resume so
that reads reflect the unknown hardware state rather than stale pre-suspend
values. Userspace is responsible for re-applying the desired duty cycles
after resume.
Sysfs entries
-------------
================ ==============================================================
fan[1-10]_input Fan speed in RPM (read-only). Updated from IN reports at ~1 Hz.
pwm[1-10] PWM duty cycle (0-255). Write: sends an OUT report setting the
duty cycle (scaled from 0-255 to 0-100% for the device);
the cached value is updated only after the device ACKs the
command with a success status. Read: returns the last
successfully written value; initialized to 0 at driver load
and after resume (hardware state unknown).
================ ==============================================================
+3
View File
@@ -29,9 +29,12 @@ Supported boards:
* ROG MAXIMUS XI HERO
* ROG MAXIMUS XI HERO (WI-FI)
* ROG MAXIMUS Z690 FORMULA
* ROG MAXIMUS Z790 EXTREME
* ROG STRIX B550-E GAMING
* ROG STRIX B550-I GAMING
* ROG STRIX B650E-E GAMING WIFI
* ROG STRIX B650E-I GAMING WIFI
* ROG STRIX B850-E GAMING WIFI
* ROG STRIX B850-I GAMING WIFI
* ROG STRIX X470-F GAMING
* ROG STRIX X470-I GAMING
+4 -4
View File
@@ -22,8 +22,7 @@ Supported chips:
Intel 64 and IA-32 Architectures Software Developer's Manual
Volume 3A: System Programming Guide
http://softwarecommunity.intel.com/Wiki/Mobility/720.htm
(https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html)
Author: Rudolf Marek
@@ -51,12 +50,13 @@ All Sysfs entries are named with their core_id (represented here by 'X').
================= ========================================================
tempX_input Core temperature (in millidegrees Celsius).
tempX_max All cooling devices should be turned on (on Core2).
tempX_max Maximum recommended operating temperature (Tcontrol).
All cooling devices should be turned on.
tempX_crit Maximum junction temperature (in millidegrees Celsius).
tempX_crit_alarm Set when Out-of-spec bit is set, never clears.
Correct CPU operation is no longer guaranteed.
tempX_label Contains string "Core X", where X is processor
number. For Package temp, this will be "Physical id Y",
number. For Package temp, this will be "Package id Y",
where Y is the package number.
================= ========================================================
+81
View File
@@ -0,0 +1,81 @@
.. SPDX-License-Identifier: GPL-2.0-or-later
Kernel driver d1u74t
====================
Supported chips:
* Murata D1U74T
Prefix: 'd1u74t'
Addresses scanned: -
Datasheet: Publicly available at the Murata website
Authors:
Abdurrahman Hussain <abdurrahman@nexthop.ai>
Description
-----------
This driver implements support for Murata D1U74T Power Supply with
PMBus support.
The driver is a client driver to the core PMBus driver.
Please see Documentation/hwmon/pmbus.rst for details on PMBus client drivers.
Usage Notes
-----------
This driver does not auto-detect devices. You will have to instantiate the
devices explicitly. Please see Documentation/i2c/instantiating-devices.rst for
details.
Sysfs entries
-------------
======================= ======================================================
curr1_label "iin"
curr1_input Measured input current
curr1_alarm Input current alarm
curr1_rated_max Maximum rated input current
curr2_label "iout1"
curr2_input Measured output current
curr2_max Maximum output current
curr2_max_alarm Output current high alarm
curr2_crit Critical high output current
curr2_crit_alarm Output current critical high alarm
curr2_rated_max Maximum rated output current
in1_label "vin"
in1_input Measured input voltage
in1_alarm Input voltage alarm
in1_rated_min Minimum rated input voltage
in1_rated_max Maximum rated input voltage
in2_label "vout1"
in2_input Measured output voltage
in2_alarm Output voltage alarm
in2_rated_min Minimum rated output voltage
in2_rated_max Maximum rated output voltage
power1_label "pin"
power1_input Measured input power
power1_alarm Input power alarm
power1_rated_max Maximum rated input power
temp[1-3]_input Measured temperature
temp[1-3]_max Maximum temperature
temp[1-3]_max_alarm Maximum temperature alarm
temp[1-3]_rated_max Maximum rated temperature
fan1_alarm Fan 1 warning
fan1_fault Fan 1 fault
fan1_input Fan 1 speed in RPM
fan1_target Fan 1 target
======================= ======================================================
+81
View File
@@ -0,0 +1,81 @@
.. SPDX-License-Identifier: GPL-2.0-or-later
Kernel driver e50sn12051
========================
Supported chips:
* Delta E50SN12051
Prefix: 'e50sn12051'
Addresses scanned: -
Datasheet:
Provided by Delta upon request and NDA
Description
-----------
E50SN12051 is a 600W non-isolated 1/8th brick DC-DC power module.
This driver supports the E50SN12051 PMBus compliant monitor device.
The device provides measurements for:
* Input voltage
* Output current
* Output voltage
* Temperature
The driver is based on the PMBus core and exposes standard hwmon
sysfs attributes.
Sysfs attributes
----------------
======================= =======================================================
curr1_label "iout1"
curr1_crit Critical maximum current.
From IOUT_OC_FAULT_LIMIT register.
curr1_crit_alarm Current critical high alarm.
From IOUT_OC_FAULT status.
curr1_input Measured current.
From READ_IOUT register.
curr1_max Maximum current.
From IOUT_OC_WARN_LIMIT register.
curr1_max_alarm Current high alarm.
From IOUT_OC_WARN_LIMIT status.
in1_label "vin"
in1_alarm Input voltage alarm.
in1_input Measured voltage.
From READ_VIN register.
in2_label "vout1"
in2_crit Critical maximum voltage.
From VOUT_OV_FAULT_LIMIT register.
in2_crit_alarm Voltage critical high alarm.
From VOLTAGE_OV_FAULT status.
in2_input Measured voltage.
From READ_VOUT register.
in2_max Maximum voltage.
From VOUT_OV_WARN_LIMIT register.
in2_max_alarm Voltage high alarm.
From VOLTAGE_OV_WARNING status.
temp1_crit Critical high temperature.
From OT_FAULT_LIMIT register.
temp1_crit_alarm Module temperature critical high alarm.
Set by comparing READ_TEMPERATURE_1 with OT_FAULT_LIMIT
if TEMP_OT_FAULT status is set.
temp1_input Measured module's hot spot temperature.
From READ_TEMPERATURE_1 register.
temp1_max Maximum temperature.
From OT_WARN_LIMIT register.
temp1_max_alarm Module temperature high alarm.
Set by comparing READ_TEMPERATURE_1 with OT_WARN_LIMIT if
TEMP_OT_WARNING status is set.
======================= =======================================================
+67
View File
@@ -0,0 +1,67 @@
.. SPDX-License-Identifier: GPL-2.0-or-later
Kernel driver emc1812
=====================
Supported chips:
* Microchip EMC1812, EMC1813, EMC1814, EMC1815, EMC1833
Prefix: 'emc1812'
Datasheets:
- https://ww1.microchip.com/downloads/aemDocuments/documents/MSLD/ProductDocuments/DataSheets/EMC1812-3-4-5-33-Data-Sheet-DS20005751.pdf
Author:
Marius Cristea <marius.cristea@microchip.com>
Description
-----------
The Microchip EMC181x/33 chips contain up to 4 remote temperature sensors
and one internal.
- The EMC1812 is a single channel remote temperature sensor.
- The EMC1813 and EMC1833 are dual channel remote temperature sensor. The
remote channels for this selection of devices can support substrate diodes,
discrete diode-connected transistors or CPU/GPU thermal diodes.
- The EMC1814 is a three channel remote temperature sensor that supports
Anti-Parallel Diode (APD) only on one channel. For the channel that does not
support APD functionality, substrate diodes, discrete diode-connected
transistors or CPU/GPU thermal diodes are supported. For the channel that
supports APD, only discrete diode-connected transistors may be implemented.
However, if APD is disabled on the EMC1814, then the channel that supports
APD will be functional with substrate diodes, discrete diode-connected
transistors and CPU/GPU thermal diodes.
- The EMC1815 is a four channel remote temperature sensor.
The EMC1815 and EMC1833 support APD on all channels. When APD is enabled,
the channels support only diode-connected transistors. If APD is disabled,
then the channels will support substrate transistors, discrete diode-connected
transistors and CPU/GPU thermal diodes.
Note: Disabling APD functionality to implement substrate diodes on devices
that support APD eliminates the benefit of APD (two diodes on one channel).
The chips implement three limits for each sensor: low (tempX_min), high
(tempX_max) and critical (tempX_crit). The chips also implement an
hysteresis mechanism which applies to all limits. The relative difference
is stored in a single register on the chip, which means that the relative
difference between the limit and its hysteresis is always the same for
all three limits.
This implementation detail implies the following:
* When setting a limit, its hysteresis will automatically follow, the
difference staying unchanged. For example, if the old critical limit was
80 degrees C, and the hysteresis was 75 degrees C, and you change the
critical limit to 90 degrees C, then the hysteresis will automatically
change to 85 degrees C.
* The hysteresis values can't be set independently. We decided to make
only tempX_crit_hyst writable, while all other hysteresis attributes
are read-only. Setting tempX_crit_hyst writes the difference between
tempX_crit_hyst and tempX_crit into the chip, and the same relative
hysteresis applies automatically to all other limits.
* The limits should be set before the hysteresis. At power up the device
starts with 10 degree hysteresis.
+7
View File
@@ -35,3 +35,10 @@ temp1_input: temperature input
humidity1_input: humidity input
heater_enable: heater control
=================== =================
debugfs-Interface
-----------------
=================== =========================================
serial_number: unique serial number of the sensor
=================== =========================================
+4 -3
View File
@@ -85,9 +85,10 @@ removal.
When using ``[devm_]hwmon_device_register_with_info()`` to register the
hardware monitoring device, accesses using the associated access functions
are serialised by the hardware monitoring core. If a driver needs locking
for other functions such as interrupt handlers or for attributes which are
fully implemented in the driver, hwmon_lock() and hwmon_unlock() can be used
to ensure that calls to those functions are serialized.
for other functions such as interrupt handlers, attributes which are fully
implemented in the driver, or debugfs functions, hwmon_lock() and hwmon_unlock()
can be used to ensure that calls to those functions are serialized. Those
functions also support guard() and scoped_guard() variants.
Using devm_hwmon_device_register_with_info()
--------------------------------------------
+4
View File
@@ -106,4 +106,8 @@ energy1_input Energy measurement (uJ)
temp1_input Die temperature measurement (mC)
temp1_max Maximum die temperature threshold (mC)
temp1_max_alarm Maximum die temperature alarm
samples ADC averaging count (1, 4, 16, 64, 128, 256, 512, 1024)
update_interval Total ADC conversion cycle time including averaging (ms)
update_interval_us Total ADC conversion cycle time including averaging (us)
======================= =======================================================
+9
View File
@@ -43,6 +43,7 @@ Hardware Monitoring Kernel Drivers
amc6821
aps-379
aquacomputer_d5next
arctic_fan_controller
asb100
asc7621
aspeed-g6-pwm-tach
@@ -60,6 +61,7 @@ Hardware Monitoring Kernel Drivers
corsair-psu
cros_ec_hwmon
crps
d1u74t
da9052
da9055
dell-smm-hwmon
@@ -68,7 +70,9 @@ Hardware Monitoring Kernel Drivers
drivetemp
ds1621
ds620
e50sn12051
emc1403
emc1812
emc2103
emc2305
emc6w201
@@ -145,7 +149,9 @@ Hardware Monitoring Kernel Drivers
ltc4260
ltc4261
ltc4282
ltc4283
ltc4286
lx1308
macsmc-hwmon
max127
max15301
@@ -158,6 +164,8 @@ Hardware Monitoring Kernel Drivers
max197
max20730
max20751
max20830
max20860a
max31722
max31730
max31760
@@ -185,6 +193,7 @@ Hardware Monitoring Kernel Drivers
mp2925
mp29502
mp2975
mp2985
mp2993
mp5023
mp5920
+16
View File
@@ -181,3 +181,19 @@ is supported by this driver, other specific enhancements are not.
The LM77 is not supported, contrary to what we pretended for a long time.
Both chips are simply not compatible, value encoding differs.
sysfs-Interface
---------------
The following list includes the sysfs attributes that the driver provides, their
permissions and a short description:
=============================== ======= ===========================================
Name Perm Description
=============================== ======= ===========================================
temp1_input RO Temperature input
temp1_label RO Descriptive name for the sensor
temp1_max RW Maximum temperature
temp1_max_hyst RW Maximum hysteresis temperature
update_interval RW Update conversions interval in milliseconds
=============================== ======= ===========================================
+267
View File
@@ -0,0 +1,267 @@
.. SPDX-License-Identifier: GPL-2.0-only
Kernel drivers ltc4283
==========================================
Supported chips:
* Analog Devices LTC4283
Prefix: 'ltc4283'
Addresses scanned: -
Datasheet:
https://www.analog.com/media/en/technical-documentation/data-sheets/ltc4283.pdf
Author: Nuno Sá <nuno.sa@analog.com>
Description
___________
The LTC4283 negative voltage hot swap controller drives an external N-channel
MOSFET to allow a board to be safely inserted and removed from a live backplane.
The device features programmable current limit with foldback and independently
adjustable inrush current to optimize the MOSFET safe operating area (SOA). The
SOA timer limits MOSFET temperature rise for reliable protection against
overstresses. An I2C interface and onboard gear-shift ADC allow monitoring of
board current, voltage, power, energy, and fault status. Additional features
respond to input UV/OV, interrupt the host when a fault has occurred, notify
when output power is good, detect insertion of a board, turn off the MOSFET
if an external supply monitor fails to indicate power good within a timeout
period, and auto-reboot after a programmable delay following a host commanded
turn-off.
Sysfs entries
_____________
The following attributes are supported. Limits are read-write and all the other
attributes are read-only. Note that the VADIOx channels might not be available
if the ADIO pins are used as GPIOs (naturally also affects the respective
differential channels).
======================= ==========================================
in0_lcrit_alarm Critical Undervoltage alarm
in0_crit_alarm Critical Overvoltage alarm
in0_reset_history Clears Under and Overvoltage fault logs.
in0_label Channel label (VIN)
in1_input Output voltage (mV).
in1_min Undervoltage threshold
in1_max Overvoltage threshold
in1_lowest Lowest measured voltage
in1_highest Highest measured voltage
in1_reset_history Write 1 to reset history.
in1_min_alarm Undervoltage alarm
in1_max_alarm Overvoltage alarm
in1_label Channel label (VPWR)
in2_input Output voltage (mV).
in2_min Undervoltage threshold
in2_max Overvoltage threshold
in2_lowest Lowest measured voltage
in2_highest Highest measured voltage
in2_reset_history Write 1 to reset history.
in2_min_alarm Undervoltage alarm
in2_max_alarm Overvoltage alarm
in2_enable Enable/Disable monitoring.
in2_label Channel label (VADI1)
in3_input Output voltage (mV).
in3_min Undervoltage threshold
in3_max Overvoltage threshold
in3_lowest Lowest measured voltage
in3_highest Highest measured voltage
in3_reset_history Write 1 to reset history.
in3_min_alarm Undervoltage alarm
in3_max_alarm Overvoltage alarm
in3_enable Enable/Disable monitoring.
in3_label Channel label (VADI2)
in4_input Output voltage (mV).
in4_min Undervoltage threshold
in4_max Overvoltage threshold
in4_lowest Lowest measured voltage
in4_highest Highest measured voltage
in4_reset_history Write 1 to reset history.
in4_min_alarm Undervoltage alarm
in4_max_alarm Overvoltage alarm
in4_enable Enable/Disable monitoring.
in4_label Channel label (VADI3)
in5_input Output voltage (mV).
in5_min Undervoltage threshold
in5_max Overvoltage threshold
in5_lowest Lowest measured voltage
in5_highest Highest measured voltage
in5_reset_history Write 1 to reset history.
in5_min_alarm Undervoltage alarm
in5_max_alarm Overvoltage alarm
in5_enable Enable/Disable monitoring.
in5_label Channel label (VADI4)
in6_input Output voltage (mV).
in6_min Undervoltage threshold
in6_max Overvoltage threshold
in6_lowest Lowest measured voltage
in6_highest Highest measured voltage
in6_reset_history Write 1 to reset history.
in6_min_alarm Undervoltage alarm
in6_max_alarm Overvoltage alarm
in6_enable Enable/Disable monitoring.
in6_label Channel label (VADIO1)
in7_input Output voltage (mV).
in7_min Undervoltage threshold
in7_max Overvoltage threshold
in7_lowest Lowest measured voltage
in7_highest Highest measured voltage
in7_reset_history Write 1 to reset history.
in7_min_alarm Undervoltage alarm
in7_max_alarm Overvoltage alarm
in7_enable Enable/Disable monitoring.
in7_label Channel label (VADIO2)
in8_input Output voltage (mV).
in8_min Undervoltage threshold
in8_max Overvoltage threshold
in8_lowest Lowest measured voltage
in8_highest Highest measured voltage
in8_reset_history Write 1 to reset history.
in8_min_alarm Undervoltage alarm
in8_max_alarm Overvoltage alarm
in8_enable Enable/Disable monitoring.
in8_label Channel label (VADIO3)
in9_input Output voltage (mV).
in9_min Undervoltage threshold
in9_max Overvoltage threshold
in9_lowest Lowest measured voltage
in9_highest Highest measured voltage
in9_reset_history Write 1 to reset history.
in9_min_alarm Undervoltage alarm
in9_max_alarm Overvoltage alarm
in9_enable Enable/Disable monitoring.
in9_label Channel label (VADIO4)
in10_input Output voltage (mV).
in10_min Undervoltage threshold
in10_max Overvoltage threshold
in10_lowest Lowest measured voltage
in10_highest Highest measured voltage
in10_reset_history Write 1 to reset history.
in10_min_alarm Undervoltage alarm
in10_max_alarm Overvoltage alarm
in10_enable Enable/Disable monitoring.
in10_label Channel label (DRNS)
in11_input Output voltage (mV).
in11_min Undervoltage threshold
in11_max Overvoltage threshold
in11_lowest Lowest measured voltage
in11_highest Highest measured voltage
in11_reset_history Write 1 to reset history.
Also clears fet bad and short fault logs.
in11_min_alarm Undervoltage alarm
in11_max_alarm Overvoltage alarm
in11_enable Enable/Disable monitoring
in11_fault Failure in the MOSFET. Either bad or shorted FET.
in11_label Channel label (DRAIN)
in12_input Output voltage (mV).
in12_min Undervoltage threshold
in12_max Overvoltage threshold
in12_lowest Lowest measured voltage
in12_highest Highest measured voltage
in12_reset_history Write 1 to reset history.
in12_min_alarm Undervoltage alarm
in12_max_alarm Overvoltage alarm
in12_enable Enable/Disable monitoring.
in12_label Channel label (ADIN2-ADIN1)
in13_input Output voltage (mV).
in13_min Undervoltage threshold
in13_max Overvoltage threshold
in13_lowest Lowest measured voltage
in13_highest Highest measured voltage
in13_reset_history Write 1 to reset history.
in13_min_alarm Undervoltage alarm
in13_max_alarm Overvoltage alarm
in13_enable Enable/Disable monitoring.
in13_label Channel label (ADIN4-ADIN3)
in14_input Output voltage (mV).
in14_min Undervoltage threshold
in14_max Overvoltage threshold
in14_lowest Lowest measured voltage
in14_highest Highest measured voltage
in14_reset_history Write 1 to reset history.
in14_min_alarm Undervoltage alarm
in14_max_alarm Overvoltage alarm
in14_enable Enable/Disable monitoring.
in14_label Channel label (ADIO2-ADIO1)
in15_input Output voltage (mV).
in15_min Undervoltage threshold
in15_max Overvoltage threshold
in15_lowest Lowest measured voltage
in15_highest Highest measured voltage
in15_reset_history Write 1 to reset history.
in15_min_alarm Undervoltage alarm
in15_max_alarm Overvoltage alarm
in15_enable Enable/Disable monitoring.
in15_label Channel label (ADIO4-ADIO3)
curr1_input Sense current (mA)
curr1_min Undercurrent threshold
curr1_max Overcurrent threshold
curr1_lowest Lowest measured current
curr1_highest Highest measured current
curr1_reset_history Write 1 to reset curr1 history.
Also clears overcurrent fault logs.
curr1_min_alarm Undercurrent alarm
curr1_max_alarm Overcurrent alarm
curr1_crit_alarm Critical Overcurrent alarm
curr1_label Channel label (ISENSE)
power1_input Power (in uW)
power1_min Low power threshold
power1_max High power threshold
power1_input_lowest Historical minimum power use
power1_input_highest Historical maximum power use
power1_reset_history Write 1 to reset power1 history.
Also clears power fault logs.
power1_min_alarm Low power alarm
power1_max_alarm High power alarm
power1_label Channel label (Power)
energy1_input Measured energy over time (in microJoule)
energy1_enable Enable/Disable Energy accumulation
======================= ==========================================
DebugFs entries
_______________
The chip also has a fault log register where failures can be logged. Hence,
as these are logging events, we give access to them in debugfs. Note that
even if some failure is detected in these logs, it does necessarily mean
that the failure is still present. As mentioned in the proper Sysfs entries,
these logs can be cleared by writing in the proper reset_history attribute.
.. warning:: The debugfs interface is subject to change without notice
and is only available when the kernel is compiled with
``CONFIG_DEBUG_FS`` defined.
``/sys/kernel/debug/i2c/i2c-[X]/[X]-addr/``
contains the following attributes:
======================= ==========================================
power1_failed_fault_log Set to 1 by a power1 fault occurring.
power1_good_input_fault_log Set to 1 by a power1 good input fault occurring at PGIO3.
in11_fet_short_fault_log Set to 1 when a FET-short fault occurs.
in11_fet_bad_fault_log Set to 1 when a FET-BAD fault occurs.
in0_lcrit_fault_log Set to 1 by a VIN undervoltage fault occurring.
in0_crit_fault_log Set to 1 by a VIN overvoltage fault occurring.
curr1_crit_fault_log Set to 1 by an overcurrent fault occurring.
======================= ==========================================
+90
View File
@@ -0,0 +1,90 @@
.. SPDX-License-Identifier: GPL-2.0-or-later
Kernel driver lx1308
====================
Supported chips:
* Luxshare LX1308
Prefixes: 'lx1308'
Addresses scanned: -
Datasheet: Datasheet is not publicly available.
Author: Brian Chiang <chiang.brian@inventec.com>
Description
-----------
The LX1308 is a high-efficiency, non-isolated, regulated 12V, 860W,
digital DC/DC power module. The module operates from a 40V to 60V DC
primary bus and provides a 12V regulated output voltage. It can deliver
up to 860W continuous and 1300W in transient.
The module has slow OCP and fast OCP. If the module output current is higher
than slow OCP set point and the lasting time is also longer than the delay,
the module will shut down and retry 3 time, if the fault still exists then
module enter latch mode.
If the module output current is higher than fast OCP set point then it shut
down and enter latch mode.
The driver is a client driver to the core PMBus driver.
Please see Documentation/hwmon/pmbus.rst for details on PMBus client drivers.
Usage Notes
-----------
This driver does not auto-detect devices. You will have to instantiate the
devices explicitly. Please see Documentation/i2c/instantiating-devices.rst for
details.
Sysfs entries
-------------
======================= ======================================================
curr1_alarm Input current alarm
curr1_input Input current (IIN)
curr1_label "iin"
curr2_crit Output over current fault threshold (slow OCP, 60ms delay)
curr2_crit_alarm Output over current fault alarm
curr2_input Output current (IOUT)
curr2_label "iout1"
curr2_max Output over current warning threshold (slow OCP, 60ms delay)
curr2_max_alarm Output over current warning alarm
in1_crit Input over voltage fault threshold
in1_crit_alarm Input over voltage fault alarm
in1_input Input voltage (VIN)
in1_label "vin"
in1_lcrit Input under voltage fault threshold
in1_lcrit_alarm Input under voltage fault alarm
in1_max Input over voltage warning threshold
in1_max_alarm Input over voltage warning alarm
in1_min Input under voltage warning threshold
in1_min_alarm Input under voltage warning alarm
in2_crit Output over voltage fault threshold
in2_crit_alarm Output over voltage fault alarm
in2_input Output voltage (VOUT)
in2_label "vout1"
in2_lcrit Output under voltage fault threshold
in2_lcrit_alarm Output under voltage fault alarm
in2_max Output over voltage warning threshold
in2_max_alarm Output over voltage warning alarm
in2_min Output under voltage warning threshold
in2_min_alarm Output under voltage warning alarm
power1_alarm Input power alarm
power1_input Input power (PIN)
power1_label "pin"
power2_input Output power (POUT)
power2_label "pout1"
temp1_crit Over temperature fault threshold
temp1_crit_alarm Over temperature fault alarm
temp1_input Module hot spot temperature
temp1_max Over temperature warning threshold
temp1_max_alarm Over temperature warning alarm
======================= ======================================================
+49
View File
@@ -0,0 +1,49 @@
.. SPDX-License-Identifier: GPL-2.0
Kernel driver max20830
======================
Supported chips:
* Analog Devices MAX20830
Prefix: 'max20830'
Addresses scanned: -
Datasheet: https://www.analog.com/media/en/technical-documentation/data-sheets/max20830.pdf
Author:
- Alexis Czezar Torreno <alexisczezar.torreno@analog.com>
Description
-----------
This driver supports hardware monitoring for Analog Devices MAX20830
Step-Down Switching Regulator with PMBus Interface.
The MAX20830 is a 2.7V to 16V, 30A fully integrated step-down DC-DC switching
regulator. Through the PMBus interface, the device can monitor input/output
voltages, output current and temperature.
The driver is a client driver to the core PMBus driver. Please see
Documentation/hwmon/pmbus.rst for details on PMBus client drivers.
Sysfs entries
-------------
================= ========================================
in1_label "vin"
in1_input Measured input voltage
in1_alarm Input voltage alarm
in2_label "vout1"
in2_input Measured output voltage
in2_alarm Output voltage alarm
curr1_label "iout1"
curr1_input Measured output current
curr1_alarm Output current alarm
temp1_input Measured temperature
temp1_alarm Chip temperature alarm
================= ========================================
+57
View File
@@ -0,0 +1,57 @@
.. SPDX-License-Identifier: GPL-2.0
Kernel driver max20860a
=======================
Supported chips:
* Analog Devices MAX20860A
Prefix: 'max20860a'
Addresses scanned: -
Datasheet: https://www.analog.com/en/products/max20860a.html
Author:
- Syed Arif <arif.syed@hpe.com>
- Sanman Pradhan <psanman@juniper.net>
Description
-----------
This driver supports hardware monitoring for Analog Devices MAX20860A
Step-Down Switching Regulator with PMBus Interface.
The MAX20860A is a fully integrated step-down DC-DC switching regulator.
Through the PMBus interface, the device can monitor input/output voltages,
output current and temperature.
The driver is a client driver to the core PMBus driver. Please see
Documentation/hwmon/pmbus.rst for details on PMBus client drivers.
Usage Notes
-----------
This driver does not auto-detect devices. You will have to instantiate
the devices explicitly.
Sysfs entries
-------------
================= ========================================
in1_label "vin"
in1_input Measured input voltage
in1_alarm Input voltage alarm
in2_label "vout1"
in2_input Measured output voltage
in2_alarm Output voltage alarm
curr1_label "iout1"
curr1_input Measured output current
curr1_alarm Output current alarm
temp1_input Measured temperature
temp1_alarm Chip temperature alarm
temp2_input Measured temperature (secondary)
================= ========================================
+1 -1
View File
@@ -1,4 +1,4 @@
Kernel driver max31790
Kernel driver max31730
======================
Supported chips:
+18 -9
View File
@@ -19,6 +19,14 @@ Supported chips:
Datasheet: -
* ADI ADPM12250
Prefixes: 'adpm12250'
Addresses scanned: -
Datasheet: -
* Maxim MAX34440
Prefixes: 'max34440'
@@ -87,11 +95,11 @@ This driver supports multiple devices: hardware monitoring for Maxim MAX34440
PMBus 6-Channel Power-Supply Manager, MAX34441 PMBus 5-Channel Power-Supply
Manager and Intelligent Fan Controller, and MAX34446 PMBus Power-Supply Data
Logger; PMBus Voltage Monitor and Sequencers for MAX34451, MAX34460, and
MAX34461; PMBus DC/DC Power Module ADPM12160, and ADPM12200. The MAX34451
supports monitoring voltage or current of 12 channels based on GIN pins. The
MAX34460 supports 12 voltage channels, and the MAX34461 supports 16 voltage
channels. The ADPM12160, and ADPM12200 also monitors both input and output
of voltage and current.
MAX34461; PMBus DC/DC Power Module ADPM12160, ADPM12200, and ADPM12250. The
MAX34451 supports monitoring voltage or current of 12 channels based on GIN
pins. The MAX34460 supports 12 voltage channels, and the MAX34461 supports 16
voltage channels. The ADPM12160, ADPM12200, and ADPM12250 also monitors both
input and output of voltage and current.
The driver is a client driver to the core PMBus driver. Please see
Documentation/hwmon/pmbus.rst for details on PMBus client drivers.
@@ -149,7 +157,7 @@ in[1-6]_reset_history Write any value to reset history.
.. note::
- MAX34446 only supports in[1-4].
- ADPM12160, and ADPM12200 only supports in[1-2]. Label is "vin1"
- ADPM12160, ADPM12200, and ADPM12250 only supports in[1-2]. Label is "vin1"
and "vout1" respectively.
Curr
@@ -172,8 +180,9 @@ curr[1-6]_reset_history Write any value to reset history.
- in6 and curr6 attributes only exist for MAX34440.
- MAX34446 only supports curr[1-4].
- For ADPM12160, and ADPM12200, curr[1] is "iin1" and curr[2-6]
are "iout[1-5]".
- For ADPM12160, ADPM12200, and ADPM12250, curr[1] is "iin1"
- For ADPM12160, and ADPM12200 curr[2-6] are "iout[1-5]".
- For ADPM12250, curr[2-4] are "iout[1-3]".
Power
~~~~~
@@ -209,7 +218,7 @@ temp[1-8]_reset_history Write any value to reset history.
.. note::
- temp7 and temp8 attributes only exist for MAX34440.
- MAX34446 only supports temp[1-3].
- ADPM12160, and ADPM12200 only supports temp[1].
- ADPM12160, ADPM12200, and ADPM12250 only supports temp[1].
.. note::
+147
View File
@@ -0,0 +1,147 @@
.. SPDX-License-Identifier: GPL-2.0
Kernel driver mp2985
====================
Supported chips:
* MPS mp2985
Prefix: 'mp2985'
Author:
Wensheng Wang <wenswang@yeah.net>
Description
-----------
This driver implements support for Monolithic Power Systems, Inc. (MPS)
MP2985 Dual Loop Digital Multi-phase Controller.
Device compliant with:
- PMBus rev 1.3 interface.
The driver exports the following attributes via the 'sysfs' files
for input voltage:
**in1_input**
**in1_label**
**in1_crit**
**in1_crit_alarm**
**in1_lcrit**
**in1_lcrit_alarm**
**in1_max**
**in1_max_alarm**
**in1_min**
**in1_min_alarm**
The driver provides the following attributes for output voltage:
**in2_input**
**in2_label**
**in2_crit**
**in2_crit_alarm**
**in2_lcrit**
**in2_lcrit_alarm**
**in3_input**
**in3_label**
**in3_crit**
**in3_crit_alarm**
**in3_lcrit**
**in3_lcrit_alarm**
The driver provides the following attributes for input current:
**curr1_input**
**curr1_label**
The driver provides the following attributes for output current:
**curr2_input**
**curr2_label**
**curr2_crit**
**curr2_crit_alarm**
**curr2_max**
**curr2_max_alarm**
**curr3_input**
**curr3_label**
**curr3_crit**
**curr3_crit_alarm**
**curr3_max**
**curr3_max_alarm**
The driver provides the following attributes for input power:
**power1_input**
**power1_label**
**power2_input**
**power2_label**
The driver provides the following attributes for output power:
**power3_input**
**power3_label**
**power4_input**
**power4_label**
The driver provides the following attributes for temperature:
**temp1_input**
**temp1_crit**
**temp1_crit_alarm**
**temp1_max**
**temp1_max_alarm**
**temp2_input**
**temp2_crit**
**temp2_crit_alarm**
**temp2_max**
**temp2_max_alarm**
+16
View File
@@ -24,6 +24,22 @@ speed sensors.
Smart Fan™ speed control is available via pwmX_auto_point attributes.
Sysfs Attributes
----------------
Sysfs attributes unique to this chip are documented below. For common
attributes, see Documentation/hwmon/sysfs-interface.rst.
step_up_time
Time interval between successive duty cycle increases
when in Smart Fan mode. Specified in milliseconds and
rounded to intervals of 100 in the range 100-25500.
step_down_time
Time interval between successive duty cycle decreases
when in Smart Fan mode. Specified in milliseconds and
rounded to intervals of 100 in the range 100-25500.
Tested Boards and BIOS Versions
-------------------------------
Loaded 100 of 867 files, more files were not shown because too many files have changed in this diff. Show more