forked from Minki/linux
Merge branch 'fixes-v5.7' into fixes
This commit is contained in:
commit
4263eb6880
@ -142,10 +142,13 @@ ForEachMacros:
|
||||
- 'for_each_card_auxs'
|
||||
- 'for_each_card_auxs_safe'
|
||||
- 'for_each_card_components'
|
||||
- 'for_each_card_dapms'
|
||||
- 'for_each_card_pre_auxs'
|
||||
- 'for_each_card_prelinks'
|
||||
- 'for_each_card_rtds'
|
||||
- 'for_each_card_rtds_safe'
|
||||
- 'for_each_card_widgets'
|
||||
- 'for_each_card_widgets_safe'
|
||||
- 'for_each_cgroup_storage_type'
|
||||
- 'for_each_child_of_node'
|
||||
- 'for_each_clear_bit'
|
||||
@ -160,6 +163,7 @@ ForEachMacros:
|
||||
- 'for_each_cpu_and'
|
||||
- 'for_each_cpu_not'
|
||||
- 'for_each_cpu_wrap'
|
||||
- 'for_each_dapm_widgets'
|
||||
- 'for_each_dev_addr'
|
||||
- 'for_each_dev_scope'
|
||||
- 'for_each_displayid_db'
|
||||
@ -170,7 +174,6 @@ ForEachMacros:
|
||||
- 'for_each_dpcm_fe'
|
||||
- 'for_each_drhd_unit'
|
||||
- 'for_each_dss_dev'
|
||||
- 'for_each_efi_handle'
|
||||
- 'for_each_efi_memory_desc'
|
||||
- 'for_each_efi_memory_desc_in_map'
|
||||
- 'for_each_element'
|
||||
@ -191,6 +194,7 @@ ForEachMacros:
|
||||
- 'for_each_ip_tunnel_rcu'
|
||||
- 'for_each_irq_nr'
|
||||
- 'for_each_link_codecs'
|
||||
- 'for_each_link_cpus'
|
||||
- 'for_each_link_platforms'
|
||||
- 'for_each_lru'
|
||||
- 'for_each_matching_node'
|
||||
@ -250,6 +254,7 @@ ForEachMacros:
|
||||
- 'for_each_pci_bridge'
|
||||
- 'for_each_pci_dev'
|
||||
- 'for_each_pci_msi_entry'
|
||||
- 'for_each_pcm_streams'
|
||||
- 'for_each_populated_zone'
|
||||
- 'for_each_possible_cpu'
|
||||
- 'for_each_present_cpu'
|
||||
@ -260,9 +265,12 @@ ForEachMacros:
|
||||
- 'for_each_property_of_node'
|
||||
- 'for_each_registered_fb'
|
||||
- 'for_each_reserved_mem_region'
|
||||
- 'for_each_rtd_codec_dai'
|
||||
- 'for_each_rtd_codec_dai_rollback'
|
||||
- 'for_each_rtd_codec_dais'
|
||||
- 'for_each_rtd_codec_dais_rollback'
|
||||
- 'for_each_rtd_components'
|
||||
- 'for_each_rtd_cpu_dais'
|
||||
- 'for_each_rtd_cpu_dais_rollback'
|
||||
- 'for_each_rtd_dais'
|
||||
- 'for_each_set_bit'
|
||||
- 'for_each_set_bit_from'
|
||||
- 'for_each_set_clump8'
|
||||
@ -334,6 +342,7 @@ ForEachMacros:
|
||||
- 'klp_for_each_object'
|
||||
- 'klp_for_each_object_safe'
|
||||
- 'klp_for_each_object_static'
|
||||
- 'kunit_suite_for_each_test_case'
|
||||
- 'kvm_for_each_memslot'
|
||||
- 'kvm_for_each_vcpu'
|
||||
- 'list_for_each'
|
||||
@ -387,6 +396,7 @@ ForEachMacros:
|
||||
- 'of_property_for_each_string'
|
||||
- 'of_property_for_each_u32'
|
||||
- 'pci_bus_for_each_resource'
|
||||
- 'pcm_for_each_format'
|
||||
- 'ping_portaddr_for_each_entry'
|
||||
- 'plist_for_each'
|
||||
- 'plist_for_each_continue'
|
||||
@ -482,7 +492,7 @@ KeepEmptyLinesAtTheStartOfBlocks: false
|
||||
MacroBlockBegin: ''
|
||||
MacroBlockEnd: ''
|
||||
MaxEmptyLinesToKeep: 1
|
||||
NamespaceIndentation: Inner
|
||||
NamespaceIndentation: None
|
||||
#ObjCBinPackProtocolList: Auto # Unknown to clang-format-5.0
|
||||
ObjCBlockIndentWidth: 8
|
||||
ObjCSpaceAfterProperty: true
|
||||
|
2
.mailmap
2
.mailmap
@ -288,6 +288,8 @@ Vladimir Davydov <vdavydov.dev@gmail.com> <vdavydov@virtuozzo.com>
|
||||
Vladimir Davydov <vdavydov.dev@gmail.com> <vdavydov@parallels.com>
|
||||
Takashi YOSHII <takashi.yoshii.zj@renesas.com>
|
||||
Will Deacon <will@kernel.org> <will.deacon@arm.com>
|
||||
Wolfram Sang <wsa@kernel.org> <wsa@the-dreams.de>
|
||||
Wolfram Sang <wsa@kernel.org> <w.sang@pengutronix.de>
|
||||
Yakir Yang <kuankuan.y@gmail.com> <ykk@rock-chips.com>
|
||||
Yusuke Goda <goda.yusuke@renesas.com>
|
||||
Gustavo Padovan <gustavo@las.ic.unicamp.br>
|
||||
|
@ -182,12 +182,15 @@ fix_padding
|
||||
space-efficient. If this option is not present, large padding is
|
||||
used - that is for compatibility with older kernels.
|
||||
|
||||
allow_discards
|
||||
Allow block discard requests (a.k.a. TRIM) for the integrity device.
|
||||
Discards are only allowed to devices using internal hash.
|
||||
|
||||
The journal mode (D/J), buffer_sectors, journal_watermark, commit_time can
|
||||
be changed when reloading the target (load an inactive table and swap the
|
||||
tables with suspend and resume). The other arguments should not be changed
|
||||
when reloading the target because the layout of disk data depend on them
|
||||
and the reloaded target would be non-functional.
|
||||
The journal mode (D/J), buffer_sectors, journal_watermark, commit_time and
|
||||
allow_discards can be changed when reloading the target (load an inactive
|
||||
table and swap the tables with suspend and resume). The other arguments
|
||||
should not be changed when reloading the target because the layout of disk
|
||||
data depend on them and the reloaded target would be non-functional.
|
||||
|
||||
|
||||
The layout of the formatted block device:
|
||||
|
@ -5187,8 +5187,7 @@
|
||||
|
||||
usbcore.old_scheme_first=
|
||||
[USB] Start with the old device initialization
|
||||
scheme, applies only to low and full-speed devices
|
||||
(default 0 = off).
|
||||
scheme (default 0 = off).
|
||||
|
||||
usbcore.usbfs_memory_mb=
|
||||
[USB] Memory limit (in MB) for buffers allocated by
|
||||
|
@ -390,9 +390,17 @@ When ``kptr_restrict`` is set to 2, kernel pointers printed using
|
||||
modprobe
|
||||
========
|
||||
|
||||
This gives the full path of the modprobe command which the kernel will
|
||||
use to load modules. This can be used to debug module loading
|
||||
requests::
|
||||
The full path to the usermode helper for autoloading kernel modules,
|
||||
by default "/sbin/modprobe". This binary is executed when the kernel
|
||||
requests a module. For example, if userspace passes an unknown
|
||||
filesystem type to mount(), then the kernel will automatically request
|
||||
the corresponding filesystem module by executing this usermode helper.
|
||||
This usermode helper should insert the needed module into the kernel.
|
||||
|
||||
This sysctl only affects module autoloading. It has no effect on the
|
||||
ability to explicitly insert modules.
|
||||
|
||||
This sysctl can be used to debug module loading requests::
|
||||
|
||||
echo '#! /bin/sh' > /tmp/modprobe
|
||||
echo 'echo "$@" >> /tmp/modprobe.log' >> /tmp/modprobe
|
||||
@ -400,10 +408,15 @@ requests::
|
||||
chmod a+x /tmp/modprobe
|
||||
echo /tmp/modprobe > /proc/sys/kernel/modprobe
|
||||
|
||||
This only applies when the *kernel* is requesting that the module be
|
||||
loaded; it won't have any effect if the module is being loaded
|
||||
explicitly using ``modprobe`` from userspace.
|
||||
Alternatively, if this sysctl is set to the empty string, then module
|
||||
autoloading is completely disabled. The kernel will not try to
|
||||
execute a usermode helper at all, nor will it call the
|
||||
kernel_module_request LSM hook.
|
||||
|
||||
If CONFIG_STATIC_USERMODEHELPER=y is set in the kernel configuration,
|
||||
then the configured static usermode helper overrides this sysctl,
|
||||
except that the empty string is still accepted to completely disable
|
||||
module autoloading as described above.
|
||||
|
||||
modules_disabled
|
||||
================
|
||||
@ -446,28 +459,6 @@ Notes:
|
||||
successful IPC object allocation. If an IPC object allocation syscall
|
||||
fails, it is undefined if the value remains unmodified or is reset to -1.
|
||||
|
||||
modprobe:
|
||||
=========
|
||||
|
||||
The path to the usermode helper for autoloading kernel modules, by
|
||||
default "/sbin/modprobe". This binary is executed when the kernel
|
||||
requests a module. For example, if userspace passes an unknown
|
||||
filesystem type to mount(), then the kernel will automatically request
|
||||
the corresponding filesystem module by executing this usermode helper.
|
||||
This usermode helper should insert the needed module into the kernel.
|
||||
|
||||
This sysctl only affects module autoloading. It has no effect on the
|
||||
ability to explicitly insert modules.
|
||||
|
||||
If this sysctl is set to the empty string, then module autoloading is
|
||||
completely disabled. The kernel will not try to execute a usermode
|
||||
helper at all, nor will it call the kernel_module_request LSM hook.
|
||||
|
||||
If CONFIG_STATIC_USERMODEHELPER=y is set in the kernel configuration,
|
||||
then the configured static usermode helper overrides this sysctl,
|
||||
except that the empty string is still accepted to completely disable
|
||||
module autoloading as described above.
|
||||
|
||||
nmi_watchdog
|
||||
============
|
||||
|
||||
|
@ -23,13 +23,14 @@ optional external memory-mapped interface.
|
||||
|
||||
Version 1 of the Activity Monitors architecture implements a counter group
|
||||
of four fixed and architecturally defined 64-bit event counters.
|
||||
- CPU cycle counter: increments at the frequency of the CPU.
|
||||
- Constant counter: increments at the fixed frequency of the system
|
||||
clock.
|
||||
- Instructions retired: increments with every architecturally executed
|
||||
instruction.
|
||||
- Memory stall cycles: counts instruction dispatch stall cycles caused by
|
||||
misses in the last level cache within the clock domain.
|
||||
|
||||
- CPU cycle counter: increments at the frequency of the CPU.
|
||||
- Constant counter: increments at the fixed frequency of the system
|
||||
clock.
|
||||
- Instructions retired: increments with every architecturally executed
|
||||
instruction.
|
||||
- Memory stall cycles: counts instruction dispatch stall cycles caused by
|
||||
misses in the last level cache within the clock domain.
|
||||
|
||||
When in WFI or WFE these counters do not increment.
|
||||
|
||||
@ -57,11 +58,12 @@ counters, only the presence of the extension.
|
||||
|
||||
Firmware (code running at higher exception levels, e.g. arm-tf) support is
|
||||
needed to:
|
||||
- Enable access for lower exception levels (EL2 and EL1) to the AMU
|
||||
registers.
|
||||
- Enable the counters. If not enabled these will read as 0.
|
||||
- Save/restore the counters before/after the CPU is being put/brought up
|
||||
from the 'off' power state.
|
||||
|
||||
- Enable access for lower exception levels (EL2 and EL1) to the AMU
|
||||
registers.
|
||||
- Enable the counters. If not enabled these will read as 0.
|
||||
- Save/restore the counters before/after the CPU is being put/brought up
|
||||
from the 'off' power state.
|
||||
|
||||
When using kernels that have this feature enabled but boot with broken
|
||||
firmware the user may experience panics or lockups when accessing the
|
||||
@ -78,10 +80,11 @@ are not trapped in EL2/EL3.
|
||||
|
||||
The fixed counters of AMUv1 are accessible though the following system
|
||||
register definitions:
|
||||
- SYS_AMEVCNTR0_CORE_EL0
|
||||
- SYS_AMEVCNTR0_CONST_EL0
|
||||
- SYS_AMEVCNTR0_INST_RET_EL0
|
||||
- SYS_AMEVCNTR0_MEM_STALL_EL0
|
||||
|
||||
- SYS_AMEVCNTR0_CORE_EL0
|
||||
- SYS_AMEVCNTR0_CONST_EL0
|
||||
- SYS_AMEVCNTR0_INST_RET_EL0
|
||||
- SYS_AMEVCNTR0_MEM_STALL_EL0
|
||||
|
||||
Auxiliary platform specific counters can be accessed using
|
||||
SYS_AMEVCNTR1_EL0(n), where n is a value between 0 and 15.
|
||||
@ -93,9 +96,10 @@ Userspace access
|
||||
----------------
|
||||
|
||||
Currently, access from userspace to the AMU registers is disabled due to:
|
||||
- Security reasons: they might expose information about code executed in
|
||||
secure mode.
|
||||
- Purpose: AMU counters are intended for system management use.
|
||||
|
||||
- Security reasons: they might expose information about code executed in
|
||||
secure mode.
|
||||
- Purpose: AMU counters are intended for system management use.
|
||||
|
||||
Also, the presence of the feature is not visible to userspace.
|
||||
|
||||
@ -105,8 +109,9 @@ Virtualization
|
||||
|
||||
Currently, access from userspace (EL0) and kernelspace (EL1) on the KVM
|
||||
guest side is disabled due to:
|
||||
- Security reasons: they might expose information about code executed
|
||||
by other guests or the host.
|
||||
|
||||
- Security reasons: they might expose information about code executed
|
||||
by other guests or the host.
|
||||
|
||||
Any attempt to access the AMU registers will result in an UNDEFINED
|
||||
exception being injected into the guest.
|
||||
|
@ -112,6 +112,20 @@ used when printing stack backtraces. The specifier takes into
|
||||
consideration the effect of compiler optimisations which may occur
|
||||
when tail-calls are used and marked with the noreturn GCC attribute.
|
||||
|
||||
Probed Pointers from BPF / tracing
|
||||
----------------------------------
|
||||
|
||||
::
|
||||
|
||||
%pks kernel string
|
||||
%pus user string
|
||||
|
||||
The ``k`` and ``u`` specifiers are used for printing prior probed memory from
|
||||
either kernel memory (k) or user memory (u). The subsequent ``s`` specifier
|
||||
results in printing a string. For direct use in regular vsnprintf() the (k)
|
||||
and (u) annotation is ignored, however, when used out of BPF's bpf_trace_printk(),
|
||||
for example, it reads the memory it is pointing to without faulting.
|
||||
|
||||
Kernel Pointers
|
||||
---------------
|
||||
|
||||
|
@ -154,9 +154,9 @@ architectures. These are the recommended replacements:
|
||||
|
||||
Use ktime_get() or ktime_get_ts64() instead.
|
||||
|
||||
.. c:function:: struct timeval do_gettimeofday( void )
|
||||
struct timespec getnstimeofday( void )
|
||||
struct timespec64 getnstimeofday64( void )
|
||||
.. c:function:: void do_gettimeofday( struct timeval * )
|
||||
void getnstimeofday( struct timespec * )
|
||||
void getnstimeofday64( struct timespec64 * )
|
||||
void ktime_get_real_ts( struct timespec * )
|
||||
|
||||
ktime_get_real_ts64() is a direct replacement, but consider using
|
||||
|
@ -2,6 +2,7 @@
|
||||
DT_DOC_CHECKER ?= dt-doc-validate
|
||||
DT_EXTRACT_EX ?= dt-extract-example
|
||||
DT_MK_SCHEMA ?= dt-mk-schema
|
||||
DT_MK_SCHEMA_USERONLY_FLAG := $(if $(DT_SCHEMA_FILES), -u)
|
||||
|
||||
quiet_cmd_chk_binding = CHKDT $(patsubst $(srctree)/%,%,$<)
|
||||
cmd_chk_binding = $(DT_DOC_CHECKER) -u $(srctree)/$(src) $< ; \
|
||||
@ -13,16 +14,18 @@ $(obj)/%.example.dts: $(src)/%.yaml FORCE
|
||||
# Use full schemas when checking %.example.dts
|
||||
DT_TMP_SCHEMA := $(obj)/processed-schema-examples.yaml
|
||||
|
||||
quiet_cmd_mk_schema = SCHEMA $@
|
||||
cmd_mk_schema = $(DT_MK_SCHEMA) $(DT_MK_SCHEMA_FLAGS) -o $@ $(real-prereqs)
|
||||
|
||||
DT_DOCS = $(addprefix $(src)/, \
|
||||
$(shell \
|
||||
cd $(srctree)/$(src) && \
|
||||
find * \( -name '*.yaml' ! \
|
||||
find_cmd = find $(srctree)/$(src) \( -name '*.yaml' ! \
|
||||
-name 'processed-schema*' ! \
|
||||
-name '*.example.dt.yaml' \) \
|
||||
))
|
||||
-name '*.example.dt.yaml' \)
|
||||
|
||||
quiet_cmd_mk_schema = SCHEMA $@
|
||||
cmd_mk_schema = rm -f $@ ; \
|
||||
$(if $(DT_MK_SCHEMA_FLAGS), \
|
||||
echo $(real-prereqs), \
|
||||
$(find_cmd)) | \
|
||||
xargs $(DT_MK_SCHEMA) $(DT_MK_SCHEMA_FLAGS) >> $@
|
||||
|
||||
DT_DOCS = $(shell $(find_cmd) | sed -e 's|^$(srctree)/||')
|
||||
|
||||
DT_SCHEMA_FILES ?= $(DT_DOCS)
|
||||
|
||||
@ -37,7 +40,7 @@ override DTC_FLAGS := \
|
||||
$(obj)/processed-schema-examples.yaml: $(DT_DOCS) FORCE
|
||||
$(call if_changed,mk_schema)
|
||||
|
||||
$(obj)/processed-schema.yaml: DT_MK_SCHEMA_FLAGS := -u
|
||||
$(obj)/processed-schema.yaml: DT_MK_SCHEMA_FLAGS := $(DT_MK_SCHEMA_USERONLY_FLAG)
|
||||
$(obj)/processed-schema.yaml: $(DT_SCHEMA_FILES) FORCE
|
||||
$(call if_changed,mk_schema)
|
||||
|
||||
|
@ -42,6 +42,10 @@ properties:
|
||||
description:
|
||||
See section 2.3.9 of the DeviceTree Specification.
|
||||
|
||||
'#address-cells': true
|
||||
|
||||
'#size-cells': true
|
||||
|
||||
required:
|
||||
- "#interconnect-cells"
|
||||
- compatible
|
||||
@ -59,6 +63,8 @@ examples:
|
||||
compatible = "allwinner,sun5i-a13-mbus";
|
||||
reg = <0x01c01000 0x1000>;
|
||||
clocks = <&ccu CLK_MBUS>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
dma-ranges = <0x00000000 0x40000000 0x20000000>;
|
||||
#interconnect-cells = <1>;
|
||||
};
|
||||
|
@ -91,7 +91,7 @@ required:
|
||||
|
||||
examples:
|
||||
- |
|
||||
vco1: clock@00 {
|
||||
vco1: clock {
|
||||
compatible = "arm,impd1-vco1";
|
||||
#clock-cells = <0>;
|
||||
lock-offset = <0x08>;
|
||||
|
@ -1,5 +1,5 @@
|
||||
Analog Device ADV7123 Video DAC
|
||||
-------------------------------
|
||||
Analog Devices ADV7123 Video DAC
|
||||
--------------------------------
|
||||
|
||||
The ADV7123 is a digital-to-analog converter that outputs VGA signals from a
|
||||
parallel video input.
|
||||
|
@ -1,5 +1,5 @@
|
||||
Analog Device ADV7511(W)/13/33/35 HDMI Encoders
|
||||
-----------------------------------------
|
||||
Analog Devices ADV7511(W)/13/33/35 HDMI Encoders
|
||||
------------------------------------------------
|
||||
|
||||
The ADV7511, ADV7511W, ADV7513, ADV7533 and ADV7535 are HDMI audio and video
|
||||
transmitters compatible with HDMI 1.4 and DVI 1.0. They support color space
|
||||
|
@ -37,7 +37,6 @@ examples:
|
||||
dsi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <0xff450000 0x1000>;
|
||||
|
||||
panel@0 {
|
||||
compatible = "leadtek,ltk500hd1829";
|
||||
|
@ -96,12 +96,20 @@ properties:
|
||||
If set, reverse the bit order described in the data mappings below on all
|
||||
data lanes, transmitting bits for slots 6 to 0 instead of 0 to 6.
|
||||
|
||||
port: true
|
||||
ports: true
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- data-mapping
|
||||
- width-mm
|
||||
- height-mm
|
||||
- panel-timing
|
||||
- port
|
||||
|
||||
oneOf:
|
||||
- required:
|
||||
- port
|
||||
- required:
|
||||
- ports
|
||||
|
||||
...
|
||||
|
@ -37,7 +37,6 @@ examples:
|
||||
dsi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <0xff450000 0x1000>;
|
||||
|
||||
panel@0 {
|
||||
compatible = "xinpeng,xpp055c272";
|
||||
|
@ -1,4 +1,4 @@
|
||||
Analog Device AXI-DMAC DMA controller
|
||||
Analog Devices AXI-DMAC DMA controller
|
||||
|
||||
Required properties:
|
||||
- compatible: Must be "adi,axi-dmac-1.00.a".
|
||||
|
@ -10,7 +10,8 @@ Required properties:
|
||||
- compatible :
|
||||
- "fsl,vf610-edma" for eDMA used similar to that on Vybrid vf610 SoC
|
||||
- "fsl,imx7ulp-edma" for eDMA2 used similar to that on i.mx7ulp
|
||||
- "fsl,fsl,ls1028a-edma" for eDMA used similar to that on Vybrid vf610 SoC
|
||||
- "fsl,ls1028a-edma" followed by "fsl,vf610-edma" for eDMA used on the
|
||||
LS1028A SoC.
|
||||
- reg : Specifies base physical address(s) and size of the eDMA registers.
|
||||
The 1st region is eDMA control register's address and size.
|
||||
The 2nd and the 3rd regions are programmable channel multiplexing
|
||||
|
@ -22,9 +22,7 @@ properties:
|
||||
const: socionext,uniphier-xdmac
|
||||
|
||||
reg:
|
||||
items:
|
||||
- description: XDMAC base register region (offset and length)
|
||||
- description: XDMAC extension register region (offset and length)
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
@ -49,12 +47,13 @@ required:
|
||||
- reg
|
||||
- interrupts
|
||||
- "#dma-cells"
|
||||
- dma-channels
|
||||
|
||||
examples:
|
||||
- |
|
||||
xdmac: dma-controller@5fc10000 {
|
||||
compatible = "socionext,uniphier-xdmac";
|
||||
reg = <0x5fc10000 0x1000>, <0x5fc20000 0x800>;
|
||||
reg = <0x5fc10000 0x5300>;
|
||||
interrupts = <0 188 4>;
|
||||
#dma-cells = <2>;
|
||||
dma-channels = <16>;
|
||||
|
@ -2,7 +2,7 @@
|
||||
# Copyright 2019 Analog Devices Inc.
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/bindings/hwmon/adi,axi-fan-control.yaml#
|
||||
$id: http://devicetree.org/schemas/hwmon/adi,axi-fan-control.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Analog Devices AXI FAN Control Device Tree Bindings
|
||||
@ -47,7 +47,7 @@ required:
|
||||
|
||||
examples:
|
||||
- |
|
||||
fpga_axi: fpga-axi@0 {
|
||||
fpga_axi: fpga-axi {
|
||||
#address-cells = <0x2>;
|
||||
#size-cells = <0x1>;
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/adt7475.yaml#
|
||||
$id: http://devicetree.org/schemas/hwmon/adt7475.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: ADT7475 hwmon sensor
|
||||
|
@ -1,7 +1,7 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: "http://devicetree.org/schemas/bindings/iio/adc/st,stm32-adc.yaml#"
|
||||
$id: "http://devicetree.org/schemas/iio/adc/st,stm32-adc.yaml#"
|
||||
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
|
||||
|
||||
title: STMicroelectronics STM32 ADC bindings
|
||||
|
@ -1,4 +1,4 @@
|
||||
* Analog Device AD5755 IIO Multi-Channel DAC Linux Driver
|
||||
* Analog Devices AD5755 IIO Multi-Channel DAC Linux Driver
|
||||
|
||||
Required properties:
|
||||
- compatible: Has to contain one of the following:
|
||||
|
@ -2,7 +2,7 @@
|
||||
# Copyright 2020 Analog Devices Inc.
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/bindings/iio/dac/adi,ad5770r.yaml#
|
||||
$id: http://devicetree.org/schemas/iio/dac/adi,ad5770r.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Analog Devices AD5770R DAC device driver
|
||||
@ -49,93 +49,86 @@ properties:
|
||||
asserted during driver probe.
|
||||
maxItems: 1
|
||||
|
||||
channel0:
|
||||
channel@0:
|
||||
description: Represents an external channel which are
|
||||
connected to the DAC. Channel 0 can act both as a current
|
||||
source and sink.
|
||||
type: object
|
||||
|
||||
properties:
|
||||
num:
|
||||
reg:
|
||||
description: This represents the channel number.
|
||||
items:
|
||||
const: 0
|
||||
const: 0
|
||||
|
||||
adi,range-microamp:
|
||||
description: Output range of the channel.
|
||||
oneOf:
|
||||
- $ref: /schemas/types.yaml#/definitions/int32-array
|
||||
- items:
|
||||
- enum: [0 300000]
|
||||
- enum: [-60000 0]
|
||||
- enum: [-60000 300000]
|
||||
- const: 0
|
||||
- const: 300000
|
||||
- items:
|
||||
- const: -60000
|
||||
- const: 0
|
||||
- items:
|
||||
- const: -60000
|
||||
- const: 300000
|
||||
|
||||
channel1:
|
||||
channel@1:
|
||||
description: Represents an external channel which are
|
||||
connected to the DAC.
|
||||
type: object
|
||||
|
||||
properties:
|
||||
num:
|
||||
reg:
|
||||
description: This represents the channel number.
|
||||
items:
|
||||
const: 1
|
||||
const: 1
|
||||
|
||||
adi,range-microamp:
|
||||
description: Output range of the channel.
|
||||
oneOf:
|
||||
- $ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
- items:
|
||||
- enum: [0 140000]
|
||||
- enum: [0 250000]
|
||||
items:
|
||||
- const: 0
|
||||
- enum: [ 140000, 250000 ]
|
||||
|
||||
channel2:
|
||||
channel@2:
|
||||
description: Represents an external channel which are
|
||||
connected to the DAC.
|
||||
type: object
|
||||
|
||||
properties:
|
||||
num:
|
||||
reg:
|
||||
description: This represents the channel number.
|
||||
items:
|
||||
const: 2
|
||||
const: 2
|
||||
|
||||
adi,range-microamp:
|
||||
description: Output range of the channel.
|
||||
oneOf:
|
||||
- $ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
- items:
|
||||
- enum: [0 140000]
|
||||
- enum: [0 250000]
|
||||
items:
|
||||
- const: 0
|
||||
- enum: [ 55000, 150000 ]
|
||||
|
||||
patternProperties:
|
||||
"^channel@([3-5])$":
|
||||
type: object
|
||||
description: Represents the external channels which are connected to the DAC.
|
||||
properties:
|
||||
num:
|
||||
reg:
|
||||
description: This represents the channel number.
|
||||
items:
|
||||
minimum: 3
|
||||
maximum: 5
|
||||
minimum: 3
|
||||
maximum: 5
|
||||
|
||||
adi,range-microamp:
|
||||
description: Output range of the channel.
|
||||
oneOf:
|
||||
- $ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
- items:
|
||||
- enum: [0 45000]
|
||||
- enum: [0 100000]
|
||||
items:
|
||||
- const: 0
|
||||
- enum: [ 45000, 100000 ]
|
||||
|
||||
required:
|
||||
- reg
|
||||
- diff-channels
|
||||
- channel0
|
||||
- channel1
|
||||
- channel2
|
||||
- channel3
|
||||
- channel4
|
||||
- channel5
|
||||
- channel@0
|
||||
- channel@1
|
||||
- channel@2
|
||||
- channel@3
|
||||
- channel@4
|
||||
- channel@5
|
||||
|
||||
examples:
|
||||
- |
|
||||
@ -144,40 +137,42 @@ examples:
|
||||
#size-cells = <0>;
|
||||
|
||||
ad5770r@0 {
|
||||
compatible = "ad5770r";
|
||||
compatible = "adi,ad5770r";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <1000000>;
|
||||
vref-supply = <&vref>;
|
||||
adi,external-resistor;
|
||||
reset-gpios = <&gpio 22 0>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
channel@0 {
|
||||
num = <0>;
|
||||
adi,range-microamp = <(-60000) 300000>;
|
||||
reg = <0>;
|
||||
adi,range-microamp = <0 300000>;
|
||||
};
|
||||
|
||||
channel@1 {
|
||||
num = <1>;
|
||||
reg = <1>;
|
||||
adi,range-microamp = <0 140000>;
|
||||
};
|
||||
|
||||
channel@2 {
|
||||
num = <2>;
|
||||
reg = <2>;
|
||||
adi,range-microamp = <0 55000>;
|
||||
};
|
||||
|
||||
channel@3 {
|
||||
num = <3>;
|
||||
reg = <3>;
|
||||
adi,range-microamp = <0 45000>;
|
||||
};
|
||||
|
||||
channel@4 {
|
||||
num = <4>;
|
||||
reg = <4>;
|
||||
adi,range-microamp = <0 45000>;
|
||||
};
|
||||
|
||||
channel@5 {
|
||||
num = <5>;
|
||||
reg = <5>;
|
||||
adi,range-microamp = <0 45000>;
|
||||
};
|
||||
};
|
||||
|
@ -109,7 +109,7 @@ examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
i2c@00000000 {
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
edt-ft5x06@38 {
|
||||
|
@ -56,9 +56,8 @@ properties:
|
||||
cell with zero.
|
||||
allOf:
|
||||
- $ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
- items:
|
||||
minItems: 4
|
||||
maxItems: 4
|
||||
- minItems: 4
|
||||
maxItems: 4
|
||||
|
||||
|
||||
required:
|
||||
|
@ -97,30 +97,35 @@ examples:
|
||||
#include <dt-bindings/clock/tegra186-clock.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
|
||||
memory-controller@2c00000 {
|
||||
compatible = "nvidia,tegra186-mc";
|
||||
reg = <0x0 0x02c00000 0x0 0xb0000>;
|
||||
interrupts = <GIC_SPI 223 IRQ_TYPE_LEVEL_HIGH>;
|
||||
|
||||
bus {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
|
||||
ranges = <0x0 0x02c00000 0x02c00000 0x0 0xb0000>;
|
||||
memory-controller@2c00000 {
|
||||
compatible = "nvidia,tegra186-mc";
|
||||
reg = <0x0 0x02c00000 0x0 0xb0000>;
|
||||
interrupts = <GIC_SPI 223 IRQ_TYPE_LEVEL_HIGH>;
|
||||
|
||||
/*
|
||||
* Memory clients have access to all 40 bits that the memory
|
||||
* controller can address.
|
||||
*/
|
||||
dma-ranges = <0x0 0x0 0x0 0x0 0x100 0x0>;
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
|
||||
external-memory-controller@2c60000 {
|
||||
compatible = "nvidia,tegra186-emc";
|
||||
reg = <0x0 0x02c60000 0x0 0x50000>;
|
||||
interrupts = <GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&bpmp TEGRA186_CLK_EMC>;
|
||||
clock-names = "emc";
|
||||
ranges = <0x0 0x02c00000 0x0 0x02c00000 0x0 0xb0000>;
|
||||
|
||||
nvidia,bpmp = <&bpmp>;
|
||||
/*
|
||||
* Memory clients have access to all 40 bits that the memory
|
||||
* controller can address.
|
||||
*/
|
||||
dma-ranges = <0x0 0x0 0x0 0x0 0x100 0x0>;
|
||||
|
||||
external-memory-controller@2c60000 {
|
||||
compatible = "nvidia,tegra186-emc";
|
||||
reg = <0x0 0x02c60000 0x0 0x50000>;
|
||||
interrupts = <GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&bpmp TEGRA186_CLK_EMC>;
|
||||
clock-names = "emc";
|
||||
|
||||
nvidia,bpmp = <&bpmp>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -123,7 +123,9 @@ examples:
|
||||
#include <dt-bindings/leds/common.h>
|
||||
|
||||
i2c {
|
||||
pmic: pmic@4b {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
pmic: pmic@4b {
|
||||
compatible = "rohm,bd71837";
|
||||
reg = <0x4b>;
|
||||
interrupt-parent = <&gpio1>;
|
||||
|
@ -128,7 +128,9 @@ examples:
|
||||
#include <dt-bindings/leds/common.h>
|
||||
|
||||
i2c {
|
||||
pmic: pmic@4b {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
pmic: pmic@4b {
|
||||
compatible = "rohm,bd71847";
|
||||
reg = <0x4b>;
|
||||
interrupt-parent = <&gpio1>;
|
||||
|
@ -259,8 +259,6 @@ properties:
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
@ -274,7 +272,7 @@ examples:
|
||||
- |
|
||||
#include <dt-bindings/mfd/st,stpmic1.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
i2c@0 {
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
pmic@33 {
|
||||
|
@ -110,6 +110,9 @@ Ethernet switch connected via MDIO to the host, CPU port wired to eth0:
|
||||
#size-cells = <0>;
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port0@0 {
|
||||
reg = <0>;
|
||||
label = "lan1";
|
||||
|
@ -43,6 +43,9 @@ properties:
|
||||
second group of digits is the Phy Identifier 2 register,
|
||||
this is the chip vendor OUI bits 19:24, followed by 10
|
||||
bits of a vendor specific ID.
|
||||
- items:
|
||||
- pattern: "^ethernet-phy-id[a-f0-9]{4}\\.[a-f0-9]{4}$"
|
||||
- const: ethernet-phy-ieee802.3-c22
|
||||
- items:
|
||||
- pattern: "^ethernet-phy-id[a-f0-9]{4}\\.[a-f0-9]{4}$"
|
||||
- const: ethernet-phy-ieee802.3-c45
|
||||
|
@ -22,6 +22,8 @@ Optional properties:
|
||||
- fsl,err006687-workaround-present: If present indicates that the system has
|
||||
the hardware workaround for ERR006687 applied and does not need a software
|
||||
workaround.
|
||||
- gpr: phandle of SoC general purpose register mode. Required for wake on LAN
|
||||
on some SoCs
|
||||
-interrupt-names: names of the interrupts listed in interrupts property in
|
||||
the same order. The defaults if not specified are
|
||||
__Number of interrupts__ __Default__
|
||||
|
@ -48,6 +48,7 @@ examples:
|
||||
|
||||
switch@10 {
|
||||
compatible = "qca,qca8337";
|
||||
reg = <0x10>;
|
||||
/* ... */
|
||||
};
|
||||
};
|
||||
|
@ -29,7 +29,7 @@ Required properties for compatible string qcom,wcn399x-bt:
|
||||
|
||||
Optional properties for compatible string qcom,wcn399x-bt:
|
||||
|
||||
- max-speed: see Documentation/devicetree/bindings/serial/slave-device.txt
|
||||
- max-speed: see Documentation/devicetree/bindings/serial/serial.yaml
|
||||
- firmware-name: specify the name of nvm firmware to load
|
||||
- clocks: clock provided to the controller
|
||||
|
||||
|
@ -97,7 +97,7 @@ then:
|
||||
- $ref: /schemas/types.yaml#/definitions/uint32
|
||||
- minimum: 0
|
||||
maximum: 63
|
||||
default: 0
|
||||
default: 32
|
||||
|
||||
qcom,charge-ctrl-value:
|
||||
description:
|
||||
@ -130,7 +130,7 @@ then:
|
||||
- $ref: /schemas/types.yaml#/definitions/uint32
|
||||
- minimum: 0
|
||||
maximum: 3
|
||||
default: 2
|
||||
default: 0
|
||||
|
||||
qcom,preemphasis-width:
|
||||
description:
|
||||
@ -152,7 +152,7 @@ then:
|
||||
- $ref: /schemas/types.yaml#/definitions/uint32
|
||||
- minimum: 0
|
||||
maximum: 3
|
||||
default: 0
|
||||
default: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
|
@ -146,7 +146,7 @@ patternProperties:
|
||||
bindings specified in
|
||||
Documentation/devicetree/bindings/phy/phy-cadence-sierra.txt
|
||||
Torrent SERDES should follow the bindings specified in
|
||||
Documentation/devicetree/bindings/phy/phy-cadence-dp.txt
|
||||
Documentation/devicetree/bindings/phy/phy-cadence-torrent.yaml
|
||||
|
||||
required:
|
||||
- compatible
|
||||
|
@ -31,10 +31,17 @@ additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
cros-ec@0 {
|
||||
compatible = "google,cros-ec-spi";
|
||||
cros_ec_pwm: ec-pwm {
|
||||
compatible = "google,cros-ec-pwm";
|
||||
#pwm-cells = <1>;
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
cros-ec@0 {
|
||||
compatible = "google,cros-ec-spi";
|
||||
reg = <0>;
|
||||
|
||||
cros_ec_pwm: ec-pwm {
|
||||
compatible = "google,cros-ec-pwm";
|
||||
#pwm-cells = <1>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -37,7 +37,6 @@ properties:
|
||||
type: object
|
||||
|
||||
additionalProperties: false
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
|
@ -75,7 +75,8 @@ properties:
|
||||
description: |
|
||||
disables over voltage protection of this buck
|
||||
|
||||
additionalProperties: false
|
||||
unevaluatedProperties: false
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
|
@ -35,6 +35,8 @@ patternProperties:
|
||||
description:
|
||||
should be "ldo1", ..., "ldo7"
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
"^BUCK[1-7]$":
|
||||
type: object
|
||||
allOf:
|
||||
@ -103,5 +105,7 @@ patternProperties:
|
||||
|
||||
required:
|
||||
- regulator-name
|
||||
additionalProperties: false
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
additionalProperties: false
|
||||
|
@ -41,6 +41,8 @@ patternProperties:
|
||||
description:
|
||||
should be "ldo1", ..., "ldo7"
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
"^BUCK[1-8]$":
|
||||
type: object
|
||||
allOf:
|
||||
@ -99,5 +101,7 @@ patternProperties:
|
||||
|
||||
required:
|
||||
- regulator-name
|
||||
additionalProperties: false
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
additionalProperties: false
|
||||
|
@ -40,6 +40,8 @@ patternProperties:
|
||||
description:
|
||||
should be "ldo1", ..., "ldo6"
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
"^BUCK[1-6]$":
|
||||
type: object
|
||||
allOf:
|
||||
@ -93,5 +95,7 @@ patternProperties:
|
||||
|
||||
required:
|
||||
- regulator-name
|
||||
additionalProperties: false
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
additionalProperties: false
|
||||
|
@ -39,7 +39,7 @@ additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
rng {
|
||||
rng@7e104000 {
|
||||
compatible = "brcm,bcm2835-rng";
|
||||
reg = <0x7e104000 0x10>;
|
||||
interrupts = <2 29>;
|
||||
|
@ -56,6 +56,9 @@ properties:
|
||||
- const: tx
|
||||
- const: rx
|
||||
|
||||
power-domains:
|
||||
maxItems: 1
|
||||
|
||||
rockchip,capture-channels:
|
||||
allOf:
|
||||
- $ref: /schemas/types.yaml#/definitions/uint32
|
||||
|
@ -1,45 +0,0 @@
|
||||
* Rockchip SPDIF transceiver
|
||||
|
||||
The S/PDIF audio block is a stereo transceiver that allows the
|
||||
processor to receive and transmit digital audio via an coaxial cable or
|
||||
a fibre cable.
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible: should be one of the following:
|
||||
- "rockchip,rk3066-spdif"
|
||||
- "rockchip,rk3188-spdif"
|
||||
- "rockchip,rk3228-spdif"
|
||||
- "rockchip,rk3288-spdif"
|
||||
- "rockchip,rk3328-spdif"
|
||||
- "rockchip,rk3366-spdif"
|
||||
- "rockchip,rk3368-spdif"
|
||||
- "rockchip,rk3399-spdif"
|
||||
- reg: physical base address of the controller and length of memory mapped
|
||||
region.
|
||||
- interrupts: should contain the SPDIF interrupt.
|
||||
- dmas: DMA specifiers for tx dma. See the DMA client binding,
|
||||
Documentation/devicetree/bindings/dma/dma.txt
|
||||
- dma-names: should be "tx"
|
||||
- clocks: a list of phandle + clock-specifier pairs, one for each entry
|
||||
in clock-names.
|
||||
- clock-names: should contain following:
|
||||
- "hclk": clock for SPDIF controller
|
||||
- "mclk" : clock for SPDIF bus
|
||||
|
||||
Required properties on RK3288:
|
||||
- rockchip,grf: the phandle of the syscon node for the general register
|
||||
file (GRF)
|
||||
|
||||
Example for the rk3188 SPDIF controller:
|
||||
|
||||
spdif: spdif@1011e000 {
|
||||
compatible = "rockchip,rk3188-spdif", "rockchip,rk3066-spdif";
|
||||
reg = <0x1011e000 0x2000>;
|
||||
interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
|
||||
dmas = <&dmac1_s 8>;
|
||||
dma-names = "tx";
|
||||
clock-names = "hclk", "mclk";
|
||||
clocks = <&cru HCLK_SPDIF>, <&cru SCLK_SPDIF>;
|
||||
#sound-dai-cells = <0>;
|
||||
};
|
101
Documentation/devicetree/bindings/sound/rockchip-spdif.yaml
Normal file
101
Documentation/devicetree/bindings/sound/rockchip-spdif.yaml
Normal file
@ -0,0 +1,101 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/sound/rockchip-spdif.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Rockchip SPDIF transceiver
|
||||
|
||||
description:
|
||||
The S/PDIF audio block is a stereo transceiver that allows the
|
||||
processor to receive and transmit digital audio via a coaxial or
|
||||
fibre cable.
|
||||
|
||||
maintainers:
|
||||
- Heiko Stuebner <heiko@sntech.de>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
oneOf:
|
||||
- const: rockchip,rk3066-spdif
|
||||
- const: rockchip,rk3228-spdif
|
||||
- const: rockchip,rk3328-spdif
|
||||
- const: rockchip,rk3366-spdif
|
||||
- const: rockchip,rk3368-spdif
|
||||
- const: rockchip,rk3399-spdif
|
||||
- items:
|
||||
- enum:
|
||||
- rockchip,rk3188-spdif
|
||||
- rockchip,rk3288-spdif
|
||||
- const: rockchip,rk3066-spdif
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: clock for SPDIF bus
|
||||
- description: clock for SPDIF controller
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: mclk
|
||||
- const: hclk
|
||||
|
||||
dmas:
|
||||
maxItems: 1
|
||||
|
||||
dma-names:
|
||||
const: tx
|
||||
|
||||
power-domains:
|
||||
maxItems: 1
|
||||
|
||||
rockchip,grf:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
description:
|
||||
The phandle of the syscon node for the GRF register.
|
||||
Required property on RK3288.
|
||||
|
||||
"#sound-dai-cells":
|
||||
const: 0
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- clocks
|
||||
- clock-names
|
||||
- dmas
|
||||
- dma-names
|
||||
- "#sound-dai-cells"
|
||||
|
||||
if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: rockchip,rk3288-spdif
|
||||
|
||||
then:
|
||||
required:
|
||||
- rockchip,grf
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/rk3188-cru.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
spdif: spdif@1011e000 {
|
||||
compatible = "rockchip,rk3188-spdif", "rockchip,rk3066-spdif";
|
||||
reg = <0x1011e000 0x2000>;
|
||||
interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&cru SCLK_SPDIF>, <&cru HCLK_SPDIF>;
|
||||
clock-names = "mclk", "hclk";
|
||||
dmas = <&dmac1_s 8>;
|
||||
dma-names = "tx";
|
||||
#sound-dai-cells = <0>;
|
||||
};
|
@ -61,7 +61,7 @@ examples:
|
||||
#include <dt-bindings/clock/qcom,gcc-sdm845.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
|
||||
soc: soc@0 {
|
||||
soc: soc {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
|
||||
|
@ -56,7 +56,7 @@ additionalProperties: false
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/jz4740-cgu.h>
|
||||
usb_phy: usb-phy@0 {
|
||||
usb_phy: usb-phy {
|
||||
compatible = "usb-nop-xceiv";
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
|
@ -52,8 +52,8 @@ A child node must exist to represent the core DWC3 IP block. The name of
|
||||
the node is not important. The content of the node is defined in dwc3.txt.
|
||||
|
||||
Phy documentation is provided in the following places:
|
||||
Documentation/devicetree/bindings/phy/qcom-qmp-phy.txt - USB3 QMP PHY
|
||||
Documentation/devicetree/bindings/phy/qcom-qusb2-phy.txt - USB2 QUSB2 PHY
|
||||
Documentation/devicetree/bindings/phy/qcom-qmp-phy.txt - USB3 QMP PHY
|
||||
Documentation/devicetree/bindings/phy/qcom,qusb2-phy.yaml - USB2 QUSB2 PHY
|
||||
|
||||
Example device nodes:
|
||||
|
||||
|
@ -18,6 +18,7 @@ properties:
|
||||
- renesas,r8a774c0-usb3-peri # RZ/G2E
|
||||
- renesas,r8a7795-usb3-peri # R-Car H3
|
||||
- renesas,r8a7796-usb3-peri # R-Car M3-W
|
||||
- renesas,r8a77961-usb3-peri # R-Car M3-W+
|
||||
- renesas,r8a77965-usb3-peri # R-Car M3-N
|
||||
- renesas,r8a77990-usb3-peri # R-Car E3
|
||||
- const: renesas,rcar-gen3-usb3-peri
|
||||
|
@ -40,6 +40,7 @@ properties:
|
||||
- renesas,usbhs-r8a774c0 # RZ/G2E
|
||||
- renesas,usbhs-r8a7795 # R-Car H3
|
||||
- renesas,usbhs-r8a7796 # R-Car M3-W
|
||||
- renesas,usbhs-r8a77961 # R-Car M3-W+
|
||||
- renesas,usbhs-r8a77965 # R-Car M3-N
|
||||
- renesas,usbhs-r8a77990 # R-Car E3
|
||||
- renesas,usbhs-r8a77995 # R-Car D3
|
||||
|
@ -16,7 +16,7 @@ A child node must exist to represent the core DWC3 IP block. The name of
|
||||
the node is not important. The content of the node is defined in dwc3.txt.
|
||||
|
||||
Phy documentation is provided in the following places:
|
||||
Documentation/devicetree/bindings/phy/phy-rockchip-inno-usb2.txt - USB2.0 PHY
|
||||
Documentation/devicetree/bindings/phy/phy-rockchip-inno-usb2.yaml - USB2.0 PHY
|
||||
Documentation/devicetree/bindings/phy/phy-rockchip-typec.txt - Type-C PHY
|
||||
|
||||
Example device nodes:
|
||||
|
@ -16,7 +16,8 @@ Required properties:
|
||||
- "renesas,xhci-r8a7791" for r8a7791 SoC
|
||||
- "renesas,xhci-r8a7793" for r8a7793 SoC
|
||||
- "renesas,xhci-r8a7795" for r8a7795 SoC
|
||||
- "renesas,xhci-r8a7796" for r8a7796 SoC
|
||||
- "renesas,xhci-r8a7796" for r8a77960 SoC
|
||||
- "renesas,xhci-r8a77961" for r8a77961 SoC
|
||||
- "renesas,xhci-r8a77965" for r8a77965 SoC
|
||||
- "renesas,xhci-r8a77990" for r8a77990 SoC
|
||||
- "renesas,rcar-gen2-xhci" for a generic R-Car Gen2 or RZ/G1 compatible
|
||||
|
@ -79,8 +79,8 @@ created with any of::
|
||||
struct dentry *parent, u8 *value);
|
||||
void debugfs_create_u16(const char *name, umode_t mode,
|
||||
struct dentry *parent, u16 *value);
|
||||
struct dentry *debugfs_create_u32(const char *name, umode_t mode,
|
||||
struct dentry *parent, u32 *value);
|
||||
void debugfs_create_u32(const char *name, umode_t mode,
|
||||
struct dentry *parent, u32 *value);
|
||||
void debugfs_create_u64(const char *name, umode_t mode,
|
||||
struct dentry *parent, u64 *value);
|
||||
|
||||
|
@ -16,7 +16,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL68220
|
||||
|
||||
Prefix: 'raa_dmpvr2_2rail'
|
||||
Prefix: 'isl68220'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -26,7 +26,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL68221
|
||||
|
||||
Prefix: 'raa_dmpvr2_3rail'
|
||||
Prefix: 'isl68221'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -36,7 +36,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL68222
|
||||
|
||||
Prefix: 'raa_dmpvr2_2rail'
|
||||
Prefix: 'isl68222'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -46,7 +46,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL68223
|
||||
|
||||
Prefix: 'raa_dmpvr2_2rail'
|
||||
Prefix: 'isl68223'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -56,7 +56,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL68224
|
||||
|
||||
Prefix: 'raa_dmpvr2_3rail'
|
||||
Prefix: 'isl68224'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -66,7 +66,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL68225
|
||||
|
||||
Prefix: 'raa_dmpvr2_2rail'
|
||||
Prefix: 'isl68225'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -76,7 +76,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL68226
|
||||
|
||||
Prefix: 'raa_dmpvr2_3rail'
|
||||
Prefix: 'isl68226'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -86,7 +86,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL68227
|
||||
|
||||
Prefix: 'raa_dmpvr2_1rail'
|
||||
Prefix: 'isl68227'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -96,7 +96,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL68229
|
||||
|
||||
Prefix: 'raa_dmpvr2_3rail'
|
||||
Prefix: 'isl68229'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -106,7 +106,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL68233
|
||||
|
||||
Prefix: 'raa_dmpvr2_2rail'
|
||||
Prefix: 'isl68233'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -116,7 +116,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL68239
|
||||
|
||||
Prefix: 'raa_dmpvr2_3rail'
|
||||
Prefix: 'isl68239'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -126,7 +126,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL69222
|
||||
|
||||
Prefix: 'raa_dmpvr2_2rail'
|
||||
Prefix: 'isl69222'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -136,7 +136,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL69223
|
||||
|
||||
Prefix: 'raa_dmpvr2_3rail'
|
||||
Prefix: 'isl69223'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -146,7 +146,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL69224
|
||||
|
||||
Prefix: 'raa_dmpvr2_2rail'
|
||||
Prefix: 'isl69224'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -156,7 +156,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL69225
|
||||
|
||||
Prefix: 'raa_dmpvr2_2rail'
|
||||
Prefix: 'isl69225'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -166,7 +166,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL69227
|
||||
|
||||
Prefix: 'raa_dmpvr2_3rail'
|
||||
Prefix: 'isl69227'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -176,7 +176,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL69228
|
||||
|
||||
Prefix: 'raa_dmpvr2_3rail'
|
||||
Prefix: 'isl69228'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -186,7 +186,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL69234
|
||||
|
||||
Prefix: 'raa_dmpvr2_2rail'
|
||||
Prefix: 'isl69234'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -196,7 +196,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL69236
|
||||
|
||||
Prefix: 'raa_dmpvr2_2rail'
|
||||
Prefix: 'isl69236'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -206,7 +206,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL69239
|
||||
|
||||
Prefix: 'raa_dmpvr2_3rail'
|
||||
Prefix: 'isl69239'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -216,7 +216,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL69242
|
||||
|
||||
Prefix: 'raa_dmpvr2_2rail'
|
||||
Prefix: 'isl69242'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -226,7 +226,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL69243
|
||||
|
||||
Prefix: 'raa_dmpvr2_1rail'
|
||||
Prefix: 'isl69243'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -236,7 +236,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL69247
|
||||
|
||||
Prefix: 'raa_dmpvr2_2rail'
|
||||
Prefix: 'isl69247'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -246,7 +246,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL69248
|
||||
|
||||
Prefix: 'raa_dmpvr2_2rail'
|
||||
Prefix: 'isl69248'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -256,7 +256,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL69254
|
||||
|
||||
Prefix: 'raa_dmpvr2_2rail'
|
||||
Prefix: 'isl69254'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -266,7 +266,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL69255
|
||||
|
||||
Prefix: 'raa_dmpvr2_2rail'
|
||||
Prefix: 'isl69255'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -276,7 +276,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL69256
|
||||
|
||||
Prefix: 'raa_dmpvr2_2rail'
|
||||
Prefix: 'isl69256'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -286,7 +286,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL69259
|
||||
|
||||
Prefix: 'raa_dmpvr2_2rail'
|
||||
Prefix: 'isl69259'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -296,7 +296,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL69260
|
||||
|
||||
Prefix: 'raa_dmpvr2_2rail'
|
||||
Prefix: 'isl69260'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -306,7 +306,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL69268
|
||||
|
||||
Prefix: 'raa_dmpvr2_2rail'
|
||||
Prefix: 'isl69268'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -316,7 +316,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL69269
|
||||
|
||||
Prefix: 'raa_dmpvr2_3rail'
|
||||
Prefix: 'isl69269'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -326,7 +326,7 @@ Supported chips:
|
||||
|
||||
* Renesas ISL69298
|
||||
|
||||
Prefix: 'raa_dmpvr2_2rail'
|
||||
Prefix: 'isl69298'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -336,7 +336,7 @@ Supported chips:
|
||||
|
||||
* Renesas RAA228000
|
||||
|
||||
Prefix: 'raa_dmpvr2_hv'
|
||||
Prefix: 'raa228000'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -346,7 +346,7 @@ Supported chips:
|
||||
|
||||
* Renesas RAA228004
|
||||
|
||||
Prefix: 'raa_dmpvr2_hv'
|
||||
Prefix: 'raa228004'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -356,7 +356,7 @@ Supported chips:
|
||||
|
||||
* Renesas RAA228006
|
||||
|
||||
Prefix: 'raa_dmpvr2_hv'
|
||||
Prefix: 'raa228006'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -366,7 +366,7 @@ Supported chips:
|
||||
|
||||
* Renesas RAA228228
|
||||
|
||||
Prefix: 'raa_dmpvr2_2rail'
|
||||
Prefix: 'raa228228'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -376,7 +376,7 @@ Supported chips:
|
||||
|
||||
* Renesas RAA229001
|
||||
|
||||
Prefix: 'raa_dmpvr2_2rail'
|
||||
Prefix: 'raa229001'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
@ -386,7 +386,7 @@ Supported chips:
|
||||
|
||||
* Renesas RAA229004
|
||||
|
||||
Prefix: 'raa_dmpvr2_2rail'
|
||||
Prefix: 'raa229004'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
|
@ -1241,7 +1241,8 @@ When kbuild executes, the following steps are followed (roughly):
|
||||
will be displayed with "make KBUILD_VERBOSE=0".
|
||||
|
||||
|
||||
--- 6.9 Preprocessing linker scripts
|
||||
6.9 Preprocessing linker scripts
|
||||
--------------------------------
|
||||
|
||||
When the vmlinux image is built, the linker script
|
||||
arch/$(ARCH)/kernel/vmlinux.lds is used.
|
||||
|
@ -257,6 +257,8 @@ drivers:
|
||||
* :doc:`netdevsim`
|
||||
* :doc:`mlxsw`
|
||||
|
||||
.. _Generic-Packet-Trap-Groups:
|
||||
|
||||
Generic Packet Trap Groups
|
||||
==========================
|
||||
|
||||
|
@ -61,8 +61,8 @@ The ``ice`` driver reports the following versions
|
||||
- running
|
||||
- ICE OS Default Package
|
||||
- The name of the DDP package that is active in the device. The DDP
|
||||
package is loaded by the driver during initialization. Each varation
|
||||
of DDP package shall have a unique name.
|
||||
package is loaded by the driver during initialization. Each
|
||||
variation of the DDP package has a unique name.
|
||||
* - ``fw.app``
|
||||
- running
|
||||
- 1.3.1.0
|
||||
|
@ -22,6 +22,7 @@ Contents:
|
||||
z8530book
|
||||
msg_zerocopy
|
||||
failover
|
||||
net_dim
|
||||
net_failover
|
||||
phy
|
||||
sfp-phylink
|
||||
|
@ -812,7 +812,7 @@ tcp_limit_output_bytes - INTEGER
|
||||
tcp_challenge_ack_limit - INTEGER
|
||||
Limits number of Challenge ACK sent per second, as recommended
|
||||
in RFC 5961 (Improving TCP's Robustness to Blind In-Window Attacks)
|
||||
Default: 100
|
||||
Default: 1000
|
||||
|
||||
tcp_rx_skb_cache - BOOLEAN
|
||||
Controls a per TCP socket cache of one skb, that might help
|
||||
@ -983,6 +983,13 @@ ip_early_demux - BOOLEAN
|
||||
reduces overall throughput, in such case you should disable it.
|
||||
Default: 1
|
||||
|
||||
ping_group_range - 2 INTEGERS
|
||||
Restrict ICMP_PROTO datagram sockets to users in the group range.
|
||||
The default is "1 0", meaning, that nobody (not even root) may
|
||||
create ping sockets. Setting it to "100 100" would grant permissions
|
||||
to the single group. "0 4294967295" would enable it for the world, "100
|
||||
4294967295" would enable it for the users, but not daemons.
|
||||
|
||||
tcp_early_demux - BOOLEAN
|
||||
Enable early demux for established TCP sockets.
|
||||
Default: 1
|
||||
|
@ -1,28 +1,20 @@
|
||||
======================================================
|
||||
Net DIM - Generic Network Dynamic Interrupt Moderation
|
||||
======================================================
|
||||
|
||||
Author:
|
||||
Tal Gilboa <talgi@mellanox.com>
|
||||
:Author: Tal Gilboa <talgi@mellanox.com>
|
||||
|
||||
.. contents:: :depth: 2
|
||||
|
||||
Contents
|
||||
=========
|
||||
|
||||
- Assumptions
|
||||
- Introduction
|
||||
- The Net DIM Algorithm
|
||||
- Registering a Network Device to DIM
|
||||
- Example
|
||||
|
||||
Part 0: Assumptions
|
||||
======================
|
||||
Assumptions
|
||||
===========
|
||||
|
||||
This document assumes the reader has basic knowledge in network drivers
|
||||
and in general interrupt moderation.
|
||||
|
||||
|
||||
Part I: Introduction
|
||||
======================
|
||||
Introduction
|
||||
============
|
||||
|
||||
Dynamic Interrupt Moderation (DIM) (in networking) refers to changing the
|
||||
interrupt moderation configuration of a channel in order to optimize packet
|
||||
@ -41,14 +33,15 @@ number of wanted packets per event. The Net DIM algorithm ascribes importance to
|
||||
increase bandwidth over reducing interrupt rate.
|
||||
|
||||
|
||||
Part II: The Net DIM Algorithm
|
||||
===============================
|
||||
Net DIM Algorithm
|
||||
=================
|
||||
|
||||
Each iteration of the Net DIM algorithm follows these steps:
|
||||
1. Calculates new data sample.
|
||||
2. Compares it to previous sample.
|
||||
3. Makes a decision - suggests interrupt moderation configuration fields.
|
||||
4. Applies a schedule work function, which applies suggested configuration.
|
||||
|
||||
#. Calculates new data sample.
|
||||
#. Compares it to previous sample.
|
||||
#. Makes a decision - suggests interrupt moderation configuration fields.
|
||||
#. Applies a schedule work function, which applies suggested configuration.
|
||||
|
||||
The first two steps are straightforward, both the new and the previous data are
|
||||
supplied by the driver registered to Net DIM. The previous data is the new data
|
||||
@ -89,19 +82,21 @@ manoeuvre as it may provide partial data or ignore the algorithm suggestion
|
||||
under some conditions.
|
||||
|
||||
|
||||
Part III: Registering a Network Device to DIM
|
||||
==============================================
|
||||
Registering a Network Device to DIM
|
||||
===================================
|
||||
|
||||
Net DIM API exposes the main function net_dim(struct dim *dim,
|
||||
struct dim_sample end_sample). This function is the entry point to the Net
|
||||
Net DIM API exposes the main function net_dim().
|
||||
This function is the entry point to the Net
|
||||
DIM algorithm and has to be called every time the driver would like to check if
|
||||
it should change interrupt moderation parameters. The driver should provide two
|
||||
data structures: struct dim and struct dim_sample. Struct dim
|
||||
data structures: :c:type:`struct dim <dim>` and
|
||||
:c:type:`struct dim_sample <dim_sample>`. :c:type:`struct dim <dim>`
|
||||
describes the state of DIM for a specific object (RX queue, TX queue,
|
||||
other queues, etc.). This includes the current selected profile, previous data
|
||||
samples, the callback function provided by the driver and more.
|
||||
Struct dim_sample describes a data sample, which will be compared to the
|
||||
data sample stored in struct dim in order to decide on the algorithm's next
|
||||
:c:type:`struct dim_sample <dim_sample>` describes a data sample,
|
||||
which will be compared to the data sample stored in :c:type:`struct dim <dim>`
|
||||
in order to decide on the algorithm's next
|
||||
step. The sample should include bytes, packets and interrupts, measured by
|
||||
the driver.
|
||||
|
||||
@ -110,9 +105,10 @@ main net_dim() function. The recommended method is to call net_dim() on each
|
||||
interrupt. Since Net DIM has a built-in moderation and it might decide to skip
|
||||
iterations under certain conditions, there is no need to moderate the net_dim()
|
||||
calls as well. As mentioned above, the driver needs to provide an object of type
|
||||
struct dim to the net_dim() function call. It is advised for each entity
|
||||
using Net DIM to hold a struct dim as part of its data structure and use it
|
||||
as the main Net DIM API object. The struct dim_sample should hold the latest
|
||||
:c:type:`struct dim <dim>` to the net_dim() function call. It is advised for
|
||||
each entity using Net DIM to hold a :c:type:`struct dim <dim>` as part of its
|
||||
data structure and use it as the main Net DIM API object.
|
||||
The :c:type:`struct dim_sample <dim_sample>` should hold the latest
|
||||
bytes, packets and interrupts count. No need to perform any calculations, just
|
||||
include the raw data.
|
||||
|
||||
@ -124,19 +120,19 @@ the data flow. After the work is done, Net DIM algorithm needs to be set to
|
||||
the proper state in order to move to the next iteration.
|
||||
|
||||
|
||||
Part IV: Example
|
||||
=================
|
||||
Example
|
||||
=======
|
||||
|
||||
The following code demonstrates how to register a driver to Net DIM. The actual
|
||||
usage is not complete but it should make the outline of the usage clear.
|
||||
|
||||
my_driver.c:
|
||||
.. code-block:: c
|
||||
|
||||
#include <linux/dim.h>
|
||||
#include <linux/dim.h>
|
||||
|
||||
/* Callback for net DIM to schedule on a decision to change moderation */
|
||||
void my_driver_do_dim_work(struct work_struct *work)
|
||||
{
|
||||
/* Callback for net DIM to schedule on a decision to change moderation */
|
||||
void my_driver_do_dim_work(struct work_struct *work)
|
||||
{
|
||||
/* Get struct dim from struct work_struct */
|
||||
struct dim *dim = container_of(work, struct dim,
|
||||
work);
|
||||
@ -145,11 +141,11 @@ void my_driver_do_dim_work(struct work_struct *work)
|
||||
|
||||
/* Signal net DIM work is done and it should move to next iteration */
|
||||
dim->state = DIM_START_MEASURE;
|
||||
}
|
||||
}
|
||||
|
||||
/* My driver's interrupt handler */
|
||||
int my_driver_handle_interrupt(struct my_driver_entity *my_entity, ...)
|
||||
{
|
||||
/* My driver's interrupt handler */
|
||||
int my_driver_handle_interrupt(struct my_driver_entity *my_entity, ...)
|
||||
{
|
||||
...
|
||||
/* A struct to hold current measured data */
|
||||
struct dim_sample dim_sample;
|
||||
@ -162,13 +158,19 @@ int my_driver_handle_interrupt(struct my_driver_entity *my_entity, ...)
|
||||
/* Call net DIM */
|
||||
net_dim(&my_entity->dim, dim_sample);
|
||||
...
|
||||
}
|
||||
}
|
||||
|
||||
/* My entity's initialization function (my_entity was already allocated) */
|
||||
int my_driver_init_my_entity(struct my_driver_entity *my_entity, ...)
|
||||
{
|
||||
/* My entity's initialization function (my_entity was already allocated) */
|
||||
int my_driver_init_my_entity(struct my_driver_entity *my_entity, ...)
|
||||
{
|
||||
...
|
||||
/* Initiate struct work_struct with my driver's callback function */
|
||||
INIT_WORK(&my_entity->dim.work, my_driver_do_dim_work);
|
||||
...
|
||||
}
|
||||
}
|
||||
|
||||
Dynamic Interrupt Moderation (DIM) library API
|
||||
==============================================
|
||||
|
||||
.. kernel-doc:: include/linux/dim.h
|
||||
:internal:
|
@ -84,15 +84,20 @@ Get a decent editor and don't leave whitespace at the end of lines.
|
||||
Coding style is all about readability and maintainability using commonly
|
||||
available tools.
|
||||
|
||||
The limit on the length of lines is 80 columns and this is a strongly
|
||||
preferred limit.
|
||||
The preferred limit on the length of a single line is 80 columns.
|
||||
|
||||
Statements longer than 80 columns will be broken into sensible chunks, unless
|
||||
exceeding 80 columns significantly increases readability and does not hide
|
||||
information. Descendants are always substantially shorter than the parent and
|
||||
are placed substantially to the right. The same applies to function headers
|
||||
with a long argument list. However, never break user-visible strings such as
|
||||
printk messages, because that breaks the ability to grep for them.
|
||||
Statements longer than 80 columns should be broken into sensible chunks,
|
||||
unless exceeding 80 columns significantly increases readability and does
|
||||
not hide information.
|
||||
|
||||
Descendants are always substantially shorter than the parent and are
|
||||
are placed substantially to the right. A very commonly used style
|
||||
is to align descendants to a function open parenthesis.
|
||||
|
||||
These same rules are applied to function headers with a long argument list.
|
||||
|
||||
However, never break user-visible strings such as printk messages because
|
||||
that breaks the ability to grep for them.
|
||||
|
||||
|
||||
3) Placing Braces and Spaces
|
||||
|
@ -27,9 +27,8 @@ differences are:
|
||||
3. Raw Gadget provides a way to select a UDC device/driver to bind to,
|
||||
while GadgetFS currently binds to the first available UDC.
|
||||
|
||||
4. Raw Gadget uses predictable endpoint names (handles) across different
|
||||
UDCs (as long as UDCs have enough endpoints of each required transfer
|
||||
type).
|
||||
4. Raw Gadget explicitly exposes information about endpoints addresses and
|
||||
capabilities allowing a user to write UDC-agnostic gadgets.
|
||||
|
||||
5. Raw Gadget has ioctl-based interface instead of a filesystem-based one.
|
||||
|
||||
@ -50,12 +49,36 @@ The typical usage of Raw Gadget looks like:
|
||||
Raw Gadget and react to those depending on what kind of USB device
|
||||
needs to be emulated.
|
||||
|
||||
Note, that some UDC drivers have fixed addresses assigned to endpoints, and
|
||||
therefore arbitrary endpoint addresses can't be used in the descriptors.
|
||||
Nevertheles, Raw Gadget provides a UDC-agnostic way to write USB gadgets.
|
||||
Once a USB_RAW_EVENT_CONNECT event is received via USB_RAW_IOCTL_EVENT_FETCH,
|
||||
the USB_RAW_IOCTL_EPS_INFO ioctl can be used to find out information about
|
||||
endpoints that the UDC driver has. Based on that information, the user must
|
||||
chose UDC endpoints that will be used for the gadget being emulated, and
|
||||
properly assign addresses in endpoint descriptors.
|
||||
|
||||
You can find usage examples (along with a test suite) here:
|
||||
|
||||
https://github.com/xairy/raw-gadget
|
||||
|
||||
Internal details
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
||||
Currently every endpoint read/write ioctl submits a USB request and waits until
|
||||
its completion. This is the desired mode for coverage-guided fuzzing (as we'd
|
||||
like all USB request processing happen during the lifetime of a syscall),
|
||||
and must be kept in the implementation. (This might be slow for real world
|
||||
applications, thus the O_NONBLOCK improvement suggestion below.)
|
||||
|
||||
Potential future improvements
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
- Implement ioctl's for setting/clearing halt status on endpoints.
|
||||
|
||||
- Reporting more events (suspend, resume, etc.) through
|
||||
USB_RAW_IOCTL_EVENT_FETCH.
|
||||
- Report more events (suspend, resume, etc.) through USB_RAW_IOCTL_EVENT_FETCH.
|
||||
|
||||
- Support O_NONBLOCK I/O.
|
||||
|
||||
- Support USB 3 features (accept SS endpoint companion descriptor when
|
||||
enabling endpoints; allow providing stream_id for bulk transfers).
|
||||
|
||||
- Support ISO transfer features (expose frame_number for completed requests).
|
||||
|
@ -28,3 +28,5 @@ KVM
|
||||
arm/index
|
||||
|
||||
devices/index
|
||||
|
||||
running-nested-guests
|
||||
|
276
Documentation/virt/kvm/running-nested-guests.rst
Normal file
276
Documentation/virt/kvm/running-nested-guests.rst
Normal file
@ -0,0 +1,276 @@
|
||||
==============================
|
||||
Running nested guests with KVM
|
||||
==============================
|
||||
|
||||
A nested guest is the ability to run a guest inside another guest (it
|
||||
can be KVM-based or a different hypervisor). The straightforward
|
||||
example is a KVM guest that in turn runs on a KVM guest (the rest of
|
||||
this document is built on this example)::
|
||||
|
||||
.----------------. .----------------.
|
||||
| | | |
|
||||
| L2 | | L2 |
|
||||
| (Nested Guest) | | (Nested Guest) |
|
||||
| | | |
|
||||
|----------------'--'----------------|
|
||||
| |
|
||||
| L1 (Guest Hypervisor) |
|
||||
| KVM (/dev/kvm) |
|
||||
| |
|
||||
.------------------------------------------------------.
|
||||
| L0 (Host Hypervisor) |
|
||||
| KVM (/dev/kvm) |
|
||||
|------------------------------------------------------|
|
||||
| Hardware (with virtualization extensions) |
|
||||
'------------------------------------------------------'
|
||||
|
||||
Terminology:
|
||||
|
||||
- L0 – level-0; the bare metal host, running KVM
|
||||
|
||||
- L1 – level-1 guest; a VM running on L0; also called the "guest
|
||||
hypervisor", as it itself is capable of running KVM.
|
||||
|
||||
- L2 – level-2 guest; a VM running on L1, this is the "nested guest"
|
||||
|
||||
.. note:: The above diagram is modelled after the x86 architecture;
|
||||
s390x, ppc64 and other architectures are likely to have
|
||||
a different design for nesting.
|
||||
|
||||
For example, s390x always has an LPAR (LogicalPARtition)
|
||||
hypervisor running on bare metal, adding another layer and
|
||||
resulting in at least four levels in a nested setup — L0 (bare
|
||||
metal, running the LPAR hypervisor), L1 (host hypervisor), L2
|
||||
(guest hypervisor), L3 (nested guest).
|
||||
|
||||
This document will stick with the three-level terminology (L0,
|
||||
L1, and L2) for all architectures; and will largely focus on
|
||||
x86.
|
||||
|
||||
|
||||
Use Cases
|
||||
---------
|
||||
|
||||
There are several scenarios where nested KVM can be useful, to name a
|
||||
few:
|
||||
|
||||
- As a developer, you want to test your software on different operating
|
||||
systems (OSes). Instead of renting multiple VMs from a Cloud
|
||||
Provider, using nested KVM lets you rent a large enough "guest
|
||||
hypervisor" (level-1 guest). This in turn allows you to create
|
||||
multiple nested guests (level-2 guests), running different OSes, on
|
||||
which you can develop and test your software.
|
||||
|
||||
- Live migration of "guest hypervisors" and their nested guests, for
|
||||
load balancing, disaster recovery, etc.
|
||||
|
||||
- VM image creation tools (e.g. ``virt-install``, etc) often run
|
||||
their own VM, and users expect these to work inside a VM.
|
||||
|
||||
- Some OSes use virtualization internally for security (e.g. to let
|
||||
applications run safely in isolation).
|
||||
|
||||
|
||||
Enabling "nested" (x86)
|
||||
-----------------------
|
||||
|
||||
From Linux kernel v4.19 onwards, the ``nested`` KVM parameter is enabled
|
||||
by default for Intel and AMD. (Though your Linux distribution might
|
||||
override this default.)
|
||||
|
||||
In case you are running a Linux kernel older than v4.19, to enable
|
||||
nesting, set the ``nested`` KVM module parameter to ``Y`` or ``1``. To
|
||||
persist this setting across reboots, you can add it in a config file, as
|
||||
shown below:
|
||||
|
||||
1. On the bare metal host (L0), list the kernel modules and ensure that
|
||||
the KVM modules::
|
||||
|
||||
$ lsmod | grep -i kvm
|
||||
kvm_intel 133627 0
|
||||
kvm 435079 1 kvm_intel
|
||||
|
||||
2. Show information for ``kvm_intel`` module::
|
||||
|
||||
$ modinfo kvm_intel | grep -i nested
|
||||
parm: nested:bool
|
||||
|
||||
3. For the nested KVM configuration to persist across reboots, place the
|
||||
below in ``/etc/modprobed/kvm_intel.conf`` (create the file if it
|
||||
doesn't exist)::
|
||||
|
||||
$ cat /etc/modprobe.d/kvm_intel.conf
|
||||
options kvm-intel nested=y
|
||||
|
||||
4. Unload and re-load the KVM Intel module::
|
||||
|
||||
$ sudo rmmod kvm-intel
|
||||
$ sudo modprobe kvm-intel
|
||||
|
||||
5. Verify if the ``nested`` parameter for KVM is enabled::
|
||||
|
||||
$ cat /sys/module/kvm_intel/parameters/nested
|
||||
Y
|
||||
|
||||
For AMD hosts, the process is the same as above, except that the module
|
||||
name is ``kvm-amd``.
|
||||
|
||||
|
||||
Additional nested-related kernel parameters (x86)
|
||||
-------------------------------------------------
|
||||
|
||||
If your hardware is sufficiently advanced (Intel Haswell processor or
|
||||
higher, which has newer hardware virt extensions), the following
|
||||
additional features will also be enabled by default: "Shadow VMCS
|
||||
(Virtual Machine Control Structure)", APIC Virtualization on your bare
|
||||
metal host (L0). Parameters for Intel hosts::
|
||||
|
||||
$ cat /sys/module/kvm_intel/parameters/enable_shadow_vmcs
|
||||
Y
|
||||
|
||||
$ cat /sys/module/kvm_intel/parameters/enable_apicv
|
||||
Y
|
||||
|
||||
$ cat /sys/module/kvm_intel/parameters/ept
|
||||
Y
|
||||
|
||||
.. note:: If you suspect your L2 (i.e. nested guest) is running slower,
|
||||
ensure the above are enabled (particularly
|
||||
``enable_shadow_vmcs`` and ``ept``).
|
||||
|
||||
|
||||
Starting a nested guest (x86)
|
||||
-----------------------------
|
||||
|
||||
Once your bare metal host (L0) is configured for nesting, you should be
|
||||
able to start an L1 guest with::
|
||||
|
||||
$ qemu-kvm -cpu host [...]
|
||||
|
||||
The above will pass through the host CPU's capabilities as-is to the
|
||||
gues); or for better live migration compatibility, use a named CPU
|
||||
model supported by QEMU. e.g.::
|
||||
|
||||
$ qemu-kvm -cpu Haswell-noTSX-IBRS,vmx=on
|
||||
|
||||
then the guest hypervisor will subsequently be capable of running a
|
||||
nested guest with accelerated KVM.
|
||||
|
||||
|
||||
Enabling "nested" (s390x)
|
||||
-------------------------
|
||||
|
||||
1. On the host hypervisor (L0), enable the ``nested`` parameter on
|
||||
s390x::
|
||||
|
||||
$ rmmod kvm
|
||||
$ modprobe kvm nested=1
|
||||
|
||||
.. note:: On s390x, the kernel parameter ``hpage`` is mutually exclusive
|
||||
with the ``nested`` paramter — i.e. to be able to enable
|
||||
``nested``, the ``hpage`` parameter *must* be disabled.
|
||||
|
||||
2. The guest hypervisor (L1) must be provided with the ``sie`` CPU
|
||||
feature — with QEMU, this can be done by using "host passthrough"
|
||||
(via the command-line ``-cpu host``).
|
||||
|
||||
3. Now the KVM module can be loaded in the L1 (guest hypervisor)::
|
||||
|
||||
$ modprobe kvm
|
||||
|
||||
|
||||
Live migration with nested KVM
|
||||
------------------------------
|
||||
|
||||
Migrating an L1 guest, with a *live* nested guest in it, to another
|
||||
bare metal host, works as of Linux kernel 5.3 and QEMU 4.2.0 for
|
||||
Intel x86 systems, and even on older versions for s390x.
|
||||
|
||||
On AMD systems, once an L1 guest has started an L2 guest, the L1 guest
|
||||
should no longer be migrated or saved (refer to QEMU documentation on
|
||||
"savevm"/"loadvm") until the L2 guest shuts down. Attempting to migrate
|
||||
or save-and-load an L1 guest while an L2 guest is running will result in
|
||||
undefined behavior. You might see a ``kernel BUG!`` entry in ``dmesg``, a
|
||||
kernel 'oops', or an outright kernel panic. Such a migrated or loaded L1
|
||||
guest can no longer be considered stable or secure, and must be restarted.
|
||||
Migrating an L1 guest merely configured to support nesting, while not
|
||||
actually running L2 guests, is expected to function normally even on AMD
|
||||
systems but may fail once guests are started.
|
||||
|
||||
Migrating an L2 guest is always expected to succeed, so all the following
|
||||
scenarios should work even on AMD systems:
|
||||
|
||||
- Migrating a nested guest (L2) to another L1 guest on the *same* bare
|
||||
metal host.
|
||||
|
||||
- Migrating a nested guest (L2) to another L1 guest on a *different*
|
||||
bare metal host.
|
||||
|
||||
- Migrating a nested guest (L2) to a bare metal host.
|
||||
|
||||
Reporting bugs from nested setups
|
||||
-----------------------------------
|
||||
|
||||
Debugging "nested" problems can involve sifting through log files across
|
||||
L0, L1 and L2; this can result in tedious back-n-forth between the bug
|
||||
reporter and the bug fixer.
|
||||
|
||||
- Mention that you are in a "nested" setup. If you are running any kind
|
||||
of "nesting" at all, say so. Unfortunately, this needs to be called
|
||||
out because when reporting bugs, people tend to forget to even
|
||||
*mention* that they're using nested virtualization.
|
||||
|
||||
- Ensure you are actually running KVM on KVM. Sometimes people do not
|
||||
have KVM enabled for their guest hypervisor (L1), which results in
|
||||
them running with pure emulation or what QEMU calls it as "TCG", but
|
||||
they think they're running nested KVM. Thus confusing "nested Virt"
|
||||
(which could also mean, QEMU on KVM) with "nested KVM" (KVM on KVM).
|
||||
|
||||
Information to collect (generic)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The following is not an exhaustive list, but a very good starting point:
|
||||
|
||||
- Kernel, libvirt, and QEMU version from L0
|
||||
|
||||
- Kernel, libvirt and QEMU version from L1
|
||||
|
||||
- QEMU command-line of L1 -- when using libvirt, you'll find it here:
|
||||
``/var/log/libvirt/qemu/instance.log``
|
||||
|
||||
- QEMU command-line of L2 -- as above, when using libvirt, get the
|
||||
complete libvirt-generated QEMU command-line
|
||||
|
||||
- ``cat /sys/cpuinfo`` from L0
|
||||
|
||||
- ``cat /sys/cpuinfo`` from L1
|
||||
|
||||
- ``lscpu`` from L0
|
||||
|
||||
- ``lscpu`` from L1
|
||||
|
||||
- Full ``dmesg`` output from L0
|
||||
|
||||
- Full ``dmesg`` output from L1
|
||||
|
||||
x86-specific info to collect
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Both the below commands, ``x86info`` and ``dmidecode``, should be
|
||||
available on most Linux distributions with the same name:
|
||||
|
||||
- Output of: ``x86info -a`` from L0
|
||||
|
||||
- Output of: ``x86info -a`` from L1
|
||||
|
||||
- Output of: ``dmidecode`` from L0
|
||||
|
||||
- Output of: ``dmidecode`` from L1
|
||||
|
||||
s390x-specific info to collect
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Along with the earlier mentioned generic details, the below is
|
||||
also recommended:
|
||||
|
||||
- ``/proc/sysinfo`` from L1; this will also include the info from L0
|
@ -1399,8 +1399,8 @@ must have read/write permission; CS must be __BOOT_CS and DS, ES, SS
|
||||
must be __BOOT_DS; interrupt must be disabled; %rsi must hold the base
|
||||
address of the struct boot_params.
|
||||
|
||||
EFI Handover Protocol
|
||||
=====================
|
||||
EFI Handover Protocol (deprecated)
|
||||
==================================
|
||||
|
||||
This protocol allows boot loaders to defer initialisation to the EFI
|
||||
boot stub. The boot loader is required to load the kernel/initrd(s)
|
||||
@ -1408,6 +1408,12 @@ from the boot media and jump to the EFI handover protocol entry point
|
||||
which is hdr->handover_offset bytes from the beginning of
|
||||
startup_{32,64}.
|
||||
|
||||
The boot loader MUST respect the kernel's PE/COFF metadata when it comes
|
||||
to section alignment, the memory footprint of the executable image beyond
|
||||
the size of the file itself, and any other aspect of the PE/COFF header
|
||||
that may affect correct operation of the image as a PE/COFF binary in the
|
||||
execution context provided by the EFI firmware.
|
||||
|
||||
The function prototype for the handover entry point looks like this::
|
||||
|
||||
efi_main(void *handle, efi_system_table_t *table, struct boot_params *bp)
|
||||
@ -1419,9 +1425,18 @@ UEFI specification. 'bp' is the boot loader-allocated boot params.
|
||||
|
||||
The boot loader *must* fill out the following fields in bp::
|
||||
|
||||
- hdr.code32_start
|
||||
- hdr.cmd_line_ptr
|
||||
- hdr.ramdisk_image (if applicable)
|
||||
- hdr.ramdisk_size (if applicable)
|
||||
|
||||
All other fields should be zero.
|
||||
|
||||
NOTE: The EFI Handover Protocol is deprecated in favour of the ordinary PE/COFF
|
||||
entry point, combined with the LINUX_EFI_INITRD_MEDIA_GUID based initrd
|
||||
loading protocol (refer to [0] for an example of the bootloader side of
|
||||
this), which removes the need for any knowledge on the part of the EFI
|
||||
bootloader regarding the internal representation of boot_params or any
|
||||
requirements/limitations regarding the placement of the command line
|
||||
and ramdisk in memory, or the placement of the kernel image itself.
|
||||
|
||||
[0] https://github.com/u-boot/u-boot/commit/ec80b4735a593961fe701cc3a5d717d4739b0fd0
|
||||
|
122
MAINTAINERS
122
MAINTAINERS
@ -189,7 +189,7 @@ F: drivers/net/hamradio/6pack.c
|
||||
M: Johannes Berg <johannes@sipsolutions.net>
|
||||
L: linux-wireless@vger.kernel.org
|
||||
S: Maintained
|
||||
W: http://wireless.kernel.org/
|
||||
W: https://wireless.wiki.kernel.org/
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211.git
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git
|
||||
F: Documentation/driver-api/80211/cfg80211.rst
|
||||
@ -505,7 +505,7 @@ F: drivers/hwmon/adm1029.c
|
||||
ADM8211 WIRELESS DRIVER
|
||||
L: linux-wireless@vger.kernel.org
|
||||
S: Orphan
|
||||
W: http://wireless.kernel.org/
|
||||
W: https://wireless.wiki.kernel.org/
|
||||
F: drivers/net/wireless/admtek/adm8211.*
|
||||
|
||||
ADP1653 FLASH CONTROLLER DRIVER
|
||||
@ -570,7 +570,7 @@ F: Documentation/devicetree/bindings/iio/accel/adi,adxl345.yaml
|
||||
F: drivers/input/misc/adxl34x.c
|
||||
|
||||
ADXL372 THREE-AXIS DIGITAL ACCELEROMETER DRIVER
|
||||
M: Stefan Popa <stefan.popa@analog.com>
|
||||
M: Michael Hennerich <michael.hennerich@analog.com>
|
||||
S: Supported
|
||||
W: http://ez.analog.com/community/linux-device-drivers
|
||||
F: Documentation/devicetree/bindings/iio/accel/adi,adxl372.yaml
|
||||
@ -922,7 +922,7 @@ F: arch/arm64/boot/dts/amd/amd-seattle-xgbe*.dtsi
|
||||
F: drivers/net/ethernet/amd/xgbe/
|
||||
|
||||
ANALOG DEVICES INC AD5686 DRIVER
|
||||
M: Stefan Popa <stefan.popa@analog.com>
|
||||
M: Michael Hennerich <Michael.Hennerich@analog.com>
|
||||
L: linux-pm@vger.kernel.org
|
||||
S: Supported
|
||||
W: http://ez.analog.com/community/linux-device-drivers
|
||||
@ -930,7 +930,7 @@ F: drivers/iio/dac/ad5686*
|
||||
F: drivers/iio/dac/ad5696*
|
||||
|
||||
ANALOG DEVICES INC AD5758 DRIVER
|
||||
M: Stefan Popa <stefan.popa@analog.com>
|
||||
M: Michael Hennerich <Michael.Hennerich@analog.com>
|
||||
L: linux-iio@vger.kernel.org
|
||||
S: Supported
|
||||
W: http://ez.analog.com/community/linux-device-drivers
|
||||
@ -946,7 +946,7 @@ F: Documentation/devicetree/bindings/iio/adc/adi,ad7091r5.yaml
|
||||
F: drivers/iio/adc/ad7091r5.c
|
||||
|
||||
ANALOG DEVICES INC AD7124 DRIVER
|
||||
M: Stefan Popa <stefan.popa@analog.com>
|
||||
M: Michael Hennerich <Michael.Hennerich@analog.com>
|
||||
L: linux-iio@vger.kernel.org
|
||||
S: Supported
|
||||
W: http://ez.analog.com/community/linux-device-drivers
|
||||
@ -970,7 +970,7 @@ F: Documentation/devicetree/bindings/iio/adc/adi,ad7292.yaml
|
||||
F: drivers/iio/adc/ad7292.c
|
||||
|
||||
ANALOG DEVICES INC AD7606 DRIVER
|
||||
M: Stefan Popa <stefan.popa@analog.com>
|
||||
M: Michael Hennerich <Michael.Hennerich@analog.com>
|
||||
M: Beniamin Bia <beniamin.bia@analog.com>
|
||||
L: linux-iio@vger.kernel.org
|
||||
S: Supported
|
||||
@ -979,7 +979,7 @@ F: Documentation/devicetree/bindings/iio/adc/adi,ad7606.yaml
|
||||
F: drivers/iio/adc/ad7606.c
|
||||
|
||||
ANALOG DEVICES INC AD7768-1 DRIVER
|
||||
M: Stefan Popa <stefan.popa@analog.com>
|
||||
M: Michael Hennerich <Michael.Hennerich@analog.com>
|
||||
L: linux-iio@vger.kernel.org
|
||||
S: Supported
|
||||
W: http://ez.analog.com/community/linux-device-drivers
|
||||
@ -1040,7 +1040,7 @@ F: Documentation/devicetree/bindings/hwmon/adi,adm1177.yaml
|
||||
F: drivers/hwmon/adm1177.c
|
||||
|
||||
ANALOG DEVICES INC ADP5061 DRIVER
|
||||
M: Stefan Popa <stefan.popa@analog.com>
|
||||
M: Michael Hennerich <Michael.Hennerich@analog.com>
|
||||
L: linux-pm@vger.kernel.org
|
||||
S: Supported
|
||||
W: http://ez.analog.com/community/linux-device-drivers
|
||||
@ -1109,7 +1109,6 @@ F: drivers/iio/amplifiers/hmc425a.c
|
||||
ANALOG DEVICES INC IIO DRIVERS
|
||||
M: Lars-Peter Clausen <lars@metafoo.de>
|
||||
M: Michael Hennerich <Michael.Hennerich@analog.com>
|
||||
M: Stefan Popa <stefan.popa@analog.com>
|
||||
S: Supported
|
||||
W: http://wiki.analog.com/
|
||||
W: http://ez.analog.com/community/linux-device-drivers
|
||||
@ -1323,7 +1322,10 @@ ARM INTEGRATOR, VERSATILE AND REALVIEW SUPPORT
|
||||
M: Linus Walleij <linus.walleij@linaro.org>
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
S: Maintained
|
||||
F: Documentation/devicetree/bindings/arm/arm-boards
|
||||
F: Documentation/devicetree/bindings/arm/arm,integrator.yaml
|
||||
F: Documentation/devicetree/bindings/arm/arm,realview.yaml
|
||||
F: Documentation/devicetree/bindings/arm/arm,versatile.yaml
|
||||
F: Documentation/devicetree/bindings/arm/arm,vexpress-juno.yaml
|
||||
F: Documentation/devicetree/bindings/auxdisplay/arm-charlcd.txt
|
||||
F: Documentation/devicetree/bindings/clock/arm,syscon-icst.yaml
|
||||
F: Documentation/devicetree/bindings/i2c/i2c-versatile.txt
|
||||
@ -2847,14 +2849,14 @@ M: Nick Kossifidis <mickflemm@gmail.com>
|
||||
M: Luis Chamberlain <mcgrof@kernel.org>
|
||||
L: linux-wireless@vger.kernel.org
|
||||
S: Maintained
|
||||
W: http://wireless.kernel.org/en/users/Drivers/ath5k
|
||||
W: https://wireless.wiki.kernel.org/en/users/Drivers/ath5k
|
||||
F: drivers/net/wireless/ath/ath5k/
|
||||
|
||||
ATHEROS ATH6KL WIRELESS DRIVER
|
||||
M: Kalle Valo <kvalo@codeaurora.org>
|
||||
L: linux-wireless@vger.kernel.org
|
||||
S: Supported
|
||||
W: http://wireless.kernel.org/en/users/Drivers/ath6kl
|
||||
W: https://wireless.wiki.kernel.org/en/users/Drivers/ath6kl
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
|
||||
F: drivers/net/wireless/ath/ath6kl/
|
||||
|
||||
@ -3017,7 +3019,7 @@ B43 WIRELESS DRIVER
|
||||
L: linux-wireless@vger.kernel.org
|
||||
L: b43-dev@lists.infradead.org
|
||||
S: Odd Fixes
|
||||
W: http://wireless.kernel.org/en/users/Drivers/b43
|
||||
W: https://wireless.wiki.kernel.org/en/users/Drivers/b43
|
||||
F: drivers/net/wireless/broadcom/b43/
|
||||
|
||||
B43LEGACY WIRELESS DRIVER
|
||||
@ -3025,7 +3027,7 @@ M: Larry Finger <Larry.Finger@lwfinger.net>
|
||||
L: linux-wireless@vger.kernel.org
|
||||
L: b43-dev@lists.infradead.org
|
||||
S: Maintained
|
||||
W: http://wireless.kernel.org/en/users/Drivers/b43
|
||||
W: https://wireless.wiki.kernel.org/en/users/Drivers/b43
|
||||
F: drivers/net/wireless/broadcom/b43legacy/
|
||||
|
||||
BACKLIGHT CLASS/SUBSYSTEM
|
||||
@ -3655,7 +3657,7 @@ L: linux-btrfs@vger.kernel.org
|
||||
S: Maintained
|
||||
W: http://btrfs.wiki.kernel.org/
|
||||
Q: http://patchwork.kernel.org/project/linux-btrfs/list/
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git
|
||||
F: Documentation/filesystems/btrfs.rst
|
||||
F: fs/btrfs/
|
||||
F: include/linux/btrfs*
|
||||
@ -3840,7 +3842,7 @@ CARL9170 LINUX COMMUNITY WIRELESS DRIVER
|
||||
M: Christian Lamparter <chunkeey@googlemail.com>
|
||||
L: linux-wireless@vger.kernel.org
|
||||
S: Maintained
|
||||
W: http://wireless.kernel.org/en/users/Drivers/carl9170
|
||||
W: https://wireless.wiki.kernel.org/en/users/Drivers/carl9170
|
||||
F: drivers/net/wireless/ath/carl9170/
|
||||
|
||||
CAVIUM I2C DRIVER
|
||||
@ -3934,11 +3936,9 @@ F: arch/powerpc/platforms/cell/
|
||||
CEPH COMMON CODE (LIBCEPH)
|
||||
M: Ilya Dryomov <idryomov@gmail.com>
|
||||
M: Jeff Layton <jlayton@kernel.org>
|
||||
M: Sage Weil <sage@redhat.com>
|
||||
L: ceph-devel@vger.kernel.org
|
||||
S: Supported
|
||||
W: http://ceph.com/
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client.git
|
||||
T: git git://github.com/ceph/ceph-client.git
|
||||
F: include/linux/ceph/
|
||||
F: include/linux/crush/
|
||||
@ -3946,12 +3946,10 @@ F: net/ceph/
|
||||
|
||||
CEPH DISTRIBUTED FILE SYSTEM CLIENT (CEPH)
|
||||
M: Jeff Layton <jlayton@kernel.org>
|
||||
M: Sage Weil <sage@redhat.com>
|
||||
M: Ilya Dryomov <idryomov@gmail.com>
|
||||
L: ceph-devel@vger.kernel.org
|
||||
S: Supported
|
||||
W: http://ceph.com/
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client.git
|
||||
T: git git://github.com/ceph/ceph-client.git
|
||||
F: Documentation/filesystems/ceph.rst
|
||||
F: fs/ceph/
|
||||
@ -5173,6 +5171,7 @@ S: Maintained
|
||||
F: drivers/soc/fsl/dpio
|
||||
|
||||
DPAA2 ETHERNET DRIVER
|
||||
M: Ioana Ciornei <ioana.ciornei@nxp.com>
|
||||
M: Ioana Radulescu <ruxandra.radulescu@nxp.com>
|
||||
L: netdev@vger.kernel.org
|
||||
S: Maintained
|
||||
@ -5508,10 +5507,10 @@ F: drivers/gpu/drm/vboxvideo/
|
||||
|
||||
DRM DRIVER FOR VMWARE VIRTUAL GPU
|
||||
M: "VMware Graphics" <linux-graphics-maintainer@vmware.com>
|
||||
M: Thomas Hellstrom <thellstrom@vmware.com>
|
||||
M: Roland Scheidegger <sroland@vmware.com>
|
||||
L: dri-devel@lists.freedesktop.org
|
||||
S: Supported
|
||||
T: git git://people.freedesktop.org/~thomash/linux
|
||||
T: git git://people.freedesktop.org/~sroland/linux
|
||||
F: drivers/gpu/drm/vmwgfx/
|
||||
F: include/uapi/drm/vmwgfx_drm.h
|
||||
|
||||
@ -5552,7 +5551,7 @@ M: Chen-Yu Tsai <wens@csie.org>
|
||||
L: dri-devel@lists.freedesktop.org
|
||||
S: Supported
|
||||
T: git git://anongit.freedesktop.org/drm/drm-misc
|
||||
F: Documentation/devicetree/bindings/display/sunxi/sun4i-drm.txt
|
||||
F: Documentation/devicetree/bindings/display/allwinner*
|
||||
F: drivers/gpu/drm/sun4i/
|
||||
|
||||
DRM DRIVERS FOR AMLOGIC SOCS
|
||||
@ -5932,6 +5931,7 @@ F: lib/dynamic_debug.c
|
||||
DYNAMIC INTERRUPT MODERATION
|
||||
M: Tal Gilboa <talgi@mellanox.com>
|
||||
S: Maintained
|
||||
F: Documentation/networking/net_dim.rst
|
||||
F: include/linux/dim.h
|
||||
F: lib/dim/
|
||||
|
||||
@ -7115,9 +7115,10 @@ F: include/uapi/asm-generic/
|
||||
|
||||
GENERIC PHY FRAMEWORK
|
||||
M: Kishon Vijay Abraham I <kishon@ti.com>
|
||||
M: Vinod Koul <vkoul@kernel.org>
|
||||
L: linux-kernel@vger.kernel.org
|
||||
S: Supported
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/kishon/linux-phy.git
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/phy/linux-phy.git
|
||||
F: Documentation/devicetree/bindings/phy/
|
||||
F: drivers/phy/
|
||||
F: include/linux/phy/
|
||||
@ -7742,11 +7743,6 @@ L: platform-driver-x86@vger.kernel.org
|
||||
S: Orphan
|
||||
F: drivers/platform/x86/tc1100-wmi.c
|
||||
|
||||
HP100: Driver for HP 10/100 Mbit/s Voice Grade Network Adapter Series
|
||||
M: Jaroslav Kysela <perex@perex.cz>
|
||||
S: Obsolete
|
||||
F: drivers/staging/hp/hp100.*
|
||||
|
||||
HPET: High Precision Event Timers driver
|
||||
M: Clemens Ladisch <clemens@ladisch.de>
|
||||
S: Maintained
|
||||
@ -7833,7 +7829,7 @@ T: git git://linuxtv.org/media_tree.git
|
||||
F: drivers/media/platform/sti/hva
|
||||
|
||||
HWPOISON MEMORY FAILURE HANDLING
|
||||
M: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
|
||||
M: Naoya Horiguchi <naoya.horiguchi@nec.com>
|
||||
L: linux-mm@kvack.org
|
||||
S: Maintained
|
||||
F: mm/hwpoison-inject.c
|
||||
@ -7945,7 +7941,7 @@ F: Documentation/i2c/busses/i2c-parport.rst
|
||||
F: drivers/i2c/busses/i2c-parport.c
|
||||
|
||||
I2C SUBSYSTEM
|
||||
M: Wolfram Sang <wsa@the-dreams.de>
|
||||
M: Wolfram Sang <wsa@kernel.org>
|
||||
L: linux-i2c@vger.kernel.org
|
||||
S: Maintained
|
||||
W: https://i2c.wiki.kernel.org/
|
||||
@ -9189,6 +9185,11 @@ L: kexec@lists.infradead.org
|
||||
S: Maintained
|
||||
W: http://lse.sourceforge.net/kdump/
|
||||
F: Documentation/admin-guide/kdump/
|
||||
F: fs/proc/vmcore.c
|
||||
F: include/linux/crash_core.h
|
||||
F: include/linux/crash_dump.h
|
||||
F: include/uapi/linux/vmcore.h
|
||||
F: kernel/crash_*.c
|
||||
|
||||
KEENE FM RADIO TRANSMITTER DRIVER
|
||||
M: Hans Verkuil <hverkuil@xs4all.nl>
|
||||
@ -9325,6 +9326,7 @@ M: Christian Borntraeger <borntraeger@de.ibm.com>
|
||||
M: Janosch Frank <frankja@linux.ibm.com>
|
||||
R: David Hildenbrand <david@redhat.com>
|
||||
R: Cornelia Huck <cohuck@redhat.com>
|
||||
R: Claudio Imbrenda <imbrenda@linux.ibm.com>
|
||||
L: kvm@vger.kernel.org
|
||||
S: Supported
|
||||
W: http://www.ibm.com/developerworks/linux/linux390/
|
||||
@ -9412,6 +9414,13 @@ F: include/linux/keyctl.h
|
||||
F: include/uapi/linux/keyctl.h
|
||||
F: security/keys/
|
||||
|
||||
KFIFO
|
||||
M: Stefani Seibold <stefani@seibold.net>
|
||||
S: Maintained
|
||||
F: include/linux/kfifo.h
|
||||
F: lib/kfifo.c
|
||||
F: samples/kfifo/
|
||||
|
||||
KGDB / KDB /debug_core
|
||||
M: Jason Wessel <jason.wessel@windriver.com>
|
||||
M: Daniel Thompson <daniel.thompson@linaro.org>
|
||||
@ -10063,7 +10072,7 @@ MAC80211
|
||||
M: Johannes Berg <johannes@sipsolutions.net>
|
||||
L: linux-wireless@vger.kernel.org
|
||||
S: Maintained
|
||||
W: http://wireless.kernel.org/
|
||||
W: https://wireless.wiki.kernel.org/
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211.git
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git
|
||||
F: Documentation/networking/mac80211-injection.txt
|
||||
@ -10658,6 +10667,13 @@ L: netdev@vger.kernel.org
|
||||
S: Maintained
|
||||
F: drivers/net/ethernet/mediatek/
|
||||
|
||||
MEDIATEK I2C CONTROLLER DRIVER
|
||||
M: Qii Wang <qii.wang@mediatek.com>
|
||||
L: linux-i2c@vger.kernel.org
|
||||
S: Maintained
|
||||
F: Documentation/devicetree/bindings/i2c/i2c-mt65xx.txt
|
||||
F: drivers/i2c/busses/i2c-mt65xx.c
|
||||
|
||||
MEDIATEK JPEG DRIVER
|
||||
M: Rick Chang <rick.chang@mediatek.com>
|
||||
M: Bin Liu <bin.liu@mediatek.com>
|
||||
@ -10693,7 +10709,6 @@ MEDIATEK MT76 WIRELESS LAN DRIVER
|
||||
M: Felix Fietkau <nbd@nbd.name>
|
||||
M: Lorenzo Bianconi <lorenzo.bianconi83@gmail.com>
|
||||
R: Ryder Lee <ryder.lee@mediatek.com>
|
||||
R: Roy Luo <royluo@google.com>
|
||||
L: linux-wireless@vger.kernel.org
|
||||
S: Maintained
|
||||
F: drivers/net/wireless/mediatek/mt76/
|
||||
@ -11707,8 +11722,9 @@ F: net/core/drop_monitor.c
|
||||
|
||||
NETWORKING DRIVERS
|
||||
M: "David S. Miller" <davem@davemloft.net>
|
||||
M: Jakub Kicinski <kuba@kernel.org>
|
||||
L: netdev@vger.kernel.org
|
||||
S: Odd Fixes
|
||||
S: Maintained
|
||||
W: http://www.linuxfoundation.org/en/Net
|
||||
Q: http://patchwork.ozlabs.org/project/netdev/list/
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git
|
||||
@ -12644,7 +12660,7 @@ F: fs/orangefs/
|
||||
ORINOCO DRIVER
|
||||
L: linux-wireless@vger.kernel.org
|
||||
S: Orphan
|
||||
W: http://wireless.kernel.org/en/users/Drivers/orinoco
|
||||
W: https://wireless.wiki.kernel.org/en/users/Drivers/orinoco
|
||||
W: http://www.nongnu.org/orinoco/
|
||||
F: drivers/net/wireless/intersil/orinoco/
|
||||
|
||||
@ -12670,7 +12686,7 @@ P54 WIRELESS DRIVER
|
||||
M: Christian Lamparter <chunkeey@googlemail.com>
|
||||
L: linux-wireless@vger.kernel.org
|
||||
S: Maintained
|
||||
W: http://wireless.kernel.org/en/users/Drivers/p54
|
||||
W: https://wireless.wiki.kernel.org/en/users/Drivers/p54
|
||||
F: drivers/net/wireless/intersil/p54/
|
||||
|
||||
PACKING
|
||||
@ -13038,7 +13054,7 @@ F: drivers/pci/controller/pci-xgene-msi.c
|
||||
|
||||
PCI NATIVE HOST BRIDGE AND ENDPOINT DRIVERS
|
||||
M: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
|
||||
R: Andrew Murray <amurray@thegoodpenguin.co.uk>
|
||||
R: Rob Herring <robh@kernel.org>
|
||||
L: linux-pci@vger.kernel.org
|
||||
S: Supported
|
||||
Q: http://patchwork.ozlabs.org/project/linux-pci/list/
|
||||
@ -13591,7 +13607,7 @@ PRISM54 WIRELESS DRIVER
|
||||
M: Luis Chamberlain <mcgrof@kernel.org>
|
||||
L: linux-wireless@vger.kernel.org
|
||||
S: Obsolete
|
||||
W: http://wireless.kernel.org/en/users/Drivers/p54
|
||||
W: https://wireless.wiki.kernel.org/en/users/Drivers/p54
|
||||
F: drivers/net/wireless/intersil/prism54/
|
||||
|
||||
PROC FILESYSTEM
|
||||
@ -13853,7 +13869,8 @@ S: Maintained
|
||||
F: drivers/scsi/qla1280.[ch]
|
||||
|
||||
QLOGIC QLA2XXX FC-SCSI DRIVER
|
||||
M: hmadhani@marvell.com
|
||||
M: Nilesh Javali <njavali@marvell.com>
|
||||
M: GR-QLogic-Storage-Upstream@marvell.com
|
||||
L: linux-scsi@vger.kernel.org
|
||||
S: Supported
|
||||
F: Documentation/scsi/LICENSE.qla2xxx
|
||||
@ -13931,7 +13948,7 @@ QUALCOMM ATHEROS ATH10K WIRELESS DRIVER
|
||||
M: Kalle Valo <kvalo@codeaurora.org>
|
||||
L: ath10k@lists.infradead.org
|
||||
S: Supported
|
||||
W: http://wireless.kernel.org/en/users/Drivers/ath10k
|
||||
W: https://wireless.wiki.kernel.org/en/users/Drivers/ath10k
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
|
||||
F: drivers/net/wireless/ath/ath10k/
|
||||
|
||||
@ -13946,7 +13963,7 @@ QUALCOMM ATHEROS ATH9K WIRELESS DRIVER
|
||||
M: QCA ath9k Development <ath9k-devel@qca.qualcomm.com>
|
||||
L: linux-wireless@vger.kernel.org
|
||||
S: Supported
|
||||
W: http://wireless.kernel.org/en/users/Drivers/ath9k
|
||||
W: https://wireless.wiki.kernel.org/en/users/Drivers/ath9k
|
||||
F: drivers/net/wireless/ath/ath9k/
|
||||
|
||||
QUALCOMM CAMERA SUBSYSTEM DRIVER
|
||||
@ -14043,13 +14060,12 @@ QUALCOMM WCN36XX WIRELESS DRIVER
|
||||
M: Kalle Valo <kvalo@codeaurora.org>
|
||||
L: wcn36xx@lists.infradead.org
|
||||
S: Supported
|
||||
W: http://wireless.kernel.org/en/users/Drivers/wcn36xx
|
||||
W: https://wireless.wiki.kernel.org/en/users/Drivers/wcn36xx
|
||||
T: git git://github.com/KrasnikovEugene/wcn36xx.git
|
||||
F: drivers/net/wireless/ath/wcn36xx/
|
||||
|
||||
QUANTENNA QTNFMAC WIRELESS DRIVER
|
||||
M: Igor Mitsyanko <imitsyanko@quantenna.com>
|
||||
M: Avinash Patil <avinashp@quantenna.com>
|
||||
M: Sergey Matyukevich <smatyukevich@quantenna.com>
|
||||
L: linux-wireless@vger.kernel.org
|
||||
S: Maintained
|
||||
@ -14091,12 +14107,10 @@ F: drivers/media/radio/radio-tea5777.c
|
||||
|
||||
RADOS BLOCK DEVICE (RBD)
|
||||
M: Ilya Dryomov <idryomov@gmail.com>
|
||||
M: Sage Weil <sage@redhat.com>
|
||||
R: Dongsheng Yang <dongsheng.yang@easystack.cn>
|
||||
L: ceph-devel@vger.kernel.org
|
||||
S: Supported
|
||||
W: http://ceph.com/
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client.git
|
||||
T: git git://github.com/ceph/ceph-client.git
|
||||
F: Documentation/ABI/testing/sysfs-bus-rbd
|
||||
F: drivers/block/rbd.c
|
||||
@ -14271,7 +14285,7 @@ REALTEK WIRELESS DRIVER (rtlwifi family)
|
||||
M: Ping-Ke Shih <pkshih@realtek.com>
|
||||
L: linux-wireless@vger.kernel.org
|
||||
S: Maintained
|
||||
W: http://wireless.kernel.org/
|
||||
W: https://wireless.wiki.kernel.org/
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git
|
||||
F: drivers/net/wireless/realtek/rtlwifi/
|
||||
|
||||
@ -14406,7 +14420,7 @@ RFKILL
|
||||
M: Johannes Berg <johannes@sipsolutions.net>
|
||||
L: linux-wireless@vger.kernel.org
|
||||
S: Maintained
|
||||
W: http://wireless.kernel.org/
|
||||
W: https://wireless.wiki.kernel.org/
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211.git
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git
|
||||
F: Documentation/ABI/stable/sysfs-class-rfkill
|
||||
@ -14555,7 +14569,7 @@ F: drivers/media/dvb-frontends/rtl2832_sdr*
|
||||
RTL8180 WIRELESS DRIVER
|
||||
L: linux-wireless@vger.kernel.org
|
||||
S: Orphan
|
||||
W: http://wireless.kernel.org/
|
||||
W: https://wireless.wiki.kernel.org/
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git
|
||||
F: drivers/net/wireless/realtek/rtl818x/rtl8180/
|
||||
|
||||
@ -14565,7 +14579,7 @@ M: Hin-Tak Leung <htl10@users.sourceforge.net>
|
||||
M: Larry Finger <Larry.Finger@lwfinger.net>
|
||||
L: linux-wireless@vger.kernel.org
|
||||
S: Maintained
|
||||
W: http://wireless.kernel.org/
|
||||
W: https://wireless.wiki.kernel.org/
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git
|
||||
F: drivers/net/wireless/realtek/rtl818x/rtl8187/
|
||||
|
||||
@ -14633,6 +14647,7 @@ F: drivers/iommu/s390-iommu.c
|
||||
|
||||
S390 IUCV NETWORK LAYER
|
||||
M: Julian Wiedmann <jwi@linux.ibm.com>
|
||||
M: Karsten Graul <kgraul@linux.ibm.com>
|
||||
M: Ursula Braun <ubraun@linux.ibm.com>
|
||||
L: linux-s390@vger.kernel.org
|
||||
S: Supported
|
||||
@ -14643,6 +14658,7 @@ F: net/iucv/
|
||||
|
||||
S390 NETWORK DRIVERS
|
||||
M: Julian Wiedmann <jwi@linux.ibm.com>
|
||||
M: Karsten Graul <kgraul@linux.ibm.com>
|
||||
M: Ursula Braun <ubraun@linux.ibm.com>
|
||||
L: linux-s390@vger.kernel.org
|
||||
S: Supported
|
||||
@ -16920,8 +16936,8 @@ F: drivers/media/platform/ti-vpe/
|
||||
TI WILINK WIRELESS DRIVERS
|
||||
L: linux-wireless@vger.kernel.org
|
||||
S: Orphan
|
||||
W: http://wireless.kernel.org/en/users/Drivers/wl12xx
|
||||
W: http://wireless.kernel.org/en/users/Drivers/wl1251
|
||||
W: https://wireless.wiki.kernel.org/en/users/Drivers/wl12xx
|
||||
W: https://wireless.wiki.kernel.org/en/users/Drivers/wl1251
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/luca/wl12xx.git
|
||||
F: drivers/net/wireless/ti/
|
||||
F: include/linux/wl12xx.h
|
||||
@ -18203,7 +18219,7 @@ M: Maya Erez <merez@codeaurora.org>
|
||||
L: linux-wireless@vger.kernel.org
|
||||
L: wil6210@qti.qualcomm.com
|
||||
S: Supported
|
||||
W: http://wireless.kernel.org/en/users/Drivers/wil6210
|
||||
W: https://wireless.wiki.kernel.org/en/users/Drivers/wil6210
|
||||
F: drivers/net/wireless/ath/wil6210/
|
||||
|
||||
WIMAX STACK
|
||||
|
17
Makefile
17
Makefile
@ -2,7 +2,7 @@
|
||||
VERSION = 5
|
||||
PATCHLEVEL = 7
|
||||
SUBLEVEL = 0
|
||||
EXTRAVERSION = -rc1
|
||||
EXTRAVERSION =
|
||||
NAME = Kleptomaniac Octopus
|
||||
|
||||
# *DOCUMENTATION*
|
||||
@ -729,10 +729,6 @@ else ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
|
||||
KBUILD_CFLAGS += -Os
|
||||
endif
|
||||
|
||||
ifdef CONFIG_CC_DISABLE_WARN_MAYBE_UNINITIALIZED
|
||||
KBUILD_CFLAGS += -Wno-maybe-uninitialized
|
||||
endif
|
||||
|
||||
# Tell gcc to never replace conditional load with a non-conditional one
|
||||
KBUILD_CFLAGS += $(call cc-option,--param=allow-store-data-races=0)
|
||||
KBUILD_CFLAGS += $(call cc-option,-fno-allow-store-data-races)
|
||||
@ -881,6 +877,17 @@ KBUILD_CFLAGS += -Wno-pointer-sign
|
||||
# disable stringop warnings in gcc 8+
|
||||
KBUILD_CFLAGS += $(call cc-disable-warning, stringop-truncation)
|
||||
|
||||
# We'll want to enable this eventually, but it's not going away for 5.7 at least
|
||||
KBUILD_CFLAGS += $(call cc-disable-warning, zero-length-bounds)
|
||||
KBUILD_CFLAGS += $(call cc-disable-warning, array-bounds)
|
||||
KBUILD_CFLAGS += $(call cc-disable-warning, stringop-overflow)
|
||||
|
||||
# Another good warning that we'll want to enable eventually
|
||||
KBUILD_CFLAGS += $(call cc-disable-warning, restrict)
|
||||
|
||||
# Enabled with W=2, disabled by default as noisy
|
||||
KBUILD_CFLAGS += $(call cc-disable-warning, maybe-uninitialized)
|
||||
|
||||
# disable invalid "can't wrap" optimizations for signed / pointers
|
||||
KBUILD_CFLAGS += $(call cc-option,-fno-strict-overflow)
|
||||
|
||||
|
@ -65,6 +65,7 @@ CONFIG_DRM_UDL=y
|
||||
CONFIG_DRM_ETNAVIV=y
|
||||
CONFIG_FB=y
|
||||
CONFIG_FRAMEBUFFER_CONSOLE=y
|
||||
CONFIG_USB=y
|
||||
CONFIG_USB_EHCI_HCD=y
|
||||
CONFIG_USB_EHCI_HCD_PLATFORM=y
|
||||
CONFIG_USB_OHCI_HCD=y
|
||||
|
@ -15,12 +15,14 @@
|
||||
|
||||
/* clobbers r5 register */
|
||||
.macro DSP_EARLY_INIT
|
||||
#ifdef CONFIG_ISA_ARCV2
|
||||
lr r5, [ARC_AUX_DSP_BUILD]
|
||||
bmsk r5, r5, 7
|
||||
breq r5, 0, 1f
|
||||
mov r5, DSP_CTRL_DISABLED_ALL
|
||||
sr r5, [ARC_AUX_DSP_CTRL]
|
||||
1:
|
||||
#endif
|
||||
.endm
|
||||
|
||||
/* clobbers r10, r11 registers pair */
|
||||
|
@ -233,6 +233,8 @@
|
||||
|
||||
#ifdef CONFIG_ARC_IRQ_NO_AUTOSAVE
|
||||
__RESTORE_REGFILE_HARD
|
||||
|
||||
; SP points to PC/STAT32: hw restores them despite NO_AUTOSAVE
|
||||
add sp, sp, SZ_PT_REGS - 8
|
||||
#else
|
||||
add sp, sp, PT_r0
|
||||
|
@ -3,7 +3,6 @@
|
||||
* Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com)
|
||||
*
|
||||
* Amit Bhor, Sameer Dhavale: Codito Technologies 2004
|
||||
|
||||
*/
|
||||
|
||||
#ifndef _ASM_ARC_MODULE_H
|
||||
@ -19,8 +18,4 @@ struct mod_arch_specific {
|
||||
const char *secstr;
|
||||
};
|
||||
|
||||
#define MODULE_PROC_FAMILY "ARC700"
|
||||
|
||||
#define MODULE_ARCH_VERMAGIC MODULE_PROC_FAMILY
|
||||
|
||||
#endif /* _ASM_ARC_MODULE_H */
|
||||
|
8
arch/arc/include/asm/vermagic.h
Normal file
8
arch/arc/include/asm/vermagic.h
Normal file
@ -0,0 +1,8 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
|
||||
#ifndef _ASM_VERMAGIC_H
|
||||
#define _ASM_VERMAGIC_H
|
||||
|
||||
#define MODULE_ARCH_VERMAGIC "ARC700"
|
||||
|
||||
#endif /* _ASM_VERMAGIC_H */
|
@ -3,9 +3,6 @@
|
||||
# Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com)
|
||||
#
|
||||
|
||||
# Pass UTS_MACHINE for user_regset definition
|
||||
CFLAGS_ptrace.o += -DUTS_MACHINE='"$(UTS_MACHINE)"'
|
||||
|
||||
obj-y := arcksyms.o setup.o irq.o reset.o ptrace.o process.o devtree.o
|
||||
obj-y += signal.o traps.o sys.o troubleshoot.o stacktrace.o disasm.o
|
||||
obj-$(CONFIG_ISA_ARCOMPACT) += entry-compact.o intc-compact.o
|
||||
|
@ -253,7 +253,7 @@ static const struct user_regset arc_regsets[] = {
|
||||
};
|
||||
|
||||
static const struct user_regset_view user_arc_view = {
|
||||
.name = UTS_MACHINE,
|
||||
.name = "arc",
|
||||
.e_machine = EM_ARC_INUSE,
|
||||
.regsets = arc_regsets,
|
||||
.n = ARRAY_SIZE(arc_regsets)
|
||||
|
@ -11,6 +11,7 @@
|
||||
#include <linux/clocksource.h>
|
||||
#include <linux/console.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/sizes.h>
|
||||
#include <linux/cpu.h>
|
||||
#include <linux/of_clk.h>
|
||||
#include <linux/of_fdt.h>
|
||||
@ -424,12 +425,12 @@ static void arc_chk_core_config(void)
|
||||
if ((unsigned int)__arc_dccm_base != cpu->dccm.base_addr)
|
||||
panic("Linux built with incorrect DCCM Base address\n");
|
||||
|
||||
if (CONFIG_ARC_DCCM_SZ != cpu->dccm.sz)
|
||||
if (CONFIG_ARC_DCCM_SZ * SZ_1K != cpu->dccm.sz)
|
||||
panic("Linux built with incorrect DCCM Size\n");
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_ARC_HAS_ICCM
|
||||
if (CONFIG_ARC_ICCM_SZ != cpu->iccm.sz)
|
||||
if (CONFIG_ARC_ICCM_SZ * SZ_1K != cpu->iccm.sz)
|
||||
panic("Linux built with incorrect ICCM Size\n");
|
||||
#endif
|
||||
|
||||
|
@ -191,10 +191,9 @@ void show_regs(struct pt_regs *regs)
|
||||
if (user_mode(regs))
|
||||
show_faulting_vma(regs->ret); /* faulting code, not data */
|
||||
|
||||
pr_info("ECR: 0x%08lx EFA: 0x%08lx ERET: 0x%08lx\n",
|
||||
regs->event, current->thread.fault_address, regs->ret);
|
||||
|
||||
pr_info("STAT32: 0x%08lx", regs->status32);
|
||||
pr_info("ECR: 0x%08lx EFA: 0x%08lx ERET: 0x%08lx\nSTAT: 0x%08lx",
|
||||
regs->event, current->thread.fault_address, regs->ret,
|
||||
regs->status32);
|
||||
|
||||
#define STS_BIT(r, bit) r->status32 & STATUS_##bit##_MASK ? #bit" " : ""
|
||||
|
||||
@ -210,11 +209,10 @@ void show_regs(struct pt_regs *regs)
|
||||
(regs->status32 & STATUS_U_MASK) ? "U " : "K ",
|
||||
STS_BIT(regs, DE), STS_BIT(regs, AE));
|
||||
#endif
|
||||
pr_cont(" BTA: 0x%08lx\n", regs->bta);
|
||||
pr_info("BLK: %pS\n SP: 0x%08lx FP: 0x%08lx\n",
|
||||
(void *)regs->blink, regs->sp, regs->fp);
|
||||
pr_cont(" BTA: 0x%08lx\n SP: 0x%08lx FP: 0x%08lx BLK: %pS\n",
|
||||
regs->bta, regs->sp, regs->fp, (void *)regs->blink);
|
||||
pr_info("LPS: 0x%08lx\tLPE: 0x%08lx\tLPC: 0x%08lx\n",
|
||||
regs->lp_start, regs->lp_end, regs->lp_count);
|
||||
regs->lp_start, regs->lp_end, regs->lp_count);
|
||||
|
||||
/* print regs->r0 thru regs->r12
|
||||
* Sequential printing was generating horrible code
|
||||
|
@ -1178,11 +1178,9 @@ int arc_unwind(struct unwind_frame_info *frame)
|
||||
#endif
|
||||
|
||||
/* update frame */
|
||||
#ifndef CONFIG_AS_CFI_SIGNAL_FRAME
|
||||
if (frame->call_frame
|
||||
&& !UNW_DEFAULT_RA(state.regs[retAddrReg], state.dataAlign))
|
||||
frame->call_frame = 0;
|
||||
#endif
|
||||
cfa = FRAME_REG(state.cfa.reg, unsigned long) + state.cfa.offs;
|
||||
startLoc = min_t(unsigned long, UNW_SP(frame), cfa);
|
||||
endLoc = max_t(unsigned long, UNW_SP(frame), cfa);
|
||||
|
@ -6,6 +6,7 @@
|
||||
|
||||
menuconfig ARC_PLAT_EZNPS
|
||||
bool "\"EZchip\" ARC dev platform"
|
||||
depends on ISA_ARCOMPACT
|
||||
select CPU_BIG_ENDIAN
|
||||
select CLKSRC_NPS if !PHYS_ADDR_T_64BIT
|
||||
select EZNPS_GIC
|
||||
|
@ -12,6 +12,7 @@ config ARM
|
||||
select ARCH_HAS_KEEPINITRD
|
||||
select ARCH_HAS_KCOV
|
||||
select ARCH_HAS_MEMBARRIER_SYNC_CORE
|
||||
select ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE
|
||||
select ARCH_HAS_PTE_SPECIAL if ARM_LPAE
|
||||
select ARCH_HAS_PHYS_TO_DMA
|
||||
select ARCH_HAS_SETUP_DMA_OPS
|
||||
|
@ -1450,7 +1450,8 @@ ENTRY(efi_enter_kernel)
|
||||
@ running beyond the PoU, and so calling cache_off below from
|
||||
@ inside the PE/COFF loader allocated region is unsafe unless
|
||||
@ we explicitly clean it to the PoC.
|
||||
adr r0, call_cache_fn @ region of code we will
|
||||
ARM( adrl r0, call_cache_fn )
|
||||
THUMB( adr r0, call_cache_fn ) @ region of code we will
|
||||
adr r1, 0f @ run with MMU off
|
||||
bl cache_clean_flush
|
||||
bl cache_off
|
||||
|
@ -42,7 +42,7 @@ SECTIONS
|
||||
}
|
||||
.table : ALIGN(4) {
|
||||
_table_start = .;
|
||||
LONG(ZIMAGE_MAGIC(2))
|
||||
LONG(ZIMAGE_MAGIC(4))
|
||||
LONG(ZIMAGE_MAGIC(0x5a534c4b))
|
||||
LONG(ZIMAGE_MAGIC(__piggy_size_addr - _start))
|
||||
LONG(ZIMAGE_MAGIC(_kernel_bss_size))
|
||||
|
@ -832,6 +832,7 @@ dtb-$(CONFIG_SOC_DRA7XX) += \
|
||||
am57xx-beagle-x15.dtb \
|
||||
am57xx-beagle-x15-revb1.dtb \
|
||||
am57xx-beagle-x15-revc.dtb \
|
||||
am5729-beagleboneai.dtb \
|
||||
am57xx-cl-som-am57x.dtb \
|
||||
am57xx-sbc-am57x.dtb \
|
||||
am572x-idk.dtb \
|
||||
|
@ -105,6 +105,7 @@
|
||||
ti,timers = <&timer7>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&dmtimer7_pins>;
|
||||
ti,clock-source = <0x01>;
|
||||
};
|
||||
|
||||
vmmcsd_fixed: regulator-3v3 {
|
||||
|
@ -335,7 +335,7 @@
|
||||
<0x47400010 0x4>;
|
||||
reg-names = "rev", "sysc";
|
||||
ti,sysc-mask = <(SYSC_OMAP4_FREEEMU |
|
||||
SYSC_OMAP2_SOFTRESET)>;
|
||||
SYSC_OMAP4_SOFTRESET)>;
|
||||
ti,sysc-midle = <SYSC_IDLE_FORCE>,
|
||||
<SYSC_IDLE_NO>,
|
||||
<SYSC_IDLE_SMART>;
|
||||
@ -347,7 +347,7 @@
|
||||
clock-names = "fck";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges = <0x0 0x47400000 0x5000>;
|
||||
ranges = <0x0 0x47400000 0x8000>;
|
||||
|
||||
usb0_phy: usb-phy@1300 {
|
||||
compatible = "ti,am335x-usb-phy";
|
||||
|
@ -156,6 +156,7 @@
|
||||
pinctrl-0 = <&pwm_pins>;
|
||||
ti,timers = <&timer11>;
|
||||
#pwm-cells = <3>;
|
||||
ti,clock-source = <0x01>;
|
||||
};
|
||||
|
||||
/* HS USB Host PHY on PORT 1 */
|
||||
|
731
arch/arm/boot/dts/am5729-beagleboneai.dts
Normal file
731
arch/arm/boot/dts/am5729-beagleboneai.dts
Normal file
@ -0,0 +1,731 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* Copyright (C) 2014-2019 Texas Instruments Incorporated - http://www.ti.com/
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include "dra74x.dtsi"
|
||||
#include "am57xx-commercial-grade.dtsi"
|
||||
#include "dra74x-mmc-iodelay.dtsi"
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/pinctrl/dra.h>
|
||||
|
||||
/ {
|
||||
model = "BeagleBoard.org BeagleBone AI";
|
||||
compatible = "beagle,am5729-beagleboneai", "ti,am5728",
|
||||
"ti,dra742", "ti,dra74", "ti,dra7";
|
||||
|
||||
aliases {
|
||||
rtc0 = &tps659038_rtc;
|
||||
rtc1 = &rtc;
|
||||
display0 = &hdmi_conn;
|
||||
};
|
||||
|
||||
chosen {
|
||||
stdout-path = &uart1;
|
||||
};
|
||||
|
||||
memory@0 {
|
||||
device_type = "memory";
|
||||
reg = <0x0 0x80000000 0x0 0x40000000>;
|
||||
};
|
||||
|
||||
reserved-memory {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
ranges;
|
||||
|
||||
ipu2_memory_region: ipu2-memory@95800000 {
|
||||
compatible = "shared-dma-pool";
|
||||
reg = <0x0 0x95800000 0x0 0x3800000>;
|
||||
reusable;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
dsp1_memory_region: dsp1-memory@99000000 {
|
||||
compatible = "shared-dma-pool";
|
||||
reg = <0x0 0x99000000 0x0 0x4000000>;
|
||||
reusable;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
ipu1_memory_region: ipu1-memory@9d000000 {
|
||||
compatible = "shared-dma-pool";
|
||||
reg = <0x0 0x9d000000 0x0 0x2000000>;
|
||||
reusable;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
dsp2_memory_region: dsp2-memory@9f000000 {
|
||||
compatible = "shared-dma-pool";
|
||||
reg = <0x0 0x9f000000 0x0 0x800000>;
|
||||
reusable;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
vdd_adc: gpioregulator-vdd_adc {
|
||||
compatible = "regulator-gpio";
|
||||
regulator-name = "vdd_adc";
|
||||
vin-supply = <&vdd_5v>;
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
gpios = <&gpio3 27 GPIO_ACTIVE_HIGH>;
|
||||
states = <1800000 0
|
||||
3300000 1>;
|
||||
};
|
||||
|
||||
vdd_5v: fixedregulator-vdd_5v {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vdd_5v";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
vtt_fixed: fixedregulator-vtt {
|
||||
/* TPS51200 */
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vtt_fixed";
|
||||
vin-supply = <&vdd_ddr>;
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
led0 {
|
||||
label = "beaglebone:green:usr0";
|
||||
gpios = <&gpio3 17 GPIO_ACTIVE_HIGH>;
|
||||
linux,default-trigger = "heartbeat";
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
led1 {
|
||||
label = "beaglebone:green:usr1";
|
||||
gpios = <&gpio5 5 GPIO_ACTIVE_HIGH>;
|
||||
linux,default-trigger = "mmc0";
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
led2 {
|
||||
label = "beaglebone:green:usr2";
|
||||
gpios = <&gpio3 15 GPIO_ACTIVE_HIGH>;
|
||||
linux,default-trigger = "cpu";
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
led3 {
|
||||
label = "beaglebone:green:usr3";
|
||||
gpios = <&gpio3 14 GPIO_ACTIVE_HIGH>;
|
||||
linux,default-trigger = "mmc1";
|
||||
default-state = "off";
|
||||
};
|
||||
|
||||
led4 {
|
||||
label = "beaglebone:green:usr4";
|
||||
gpios = <&gpio3 7 GPIO_ACTIVE_HIGH>;
|
||||
linux,default-trigger = "netdev";
|
||||
default-state = "off";
|
||||
};
|
||||
};
|
||||
|
||||
hdmi_conn: connector@0 {
|
||||
compatible = "hdmi-connector";
|
||||
label = "hdmi";
|
||||
type = "a";
|
||||
|
||||
port {
|
||||
hdmi_connector_in: endpoint {
|
||||
remote-endpoint = <&hdmi_encoder_out>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
hdmi_enc: encoder@0 {
|
||||
/* "ti,tpd12s016" software compatible with "ti,tpd12s015"
|
||||
* no need for individual driver
|
||||
*/
|
||||
compatible = "ti,tpd12s015";
|
||||
gpios = <0>,
|
||||
<0>,
|
||||
<&gpio7 12 GPIO_ACTIVE_HIGH>;
|
||||
|
||||
ports {
|
||||
#address-cells = <0x1>;
|
||||
#size-cells = <0x0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0x0>;
|
||||
|
||||
hdmi_encoder_in: endpoint@0 {
|
||||
remote-endpoint = <&hdmi_out>;
|
||||
};
|
||||
};
|
||||
|
||||
port@1 {
|
||||
reg = <0x1>;
|
||||
|
||||
hdmi_encoder_out: endpoint@0 {
|
||||
remote-endpoint = <&hdmi_connector_in>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
emmc_pwrseq: emmc_pwrseq {
|
||||
compatible = "mmc-pwrseq-emmc";
|
||||
reset-gpios = <&gpio5 7 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
brcmf_pwrseq: brcmf_pwrseq {
|
||||
compatible = "mmc-pwrseq-simple";
|
||||
reset-gpios = <&gpio3 22 GPIO_ACTIVE_LOW>, /* BT-REG-ON */
|
||||
<&gpio3 18 GPIO_ACTIVE_LOW>; /* WL-REG-ON */
|
||||
};
|
||||
|
||||
extcon_usb1: extcon_usb1 {
|
||||
compatible = "linux,extcon-usb-gpio";
|
||||
ti,enable-id-detection;
|
||||
id-gpio = <&gpio3 13 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
};
|
||||
|
||||
&i2c1 {
|
||||
status = "okay";
|
||||
clock-frequency = <400000>;
|
||||
|
||||
tps659038: tps659038@58 {
|
||||
compatible = "ti,tps659038";
|
||||
reg = <0x58>;
|
||||
interrupt-parent = <&gpio6>;
|
||||
interrupts = <16 IRQ_TYPE_LEVEL_LOW>;
|
||||
|
||||
#interrupt-cells = <2>;
|
||||
interrupt-controller;
|
||||
|
||||
ti,system-power-controller;
|
||||
ti,palmas-override-powerhold;
|
||||
|
||||
tps659038_pmic {
|
||||
compatible = "ti,tps659038-pmic";
|
||||
|
||||
smps12-in-supply = <&vdd_5v>;
|
||||
smps3-in-supply = <&vdd_5v>;
|
||||
smps45-in-supply = <&vdd_5v>;
|
||||
smps6-in-supply = <&vdd_5v>;
|
||||
smps7-in-supply = <&vdd_5v>;
|
||||
mps3-in-supply = <&vdd_5v>;
|
||||
smps8-in-supply = <&vdd_5v>;
|
||||
smps9-in-supply = <&vdd_5v>;
|
||||
ldo1-in-supply = <&vdd_5v>;
|
||||
ldo2-in-supply = <&vdd_5v>;
|
||||
ldo3-in-supply = <&vdd_5v>;
|
||||
ldo4-in-supply = <&vdd_5v>;
|
||||
ldo9-in-supply = <&vdd_5v>;
|
||||
ldoln-in-supply = <&vdd_5v>;
|
||||
ldousb-in-supply = <&vdd_5v>;
|
||||
ldortc-in-supply = <&vdd_5v>;
|
||||
|
||||
regulators {
|
||||
vdd_mpu: smps12 {
|
||||
/* VDD_MPU */
|
||||
regulator-name = "smps12";
|
||||
regulator-min-microvolt = <850000>;
|
||||
regulator-max-microvolt = <1250000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
vdd_ddr: smps3 {
|
||||
/* VDD_DDR EMIF1 EMIF2 */
|
||||
regulator-name = "smps3";
|
||||
regulator-min-microvolt = <1350000>;
|
||||
regulator-max-microvolt = <1350000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
vdd_dspeve: smps45 {
|
||||
/* VDD_DSPEVE on AM572 */
|
||||
regulator-name = "smps45";
|
||||
regulator-min-microvolt = < 850000>;
|
||||
regulator-max-microvolt = <1250000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
vdd_gpu: smps6 {
|
||||
/* VDD_GPU */
|
||||
regulator-name = "smps6";
|
||||
regulator-min-microvolt = < 850000>;
|
||||
regulator-max-microvolt = <1250000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
vdd_core: smps7 {
|
||||
/* VDD_CORE */
|
||||
regulator-name = "smps7";
|
||||
regulator-min-microvolt = < 850000>; /*** 1.15V */
|
||||
regulator-max-microvolt = <1150000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
vdd_iva: smps8 {
|
||||
/* VDD_IVAHD */ /*** 1.06V */
|
||||
regulator-name = "smps8";
|
||||
};
|
||||
|
||||
vdd_3v3: smps9 {
|
||||
/* VDD_3V3 */
|
||||
regulator-name = "smps9";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
vdd_sd: ldo1 {
|
||||
/* VDDSHV8 - VSDMMC */
|
||||
regulator-name = "ldo1";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
vdd_1v8: ldo2 {
|
||||
/* VDDSH18V */
|
||||
regulator-name = "ldo2";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
vdd_1v8_phy_ldo3: ldo3 {
|
||||
/* R1.3a 572x V1_8PHY_LDO3: USB, SATA */
|
||||
regulator-name = "ldo3";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
vdd_1v8_phy_ldo4: ldo4 {
|
||||
/* R1.3a 572x V1_8PHY_LDO4: PCIE, HDMI*/
|
||||
regulator-name = "ldo4";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
/* LDO5-8 unused */
|
||||
|
||||
vdd_rtc: ldo9 {
|
||||
/* VDD_RTC */
|
||||
regulator-name = "ldo9";
|
||||
regulator-min-microvolt = < 840000>;
|
||||
regulator-max-microvolt = <1160000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
vdd_1v8_pll: ldoln {
|
||||
/* VDDA_1V8_PLL */
|
||||
regulator-name = "ldoln";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
ldousb_reg: ldousb {
|
||||
/* VDDA_3V_USB: VDDA_USBHS33 */
|
||||
regulator-name = "ldousb";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
ldortc_reg: ldortc {
|
||||
/* VDDA_RTC */
|
||||
regulator-name = "ldortc";
|
||||
regulator-min-microvolt = <1800000>;
|
||||
regulator-max-microvolt = <1800000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
regen1: regen1 {
|
||||
/* VDD_3V3_ON */
|
||||
regulator-name = "regen1";
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
regen2: regen2 {
|
||||
/* Needed for PMIC internal resource */
|
||||
regulator-name = "regen2";
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
tps659038_rtc: tps659038_rtc {
|
||||
compatible = "ti,palmas-rtc";
|
||||
interrupt-parent = <&tps659038>;
|
||||
interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
|
||||
wakeup-source;
|
||||
};
|
||||
|
||||
tps659038_pwr_button: tps659038_pwr_button {
|
||||
compatible = "ti,palmas-pwrbutton";
|
||||
interrupt-parent = <&tps659038>;
|
||||
interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
|
||||
wakeup-source;
|
||||
ti,palmas-long-press-seconds = <12>;
|
||||
};
|
||||
|
||||
tps659038_gpio: tps659038_gpio {
|
||||
compatible = "ti,palmas-gpio";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
};
|
||||
};
|
||||
|
||||
/* STMPE811 touch screen controller */
|
||||
stmpe811@41 {
|
||||
compatible = "st,stmpe811";
|
||||
reg = <0x41>;
|
||||
interrupts = <30 IRQ_TYPE_LEVEL_LOW>;
|
||||
interrupt-parent = <&gpio2>;
|
||||
interrupt-controller;
|
||||
id = <0>;
|
||||
blocks = <0x5>;
|
||||
irq-trigger = <0x1>;
|
||||
st,mod-12b = <1>; /* 12-bit ADC */
|
||||
st,ref-sel = <0>; /* internal ADC reference */
|
||||
st,adc-freq = <1>; /* 3.25 MHz ADC clock speed */
|
||||
st,sample-time = <4>; /* ADC converstion time: 80 clocks */
|
||||
|
||||
stmpe_adc {
|
||||
compatible = "st,stmpe-adc";
|
||||
st,norequest-mask = <0x00>; /* mask any channels to be used by touchscreen */
|
||||
adc0: iio-device@0 {
|
||||
#io-channel-cells = <1>;
|
||||
iio-channels = <&adc0 4>, <&adc0 1>, <&adc0 2>, <&adc0 3>, <&adc0 4>, <&adc0 5>, <&adc0 6>;
|
||||
iio-channel-names = "AIN0_P9_39", "AIN1_P9_40", "AIN2_P9_37", "AIN3_P9_38",
|
||||
"AIN4_P9_33", "AIN5_P9_36", "AIN6_P9_35";
|
||||
};
|
||||
};
|
||||
|
||||
stmpe_touchscreen {
|
||||
status = "disabled";
|
||||
compatible = "st,stmpe-ts";
|
||||
/* 8 sample average control */
|
||||
st,ave-ctrl = <3>;
|
||||
/* 7 length fractional part in z */
|
||||
st,fraction-z = <7>;
|
||||
/*
|
||||
* 50 mA typical 80 mA max touchscreen drivers
|
||||
* current limit value
|
||||
*/
|
||||
st,i-drive = <1>;
|
||||
/* 1 ms panel driver settling time */
|
||||
st,settling = <3>;
|
||||
/* 5 ms touch detect interrupt delay */
|
||||
st,touch-det-delay = <5>;
|
||||
};
|
||||
|
||||
stmpe_gpio {
|
||||
compatible = "st,stmpe-gpio";
|
||||
};
|
||||
|
||||
stmpe_pwm {
|
||||
compatible = "st,stmpe-pwm";
|
||||
#pwm-cells = <2>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&mcspi3 {
|
||||
status = "okay";
|
||||
ti,pindir-d0-out-d1-in;
|
||||
|
||||
sn65hvs882: sn65hvs882@0 {
|
||||
compatible = "pisosr-gpio";
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
|
||||
reg = <0>;
|
||||
spi-max-frequency = <1000000>;
|
||||
spi-cpol;
|
||||
};
|
||||
};
|
||||
|
||||
&cpu0 {
|
||||
vdd-supply = <&vdd_mpu>;
|
||||
voltage-tolerance = <1>;
|
||||
};
|
||||
|
||||
&uart1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&davinci_mdio {
|
||||
reset-gpios = <&gpio2 23 GPIO_ACTIVE_LOW>;
|
||||
reset-delay-us = <2>;
|
||||
|
||||
phy0: ethernet-phy@1 {
|
||||
reg = <4>;
|
||||
eee-broken-100tx;
|
||||
eee-broken-1000t;
|
||||
};
|
||||
};
|
||||
|
||||
&mac {
|
||||
slaves = <1>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&cpsw_emac0 {
|
||||
phy-handle = <&phy0>;
|
||||
phy-mode = "rgmii";
|
||||
};
|
||||
|
||||
&ocp {
|
||||
pruss1_shmem: pruss_shmem@4b200000 {
|
||||
status = "okay";
|
||||
compatible = "ti,pruss-shmem";
|
||||
reg = <0x4b200000 0x020000>;
|
||||
};
|
||||
|
||||
pruss2_shmem: pruss_shmem@4b280000 {
|
||||
status = "okay";
|
||||
compatible = "ti,pruss-shmem";
|
||||
reg = <0x4b280000 0x020000>;
|
||||
};
|
||||
};
|
||||
|
||||
&mmc1 {
|
||||
status = "okay";
|
||||
vmmc-supply = <&vdd_3v3>;
|
||||
vqmmc-supply = <&vdd_sd>;
|
||||
bus-width = <4>;
|
||||
cd-gpios = <&gpio6 27 GPIO_ACTIVE_LOW>; /* gpio 219 */
|
||||
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&mmc1_pins_default>;
|
||||
};
|
||||
|
||||
&mmc2 {
|
||||
status = "okay";
|
||||
vmmc-supply = <&vdd_1v8>;
|
||||
vqmmc-supply = <&vdd_1v8>;
|
||||
bus-width = <8>;
|
||||
ti,non-removable;
|
||||
non-removable;
|
||||
mmc-pwrseq = <&emmc_pwrseq>;
|
||||
|
||||
ti,needs-special-reset;
|
||||
dmas = <&sdma_xbar 47>, <&sdma_xbar 48>;
|
||||
dma-names = "tx", "rx";
|
||||
|
||||
};
|
||||
|
||||
&mmc4 {
|
||||
/* DS: Default speed (DS) up to 25 MHz, including 1- and 4-bit modes (3.3 V signaling). */
|
||||
/* HS: High speed up to 50 MHz (3.3 V signaling). */
|
||||
/* SDR12: SDR up to 25 MHz (1.8 V signaling). */
|
||||
/* SDR25: SDR up to 50 MHz (1.8 V signaling). */
|
||||
/* SDR50: SDR up to 100 MHz (1.8 V signaling). */
|
||||
/* SDR104: SDR up to 208 MHz (1.8 V signaling) */
|
||||
/* DDR50: DDR up to 50 MHz (1.8 V signaling). */
|
||||
status = "okay";
|
||||
|
||||
ti,needs-special-reset;
|
||||
vmmc-supply = <&vdd_3v3>;
|
||||
cap-power-off-card;
|
||||
keep-power-in-suspend;
|
||||
bus-width = <4>;
|
||||
ti,non-removable;
|
||||
non-removable;
|
||||
no-1-8-v;
|
||||
max-frequency = <24000000>;
|
||||
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
mmc-pwrseq = <&brcmf_pwrseq>;
|
||||
|
||||
brcmf: wifi@1 {
|
||||
status = "okay";
|
||||
reg = <1>;
|
||||
compatible = "brcm,bcm4329-fmac";
|
||||
|
||||
brcm,sd-head-align = <4>;
|
||||
brcm,sd_head_align = <4>;
|
||||
brcm,sd_sgentry_align = <512>;
|
||||
|
||||
interrupt-parent = <&gpio3>;
|
||||
interrupts = <23 IRQ_TYPE_LEVEL_LOW>;
|
||||
interrupt-names = "host-wake";
|
||||
};
|
||||
};
|
||||
|
||||
&usb2_phy1 {
|
||||
phy-supply = <&ldousb_reg>;
|
||||
};
|
||||
|
||||
&usb2_phy2 {
|
||||
phy-supply = <&ldousb_reg>;
|
||||
};
|
||||
|
||||
&usb1 {
|
||||
status = "okay";
|
||||
dr_mode = "otg";
|
||||
};
|
||||
|
||||
&omap_dwc3_1 {
|
||||
extcon = <&extcon_usb1>;
|
||||
};
|
||||
|
||||
&usb2 {
|
||||
status = "okay";
|
||||
dr_mode = "host";
|
||||
};
|
||||
|
||||
&dss {
|
||||
status = "okay";
|
||||
vdda_video-supply = <&vdd_1v8_pll>;
|
||||
};
|
||||
|
||||
&hdmi {
|
||||
status = "okay";
|
||||
vdda-supply = <&vdd_1v8_phy_ldo4>;
|
||||
|
||||
port {
|
||||
hdmi_out: endpoint {
|
||||
remote-endpoint = <&hdmi_encoder_in>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&bandgap {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mailbox1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mailbox2 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mailbox3 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mailbox4 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mailbox5 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mailbox6 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mailbox7 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mailbox8 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mailbox9 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mailbox10 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mailbox11 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mailbox12 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mailbox13 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&cpu_alert0 {
|
||||
temperature = <55000>; /* milliCelsius */
|
||||
};
|
||||
|
||||
&cpu_crit {
|
||||
temperature = <85000>; /* milliCelsius */
|
||||
};
|
||||
|
||||
&gpu_crit {
|
||||
temperature = <85000>; /* milliCelsius */
|
||||
};
|
||||
|
||||
&core_crit {
|
||||
temperature = <85000>; /* milliCelsius */
|
||||
};
|
||||
|
||||
&dspeve_crit {
|
||||
temperature = <85000>; /* milliCelsius */
|
||||
};
|
||||
|
||||
&iva_crit {
|
||||
temperature = <85000>; /* milliCelsius */
|
||||
};
|
||||
|
||||
&sata {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&sata_phy {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
/* bluetooth */
|
||||
&uart6 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
/* cape header stuff */
|
||||
&i2c4 {
|
||||
status = "okay";
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
&cpu0_opp_table {
|
||||
opp_slow-500000000 {
|
||||
opp-shared;
|
||||
};
|
||||
};
|
@ -35,6 +35,16 @@
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
v1_2d: fixedregulator-v1_2d {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "V1_2D";
|
||||
vin-supply = <&vmain>;
|
||||
regulator-min-microvolt = <1200000>;
|
||||
regulator-max-microvolt = <1200000>;
|
||||
regulator-always-on;
|
||||
regulator-boot-on;
|
||||
};
|
||||
|
||||
vtt_fixed: fixedregulator-vtt {
|
||||
/* TPS51200 */
|
||||
compatible = "regulator-fixed";
|
||||
@ -139,6 +149,12 @@
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
src_clk_x1: src_clk_x1 {
|
||||
#clock-cells = <0>;
|
||||
compatible = "fixed-clock";
|
||||
clock-frequency = <20000000>;
|
||||
};
|
||||
};
|
||||
|
||||
&dra7_pmx_core {
|
||||
@ -378,6 +394,32 @@
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
};
|
||||
|
||||
dsi_bridge: tc358778@e {
|
||||
compatible = "toshiba,tc358778", "toshiba,tc358768";
|
||||
reg = <0xe>;
|
||||
status = "disabled";
|
||||
|
||||
clocks = <&src_clk_x1>;
|
||||
clock-names = "refclk";
|
||||
|
||||
vddc-supply = <&v1_2d>;
|
||||
vddmipi-supply = <&v1_2d>;
|
||||
vddio-supply = <&v3_3d>;
|
||||
|
||||
dsi_bridge_ports: ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
rgb_in: endpoint {
|
||||
remote-endpoint = <&dpi_out>;
|
||||
data-lines = <24>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&mcspi3 {
|
||||
@ -543,4 +585,20 @@
|
||||
|
||||
&dss {
|
||||
status = "okay";
|
||||
|
||||
vdda_video-supply = <&ldoln_reg>;
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
|
||||
dpi_out: endpoint {
|
||||
remote-endpoint = <&rgb_in>;
|
||||
data-lines = <24>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -75,7 +75,7 @@
|
||||
timer@20200 {
|
||||
compatible = "arm,cortex-a9-global-timer";
|
||||
reg = <0x20200 0x100>;
|
||||
interrupts = <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupts = <GIC_PPI 11 IRQ_TYPE_EDGE_RISING>;
|
||||
clocks = <&periph_clk>;
|
||||
};
|
||||
|
||||
@ -83,7 +83,7 @@
|
||||
compatible = "arm,cortex-a9-twd-timer";
|
||||
reg = <0x20600 0x20>;
|
||||
interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(1) |
|
||||
IRQ_TYPE_LEVEL_HIGH)>;
|
||||
IRQ_TYPE_EDGE_RISING)>;
|
||||
clocks = <&periph_clk>;
|
||||
};
|
||||
|
||||
@ -91,7 +91,7 @@
|
||||
compatible = "arm,cortex-a9-twd-wdt";
|
||||
reg = <0x20620 0x20>;
|
||||
interrupts = <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(1) |
|
||||
IRQ_TYPE_LEVEL_HIGH)>;
|
||||
IRQ_TYPE_EDGE_RISING)>;
|
||||
clocks = <&periph_clk>;
|
||||
};
|
||||
|
||||
|
@ -24,7 +24,7 @@
|
||||
|
||||
leds {
|
||||
act {
|
||||
gpios = <&gpio 47 GPIO_ACTIVE_HIGH>;
|
||||
gpios = <&gpio 47 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -14,6 +14,9 @@
|
||||
soc {
|
||||
firmware: firmware {
|
||||
compatible = "raspberrypi,bcm2835-firmware", "simple-bus";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
mboxes = <&mailbox>;
|
||||
dma-ranges;
|
||||
};
|
||||
|
@ -372,6 +372,7 @@
|
||||
"dsi0_ddr2",
|
||||
"dsi0_ddr";
|
||||
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
aux: aux@7e215000 {
|
||||
|
@ -244,26 +244,6 @@
|
||||
rx-num-evt = <32>;
|
||||
};
|
||||
|
||||
&mailbox5 {
|
||||
status = "okay";
|
||||
mbox_ipu1_ipc3x: mbox_ipu1_ipc3x {
|
||||
status = "okay";
|
||||
};
|
||||
mbox_dsp1_ipc3x: mbox_dsp1_ipc3x {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
&mailbox6 {
|
||||
status = "okay";
|
||||
mbox_ipu2_ipc3x: mbox_ipu2_ipc3x {
|
||||
status = "okay";
|
||||
};
|
||||
mbox_dsp2_ipc3x: mbox_dsp2_ipc3x {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
&pcie1_rc {
|
||||
status = "okay";
|
||||
};
|
||||
|
@ -1163,8 +1163,8 @@
|
||||
timer2: timer@0 {
|
||||
compatible = "ti,omap5430-timer";
|
||||
reg = <0x0 0x80>;
|
||||
clocks = <&l4per_clkctrl DRA7_L4PER_TIMER2_CLKCTRL 24>;
|
||||
clock-names = "fck";
|
||||
clocks = <&l4per_clkctrl DRA7_L4PER_TIMER2_CLKCTRL 24>, <&timer_sys_clk_div>;
|
||||
clock-names = "fck", "timer_sys_ck";
|
||||
interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
};
|
||||
@ -1191,8 +1191,8 @@
|
||||
timer3: timer@0 {
|
||||
compatible = "ti,omap5430-timer";
|
||||
reg = <0x0 0x80>;
|
||||
clocks = <&l4per_clkctrl DRA7_L4PER_TIMER3_CLKCTRL 24>;
|
||||
clock-names = "fck";
|
||||
clocks = <&l4per_clkctrl DRA7_L4PER_TIMER3_CLKCTRL 24>, <&timer_sys_clk_div>;
|
||||
clock-names = "fck", "timer_sys_ck";
|
||||
interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
};
|
||||
@ -1219,8 +1219,8 @@
|
||||
timer4: timer@0 {
|
||||
compatible = "ti,omap5430-timer";
|
||||
reg = <0x0 0x80>;
|
||||
clocks = <&l4per_clkctrl DRA7_L4PER_TIMER4_CLKCTRL 24>;
|
||||
clock-names = "fck";
|
||||
clocks = <&l4per_clkctrl DRA7_L4PER_TIMER4_CLKCTRL 24>, <&timer_sys_clk_div>;
|
||||
clock-names = "fck", "timer_sys_ck";
|
||||
interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
};
|
||||
@ -1246,8 +1246,8 @@
|
||||
timer9: timer@0 {
|
||||
compatible = "ti,omap5430-timer";
|
||||
reg = <0x0 0x80>;
|
||||
clocks = <&l4per_clkctrl DRA7_L4PER_TIMER9_CLKCTRL 24>;
|
||||
clock-names = "fck";
|
||||
clocks = <&l4per_clkctrl DRA7_L4PER_TIMER9_CLKCTRL 24>, <&timer_sys_clk_div>;
|
||||
clock-names = "fck", "timer_sys_ck";
|
||||
interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
};
|
||||
@ -1853,8 +1853,8 @@
|
||||
timer10: timer@0 {
|
||||
compatible = "ti,omap5430-timer";
|
||||
reg = <0x0 0x80>;
|
||||
clocks = <&l4per_clkctrl DRA7_L4PER_TIMER10_CLKCTRL 24>;
|
||||
clock-names = "fck";
|
||||
clocks = <&l4per_clkctrl DRA7_L4PER_TIMER10_CLKCTRL 24>, <&timer_sys_clk_div>;
|
||||
clock-names = "fck", "timer_sys_ck";
|
||||
interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
};
|
||||
@ -1880,8 +1880,8 @@
|
||||
timer11: timer@0 {
|
||||
compatible = "ti,omap5430-timer";
|
||||
reg = <0x0 0x80>;
|
||||
clocks = <&l4per_clkctrl DRA7_L4PER_TIMER11_CLKCTRL 24>;
|
||||
clock-names = "fck";
|
||||
clocks = <&l4per_clkctrl DRA7_L4PER_TIMER11_CLKCTRL 24>, <&timer_sys_clk_div>;
|
||||
clock-names = "fck", "timer_sys_ck";
|
||||
interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
};
|
||||
@ -3363,8 +3363,8 @@
|
||||
timer5: timer@0 {
|
||||
compatible = "ti,omap5430-timer";
|
||||
reg = <0x0 0x80>;
|
||||
clocks = <&ipu_clkctrl DRA7_IPU_TIMER5_CLKCTRL 24>;
|
||||
clock-names = "fck";
|
||||
clocks = <&ipu_clkctrl DRA7_IPU_TIMER5_CLKCTRL 24>, <&timer_sys_clk_div>;
|
||||
clock-names = "fck", "timer_sys_ck";
|
||||
interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
};
|
||||
@ -3390,8 +3390,8 @@
|
||||
timer6: timer@0 {
|
||||
compatible = "ti,omap5430-timer";
|
||||
reg = <0x0 0x80>;
|
||||
clocks = <&ipu_clkctrl DRA7_IPU_TIMER6_CLKCTRL 24>;
|
||||
clock-names = "fck";
|
||||
clocks = <&ipu_clkctrl DRA7_IPU_TIMER6_CLKCTRL 24>, <&timer_sys_clk_div>;
|
||||
clock-names = "fck", "timer_sys_ck";
|
||||
interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
};
|
||||
@ -3417,8 +3417,8 @@
|
||||
timer7: timer@0 {
|
||||
compatible = "ti,omap5430-timer";
|
||||
reg = <0x0 0x80>;
|
||||
clocks = <&ipu_clkctrl DRA7_IPU_TIMER7_CLKCTRL 24>;
|
||||
clock-names = "fck";
|
||||
clocks = <&ipu_clkctrl DRA7_IPU_TIMER7_CLKCTRL 24>, <&timer_sys_clk_div>;
|
||||
clock-names = "fck", "timer_sys_ck";
|
||||
interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
};
|
||||
@ -3444,8 +3444,8 @@
|
||||
timer8: timer@0 {
|
||||
compatible = "ti,omap5430-timer";
|
||||
reg = <0x0 0x80>;
|
||||
clocks = <&ipu_clkctrl DRA7_IPU_TIMER8_CLKCTRL 24>;
|
||||
clock-names = "fck";
|
||||
clocks = <&ipu_clkctrl DRA7_IPU_TIMER8_CLKCTRL 24>, <&timer_sys_clk_div>;
|
||||
clock-names = "fck", "timer_sys_ck";
|
||||
interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
};
|
||||
@ -3471,8 +3471,8 @@
|
||||
timer13: timer@0 {
|
||||
compatible = "ti,omap5430-timer";
|
||||
reg = <0x0 0x80>;
|
||||
clocks = <&l4per3_clkctrl DRA7_L4PER3_TIMER13_CLKCTRL 24>;
|
||||
clock-names = "fck";
|
||||
clocks = <&l4per3_clkctrl DRA7_L4PER3_TIMER13_CLKCTRL 24>, <&timer_sys_clk_div>;
|
||||
clock-names = "fck", "timer_sys_ck";
|
||||
interrupts = <GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH>;
|
||||
ti,timer-pwm;
|
||||
};
|
||||
@ -3499,8 +3499,8 @@
|
||||
timer14: timer@0 {
|
||||
compatible = "ti,omap5430-timer";
|
||||
reg = <0x0 0x80>;
|
||||
clocks = <&l4per3_clkctrl DRA7_L4PER3_TIMER14_CLKCTRL 24>;
|
||||
clock-names = "fck";
|
||||
clocks = <&l4per3_clkctrl DRA7_L4PER3_TIMER14_CLKCTRL 24>, <&timer_sys_clk_div>;
|
||||
clock-names = "fck", "timer_sys_ck";
|
||||
interrupts = <GIC_SPI 340 IRQ_TYPE_LEVEL_HIGH>;
|
||||
ti,timer-pwm;
|
||||
};
|
||||
@ -3527,8 +3527,8 @@
|
||||
timer15: timer@0 {
|
||||
compatible = "ti,omap5430-timer";
|
||||
reg = <0x0 0x80>;
|
||||
clocks = <&l4per3_clkctrl DRA7_L4PER3_TIMER15_CLKCTRL 24>;
|
||||
clock-names = "fck";
|
||||
clocks = <&l4per3_clkctrl DRA7_L4PER3_TIMER15_CLKCTRL 24>, <&timer_sys_clk_div>;
|
||||
clock-names = "fck", "timer_sys_ck";
|
||||
interrupts = <GIC_SPI 341 IRQ_TYPE_LEVEL_HIGH>;
|
||||
ti,timer-pwm;
|
||||
};
|
||||
@ -3555,8 +3555,8 @@
|
||||
timer16: timer@0 {
|
||||
compatible = "ti,omap5430-timer";
|
||||
reg = <0x0 0x80>;
|
||||
clocks = <&l4per3_clkctrl DRA7_L4PER3_TIMER16_CLKCTRL 24>;
|
||||
clock-names = "fck";
|
||||
clocks = <&l4per3_clkctrl DRA7_L4PER3_TIMER16_CLKCTRL 24>, <&timer_sys_clk_div>;
|
||||
clock-names = "fck", "timer_sys_ck";
|
||||
interrupts = <GIC_SPI 342 IRQ_TYPE_LEVEL_HIGH>;
|
||||
ti,timer-pwm;
|
||||
};
|
||||
|
@ -75,8 +75,8 @@
|
||||
imx27-phycard-s-rdk {
|
||||
pinctrl_i2c1: i2c1grp {
|
||||
fsl,pins = <
|
||||
MX27_PAD_I2C2_SDA__I2C2_SDA 0x0
|
||||
MX27_PAD_I2C2_SCL__I2C2_SCL 0x0
|
||||
MX27_PAD_I2C_DATA__I2C_DATA 0x0
|
||||
MX27_PAD_I2C_CLK__I2C_CLK 0x0
|
||||
>;
|
||||
};
|
||||
|
||||
|
@ -38,7 +38,7 @@
|
||||
};
|
||||
|
||||
&switch_ports {
|
||||
/delete-node/ port@2;
|
||||
/delete-node/ port@3;
|
||||
};
|
||||
|
||||
&touchscreen {
|
||||
|
@ -65,13 +65,6 @@
|
||||
};
|
||||
};
|
||||
|
||||
&clks {
|
||||
assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
|
||||
<&clks IMX6QDL_CLK_LDB_DI1_SEL>;
|
||||
assigned-clock-parents = <&clks IMX6QDL_CLK_PLL3_USB_OTG>,
|
||||
<&clks IMX6QDL_CLK_PLL3_USB_OTG>;
|
||||
};
|
||||
|
||||
&ldb {
|
||||
status = "okay";
|
||||
|
||||
|
@ -65,13 +65,6 @@
|
||||
};
|
||||
};
|
||||
|
||||
&clks {
|
||||
assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
|
||||
<&clks IMX6QDL_CLK_LDB_DI1_SEL>;
|
||||
assigned-clock-parents = <&clks IMX6QDL_CLK_PLL3_USB_OTG>,
|
||||
<&clks IMX6QDL_CLK_PLL3_USB_OTG>;
|
||||
};
|
||||
|
||||
&ldb {
|
||||
status = "okay";
|
||||
|
||||
|
@ -53,17 +53,6 @@
|
||||
};
|
||||
};
|
||||
|
||||
&clks {
|
||||
assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
|
||||
<&clks IMX6QDL_CLK_LDB_DI1_SEL>,
|
||||
<&clks IMX6QDL_CLK_IPU1_DI0_PRE_SEL>,
|
||||
<&clks IMX6QDL_CLK_IPU2_DI0_PRE_SEL>;
|
||||
assigned-clock-parents = <&clks IMX6QDL_CLK_PLL5_VIDEO_DIV>,
|
||||
<&clks IMX6QDL_CLK_PLL5_VIDEO_DIV>,
|
||||
<&clks IMX6QDL_CLK_PLL2_PFD2_396M>,
|
||||
<&clks IMX6QDL_CLK_PLL2_PFD2_396M>;
|
||||
};
|
||||
|
||||
&ldb {
|
||||
fsl,dual-channel;
|
||||
status = "okay";
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user