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:
commit
ae567e8652
867 files changed
+19737
-13940
No files matched your search
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 |
|
||||
|
||||
@@ -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>...]]
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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() |
|
||||
+-------------------+-----------+-----------------+-------------------------+
|
||||
|
||||
@@ -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").
|
||||
|
||||
|
||||
@@ -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 }}
|
||||
@@ -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
|
||||
-----------------
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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>;
|
||||
};
|
||||
+4
-1
@@ -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>;
|
||||
};
|
||||
}
|
||||
@@ -1,3 +1,5 @@
|
||||
.. SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
================
|
||||
EISA bus support
|
||||
================
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -42,7 +42,7 @@ Example:
|
||||
|
||||
...
|
||||
|
||||
my_fh = kzalloc(sizeof(*my_fh), GFP_KERNEL);
|
||||
my_fh = kzalloc_obj(*my_fh);
|
||||
|
||||
...
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
====================
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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).
|
||||
================ ==============================================================
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
================= ========================================================
|
||||
|
||||
|
||||
@@ -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
|
||||
======================= ======================================================
|
||||
@@ -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.
|
||||
======================= =======================================================
|
||||
|
||||
@@ -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.
|
||||
@@ -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
|
||||
=================== =========================================
|
||||
@@ -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()
|
||||
--------------------------------------------
|
||||
|
||||
@@ -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)
|
||||
======================= =======================================================
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
=============================== ======= ===========================================
|
||||
@@ -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.
|
||||
======================= ==========================================
|
||||
@@ -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
|
||||
======================= ======================================================
|
||||
@@ -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
|
||||
================= ========================================
|
||||
@@ -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,4 +1,4 @@
|
||||
Kernel driver max31790
|
||||
Kernel driver max31730
|
||||
======================
|
||||
|
||||
Supported chips:
|
||||
|
||||
@@ -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::
|
||||
|
||||
@@ -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**
|
||||
@@ -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
Reference in new issue
Block a user