Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net

No conflicts.

Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
Jakub Kicinski
2022-06-09 16:38:15 -07:00
2173 changed files with 70940 additions and 34823 deletions
+2
View File
@@ -201,6 +201,8 @@ Jordan Crouse <jordan@cosmicpenguin.net> <jcrouse@codeaurora.org>
<josh@joshtriplett.org> <josht@linux.vnet.ibm.com> <josh@joshtriplett.org> <josht@linux.vnet.ibm.com>
<josh@joshtriplett.org> <josht@us.ibm.com> <josh@joshtriplett.org> <josht@us.ibm.com>
<josh@joshtriplett.org> <josht@vnet.ibm.com> <josh@joshtriplett.org> <josht@vnet.ibm.com>
Josh Poimboeuf <jpoimboe@kernel.org> <jpoimboe@redhat.com>
Josh Poimboeuf <jpoimboe@kernel.org> <jpoimboe@us.ibm.com>
Juha Yrjola <at solidboot.com> Juha Yrjola <at solidboot.com>
Juha Yrjola <juha.yrjola@nokia.com> Juha Yrjola <juha.yrjola@nokia.com>
Juha Yrjola <juha.yrjola@solidboot.com> Juha Yrjola <juha.yrjola@solidboot.com>
+10
View File
@@ -19,3 +19,13 @@ Description: The file holds the OEM PK Hash value of the endpoint device
read without having the device power on at least once, the file read without having the device power on at least once, the file
will read all 0's. will read all 0's.
Users: Any userspace application or clients interested in device info. Users: Any userspace application or clients interested in device info.
What: /sys/bus/mhi/devices/.../soc_reset
Date: April 2022
KernelVersion: 5.19
Contact: mhi@lists.linux.dev
Description: Initiates a SoC reset on the MHI controller. A SoC reset is
a reset of last resort, and will require a complete re-init.
This can be useful as a method of recovery if the device is
non-responsive, or as a means of loading new firmware as a
system administration task.
@@ -7,6 +7,7 @@ Description: UVC function directory
streaming_maxburst 0..15 (ss only) streaming_maxburst 0..15 (ss only)
streaming_maxpacket 1..1023 (fs), 1..3072 (hs/ss) streaming_maxpacket 1..1023 (fs), 1..3072 (hs/ss)
streaming_interval 1..16 streaming_interval 1..16
function_name string [32]
=================== ============================= =================== =============================
What: /config/usb-gadget/gadget/functions/uvc.name/control What: /config/usb-gadget/gadget/functions/uvc.name/control
@@ -170,6 +170,20 @@ KernelVersion: 5.1
Contact: ogabbay@kernel.org Contact: ogabbay@kernel.org
Description: Sets the state of the third S/W led on the device Description: Sets the state of the third S/W led on the device
What: /sys/kernel/debug/habanalabs/hl<n>/memory_scrub
Date: May 2022
KernelVersion: 5.19
Contact: dhirschfeld@habana.ai
Description: Allows the root user to scrub the dram memory. The scrubbing
value can be set using the debugfs file memory_scrub_val.
What: /sys/kernel/debug/habanalabs/hl<n>/memory_scrub_val
Date: May 2022
KernelVersion: 5.19
Contact: dhirschfeld@habana.ai
Description: The value to which the dram will be set to when the user
scrubs the dram using 'memory_scrub' debugfs file
What: /sys/kernel/debug/habanalabs/hl<n>/mmu What: /sys/kernel/debug/habanalabs/hl<n>/mmu
Date: Jan 2019 Date: Jan 2019
KernelVersion: 5.1 KernelVersion: 5.1
@@ -190,6 +204,30 @@ Description: Check and display page fault or access violation mmu errors for
echo "0x200" > /sys/kernel/debug/habanalabs/hl0/mmu_error echo "0x200" > /sys/kernel/debug/habanalabs/hl0/mmu_error
cat /sys/kernel/debug/habanalabs/hl0/mmu_error cat /sys/kernel/debug/habanalabs/hl0/mmu_error
What: /sys/kernel/debug/habanalabs/hl<n>/monitor_dump
Date: Mar 2022
KernelVersion: 5.19
Contact: osharabi@habana.ai
Description: Allows the root user to dump monitors status from the device's
protected config space.
This property is a binary blob that contains the result of the
monitors registers dump.
This custom interface is needed (instead of using the generic
Linux user-space PCI mapping) because this space is protected
and cannot be accessed using PCI read.
This interface doesn't support concurrency in the same device.
Only supported on GAUDI.
What: /sys/kernel/debug/habanalabs/hl<n>/monitor_dump_trig
Date: Mar 2022
KernelVersion: 5.19
Contact: osharabi@habana.ai
Description: Triggers dump of monitor data. The value to trigger the operation
must be 1. Triggering the monitor dump operation initiates dump of
current registers values of all monitors.
When the write is finished, the user can read the "monitor_dump"
blob
What: /sys/kernel/debug/habanalabs/hl<n>/set_power_state What: /sys/kernel/debug/habanalabs/hl<n>/set_power_state
Date: Jan 2019 Date: Jan 2019
KernelVersion: 5.1 KernelVersion: 5.1
@@ -293,6 +293,16 @@ Contact: thunderbolt-software@lists.01.org
Description: This contains XDomain service specific settings as Description: This contains XDomain service specific settings as
bitmask. Format: %x bitmask. Format: %x
What: /sys/bus/thunderbolt/devices/usb4_portX/connector
Date: April 2022
Contact: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Description:
Symlink to the USB Type-C connector. This link is only
created when USB Type-C Connector Class is enabled,
and only if the system firmware is capable of
describing the connection between a port and its
connector.
What: /sys/bus/thunderbolt/devices/usb4_portX/link What: /sys/bus/thunderbolt/devices/usb4_portX/link
Date: Sep 2021 Date: Sep 2021
KernelVersion: v5.14 KernelVersion: v5.14
@@ -0,0 +1,77 @@
What: /sys/class/firmware/.../data
Date: July 2022
KernelVersion: 5.19
Contact: Russ Weight <russell.h.weight@intel.com>
Description: The data sysfs file is used for firmware-fallback and for
firmware uploads. Cat a firmware image to this sysfs file
after you echo 1 to the loading sysfs file. When the firmware
image write is complete, echo 0 to the loading sysfs file. This
sequence will signal the completion of the firmware write and
signal the lower-level driver that the firmware data is
available.
What: /sys/class/firmware/.../cancel
Date: July 2022
KernelVersion: 5.19
Contact: Russ Weight <russell.h.weight@intel.com>
Description: Write-only. For firmware uploads, write a "1" to this file to
request that the transfer of firmware data to the lower-level
device be canceled. This request will be rejected (EBUSY) if
the update cannot be canceled (e.g. a FLASH write is in
progress) or (ENODEV) if there is no firmware update in progress.
What: /sys/class/firmware/.../error
Date: July 2022
KernelVersion: 5.19
Contact: Russ Weight <russell.h.weight@intel.com>
Description: Read-only. Returns a string describing a failed firmware
upload. This string will be in the form of <STATUS>:<ERROR>,
where <STATUS> will be one of the status strings described
for the status sysfs file and <ERROR> will be one of the
following: "hw-error", "timeout", "user-abort", "device-busy",
"invalid-file-size", "read-write-error", "flash-wearout". The
error sysfs file is only meaningful when the current firmware
upload status is "idle". If this file is read while a firmware
transfer is in progress, then the read will fail with EBUSY.
What: /sys/class/firmware/.../loading
Date: July 2022
KernelVersion: 5.19
Contact: Russ Weight <russell.h.weight@intel.com>
Description: The loading sysfs file is used for both firmware-fallback and
for firmware uploads. Echo 1 onto the loading file to indicate
you are writing a firmware file to the data sysfs node. Echo
-1 onto this file to abort the data write or echo 0 onto this
file to indicate that the write is complete. For firmware
uploads, the zero value also triggers the transfer of the
firmware data to the lower-level device driver.
What: /sys/class/firmware/.../remaining_size
Date: July 2022
KernelVersion: 5.19
Contact: Russ Weight <russell.h.weight@intel.com>
Description: Read-only. For firmware upload, this file contains the size
of the firmware data that remains to be transferred to the
lower-level device driver. The size value is initialized to
the full size of the firmware image that was previously
written to the data sysfs file. This value is periodically
updated during the "transferring" phase of the firmware
upload.
Format: "%u".
What: /sys/class/firmware/.../status
Date: July 2022
KernelVersion: 5.19
Contact: Russ Weight <russell.h.weight@intel.com>
Description: Read-only. Returns a string describing the current status of
a firmware upload. The string will be one of the following:
idle, "receiving", "preparing", "transferring", "programming".
What: /sys/class/firmware/.../timeout
Date: July 2022
KernelVersion: 5.19
Contact: Russ Weight <russell.h.weight@intel.com>
Description: This file supports the timeout mechanism for firmware
fallback. This file has no affect on firmware uploads. For
more information on timeouts please see the documentation
for firmware fallback.
@@ -0,0 +1,42 @@
What: /sys/devices/.../physical_location
Date: March 2022
Contact: Won Chung <wonchung@google.com>
Description:
This directory contains information on physical location of
the device connection point with respect to the system's
housing.
What: /sys/devices/.../physical_location/panel
Date: March 2022
Contact: Won Chung <wonchung@google.com>
Description:
Describes which panel surface of the systems housing the
device connection point resides on.
What: /sys/devices/.../physical_location/vertical_position
Date: March 2022
Contact: Won Chung <wonchung@google.com>
Description:
Describes vertical position of the device connection point on
the panel surface.
What: /sys/devices/.../physical_location/horizontal_position
Date: March 2022
Contact: Won Chung <wonchung@google.com>
Description:
Describes horizontal position of the device connection point on
the panel surface.
What: /sys/devices/.../physical_location/dock
Date: March 2022
Contact: Won Chung <wonchung@google.com>
Description:
"Yes" if the device connection point resides in a docking
station or a port replicator. "No" otherwise.
What: /sys/devices/.../physical_location/lid
Date: March 2022
Contact: Won Chung <wonchung@google.com>
Description:
"Yes" if the device connection point resides on the lid of
laptop system. "No" otherwise.
@@ -15,6 +15,7 @@ c) swapping in pages
d) memory reclaim d) memory reclaim
e) thrashing page cache e) thrashing page cache
f) direct compact f) direct compact
g) write-protect copy
and makes these statistics available to userspace through and makes these statistics available to userspace through
the taskstats interface. the taskstats interface.
@@ -48,7 +49,7 @@ this structure. See
for a description of the fields pertaining to delay accounting. for a description of the fields pertaining to delay accounting.
It will generally be in the form of counters returning the cumulative It will generally be in the form of counters returning the cumulative
delay seen for cpu, sync block I/O, swapin, memory reclaim, thrash page delay seen for cpu, sync block I/O, swapin, memory reclaim, thrash page
cache, direct compact etc. cache, direct compact, write-protect copy etc.
Taking the difference of two successive readings of a given Taking the difference of two successive readings of a given
counter (say cpu_delay_total) for a task will give the delay counter (say cpu_delay_total) for a task will give the delay
@@ -117,6 +118,8 @@ Get sum of delays, since system boot, for all pids with tgid 5::
0 0 0ms 0 0 0ms
COMPACT count delay total delay average COMPACT count delay total delay average
0 0 0ms 0 0 0ms
WPCOPY count delay total delay average
0 0 0ms
Get IO accounting for pid 1, it works only with -p:: Get IO accounting for pid 1, it works only with -p::
+3 -3
View File
@@ -1,8 +1,8 @@
.. SPDX-License-Identifier: GPL-2.0 .. SPDX-License-Identifier: GPL-2.0
=========================== =============
The Linux RapidIO Subsystem Block Devices
=========================== =============
.. toctree:: .. toctree::
:maxdepth: 1 :maxdepth: 1
@@ -979,8 +979,10 @@
[KNL] Debugging option to set a timeout in seconds for [KNL] Debugging option to set a timeout in seconds for
deferred probe to give up waiting on dependencies to deferred probe to give up waiting on dependencies to
probe. Only specific dependencies (subsystems or probe. Only specific dependencies (subsystems or
drivers) that have opted in will be ignored. A timeout of 0 drivers) that have opted in will be ignored. A timeout
will timeout at the end of initcalls. This option will also of 0 will timeout at the end of initcalls. If the time
out hasn't expired, it'll be restarted by each
successful driver registration. This option will also
dump out devices still on the deferred probe list after dump out devices still on the deferred probe list after
retrying. retrying.
@@ -1101,7 +1103,10 @@
driver later using sysfs. driver later using sysfs.
driver_async_probe= [KNL] driver_async_probe= [KNL]
List of driver names to be probed asynchronously. List of driver names to be probed asynchronously. *
matches with all driver names. If * is specified, the
rest of the listed driver names are those that will NOT
match the *.
Format: <driver_name1>,<driver_name2>... Format: <driver_name1>,<driver_name2>...
drm.edid_firmware=[<connector>:]<file>[,[<connector>:]<file>] drm.edid_firmware=[<connector>:]<file>[,[<connector>:]<file>]
+1
View File
@@ -13,6 +13,7 @@ implementation.
arm/index arm/index
arm64/index arm64/index
ia64/index ia64/index
loongarch/index
m68k/index m68k/index
mips/index mips/index
nios2/index nios2/index
-7
View File
@@ -374,8 +374,6 @@ PXA 2xx/3xx/93x/95x family
Linux kernel mach directory: Linux kernel mach directory:
arch/arm/mach-pxa arch/arm/mach-pxa
Linux kernel plat directory:
arch/arm/plat-pxa
MMP/MMP2/MMP3 family (communication processor) MMP/MMP2/MMP3 family (communication processor)
---------------------------------------------- ----------------------------------------------
@@ -429,8 +427,6 @@ MMP/MMP2/MMP3 family (communication processor)
Linux kernel mach directory: Linux kernel mach directory:
arch/arm/mach-mmp arch/arm/mach-mmp
Linux kernel plat directory:
arch/arm/plat-pxa
Berlin family (Multimedia Solutions) Berlin family (Multimedia Solutions)
------------------------------------- -------------------------------------
@@ -518,9 +514,6 @@ Long-term plans
Business Unit) in a single mach-<foo> directory. The plat-orion/ Business Unit) in a single mach-<foo> directory. The plat-orion/
would therefore disappear. would therefore disappear.
* Unify the mach-mmp/ and mach-pxa/ into the same mach-pxa
directory. The plat-pxa/ would therefore disappear.
Credits Credits
------- -------
+1 -1
View File
@@ -161,7 +161,7 @@ finally:
# #
# This is also used if you do content translation via gettext catalogs. # This is also used if you do content translation via gettext catalogs.
# Usually you set "language" from the command line for these cases. # Usually you set "language" from the command line for these cases.
language = None language = 'en'
# There are two options for replacing |today|: either, you set today to some # There are two options for replacing |today|: either, you set today to some
# non-false value, then it is used: # non-false value, then it is used:
@@ -0,0 +1,27 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/arm/hpe,gxp.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: HPE BMC GXP platforms
maintainers:
- Nick Hawkins <nick.hawkins@hpe.com>
- Jean-Marie Verdun <verdun@hpe.com>
properties:
compatible:
oneOf:
- description: GXP Based Boards
items:
- enum:
- hpe,gxp-dl360gen10
- const: hpe,gxp
required:
- compatible
additionalProperties: true
...
@@ -18,6 +18,7 @@ properties:
items: items:
- enum: - enum:
- intel,n5x-socdk - intel,n5x-socdk
- intel,socfpga-agilex-n6000
- intel,socfpga-agilex-socdk - intel,socfpga-agilex-socdk
- const: intel,socfpga-agilex - const: intel,socfpga-agilex
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm Multimedia Clock & Reset Controller Binding title: Qualcomm Multimedia Clock & Reset Controller Binding
maintainers: maintainers:
- Jeffrey Hugo <jhugo@codeaurora.org> - Jeffrey Hugo <quic_jhugo@quicinc.com>
- Taniya Das <tdas@codeaurora.org> - Taniya Das <tdas@codeaurora.org>
description: | description: |
@@ -20,11 +20,12 @@ properties:
enum: enum:
- siliconmitus,sm5502-muic - siliconmitus,sm5502-muic
- siliconmitus,sm5504-muic - siliconmitus,sm5504-muic
- siliconmitus,sm5703-muic
reg: reg:
maxItems: 1 maxItems: 1
description: I2C slave address of the device. Usually 0x25 for SM5502, description: I2C slave address of the device. Usually 0x25 for SM5502
0x14 for SM5504. and SM5703, 0x14 for SM5504.
interrupts: interrupts:
maxItems: 1 maxItems: 1
@@ -9,8 +9,9 @@ Required properties:
- The second cell is reserved and is currently unused. - The second cell is reserved and is currently unused.
- gpio-controller : Marks the device node as a GPIO controller. - gpio-controller : Marks the device node as a GPIO controller.
- interrupt-controller: Mark the device node as an interrupt controller - interrupt-controller: Mark the device node as an interrupt controller
- #interrupt-cells : Should be 1. The interrupt type is fixed in the hardware. - #interrupt-cells : Should be 2. The interrupt type is fixed in the hardware.
- The first cell is the GPIO offset number within the GPIO controller. - The first cell is the GPIO offset number within the GPIO controller.
- The second cell is the interrupt trigger type and level flags.
- interrupts: Specify the interrupt. - interrupts: Specify the interrupt.
- altr,interrupt-type: Specifies the interrupt trigger type the GPIO - altr,interrupt-type: Specifies the interrupt trigger type the GPIO
hardware is synthesized. This field is required if the Altera GPIO controller hardware is synthesized. This field is required if the Altera GPIO controller
@@ -38,6 +39,6 @@ gpio_altr: gpio@ff200000 {
altr,interrupt-type = <IRQ_TYPE_EDGE_RISING>; altr,interrupt-type = <IRQ_TYPE_EDGE_RISING>;
#gpio-cells = <2>; #gpio-cells = <2>;
gpio-controller; gpio-controller;
#interrupt-cells = <1>; #interrupt-cells = <2>;
interrupt-controller; interrupt-controller;
}; };
@@ -19,7 +19,8 @@ properties:
compatible: compatible:
items: items:
- enum: - enum:
- renesas,r9a07g044-adc # RZ/G2{L,LC} - renesas,r9a07g044-adc # RZ/G2L
- renesas,r9a07g054-adc # RZ/V2L
- const: renesas,rzg2l-adc - const: renesas,rzg2l-adc
reg: reg:
@@ -20,6 +20,7 @@ properties:
- sprd,sc2723-adc - sprd,sc2723-adc
- sprd,sc2730-adc - sprd,sc2730-adc
- sprd,sc2731-adc - sprd,sc2731-adc
- sprd,ump9620-adc
reg: reg:
maxItems: 1 maxItems: 1
@@ -33,13 +34,39 @@ properties:
hwlocks: hwlocks:
maxItems: 1 maxItems: 1
nvmem-cells: nvmem-cells: true
maxItems: 2
nvmem-cell-names: nvmem-cell-names: true
items:
- const: big_scale_calib allOf:
- const: small_scale_calib - if:
not:
properties:
compatible:
contains:
enum:
- sprd,ump9620-adc
then:
properties:
nvmem-cells:
maxItems: 2
nvmem-cell-names:
items:
- const: big_scale_calib
- const: small_scale_calib
else:
properties:
nvmem-cells:
maxItems: 6
nvmem-cell-names:
items:
- const: big_scale_calib1
- const: big_scale_calib2
- const: small_scale_calib1
- const: small_scale_calib2
- const: vbat_det_cal1
- const: vbat_det_cal2
required: required:
- compatible - compatible
@@ -69,4 +96,25 @@ examples:
nvmem-cell-names = "big_scale_calib", "small_scale_calib"; nvmem-cell-names = "big_scale_calib", "small_scale_calib";
}; };
}; };
- |
#include <dt-bindings/interrupt-controller/irq.h>
pmic {
#address-cells = <1>;
#size-cells = <0>;
adc@504 {
compatible = "sprd,ump9620-adc";
reg = <0x504>;
interrupt-parent = <&ump9620_pmic>;
interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;
#io-channel-cells = <1>;
hwlocks = <&hwlock 4>;
nvmem-cells = <&adc_bcal1>, <&adc_bcal2>,
<&adc_scal1>, <&adc_scal2>,
<&vbat_det_cal1>, <&vbat_det_cal2>;
nvmem-cell-names = "big_scale_calib1", "big_scale_calib2",
"small_scale_calib1", "small_scale_calib2",
"vbat_det_cal1", "vbat_det_cal2";
};
};
... ...
@@ -4,7 +4,7 @@
$id: http://devicetree.org/schemas/iio/adc/ti,ads1015.yaml# $id: http://devicetree.org/schemas/iio/adc/ti,ads1015.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml#
title: TI ADS1015 4 channel I2C analog to digital converter title: TI ADS1015/ADS1115 4 channel I2C analog to digital converter
maintainers: maintainers:
- Daniel Baluta <daniel.baluta@nxp.com> - Daniel Baluta <daniel.baluta@nxp.com>
@@ -15,7 +15,10 @@ description: |
properties: properties:
compatible: compatible:
const: ti,ads1015 enum:
- ti,ads1015
- ti,ads1115
- ti,tla2024
reg: reg:
maxItems: 1 maxItems: 1
@@ -8,7 +8,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
title: Analog Devices AD2552R DAC device driver title: Analog Devices AD2552R DAC device driver
maintainers: maintainers:
- Mihail Chindris <mihail.chindris@analog.com> - Nuno Sá <nuno.sa@analog.com>
description: | description: |
Bindings for the Analog Devices AD3552R DAC device and similar. Bindings for the Analog Devices AD3552R DAC device and similar.
@@ -68,7 +68,7 @@ examples:
#size-cells = <0>; #size-cells = <0>;
dac@0 { dac@0 {
compatible = "lltc,ltc2632"; compatible = "lltc,ltc2632-l12";
reg = <0>; /* CS0 */ reg = <0>; /* CS0 */
spi-max-frequency = <1000000>; spi-max-frequency = <1000000>;
vref-supply = <&vref>; vref-supply = <&vref>;
@@ -14,21 +14,25 @@ description: |
properties: properties:
compatible: compatible:
enum: oneOf:
- invensense,iam20680 - enum:
- invensense,icm20608 - invensense,iam20680
- invensense,icm20609 - invensense,icm20608
- invensense,icm20689 - invensense,icm20609
- invensense,icm20602 - invensense,icm20689
- invensense,icm20690 - invensense,icm20602
- invensense,mpu6000 - invensense,icm20690
- invensense,mpu6050 - invensense,mpu6000
- invensense,mpu6500 - invensense,mpu6050
- invensense,mpu6515 - invensense,mpu6500
- invensense,mpu6880 - invensense,mpu6515
- invensense,mpu9150 - invensense,mpu6880
- invensense,mpu9250 - invensense,mpu9150
- invensense,mpu9255 - invensense,mpu9250
- invensense,mpu9255
- items:
- const: invensense,icm20608d
- const: invensense,icm20608
reg: reg:
maxItems: 1 maxItems: 1
@@ -14,23 +14,27 @@ description:
properties: properties:
compatible: compatible:
enum: oneOf:
- st,lsm6ds3 - enum:
- st,lsm6ds3h - st,lsm6ds3
- st,lsm6dsl - st,lsm6ds3h
- st,lsm6dsm - st,lsm6dsl
- st,ism330dlc - st,lsm6dsm
- st,lsm6dso - st,ism330dlc
- st,asm330lhh - st,lsm6dso
- st,lsm6dsox - st,asm330lhh
- st,lsm6dsr - st,lsm6dsox
- st,lsm6ds3tr-c - st,lsm6dsr
- st,ism330dhcx - st,lsm6ds3tr-c
- st,lsm9ds1-imu - st,ism330dhcx
- st,lsm6ds0 - st,lsm9ds1-imu
- st,lsm6dsrx - st,lsm6ds0
- st,lsm6dst - st,lsm6dsrx
- st,lsm6dsop - st,lsm6dst
- st,lsm6dsop
- items:
- const: st,asm330lhhx
- const: st,lsm6dsr
reg: reg:
maxItems: 1 maxItems: 1
@@ -13,6 +13,9 @@ maintainers:
description: | description: |
Ambient light and proximity sensor over an i2c interface. Ambient light and proximity sensor over an i2c interface.
allOf:
- $ref: ../common.yaml#
properties: properties:
compatible: compatible:
enum: enum:
@@ -26,6 +29,8 @@ properties:
interrupts: interrupts:
maxItems: 1 maxItems: 1
proximity-near-level: true
required: required:
- compatible - compatible
- reg - reg
@@ -44,6 +49,7 @@ examples:
stk3310@48 { stk3310@48 {
compatible = "sensortek,stk3310"; compatible = "sensortek,stk3310";
reg = <0x48>; reg = <0x48>;
proximity-near-level = <25>;
interrupt-parent = <&gpio1>; interrupt-parent = <&gpio1>;
interrupts = <5 IRQ_TYPE_LEVEL_LOW>; interrupts = <5 IRQ_TYPE_LEVEL_LOW>;
}; };
@@ -95,7 +95,7 @@ examples:
#size-cells = <0>; #size-cells = <0>;
potentiometer@0 { potentiometer@0 {
compatible = "mcp4131-502"; compatible = "microchip,mcp4131-502";
reg = <0>; reg = <0>;
spi-max-frequency = <500000>; spi-max-frequency = <500000>;
}; };
@@ -29,6 +29,7 @@ properties:
- st,lis2dw12 - st,lis2dw12
- st,lis2hh12 - st,lis2hh12
- st,lis2dh12-accel - st,lis2dh12-accel
- st,lis302dl
- st,lis331dl-accel - st,lis331dl-accel
- st,lis331dlh-accel - st,lis331dlh-accel
- st,lis3de - st,lis3de
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm Operating State Manager (OSM) L3 Interconnect Provider title: Qualcomm Operating State Manager (OSM) L3 Interconnect Provider
maintainers: maintainers:
- Sibi Sankar <sibis@codeaurora.org> - Sibi Sankar <quic_sibis@quicinc.com>
description: description:
L3 cache bandwidth requirements on Qualcomm SoCs is serviced by the OSM. L3 cache bandwidth requirements on Qualcomm SoCs is serviced by the OSM.
@@ -31,7 +31,6 @@ properties:
- qcom,sc7180-config-noc - qcom,sc7180-config-noc
- qcom,sc7180-dc-noc - qcom,sc7180-dc-noc
- qcom,sc7180-gem-noc - qcom,sc7180-gem-noc
- qcom,sc7180-ipa-virt
- qcom,sc7180-mc-virt - qcom,sc7180-mc-virt
- qcom,sc7180-mmss-noc - qcom,sc7180-mmss-noc
- qcom,sc7180-npu-noc - qcom,sc7180-npu-noc
@@ -59,7 +58,20 @@ properties:
- qcom,sc8180x-ipa-virt - qcom,sc8180x-ipa-virt
- qcom,sc8180x-mc-virt - qcom,sc8180x-mc-virt
- qcom,sc8180x-mmss-noc - qcom,sc8180x-mmss-noc
- qcom,sc8180x-qup-virt
- qcom,sc8180x-system-noc - qcom,sc8180x-system-noc
- qcom,sc8280xp-aggre1-noc
- qcom,sc8280xp-aggre2-noc
- qcom,sc8280xp-clk-virt
- qcom,sc8280xp-config-noc
- qcom,sc8280xp-dc-noc
- qcom,sc8280xp-gem-noc
- qcom,sc8280xp-lpass-ag-noc
- qcom,sc8280xp-mc-virt
- qcom,sc8280xp-mmss-noc
- qcom,sc8280xp-nspa-noc
- qcom,sc8280xp-nspb-noc
- qcom,sc8280xp-system-noc
- qcom,sdm845-aggre1-noc - qcom,sdm845-aggre1-noc
- qcom,sdm845-aggre2-noc - qcom,sdm845-aggre2-noc
- qcom,sdm845-config-noc - qcom,sdm845-config-noc
@@ -68,10 +80,12 @@ properties:
- qcom,sdm845-mem-noc - qcom,sdm845-mem-noc
- qcom,sdm845-mmss-noc - qcom,sdm845-mmss-noc
- qcom,sdm845-system-noc - qcom,sdm845-system-noc
- qcom,sdx55-ipa-virt
- qcom,sdx55-mc-virt - qcom,sdx55-mc-virt
- qcom,sdx55-mem-noc - qcom,sdx55-mem-noc
- qcom,sdx55-system-noc - qcom,sdx55-system-noc
- qcom,sdx65-mc-virt
- qcom,sdx65-mem-noc
- qcom,sdx65-system-noc
- qcom,sm8150-aggre1-noc - qcom,sm8150-aggre1-noc
- qcom,sm8150-aggre2-noc - qcom,sm8150-aggre2-noc
- qcom,sm8150-camnoc-noc - qcom,sm8150-camnoc-noc
@@ -0,0 +1,46 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/memory-controllers/ingenic,nemc-peripherals.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Ingenic SoCs NAND / External Memory Controller (NEMC) devicetree bindings
maintainers:
- Paul Cercueil <paul@crapouillou.net>
properties:
reg:
minItems: 1
maxItems: 255
ingenic,nemc-bus-width:
$ref: /schemas/types.yaml#/definitions/uint32
enum: [8, 16]
description: Specifies the bus width in bits.
ingenic,nemc-tAS:
$ref: /schemas/types.yaml#/definitions/uint32
description: Address setup time in nanoseconds.
ingenic,nemc-tAH:
$ref: /schemas/types.yaml#/definitions/uint32
description: Address hold time in nanoseconds.
ingenic,nemc-tBP:
$ref: /schemas/types.yaml#/definitions/uint32
description: Burst pitch time in nanoseconds.
ingenic,nemc-tAW:
$ref: /schemas/types.yaml#/definitions/uint32
description: Address wait time in nanoseconds.
ingenic,nemc-tSTRV:
$ref: /schemas/types.yaml#/definitions/uint32
description: Static memory recovery time in nanoseconds.
required:
- reg
additionalProperties: true
...
@@ -39,38 +39,6 @@ properties:
patternProperties: patternProperties:
".*@[0-9]+$": ".*@[0-9]+$":
type: object type: object
properties:
reg:
minItems: 1
maxItems: 255
ingenic,nemc-bus-width:
$ref: /schemas/types.yaml#/definitions/uint32
enum: [8, 16]
description: Specifies the bus width in bits.
ingenic,nemc-tAS:
$ref: /schemas/types.yaml#/definitions/uint32
description: Address setup time in nanoseconds.
ingenic,nemc-tAH:
$ref: /schemas/types.yaml#/definitions/uint32
description: Address hold time in nanoseconds.
ingenic,nemc-tBP:
$ref: /schemas/types.yaml#/definitions/uint32
description: Burst pitch time in nanoseconds.
ingenic,nemc-tAW:
$ref: /schemas/types.yaml#/definitions/uint32
description: Address wait time in nanoseconds.
ingenic,nemc-tSTRV:
$ref: /schemas/types.yaml#/definitions/uint32
description: Static memory recovery time in nanoseconds.
required:
- reg
required: required:
- compatible - compatible
@@ -75,7 +75,6 @@ examples:
sd-uhs-sdr104; sd-uhs-sdr104;
sdhci,auto-cmd12; sdhci,auto-cmd12;
interrupts = <0x0 0x26 0x4>; interrupts = <0x0 0x26 0x4>;
interrupt-names = "sdio0_0";
clocks = <&scmi_clk 245>; clocks = <&scmi_clk 245>;
clock-names = "sw_sdio"; clock-names = "sw_sdio";
}; };
@@ -94,7 +93,6 @@ examples:
non-removable; non-removable;
bus-width = <0x8>; bus-width = <0x8>;
interrupts = <0x0 0x27 0x4>; interrupts = <0x0 0x27 0x4>;
interrupt-names = "sdio1_0";
clocks = <&scmi_clk 245>; clocks = <&scmi_clk 245>;
clock-names = "sw_sdio"; clock-names = "sw_sdio";
}; };
@@ -56,6 +56,9 @@ properties:
- const: core - const: core
- const: axi - const: axi
interrupts:
maxItems: 1
marvell,xenon-sdhc-id: marvell,xenon-sdhc-id:
$ref: /schemas/types.yaml#/definitions/uint32 $ref: /schemas/types.yaml#/definitions/uint32
minimum: 0 minimum: 0
@@ -11,6 +11,7 @@ maintainers:
allOf: allOf:
- $ref: nand-controller.yaml# - $ref: nand-controller.yaml#
- $ref: /schemas/memory-controllers/ingenic,nemc-peripherals.yaml#
properties: properties:
compatible: compatible:
@@ -11,6 +11,7 @@ maintainers:
allOf: allOf:
- $ref: "nand-chip.yaml#" - $ref: "nand-chip.yaml#"
- $ref: /schemas/spi/spi-peripheral-props.yaml#
properties: properties:
compatible: compatible:
@@ -191,7 +191,6 @@ examples:
clock-names = "pclk", "hclk", "tx_clk", "rx_clk", "tsu_clk"; clock-names = "pclk", "hclk", "tx_clk", "rx_clk", "tsu_clk";
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
#stream-id-cells = <1>;
iommus = <&smmu 0x875>; iommus = <&smmu 0x875>;
power-domains = <&zynqmp_firmware PD_ETH_1>; power-domains = <&zynqmp_firmware PD_ETH_1>;
resets = <&zynqmp_reset ZYNQMP_RESET_GEM1>; resets = <&zynqmp_reset ZYNQMP_RESET_GEM1>;
@@ -6,9 +6,6 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
title: Broadcom BCM53xx Ethernet switches title: Broadcom BCM53xx Ethernet switches
allOf:
- $ref: dsa.yaml#
maintainers: maintainers:
- Florian Fainelli <f.fainelli@gmail.com> - Florian Fainelli <f.fainelli@gmail.com>
@@ -68,53 +65,71 @@ required:
- compatible - compatible
- reg - reg
# BCM585xx/586xx/88312 SoCs allOf:
if: - $ref: dsa.yaml#
properties: - if:
compatible: properties:
contains: compatible:
enum: contains:
- brcm,bcm58522-srab enum:
- brcm,bcm58523-srab - brcm,bcm5325
- brcm,bcm58525-srab - brcm,bcm53115
- brcm,bcm58622-srab - brcm,bcm53125
- brcm,bcm58623-srab - brcm,bcm53128
- brcm,bcm58625-srab - brcm,bcm5365
- brcm,bcm88312-srab - brcm,bcm5395
then: - brcm,bcm5397
properties: - brcm,bcm5398
reg: then:
minItems: 3 $ref: /schemas/spi/spi-peripheral-props.yaml
maxItems: 3
reg-names: # BCM585xx/586xx/88312 SoCs
items: - if:
- const: srab properties:
- const: mux_config compatible:
- const: sgmii_config contains:
interrupts: enum:
minItems: 13 - brcm,bcm58522-srab
maxItems: 13 - brcm,bcm58523-srab
interrupt-names: - brcm,bcm58525-srab
items: - brcm,bcm58622-srab
- const: link_state_p0 - brcm,bcm58623-srab
- const: link_state_p1 - brcm,bcm58625-srab
- const: link_state_p2 - brcm,bcm88312-srab
- const: link_state_p3 then:
- const: link_state_p4 properties:
- const: link_state_p5 reg:
- const: link_state_p7 minItems: 3
- const: link_state_p8 maxItems: 3
- const: phy reg-names:
- const: ts items:
- const: imp_sleep_timer_p5 - const: srab
- const: imp_sleep_timer_p7 - const: mux_config
- const: imp_sleep_timer_p8 - const: sgmii_config
required: interrupts:
- interrupts minItems: 13
else: maxItems: 13
properties: interrupt-names:
reg: items:
maxItems: 1 - const: link_state_p0
- const: link_state_p1
- const: link_state_p2
- const: link_state_p3
- const: link_state_p4
- const: link_state_p5
- const: link_state_p7
- const: link_state_p8
- const: phy
- const: ts
- const: imp_sleep_timer_p5
- const: imp_sleep_timer_p7
- const: imp_sleep_timer_p8
required:
- interrupts
else:
properties:
reg:
maxItems: 1
unevaluatedProperties: false unevaluatedProperties: false
@@ -12,6 +12,7 @@ maintainers:
allOf: allOf:
- $ref: dsa.yaml# - $ref: dsa.yaml#
- $ref: /schemas/spi/spi-peripheral-props.yaml#
properties: properties:
# See Documentation/devicetree/bindings/net/dsa/dsa.yaml for a list of additional # See Documentation/devicetree/bindings/net/dsa/dsa.yaml for a list of additional
@@ -14,6 +14,7 @@ description:
allOf: allOf:
- $ref: "dsa.yaml#" - $ref: "dsa.yaml#"
- $ref: /schemas/spi/spi-peripheral-props.yaml#
maintainers: maintainers:
- Vladimir Oltean <vladimir.oltean@nxp.com> - Vladimir Oltean <vladimir.oltean@nxp.com>
@@ -108,6 +108,7 @@ if:
- reg - reg
then: then:
$ref: /schemas/spi/spi-peripheral-props.yaml#
not: not:
required: required:
- mdc-gpios - mdc-gpios
@@ -27,6 +27,9 @@ properties:
reg: reg:
maxItems: 1 maxItems: 1
clocks: true
clock-names: true
interrupts: interrupts:
minItems: 3 minItems: 3
maxItems: 4 maxItems: 4
@@ -58,6 +58,9 @@ properties:
- const: rmii_internal - const: rmii_internal
- const: mac_cg - const: mac_cg
power-domains:
maxItems: 1
mediatek,pericfg: mediatek,pericfg:
$ref: /schemas/types.yaml#/definitions/phandle $ref: /schemas/types.yaml#/definitions/phandle
description: description:
@@ -51,7 +51,7 @@ properties:
description: description:
Specify the consys reset for mt7986. Specify the consys reset for mt7986.
reset-name: reset-names:
const: consys const: consys
mediatek,infracfg: mediatek,infracfg:
@@ -0,0 +1,50 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/nvmem/apple,efuses.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Apple SoC eFuse-based NVMEM
description: |
Apple SoCs such as the M1 contain factory-programmed eFuses used to e.g. store
calibration data for the PCIe and the Type-C PHY or unique chip identifiers
such as the ECID.
maintainers:
- Sven Peter <sven@svenpeter.dev>
allOf:
- $ref: "nvmem.yaml#"
properties:
compatible:
items:
- enum:
- apple,t8103-efuses
- apple,t6000-efuses
- const: apple,efuses
reg:
maxItems: 1
required:
- compatible
- reg
unevaluatedProperties: false
examples:
- |
efuse@3d2bc000 {
compatible = "apple,t8103-efuses", "apple,efuses";
reg = <0x3d2bc000 0x1000>;
#address-cells = <1>;
#size-cells = <1>;
ecid: efuse@500 {
reg = <0x500 0x8>;
};
};
...
@@ -10,7 +10,7 @@ maintainers:
- Michael Walle <michael@walle.cc> - Michael Walle <michael@walle.cc>
description: | description: |
SFP is the security fuse processor which among other things provide a SFP is the security fuse processor which among other things provides a
unique identifier per part. unique identifier per part.
allOf: allOf:
@@ -18,21 +18,45 @@ allOf:
properties: properties:
compatible: compatible:
enum: oneOf:
- fsl,ls1028a-sfp - description: Trust architecture 2.1 SFP
items:
- const: fsl,ls1021a-sfp
- description: Trust architecture 3.0 SFP
items:
- const: fsl,ls1028a-sfp
reg: reg:
maxItems: 1 maxItems: 1
clocks:
maxItems: 1
description:
The SFP clock. Typically, this is the platform clock divided by 4.
clock-names:
const: sfp
ta-prog-sfp-supply:
description:
The regulator for the TA_PROG_SFP pin. It will be enabled for programming
and disabled for reading.
required: required:
- compatible - compatible
- reg - reg
- clock-names
- clocks
unevaluatedProperties: false unevaluatedProperties: false
examples: examples:
- | - |
#include <dt-bindings/clock/fsl,qoriq-clockgen.h>
efuse@1e80000 { efuse@1e80000 {
compatible = "fsl,ls1028a-sfp"; compatible = "fsl,ls1028a-sfp";
reg = <0x1e80000 0x8000>; reg = <0x1e80000 0x8000>;
clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
QORIQ_CLK_PLL_DIV(4)>;
clock-names = "sfp";
}; };
@@ -68,6 +68,9 @@ properties:
iommu-map: true iommu-map: true
iommu-map-mask: true iommu-map-mask: true
power-domains:
maxItems: 1
required: required:
- compatible - compatible
- reg - reg
@@ -134,7 +137,7 @@ examples:
ranges = <0x43000000 0x6 0xa0000000 0x6 0xa0000000 0x0 0x20000000>, ranges = <0x43000000 0x6 0xa0000000 0x6 0xa0000000 0x0 0x20000000>,
<0x02000000 0x0 0xc0000000 0x6 0xc0000000 0x0 0x40000000>; <0x02000000 0x0 0xc0000000 0x6 0xc0000000 0x0 0x40000000>;
power-domains = <&ps_apcie>, <&ps_apcie_gp>, <&ps_pcie_ref>; power-domains = <&ps_apcie_gp>;
pinctrl-0 = <&pcie_pins>; pinctrl-0 = <&pcie_pins>;
pinctrl-names = "default"; pinctrl-names = "default";
@@ -51,6 +51,19 @@ properties:
phy-names: phy-names:
const: pcie-phy const: pcie-phy
interrupt-controller:
type: object
additionalProperties: false
properties:
interrupt-controller: true
'#interrupt-cells':
const: 1
interrupts:
maxItems: 1
required: required:
- compatible - compatible
- reg - reg
@@ -62,6 +75,13 @@ unevaluatedProperties: false
examples: examples:
- | - |
bus {
gic: interrupt-controller {
interrupt-controller;
#interrupt-cells = <3>;
};
};
pcie: pcie@66000000 { pcie: pcie@66000000 {
compatible = "socionext,uniphier-pcie"; compatible = "socionext,uniphier-pcie";
reg-names = "dbi", "link", "config"; reg-names = "dbi", "link", "config";
@@ -80,6 +100,7 @@ examples:
phys = <&pcie_phy>; phys = <&pcie_phy>;
#interrupt-cells = <1>; #interrupt-cells = <1>;
interrupt-names = "dma", "msi"; interrupt-names = "dma", "msi";
interrupt-parent = <&gic>;
interrupts = <0 224 4>, <0 225 4>; interrupts = <0 224 4>, <0 225 4>;
interrupt-map-mask = <0 0 0 7>; interrupt-map-mask = <0 0 0 7>;
interrupt-map = <0 0 0 1 &pcie_intc 0>, interrupt-map = <0 0 0 1 &pcie_intc 0>,
@@ -87,7 +108,7 @@ examples:
<0 0 0 3 &pcie_intc 2>, <0 0 0 3 &pcie_intc 2>,
<0 0 0 4 &pcie_intc 3>; <0 0 0 4 &pcie_intc 3>;
pcie_intc: legacy-interrupt-controller { pcie_intc: interrupt-controller {
interrupt-controller; interrupt-controller;
#interrupt-cells = <1>; #interrupt-cells = <1>;
interrupt-parent = <&gic>; interrupt-parent = <&gic>;
@@ -18,13 +18,13 @@ properties:
reg: reg:
items: items:
- description: Configuration space region and bridge registers.
- description: CPM system level control and status registers. - description: CPM system level control and status registers.
- description: Configuration space region and bridge registers.
reg-names: reg-names:
items: items:
- const: cfg
- const: cpm_slcr - const: cpm_slcr
- const: cfg
interrupts: interrupts:
maxItems: 1 maxItems: 1
@@ -86,9 +86,9 @@ examples:
ranges = <0x02000000 0x0 0xe0000000 0x0 0xe0000000 0x0 0x10000000>, ranges = <0x02000000 0x0 0xe0000000 0x0 0xe0000000 0x0 0x10000000>,
<0x43000000 0x80 0x00000000 0x80 0x00000000 0x0 0x80000000>; <0x43000000 0x80 0x00000000 0x80 0x00000000 0x0 0x80000000>;
msi-map = <0x0 &its_gic 0x0 0x10000>; msi-map = <0x0 &its_gic 0x0 0x10000>;
reg = <0x6 0x00000000 0x0 0x10000000>, reg = <0x0 0xfca10000 0x0 0x1000>,
<0x0 0xfca10000 0x0 0x1000>; <0x6 0x00000000 0x0 0x10000000>;
reg-names = "cfg", "cpm_slcr"; reg-names = "cpm_slcr", "cfg";
pcie_intc_0: interrupt-controller { pcie_intc_0: interrupt-controller {
#address-cells = <0>; #address-cells = <0>;
#interrupt-cells = <1>; #interrupt-cells = <1>;
@@ -37,6 +37,18 @@ properties:
resets: resets:
maxItems: 1 maxItems: 1
allwinner,direction:
$ref: '/schemas/types.yaml#/definitions/string'
description: |
Direction of the D-PHY:
- "rx" for receiving (e.g. when used with MIPI CSI-2);
- "tx" for transmitting (e.g. when used with MIPI DSI).
enum:
- tx
- rx
default: tx
required: required:
- "#phy-cells" - "#phy-cells"
- compatible - compatible
@@ -45,7 +45,7 @@ additionalProperties: false
examples: examples:
- | - |
usb2_utmi_host_phy: phy@5f000 { usb2_utmi_host_phy: phy@5f000 {
compatible = "marvell,armada-3700-utmi-host-phy"; compatible = "marvell,a3700-utmi-host-phy";
reg = <0x5f000 0x800>; reg = <0x5f000 0x800>;
marvell,usb-misc-reg = <&usb2_syscon>; marvell,usb-misc-reg = <&usb2_syscon>;
#phy-cells = <0>; #phy-cells = <0>;
@@ -1,29 +0,0 @@
Mixel DSI PHY for i.MX8
The Mixel MIPI-DSI PHY IP block is e.g. found on i.MX8 platforms (along the
MIPI-DSI IP from Northwest Logic). It represents the physical layer for the
electrical signals for DSI.
Required properties:
- compatible: Must be:
- "fsl,imx8mq-mipi-dphy"
- clocks: Must contain an entry for each entry in clock-names.
- clock-names: Must contain the following entries:
- "phy_ref": phandle and specifier referring to the DPHY ref clock
- reg: the register range of the PHY controller
- #phy-cells: number of cells in PHY, as defined in
Documentation/devicetree/bindings/phy/phy-bindings.txt
this must be <0>
Optional properties:
- power-domains: phandle to power domain
Example:
dphy: dphy@30a0030 {
compatible = "fsl,imx8mq-mipi-dphy";
clocks = <&clk IMX8MQ_CLK_DSI_PHY_REF>;
clock-names = "phy_ref";
reg = <0x30a00300 0x100>;
power-domains = <&pd_mipi0>;
#phy-cells = <0>;
};
@@ -0,0 +1,107 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/phy/mixel,mipi-dsi-phy.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Mixel DSI PHY for i.MX8
maintainers:
- Guido Günther <agx@sigxcpu.org>
description: |
The Mixel MIPI-DSI PHY IP block is e.g. found on i.MX8 platforms (along the
MIPI-DSI IP from Northwest Logic). It represents the physical layer for the
electrical signals for DSI.
The Mixel PHY IP block found on i.MX8qxp is a combo PHY that can work
in either MIPI-DSI PHY mode or LVDS PHY mode.
properties:
compatible:
enum:
- fsl,imx8mq-mipi-dphy
- fsl,imx8qxp-mipi-dphy
reg:
maxItems: 1
clocks:
maxItems: 1
clock-names:
const: phy_ref
assigned-clocks:
maxItems: 1
assigned-clock-parents:
maxItems: 1
assigned-clock-rates:
maxItems: 1
"#phy-cells":
const: 0
fsl,syscon:
$ref: /schemas/types.yaml#/definitions/phandle
description: |
A phandle which points to Control and Status Registers(CSR) module.
power-domains:
maxItems: 1
required:
- compatible
- reg
- clocks
- clock-names
- "#phy-cells"
- power-domains
allOf:
- if:
properties:
compatible:
contains:
const: fsl,imx8mq-mipi-dphy
then:
properties:
fsl,syscon: false
required:
- assigned-clocks
- assigned-clock-parents
- assigned-clock-rates
- if:
properties:
compatible:
contains:
const: fsl,imx8qxp-mipi-dphy
then:
properties:
assigned-clocks: false
assigned-clock-parents: false
assigned-clock-rates: false
required:
- fsl,syscon
additionalProperties: false
examples:
- |
#include <dt-bindings/clock/imx8mq-clock.h>
dphy: dphy@30a0030 {
compatible = "fsl,imx8mq-mipi-dphy";
reg = <0x30a00300 0x100>;
clocks = <&clk IMX8MQ_CLK_DSI_PHY_REF>;
clock-names = "phy_ref";
assigned-clocks = <&clk IMX8MQ_CLK_DSI_PHY_REF>;
assigned-clock-parents = <&clk IMX8MQ_VIDEO_PLL1_OUT>;
assigned-clock-rates = <24000000>;
#phy-cells = <0>;
power-domains = <&pgc_mipi>;
};
@@ -39,6 +39,7 @@ properties:
- qcom,sdm845-qmp-usb3-phy - qcom,sdm845-qmp-usb3-phy
- qcom,sdm845-qmp-usb3-uni-phy - qcom,sdm845-qmp-usb3-uni-phy
- qcom,sm6115-qmp-ufs-phy - qcom,sm6115-qmp-ufs-phy
- qcom,sm6350-qmp-ufs-phy
- qcom,sm8150-qmp-ufs-phy - qcom,sm8150-qmp-ufs-phy
- qcom,sm8150-qmp-usb3-phy - qcom,sm8150-qmp-usb3-phy
- qcom,sm8150-qmp-usb3-uni-phy - qcom,sm8150-qmp-usb3-uni-phy
@@ -57,6 +58,7 @@ properties:
- qcom,sm8450-qmp-usb3-phy - qcom,sm8450-qmp-usb3-phy
- qcom,sdx55-qmp-pcie-phy - qcom,sdx55-qmp-pcie-phy
- qcom,sdx55-qmp-usb3-uni-phy - qcom,sdx55-qmp-usb3-uni-phy
- qcom,sdx65-qmp-usb3-uni-phy
reg: reg:
minItems: 1 minItems: 1
@@ -163,6 +165,7 @@ allOf:
contains: contains:
enum: enum:
- qcom,sdx55-qmp-usb3-uni-phy - qcom,sdx55-qmp-usb3-uni-phy
- qcom,sdx65-qmp-usb3-uni-phy
then: then:
properties: properties:
clocks: clocks:
@@ -279,6 +282,7 @@ allOf:
enum: enum:
- qcom,msm8998-qmp-ufs-phy - qcom,msm8998-qmp-ufs-phy
- qcom,sdm845-qmp-ufs-phy - qcom,sdm845-qmp-ufs-phy
- qcom,sm6350-qmp-ufs-phy
- qcom,sm8150-qmp-ufs-phy - qcom,sm8150-qmp-ufs-phy
- qcom,sm8250-qmp-ufs-phy - qcom,sm8250-qmp-ufs-phy
- qcom,sc8180x-qmp-ufs-phy - qcom,sc8180x-qmp-ufs-phy
@@ -32,6 +32,7 @@ properties:
- items: - items:
- enum: - enum:
- renesas,usb2-phy-r9a07g043 # RZ/G2UL
- renesas,usb2-phy-r9a07g044 # RZ/G2{L,LC} - renesas,usb2-phy-r9a07g044 # RZ/G2{L,LC}
- renesas,usb2-phy-r9a07g054 # RZ/V2L - renesas,usb2-phy-r9a07g054 # RZ/V2L
- const: renesas,rzg2l-usb2-phy - const: renesas,rzg2l-usb2-phy
@@ -30,32 +30,79 @@ properties:
minItems: 1 minItems: 1
maxItems: 2 maxItems: 2
clock-names: clock-names: true
oneOf:
- items: # for PXs2
- const: link
- items: # for Pro4
- const: link
- const: gio
- items: # for others
- const: link
- const: phy
resets: resets:
minItems: 2 minItems: 2
maxItems: 5 maxItems: 6
reset-names: reset-names: true
oneOf:
- items: # for Pro4 allOf:
- const: link - if:
- const: gio properties:
- const: pm compatible:
- const: tx contains:
- const: rx const: socionext,uniphier-pro4-ahci-phy
- items: # for others then:
- const: link properties:
- const: phy clocks:
minItems: 2
maxItems: 2
clock-names:
items:
- const: link
- const: gio
resets:
minItems: 6
maxItems: 6
reset-names:
items:
- const: link
- const: gio
- const: phy
- const: pm
- const: tx
- const: rx
- if:
properties:
compatible:
contains:
const: socionext,uniphier-pxs2-ahci-phy
then:
properties:
clocks:
maxItems: 1
clock-names:
const: link
resets:
minItems: 2
maxItems: 2
reset-names:
items:
- const: link
- const: phy
- if:
properties:
compatible:
contains:
const: socionext,uniphier-pxs3-ahci-phy
then:
properties:
clocks:
minItems: 2
maxItems: 2
clock-names:
items:
- const: link
- const: phy
resets:
minItems: 2
maxItems: 2
reset-names:
items:
- const: link
- const: phy
required: required:
- compatible - compatible
@@ -31,28 +31,51 @@ properties:
minItems: 1 minItems: 1
maxItems: 2 maxItems: 2
clock-names: clock-names: true
oneOf:
- items: # for Pro5
- const: gio
- const: link
- const: link # for others
resets: resets:
minItems: 1 minItems: 1
maxItems: 2 maxItems: 2
reset-names: reset-names: true
oneOf:
- items: # for Pro5
- const: gio
- const: link
- const: link # for others
socionext,syscon: socionext,syscon:
$ref: /schemas/types.yaml#/definitions/phandle $ref: /schemas/types.yaml#/definitions/phandle
description: A phandle to system control to set configurations for phy description: A phandle to system control to set configurations for phy
allOf:
- if:
properties:
compatible:
contains:
const: socionext,uniphier-pro5-pcie-phy
then:
properties:
clocks:
minItems: 2
maxItems: 2
clock-names:
items:
- const: gio
- const: link
resets:
minItems: 2
maxItems: 2
reset-names:
items:
- const: gio
- const: link
else:
properties:
clocks:
maxItems: 1
clock-names:
const: link
resets:
maxItems: 1
reset-names:
const: link
required: required:
- compatible - compatible
- reg - reg
@@ -43,6 +43,9 @@ patternProperties:
"#phy-cells": "#phy-cells":
const: 0 const: 0
vbus-supply:
description: A phandle to the regulator for USB VBUS, only for USB host
required: required:
- reg - reg
- "#phy-cells" - "#phy-cells"
@@ -31,27 +31,15 @@ properties:
const: 0 const: 0
clocks: clocks:
minItems: 1 minItems: 2
maxItems: 3 maxItems: 3
clock-names: clock-names: true
oneOf:
- const: link # for PXs2
- items: # for PXs3 with phy-ext
- const: link
- const: phy
- const: phy-ext
- items: # for others
- const: link
- const: phy
resets: resets:
maxItems: 2 maxItems: 2
reset-names: reset-names: true
items:
- const: link
- const: phy
vbus-supply: vbus-supply:
description: A phandle to the regulator for USB VBUS description: A phandle to the regulator for USB VBUS
@@ -74,6 +62,77 @@ properties:
required for each port, if any one is omitted, the trimming data required for each port, if any one is omitted, the trimming data
of the port will not be set at all. of the port will not be set at all.
allOf:
- if:
properties:
compatible:
contains:
const: socionext,uniphier-pro5-usb3-hsphy
then:
properties:
clocks:
minItems: 2
maxItems: 2
clock-names:
items:
- const: gio
- const: link
resets:
minItems: 2
maxItems: 2
reset-names:
items:
- const: gio
- const: link
- if:
properties:
compatible:
contains:
enum:
- socionext,uniphier-pxs2-usb3-hsphy
- socionext,uniphier-ld20-usb3-hsphy
then:
properties:
clocks:
minItems: 2
maxItems: 2
clock-names:
items:
- const: link
- const: phy
resets:
minItems: 2
maxItems: 2
reset-names:
items:
- const: link
- const: phy
- if:
properties:
compatible:
contains:
enum:
- socionext,uniphier-pxs3-usb3-hsphy
- socionext,uniphier-nx1-usb3-hsphy
then:
properties:
clocks:
minItems: 2
maxItems: 3
clock-names:
minItems: 2
items:
- const: link
- const: phy
- const: phy-ext
resets:
minItems: 2
maxItems: 2
reset-names:
items:
- const: link
- const: phy
required: required:
- compatible - compatible
- reg - reg
@@ -35,33 +35,88 @@ properties:
minItems: 2 minItems: 2
maxItems: 3 maxItems: 3
clock-names: clock-names: true
oneOf:
- items: # for Pro4, Pro5
- const: gio
- const: link
- items: # for PXs3 with phy-ext
- const: link
- const: phy
- const: phy-ext
- items: # for others
- const: link
- const: phy
resets: resets:
maxItems: 2 maxItems: 2
reset-names: reset-names: true
oneOf:
- items: # for Pro4,Pro5
- const: gio
- const: link
- items: # for others
- const: link
- const: phy
vbus-supply: vbus-supply:
description: A phandle to the regulator for USB VBUS description: A phandle to the regulator for USB VBUS, only for USB host
allOf:
- if:
properties:
compatible:
contains:
enum:
- socionext,uniphier-pro4-usb3-ssphy
- socionext,uniphier-pro5-usb3-ssphy
then:
properties:
clocks:
minItems: 2
maxItems: 2
clock-names:
items:
- const: gio
- const: link
resets:
minItems: 2
maxItems: 2
reset-names:
items:
- const: gio
- const: link
- if:
properties:
compatible:
contains:
enum:
- socionext,uniphier-pxs2-usb3-ssphy
- socionext,uniphier-ld20-usb3-ssphy
then:
properties:
clocks:
minItems: 2
maxItems: 2
clock-names:
items:
- const: link
- const: phy
resets:
minItems: 2
maxItems: 2
reset-names:
items:
- const: link
- const: phy
- if:
properties:
compatible:
contains:
enum:
- socionext,uniphier-pxs3-usb3-ssphy
- socionext,uniphier-nx1-usb3-ssphy
then:
properties:
clocks:
minItems: 2
maxItems: 3
clock-names:
minItems: 2
items:
- const: link
- const: phy
- const: phy-ext
resets:
minItems: 2
maxItems: 2
reset-names:
items:
- const: link
- const: phy
required: required:
- compatible - compatible
@@ -71,7 +126,6 @@ required:
- clock-names - clock-names
- resets - resets
- reset-names - reset-names
- vbus-supply
additionalProperties: false additionalProperties: false
@@ -55,7 +55,7 @@ examples:
regulator-min-microvolt = <300000>; regulator-min-microvolt = <300000>;
regulator-max-microvolt = <1193750>; regulator-max-microvolt = <1193750>;
regulator-enable-ramp-delay = <256>; regulator-enable-ramp-delay = <256>;
regulator-allowed-modes = <0 1 2 4>; regulator-allowed-modes = <0 1 2>;
}; };
vbuck3 { vbuck3 {
@@ -63,7 +63,7 @@ examples:
regulator-min-microvolt = <300000>; regulator-min-microvolt = <300000>;
regulator-max-microvolt = <1193750>; regulator-max-microvolt = <1193750>;
regulator-enable-ramp-delay = <256>; regulator-enable-ramp-delay = <256>;
regulator-allowed-modes = <0 1 2 4>; regulator-allowed-modes = <0 1 2>;
}; };
}; };
}; };
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm AOSS Reset Controller title: Qualcomm AOSS Reset Controller
maintainers: maintainers:
- Sibi Sankar <sibis@codeaurora.org> - Sibi Sankar <quic_sibis@quicinc.com>
description: description:
The bindings describe the reset-controller found on AOSS-CC (always on The bindings describe the reset-controller found on AOSS-CC (always on
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm PDC Global title: Qualcomm PDC Global
maintainers: maintainers:
- Sibi Sankar <sibis@codeaurora.org> - Sibi Sankar <quic_sibis@quicinc.com>
description: description:
The bindings describes the reset-controller found on PDC-Global (Power Domain The bindings describes the reset-controller found on PDC-Global (Power Domain
@@ -20,6 +20,8 @@ properties:
items: items:
- enum: - enum:
- microchip,mpfs-icicle-kit - microchip,mpfs-icicle-kit
- microchip,mpfs-icicle-reference-rtlv2203
- sundance,polarberry
- const: microchip,mpfs - const: microchip,mpfs
additionalProperties: true additionalProperties: true
@@ -23,7 +23,9 @@ properties:
- fsl,imx8qxp-lpuart - fsl,imx8qxp-lpuart
- fsl,imxrt1050-lpuart - fsl,imxrt1050-lpuart
- items: - items:
- const: fsl,imx8ulp-lpuart - enum:
- fsl,imx93-lpuart
- fsl,imx8ulp-lpuart
- const: fsl,imx7ulp-lpuart - const: fsl,imx7ulp-lpuart
- items: - items:
- enum: - enum:
@@ -0,0 +1,86 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: "http://devicetree.org/schemas/serial/qcom,serial-geni-qcom.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
title: Qualcomm Geni based QUP UART interface
maintainers:
- Andy Gross <agross@kernel.org>
- Bjorn Andersson <bjorn.andersson@linaro.org>
allOf:
- $ref: /schemas/serial/serial.yaml#
properties:
compatible:
enum:
- qcom,geni-uart
- qcom,geni-debug-uart
clocks:
maxItems: 1
clock-names:
const: se
interconnects:
maxItems: 2
interconnect-names:
items:
- const: qup-core
- const: qup-config
interrupts:
minItems: 1
items:
- description: UART core irq
- description: Wakeup irq (RX GPIO)
operating-points-v2: true
pinctrl-0: true
pinctrl-1: true
pinctrl-names:
minItems: 1
items:
- const: default
- const: sleep
power-domains:
maxItems: 1
reg:
maxItems: 1
required:
- compatible
- clocks
- clock-names
- interrupts
- reg
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/clock/qcom,gcc-sc7180.h>
#include <dt-bindings/interconnect/qcom,sc7180.h>
serial@a88000 {
compatible = "qcom,geni-uart";
reg = <0xa88000 0x7000>;
interrupts = <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>;
clock-names = "se";
clocks = <&gcc GCC_QUPV3_WRAP0_S0_CLK>;
pinctrl-0 = <&qup_uart0_default>;
pinctrl-names = "default";
interconnects = <&qup_virt MASTER_QUP_CORE_0 0 &qup_virt SLAVE_QUP_CORE_0 0>,
<&gem_noc MASTER_APPSS_PROC 0 &config_noc SLAVE_QUP_0 0>;
interconnect-names = "qup-core", "qup-config";
};
...
@@ -9,12 +9,16 @@ title: Renesas EMMA Mobile UART Interface
maintainers: maintainers:
- Magnus Damm <magnus.damm@gmail.com> - Magnus Damm <magnus.damm@gmail.com>
allOf:
- $ref: serial.yaml#
properties: properties:
compatible: compatible:
const: renesas,em-uart oneOf:
- items:
- enum:
- renesas,r9a09g011-uart # RZ/V2M
- const: renesas,em-uart # generic EMMA Mobile compatible UART
- items:
- const: renesas,em-uart # generic EMMA Mobile compatible UART
reg: reg:
maxItems: 1 maxItems: 1
@@ -23,10 +27,31 @@ properties:
maxItems: 1 maxItems: 1
clocks: clocks:
maxItems: 1 minItems: 1
items:
- description: UART functional clock
- description: Internal clock to access the registers
clock-names: clock-names:
const: sclk minItems: 1
items:
- const: sclk
- const: pclk
allOf:
- $ref: serial.yaml#
- if:
properties:
compatible:
contains:
const: renesas,r9a09g011-uart
then:
properties:
clocks:
minItems: 2
clock-names:
minItems: 2
required: required:
- compatible - compatible
@@ -51,10 +51,16 @@ properties:
- renesas,hscif-r8a77980 # R-Car V3H - renesas,hscif-r8a77980 # R-Car V3H
- renesas,hscif-r8a77990 # R-Car E3 - renesas,hscif-r8a77990 # R-Car E3
- renesas,hscif-r8a77995 # R-Car D3 - renesas,hscif-r8a77995 # R-Car D3
- renesas,hscif-r8a779a0 # R-Car V3U
- const: renesas,rcar-gen3-hscif # R-Car Gen3 and RZ/G2 - const: renesas,rcar-gen3-hscif # R-Car Gen3 and RZ/G2
- const: renesas,hscif # generic HSCIF compatible UART - const: renesas,hscif # generic HSCIF compatible UART
- items:
- enum:
- renesas,hscif-r8a779a0 # R-Car V3U
- renesas,hscif-r8a779g0 # R-Car V4H
- const: renesas,rcar-gen4-hscif # R-Car Gen4
- const: renesas,hscif # generic HSCIF compatible UART
reg: reg:
maxItems: 1 maxItems: 1
@@ -113,6 +119,7 @@ if:
enum: enum:
- renesas,rcar-gen2-hscif - renesas,rcar-gen2-hscif
- renesas,rcar-gen3-hscif - renesas,rcar-gen3-hscif
- renesas,rcar-gen4-hscif
then: then:
required: required:
- resets - resets
@@ -60,12 +60,12 @@ properties:
- renesas,scif-r8a77980 # R-Car V3H - renesas,scif-r8a77980 # R-Car V3H
- renesas,scif-r8a77990 # R-Car E3 - renesas,scif-r8a77990 # R-Car E3
- renesas,scif-r8a77995 # R-Car D3 - renesas,scif-r8a77995 # R-Car D3
- renesas,scif-r8a779a0 # R-Car V3U
- const: renesas,rcar-gen3-scif # R-Car Gen3 and RZ/G2 - const: renesas,rcar-gen3-scif # R-Car Gen3 and RZ/G2
- const: renesas,scif # generic SCIF compatible UART - const: renesas,scif # generic SCIF compatible UART
- items: - items:
- enum: - enum:
- renesas,scif-r8a779a0 # R-Car V3U
- renesas,scif-r8a779f0 # R-Car S4-8 - renesas,scif-r8a779f0 # R-Car S4-8
- const: renesas,rcar-gen4-scif # R-Car Gen4 - const: renesas,rcar-gen4-scif # R-Car Gen4
- const: renesas,scif # generic SCIF compatible UART - const: renesas,scif # generic SCIF compatible UART
@@ -33,6 +33,11 @@ properties:
description: drive RTS low when sending (default is high). description: drive RTS low when sending (default is high).
$ref: /schemas/types.yaml#/definitions/flag $ref: /schemas/types.yaml#/definitions/flag
rs485-rx-active-high:
description: Polarity of receiver enable signal (when separate from RTS).
True indicates active high (default is low).
$ref: /schemas/types.yaml#/definitions/flag
linux,rs485-enabled-at-boot-time: linux,rs485-enabled-at-boot-time:
description: enables the rs485 feature at boot time. It can be disabled description: enables the rs485 feature at boot time. It can be disabled
later with proper ioctl. later with proper ioctl.
@@ -20,7 +20,10 @@ properties:
maxItems: 1 maxItems: 1
clocks: clocks:
minItems: 1 maxItems: 1
resets:
maxItems: 1
auto-flow-control: auto-flow-control:
description: enable automatic flow control support. description: enable automatic flow control support.
@@ -88,7 +88,7 @@ examples:
<&mediamix_pd>, <&ispdwp_pd>, <&ispdwp_pd>, <&mediamix_pd>, <&ispdwp_pd>, <&ispdwp_pd>,
<&mipi_phy2_pd>; <&mipi_phy2_pd>;
power-domain-names = "bus", "mipi-dsi1", "mipi-csi1", "lcdif1", "isi", power-domain-names = "bus", "mipi-dsi1", "mipi-csi1", "lcdif1", "isi",
"mipi-csi2", "lcdif2", "isp1", "dwe", "mipi-dsi2"; "mipi-csi2", "lcdif2", "isp", "dwe", "mipi-dsi2";
clocks = <&clk IMX8MP_CLK_MEDIA_APB_ROOT>, clocks = <&clk IMX8MP_CLK_MEDIA_APB_ROOT>,
<&clk IMX8MP_CLK_MEDIA_AXI_ROOT>, <&clk IMX8MP_CLK_MEDIA_AXI_ROOT>,
<&clk IMX8MP_CLK_MEDIA_CAM1_PIX_ROOT>, <&clk IMX8MP_CLK_MEDIA_CAM1_PIX_ROOT>,
@@ -0,0 +1,51 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
# Copyright (C) 2022, Intel Corporation
%YAML 1.2
---
$id: "http://devicetree.org/schemas/soc/intel/intel,hps-copy-engine.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
title: Intel HPS Copy Engine
maintainers:
- Matthew Gerlach <matthew.gerlach@linux.intel.com>
description: |
The Intel Hard Processor System (HPS) Copy Engine is an IP block used to copy
a bootable image from host memory to HPS DDR. Additionally, there is a
register the HPS can use to indicate the state of booting the copied image as
well as a keep-a-live indication to the host.
properties:
compatible:
const: intel,hps-copy-engine
'#dma-cells':
const: 1
reg:
maxItems: 1
required:
- compatible
- reg
additionalProperties: false
examples:
- |
bus@80000000 {
compatible = "simple-bus";
reg = <0x80000000 0x60000000>,
<0xf9000000 0x00100000>;
reg-names = "axi_h2f", "axi_h2f_lw";
#address-cells = <2>;
#size-cells = <1>;
ranges = <0x00000000 0x00000000 0xf9000000 0x00001000>;
dma-controller@0 {
compatible = "intel,hps-copy-engine";
reg = <0x00000000 0x00000000 0x00001000>;
#dma-cells = <1>;
};
};
@@ -66,9 +66,7 @@ patternProperties:
The identifier for the remote processor as known by the rest of the The identifier for the remote processor as known by the rest of the
system. system.
# Binding for edge subnodes is not complete rpm-requests:
patternProperties:
"^rpm-requests$":
type: object type: object
description: description:
In turn, subnodes of the "edges" represent devices tied to SMD In turn, subnodes of the "edges" represent devices tied to SMD
@@ -162,6 +162,18 @@ board specific bus parameters.
or applicable for the respective data port. or applicable for the respective data port.
More info in MIPI Alliance SoundWire 1.0 Specifications. More info in MIPI Alliance SoundWire 1.0 Specifications.
- reset:
Usage: optional
Value type: <prop-encoded-array>
Definition: Should specify the SoundWire audio CSR reset controller interface,
which is required for SoundWire version 1.6.0 and above.
- reset-names:
Usage: optional
Value type: <stringlist>
Definition: should be "swr_audio_cgcr" for SoundWire audio CSR reset
controller interface.
Note: Note:
More Information on detail of encoding of these fields can be More Information on detail of encoding of these fields can be
found in MIPI Alliance SoundWire 1.0 Specifications. found in MIPI Alliance SoundWire 1.0 Specifications.
@@ -180,6 +192,8 @@ soundwire: soundwire@c85 {
interrupts = <20 IRQ_TYPE_EDGE_RISING>; interrupts = <20 IRQ_TYPE_EDGE_RISING>;
clocks = <&wcc>; clocks = <&wcc>;
clock-names = "iface"; clock-names = "iface";
resets = <&lpass_audiocc LPASS_AUDIO_SWR_TX_CGCR>;
reset-names = "swr_audio_cgcr";
#sound-dai-cells = <1>; #sound-dai-cells = <1>;
qcom,dports-type = <0>; qcom,dports-type = <0>;
qcom,dout-ports = <6>; qcom,dout-ports = <6>;
@@ -0,0 +1,47 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/timer/hpe,gxp-timer.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: HPE GXP Timer
maintainers:
- Nick Hawkins <nick.hawkins@hpe.com>
- Jean-Marie Verdun <verdun@hpe.com>
properties:
compatible:
const: hpe,gxp-timer
reg:
maxItems: 1
interrupts:
maxItems: 1
clocks:
maxItems: 1
clock-names:
const: iop
required:
- compatible
- reg
- interrupts
- clocks
- clock-names
additionalProperties: false
examples:
- |
timer@c0000000 {
compatible = "hpe,gxp-timer";
reg = <0x80 0x16>;
interrupts = <0>;
interrupt-parent = <&vic0>;
clocks = <&iopclk>;
clock-names = "iop";
};
@@ -23,6 +23,7 @@ Required properties:
For those SoCs that use SYST For those SoCs that use SYST
* "mediatek,mt8183-timer" for MT8183 compatible timers (SYST) * "mediatek,mt8183-timer" for MT8183 compatible timers (SYST)
* "mediatek,mt8186-timer" for MT8186 compatible timers (SYST)
* "mediatek,mt8192-timer" for MT8192 compatible timers (SYST) * "mediatek,mt8192-timer" for MT8192 compatible timers (SYST)
* "mediatek,mt8195-timer" for MT8195 compatible timers (SYST) * "mediatek,mt8195-timer" for MT8195 compatible timers (SYST)
* "mediatek,mt7629-timer" for MT7629 compatible timers (SYST) * "mediatek,mt7629-timer" for MT7629 compatible timers (SYST)
@@ -0,0 +1,29 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/timestamp/hardware-timestamps-common.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Hardware timestamp providers
maintainers:
- Dipen Patel <dipenp@nvidia.com>
description:
Some devices/SoCs have hardware timestamp engines (HTE) which can use
hardware means to timestamp entity in realtime. The entity could be anything
from GPIOs, IRQs, Bus and so on. The hardware timestamp engine present
itself as a provider with the bindings described in this document.
properties:
$nodename:
pattern: "^timestamp(@.*|-[0-9a-f])?$"
"#timestamp-cells":
description:
Number of cells in a HTE specifier.
required:
- "#timestamp-cells"
additionalProperties: true
@@ -0,0 +1,39 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/timestamp/hte-consumer.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: HTE Consumer Device Tree Bindings
maintainers:
- Dipen Patel <dipenp@nvidia.com>
select: true
properties:
timestamps:
$ref: /schemas/types.yaml#/definitions/phandle-array
description:
The list of HTE provider phandle. The first cell must represent the
provider phandle followed by the line identifiers. The meaning of the
line identifier and exact number of arguments must be specified in the
HTE provider device tree binding document.
timestamp-names:
$ref: /schemas/types.yaml#/definitions/string-array
description:
An optional string property to label each line specifier present in the
timestamp property.
dependencies:
timestamp-names: [ timestamps ]
additionalProperties: true
examples:
- |
hte_tegra_consumer {
timestamps = <&tegra_hte_aon 0x9>, <&tegra_hte_lic 0x19>;
timestamp-names = "hte-gpio", "hte-i2c";
};
@@ -0,0 +1,88 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/timestamp/nvidia,tegra194-hte.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Tegra194 on chip generic hardware timestamping engine (HTE)
maintainers:
- Dipen Patel <dipenp@nvidia.com>
description:
Tegra SoC has two instances of generic hardware timestamping engines (GTE)
known as GTE GPIO and GTE IRQ, which can monitor subset of GPIO and on chip
IRQ lines for the state change respectively, upon detection it will record
timestamp (taken from system counter) in its internal hardware FIFO. It has
a bitmap array arranged in 32bit slices where each bit represent signal/line
to enable or disable for the hardware timestamping. The GTE GPIO monitors
GPIO lines from the AON (always on) GPIO controller.
properties:
compatible:
enum:
- nvidia,tegra194-gte-aon
- nvidia,tegra194-gte-lic
reg:
maxItems: 1
interrupts:
maxItems: 1
nvidia,int-threshold:
$ref: /schemas/types.yaml#/definitions/uint32
description:
HTE device generates its interrupt based on this u32 FIFO threshold
value. The recommended value is 1.
minimum: 1
maximum: 256
nvidia,slices:
$ref: /schemas/types.yaml#/definitions/uint32
description:
HTE lines are arranged in 32 bit slice where each bit represents different
line/signal that it can enable/configure for the timestamp. It is u32
property and depends on the HTE instance in the chip. The value 3 is for
GPIO GTE and 11 for IRQ GTE.
enum: [3, 11]
'#timestamp-cells':
description:
This represents number of line id arguments as specified by the
consumers. For the GTE IRQ, this is IRQ number as mentioned in the
SoC technical reference manual. For the GTE GPIO, its value is same as
mentioned in the nvidia GPIO device tree binding document.
const: 1
required:
- compatible
- reg
- interrupts
- nvidia,slices
- "#timestamp-cells"
additionalProperties: false
examples:
- |
tegra_hte_aon: timestamp@c1e0000 {
compatible = "nvidia,tegra194-gte-aon";
reg = <0xc1e0000 0x10000>;
interrupts = <0 13 0x4>;
nvidia,int-threshold = <1>;
nvidia,slices = <3>;
#timestamp-cells = <1>;
};
- |
tegra_hte_lic: timestamp@3aa0000 {
compatible = "nvidia,tegra194-gte-lic";
reg = <0x3aa0000 0x10000>;
interrupts = <0 11 0x4>;
nvidia,int-threshold = <1>;
nvidia,slices = <11>;
#timestamp-cells = <1>;
};
...
@@ -61,8 +61,9 @@ DMA
endpoint number (0 … 14 for endpoints 1 … 15 on instance 0 and 15 … 29 endpoint number (0 … 14 for endpoints 1 … 15 on instance 0 and 15 … 29
for endpoints 1 … 15 on instance 1). The second number is 0 for RX and for endpoints 1 … 15 on instance 1). The second number is 0 for RX and
1 for TX transfers. 1 for TX transfers.
- #dma-channels: should be set to 30 representing the 15 endpoints for - dma-channels: should be set to 30 representing the 15 endpoints for
each USB instance. each USB instance.
- #dma-channels: deprecated
Example: Example:
~~~~~~~~ ~~~~~~~~
@@ -193,7 +194,7 @@ usb: usb@47400000 {
interrupts = <17>; interrupts = <17>;
interrupt-names = "glue"; interrupt-names = "glue";
#dma-cells = <2>; #dma-cells = <2>;
#dma-channels = <30>; dma-channels = <30>;
#dma-requests = <256>; dma-requests = <256>;
}; };
}; };
@@ -36,7 +36,8 @@ DMA
- #dma-cells: should be set to 2. The first number represents the - #dma-cells: should be set to 2. The first number represents the
channel number (0 … 3 for endpoints 1 … 4). channel number (0 … 3 for endpoints 1 … 4).
The second number is 0 for RX and 1 for TX transfers. The second number is 0 for RX and 1 for TX transfers.
- #dma-channels: should be set to 4 representing the 4 endpoints. - dma-channels: should be set to 4 representing the 4 endpoints.
- #dma-channels: deprecated
Example: Example:
usb_phy: usb-phy { usb_phy: usb-phy {
@@ -74,7 +75,7 @@ Example:
reg-names = "controller", "scheduler", "queuemgr"; reg-names = "controller", "scheduler", "queuemgr";
interrupts = <58>; interrupts = <58>;
#dma-cells = <2>; #dma-cells = <2>;
#dma-channels = <4>; dma-channels = <4>;
}; };
}; };
@@ -17,6 +17,13 @@ properties:
oneOf: oneOf:
- const: brcm,bcm2835-usb - const: brcm,bcm2835-usb
- const: hisilicon,hi6220-usb - const: hisilicon,hi6220-usb
- const: ingenic,jz4775-otg
- const: ingenic,jz4780-otg
- const: ingenic,x1000-otg
- const: ingenic,x1600-otg
- const: ingenic,x1700-otg
- const: ingenic,x1830-otg
- const: ingenic,x2000-otg
- items: - items:
- const: rockchip,rk3066-usb - const: rockchip,rk3066-usb
- const: snps,dwc2 - const: snps,dwc2
@@ -71,6 +71,10 @@ properties:
- usb2-phy - usb2-phy
- usb3-phy - usb3-phy
reset-gpios:
description: GPIO used for the reset ulpi-phy
maxItems: 1
# Required child node: # Required child node:
patternProperties: patternProperties:
@@ -0,0 +1,72 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: "http://devicetree.org/schemas/usb/fcs,fsa4480.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
title: ON Semiconductor Analog Audio Switch
maintainers:
- Bjorn Andersson <bjorn.andersson@linaro.org>
properties:
compatible:
enum:
- fcs,fsa4480
reg:
maxItems: 1
interrupts:
maxItems: 1
vcc-supply:
description: power supply (2.7V-5.5V)
mode-switch:
description: Flag the port as possible handle of altmode switching
type: boolean
orientation-switch:
description: Flag the port as possible handler of orientation switching
type: boolean
port:
$ref: /schemas/graph.yaml#/properties/port
description:
A port node to link the FSA4480 to a TypeC controller for the purpose of
handling altmode muxing and orientation switching.
required:
- compatible
- reg
- port
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
i2c13 {
#address-cells = <1>;
#size-cells = <0>;
fsa4480@42 {
compatible = "fcs,fsa4480";
reg = <0x42>;
interrupts-extended = <&tlmm 2 IRQ_TYPE_LEVEL_LOW>;
vcc-supply = <&vreg_bob>;
mode-switch;
orientation-switch;
port {
fsa4480_ept: endpoint {
remote-endpoint = <&typec_controller>;
};
};
};
};
...
@@ -55,6 +55,7 @@ properties:
- brcm,bcm7420-ehci - brcm,bcm7420-ehci
- brcm,bcm7425-ehci - brcm,bcm7425-ehci
- brcm,bcm7435-ehci - brcm,bcm7435-ehci
- hpe,gxp-ehci
- ibm,476gtr-ehci - ibm,476gtr-ehci
- nxp,lpc1850-ehci - nxp,lpc1850-ehci
- qca,ar7100-ehci - qca,ar7100-ehci
@@ -42,6 +42,7 @@ properties:
- brcm,bcm7420-ohci - brcm,bcm7420-ohci
- brcm,bcm7425-ohci - brcm,bcm7425-ohci
- brcm,bcm7435-ohci - brcm,bcm7435-ohci
- hpe,gxp-ohci
- ibm,476gtr-ohci - ibm,476gtr-ohci
- ingenic,jz4740-ohci - ingenic,jz4740-ohci
- snps,hsdk-v1.0-ohci - snps,hsdk-v1.0-ohci
@@ -25,6 +25,7 @@ properties:
- mediatek,mt8173-mtu3 - mediatek,mt8173-mtu3
- mediatek,mt8183-mtu3 - mediatek,mt8183-mtu3
- mediatek,mt8192-mtu3 - mediatek,mt8192-mtu3
- mediatek,mt8195-mtu3
- const: mediatek,mtu3 - const: mediatek,mtu3
reg: reg:
@@ -16,16 +16,21 @@ properties:
- qcom,ipq4019-dwc3 - qcom,ipq4019-dwc3
- qcom,ipq6018-dwc3 - qcom,ipq6018-dwc3
- qcom,ipq8064-dwc3 - qcom,ipq8064-dwc3
- qcom,ipq8074-dwc3
- qcom,msm8953-dwc3 - qcom,msm8953-dwc3
- qcom,msm8994-dwc3
- qcom,msm8996-dwc3 - qcom,msm8996-dwc3
- qcom,msm8998-dwc3 - qcom,msm8998-dwc3
- qcom,qcs404-dwc3
- qcom,sc7180-dwc3 - qcom,sc7180-dwc3
- qcom,sc7280-dwc3 - qcom,sc7280-dwc3
- qcom,sdm660-dwc3 - qcom,sdm660-dwc3
- qcom,sdm845-dwc3 - qcom,sdm845-dwc3
- qcom,sdx55-dwc3 - qcom,sdx55-dwc3
- qcom,sdx65-dwc3
- qcom,sm4250-dwc3 - qcom,sm4250-dwc3
- qcom,sm6115-dwc3 - qcom,sm6115-dwc3
- qcom,sm6125-dwc3
- qcom,sm6350-dwc3 - qcom,sm6350-dwc3
- qcom,sm8150-dwc3 - qcom,sm8150-dwc3
- qcom,sm8250-dwc3 - qcom,sm8250-dwc3
@@ -50,26 +55,22 @@ properties:
maxItems: 1 maxItems: 1
clocks: clocks:
description: description: |
A list of phandle and clock-specifier pairs for the clocks Several clocks are used, depending on the variant. Typical ones are::
listed in clock-names. - cfg_noc:: System Config NOC clock.
items: - core:: Master/Core clock, has to be >= 125 MHz for SS operation and >=
- description: System Config NOC clock. 60MHz for HS operation.
- description: Master/Core clock, has to be >= 125 MHz - iface:: System bus AXI clock.
for SS operation and >= 60MHz for HS operation. - sleep:: Sleep clock, used for wakeup when USB3 core goes into low
- description: System bus AXI clock. power mode (U3).
- description: Mock utmi clock needed for ITP/SOF generation - mock_utmi:: Mock utmi clock needed for ITP/SOF generation in host
in host mode. Its frequency should be 19.2MHz. mode. Its frequency should be 19.2MHz.
- description: Sleep clock, used for wakeup when minItems: 1
USB3 core goes into low power mode (U3). maxItems: 6
clock-names: clock-names:
items: minItems: 1
- const: cfg_noc maxItems: 6
- const: core
- const: iface
- const: mock_utmi
- const: sleep
assigned-clocks: assigned-clocks:
items: items:
@@ -132,6 +133,185 @@ required:
- interrupts - interrupts
- interrupt-names - interrupt-names
allOf:
- if:
properties:
compatible:
contains:
enum:
- qcom,ipq4019-dwc3
then:
properties:
clocks:
maxItems: 3
clock-names:
items:
- const: core
- const: sleep
- const: mock_utmi
- if:
properties:
compatible:
contains:
enum:
- qcom,ipq8064-dwc3
then:
properties:
clocks:
items:
- description: Master/Core clock, has to be >= 125 MHz
for SS operation and >= 60MHz for HS operation.
clock-names:
items:
- const: core
- if:
properties:
compatible:
contains:
enum:
- qcom,msm8953-dwc3
- qcom,msm8996-dwc3
- qcom,msm8998-dwc3
- qcom,sc7180-dwc3
- qcom,sc7280-dwc3
- qcom,sdm845-dwc3
- qcom,sdx55-dwc3
- qcom,sm6350-dwc3
then:
properties:
clocks:
maxItems: 5
clock-names:
items:
- const: cfg_noc
- const: core
- const: iface
- const: sleep
- const: mock_utmi
- if:
properties:
compatible:
contains:
enum:
- qcom,ipq6018-dwc3
then:
properties:
clocks:
minItems: 3
maxItems: 4
clock-names:
oneOf:
- items:
- const: core
- const: sleep
- const: mock_utmi
- items:
- const: cfg_noc
- const: core
- const: sleep
- const: mock_utmi
- if:
properties:
compatible:
contains:
enum:
- qcom,ipq8074-dwc3
then:
properties:
clocks:
maxItems: 4
clock-names:
items:
- const: cfg_noc
- const: core
- const: sleep
- const: mock_utmi
- if:
properties:
compatible:
contains:
enum:
- qcom,msm8994-dwc3
- qcom,qcs404-dwc3
then:
properties:
clocks:
maxItems: 4
clock-names:
items:
- const: core
- const: iface
- const: sleep
- const: mock_utmi
- if:
properties:
compatible:
contains:
enum:
- qcom,sdm660-dwc3
then:
properties:
clocks:
minItems: 6
clock-names:
items:
- const: cfg_noc
- const: core
- const: iface
- const: sleep
- const: mock_utmi
- const: bus
- if:
properties:
compatible:
contains:
enum:
- qcom,sm6125-dwc3
- qcom,sm8150-dwc3
- qcom,sm8250-dwc3
- qcom,sm8450-dwc3
then:
properties:
clocks:
minItems: 6
clock-names:
items:
- const: cfg_noc
- const: core
- const: iface
- const: sleep
- const: mock_utmi
- const: xo
- if:
properties:
compatible:
contains:
enum:
- qcom,sm8350-dwc3
then:
properties:
clocks:
minItems: 5
maxItems: 6
clock-names:
minItems: 5
items:
- const: cfg_noc
- const: core
- const: iface
- const: sleep
- const: mock_utmi
- const: xo
additionalProperties: false additionalProperties: false
examples: examples:
@@ -153,10 +333,13 @@ examples:
clocks = <&gcc GCC_CFG_NOC_USB3_PRIM_AXI_CLK>, clocks = <&gcc GCC_CFG_NOC_USB3_PRIM_AXI_CLK>,
<&gcc GCC_USB30_PRIM_MASTER_CLK>, <&gcc GCC_USB30_PRIM_MASTER_CLK>,
<&gcc GCC_AGGRE_USB3_PRIM_AXI_CLK>, <&gcc GCC_AGGRE_USB3_PRIM_AXI_CLK>,
<&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>, <&gcc GCC_USB30_PRIM_SLEEP_CLK>,
<&gcc GCC_USB30_PRIM_SLEEP_CLK>; <&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>;
clock-names = "cfg_noc", "core", "iface", "mock_utmi", clock-names = "cfg_noc",
"sleep"; "core",
"iface",
"sleep",
"mock_utmi";
assigned-clocks = <&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>, assigned-clocks = <&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>,
<&gcc GCC_USB30_PRIM_MASTER_CLK>; <&gcc GCC_USB30_PRIM_MASTER_CLK>;
@@ -19,6 +19,7 @@ properties:
- items: - items:
- enum: - enum:
- renesas,usbhs-r7s9210 # RZ/A2 - renesas,usbhs-r7s9210 # RZ/A2
- renesas,usbhs-r9a07g043 # RZ/G2UL
- renesas,usbhs-r9a07g044 # RZ/G2{L,LC} - renesas,usbhs-r9a07g044 # RZ/G2{L,LC}
- renesas,usbhs-r9a07g054 # RZ/V2L - renesas,usbhs-r9a07g054 # RZ/V2L
- const: renesas,rza2-usbhs - const: renesas,rza2-usbhs
@@ -118,6 +119,7 @@ allOf:
compatible: compatible:
contains: contains:
enum: enum:
- renesas,usbhs-r9a07g043
- renesas,usbhs-r9a07g044 - renesas,usbhs-r9a07g044
- renesas,usbhs-r9a07g054 - renesas,usbhs-r9a07g054
then: then:
@@ -128,6 +130,8 @@ allOf:
- description: U2P_INT_DMA[0] - description: U2P_INT_DMA[0]
- description: U2P_INT_DMA[1] - description: U2P_INT_DMA[1]
- description: U2P_INT_DMAERR - description: U2P_INT_DMAERR
required:
- resets
else: else:
properties: properties:
interrupts: interrupts:
@@ -15,9 +15,6 @@ properties:
- samsung,exynos4210-ehci - samsung,exynos4210-ehci
- samsung,exynos4210-ohci - samsung,exynos4210-ohci
'#address-cells':
const: 1
clocks: clocks:
maxItems: 1 maxItems: 1
@@ -46,15 +43,6 @@ properties:
Only for controller in EHCI mode, if present, specifies the GPIO that Only for controller in EHCI mode, if present, specifies the GPIO that
needs to be pulled up for the bus to be powered. needs to be pulled up for the bus to be powered.
'#size-cells':
const: 0
patternProperties:
"^.*@[0-9a-f]{1,2}$":
description: The hard wired USB devices
type: object
$ref: /usb/usb-device.yaml
required: required:
- compatible - compatible
- clocks - clocks
@@ -65,6 +53,7 @@ required:
- reg - reg
allOf: allOf:
- $ref: usb-hcd.yaml#
- if: - if:
properties: properties:
compatible: compatible:
@@ -74,7 +63,7 @@ allOf:
properties: properties:
samsung,vbus-gpio: false samsung,vbus-gpio: false
additionalProperties: false unevaluatedProperties: false
examples: examples:
- | - |
@@ -68,6 +68,8 @@ properties:
- enum: [bus_early, ref, suspend] - enum: [bus_early, ref, suspend]
- true - true
dma-coherent: true
iommus: iommus:
maxItems: 1 maxItems: 1
@@ -0,0 +1,103 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/usb/ti,am62-usb.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: TI's AM62 wrapper module for the Synopsys USBSS-DRD controller
maintainers:
- Aswath Govindraju <a-govindraju@ti.com>
properties:
compatible:
const: ti,am62-usb
reg:
maxItems: 1
ranges: true
power-domains:
description:
PM domain provider node and an args specifier containing
the USB ISO device id value. See,
Documentation/devicetree/bindings/soc/ti/sci-pm-domain.yaml
maxItems: 1
clocks:
description: Clock phandle to usb2_refclk
maxItems: 1
clock-names:
items:
- const: ref
ti,vbus-divider:
description:
Should be present if USB VBUS line is connected to the
VBUS pin of the SoC via a 1/3 voltage divider.
type: boolean
ti,syscon-phy-pll-refclk:
$ref: /schemas/types.yaml#/definitions/phandle-array
items:
- items:
- description: Phandle to the SYSCON entry
- description: USB phy control register offset within SYSCON
description:
Specifier for conveying frequency of ref clock input, for the
operation of USB2PHY.
'#address-cells':
const: 2
'#size-cells':
const: 2
patternProperties:
"^usb@[0-9a-f]+$":
$ref: snps,dwc3.yaml#
description: Required child node
required:
- compatible
- reg
- power-domains
- clocks
- clock-names
- ti,syscon-phy-pll-refclk
additionalProperties: false
examples:
- |
#include <dt-bindings/soc/ti,sci_pm_domain.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/gpio/gpio.h>
bus {
#address-cells = <2>;
#size-cells = <2>;
usbss1: usb@f910000 {
compatible = "ti,am62-usb";
reg = <0x00 0x0f910000 0x00 0x800>;
clocks = <&k3_clks 162 3>;
clock-names = "ref";
ti,syscon-phy-pll-refclk = <&wkup_conf 0x4018>;
power-domains = <&k3_pds 179 TI_SCI_PD_EXCLUSIVE>;
#address-cells = <2>;
#size-cells = <2>;
usb@31100000 {
compatible = "snps,dwc3";
reg =<0x00 0x31100000 0x00 0x50000>;
interrupts = <GIC_SPI 226 IRQ_TYPE_LEVEL_HIGH>, /* irq.0 */
<GIC_SPI 226 IRQ_TYPE_LEVEL_HIGH>; /* irq.0 */
interrupt-names = "host", "peripheral";
maximum-speed = "high-speed";
dr_mode = "otg";
};
};
};
@@ -1207,6 +1207,8 @@ patternProperties:
description: Summit microelectronics description: Summit microelectronics
"^sunchip,.*": "^sunchip,.*":
description: Shenzhen Sunchip Technology Co., Ltd description: Shenzhen Sunchip Technology Co., Ltd
"^sundance,.*":
description: Sundance DSP Inc.
"^sunplus,.*": "^sunplus,.*":
description: Sunplus Technology Co., Ltd. description: Sunplus Technology Co., Ltd.
"^SUNW,.*": "^SUNW,.*":
@@ -0,0 +1,126 @@
.. SPDX-License-Identifier: GPL-2.0
===================
Firmware Upload API
===================
A device driver that registers with the firmware loader will expose
persistent sysfs nodes to enable users to initiate firmware updates for
that device. It is the responsibility of the device driver and/or the
device itself to perform any validation on the data received. Firmware
upload uses the same *loading* and *data* sysfs files described in the
documentation for firmware fallback. It also adds additional sysfs files
to provide status on the transfer of the firmware image to the device.
Register for firmware upload
============================
A device driver registers for firmware upload by calling
firmware_upload_register(). Among the parameter list is a name to
identify the device under /sys/class/firmware. A user may initiate a
firmware upload by echoing a 1 to the *loading* sysfs file for the target
device. Next, the user writes the firmware image to the *data* sysfs
file. After writing the firmware data, the user echos 0 to the *loading*
sysfs file to signal completion. Echoing 0 to *loading* also triggers the
transfer of the firmware to the lower-lever device driver in the context
of a kernel worker thread.
To use the firmware upload API, write a driver that implements a set of
ops. The probe function calls firmware_upload_register() and the remove
function calls firmware_upload_unregister() such as::
static const struct fw_upload_ops m10bmc_ops = {
.prepare = m10bmc_sec_prepare,
.write = m10bmc_sec_write,
.poll_complete = m10bmc_sec_poll_complete,
.cancel = m10bmc_sec_cancel,
.cleanup = m10bmc_sec_cleanup,
};
static int m10bmc_sec_probe(struct platform_device *pdev)
{
const char *fw_name, *truncate;
struct m10bmc_sec *sec;
struct fw_upload *fwl;
unsigned int len;
sec = devm_kzalloc(&pdev->dev, sizeof(*sec), GFP_KERNEL);
if (!sec)
return -ENOMEM;
sec->dev = &pdev->dev;
sec->m10bmc = dev_get_drvdata(pdev->dev.parent);
dev_set_drvdata(&pdev->dev, sec);
fw_name = dev_name(sec->dev);
truncate = strstr(fw_name, ".auto");
len = (truncate) ? truncate - fw_name : strlen(fw_name);
sec->fw_name = kmemdup_nul(fw_name, len, GFP_KERNEL);
fwl = firmware_upload_register(sec->dev, sec->fw_name, &m10bmc_ops, sec);
if (IS_ERR(fwl)) {
dev_err(sec->dev, "Firmware Upload driver failed to start\n");
kfree(sec->fw_name);
return PTR_ERR(fwl);
}
sec->fwl = fwl;
return 0;
}
static int m10bmc_sec_remove(struct platform_device *pdev)
{
struct m10bmc_sec *sec = dev_get_drvdata(&pdev->dev);
firmware_upload_unregister(sec->fwl);
kfree(sec->fw_name);
return 0;
}
firmware_upload_register
------------------------
.. kernel-doc:: drivers/base/firmware_loader/sysfs_upload.c
:identifiers: firmware_upload_register
firmware_upload_unregister
--------------------------
.. kernel-doc:: drivers/base/firmware_loader/sysfs_upload.c
:identifiers: firmware_upload_unregister
Firmware Upload Ops
-------------------
.. kernel-doc:: include/linux/firmware.h
:identifiers: fw_upload_ops
Firmware Upload Progress Codes
------------------------------
The following progress codes are used internally by the firmware loader.
Corresponding strings are reported through the status sysfs node that
is described below and are documented in the ABI documentation.
.. kernel-doc:: drivers/base/firmware_loader/sysfs_upload.h
:identifiers: fw_upload_prog
Firmware Upload Error Codes
---------------------------
The following error codes may be returned by the driver ops in case of
failure:
.. kernel-doc:: include/linux/firmware.h
:identifiers: fw_upload_err
Sysfs Attributes
================
In addition to the *loading* and *data* sysfs files, there are additional
sysfs files to monitor the status of the data transfer to the target
device and to determine the final pass/fail status of the transfer.
Depending on the device and the size of the firmware image, a firmware
update could take milliseconds or minutes.
The additional sysfs files are:
* status - provides an indication of the progress of a firmware update
* error - provides error information for a failed firmware update
* remaining_size - tracks the data transfer portion of an update
* cancel - echo 1 to this file to cancel the update
@@ -8,6 +8,7 @@ Linux Firmware API
core core
efi/index efi/index
request_firmware request_firmware
fw_upload
other_interfaces other_interfaces
.. only:: subproject and html .. only:: subproject and html
+1
View File
@@ -101,6 +101,7 @@ available subsections can be seen below.
surface_aggregator/index surface_aggregator/index
switchtec switchtec
sync_file sync_file
tty/index
vfio-mediated-device vfio-mediated-device
vfio vfio
vfio-pci-device-specific-driver-acceptance vfio-pci-device-specific-driver-acceptance
+1 -1
View File
@@ -311,7 +311,7 @@ hardware.
This call must not sleep This call must not sleep
set_ldisc(port,termios) set_ldisc(port,termios)
Notifier for discipline change. See Documentation/tty/tty_ldisc.rst. Notifier for discipline change. See ../tty/tty_ldisc.rst.
Locking: caller holds tty_port->mutex Locking: caller holds tty_port->mutex
@@ -16,8 +16,6 @@ Serial drivers
.. toctree:: .. toctree::
:maxdepth: 1 :maxdepth: 1
moxa-smartio
n_gsm
serial-iso7816 serial-iso7816
serial-rs485 serial-rs485
-159
View File
@@ -1,159 +0,0 @@
==============================
GSM 0710 tty multiplexor HOWTO
==============================
This line discipline implements the GSM 07.10 multiplexing protocol
detailed in the following 3GPP document:
https://www.3gpp.org/ftp/Specs/archive/07_series/07.10/0710-720.zip
This document give some hints on how to use this driver with GPRS and 3G
modems connected to a physical serial port.
How to use it
-------------
1. config initiator
^^^^^^^^^^^^^^^^^^^^^
1.1 initialize the modem in 0710 mux mode (usually AT+CMUX= command) through
its serial port. Depending on the modem used, you can pass more or less
parameters to this command.
1.2 switch the serial line to using the n_gsm line discipline by using
TIOCSETD ioctl.
1.3 configure the mux using GSMIOC_GETCONF / GSMIOC_SETCONF ioctl.
1.4 obtain base gsmtty number for the used serial port.
Major parts of the initialization program :
(a good starting point is util-linux-ng/sys-utils/ldattach.c)::
#include <stdio.h>
#include <stdint.h>
#include <linux/gsmmux.h>
#include <linux/tty.h>
#define DEFAULT_SPEED B115200
#define SERIAL_PORT /dev/ttyS0
int ldisc = N_GSM0710;
struct gsm_config c;
struct termios configuration;
uint32_t first;
/* open the serial port connected to the modem */
fd = open(SERIAL_PORT, O_RDWR | O_NOCTTY | O_NDELAY);
/* configure the serial port : speed, flow control ... */
/* send the AT commands to switch the modem to CMUX mode
and check that it's successful (should return OK) */
write(fd, "AT+CMUX=0\r", 10);
/* experience showed that some modems need some time before
being able to answer to the first MUX packet so a delay
may be needed here in some case */
sleep(3);
/* use n_gsm line discipline */
ioctl(fd, TIOCSETD, &ldisc);
/* get n_gsm configuration */
ioctl(fd, GSMIOC_GETCONF, &c);
/* we are initiator and need encoding 0 (basic) */
c.initiator = 1;
c.encapsulation = 0;
/* our modem defaults to a maximum size of 127 bytes */
c.mru = 127;
c.mtu = 127;
/* set the new configuration */
ioctl(fd, GSMIOC_SETCONF, &c);
/* get first gsmtty device node */
ioctl(fd, GSMIOC_GETFIRST, &first);
printf("first muxed line: /dev/gsmtty%i\n", first);
/* and wait for ever to keep the line discipline enabled */
daemon(0,0);
pause();
1.5 use these devices as plain serial ports.
for example, it's possible:
- and to use gnokii to send / receive SMS on ttygsm1
- to use ppp to establish a datalink on ttygsm2
1.6 first close all virtual ports before closing the physical port.
Note that after closing the physical port the modem is still in multiplexing
mode. This may prevent a successful re-opening of the port later. To avoid
this situation either reset the modem if your hardware allows that or send
a disconnect command frame manually before initializing the multiplexing mode
for the second time. The byte sequence for the disconnect command frame is::
0xf9, 0x03, 0xef, 0x03, 0xc3, 0x16, 0xf9.
2. config requester
^^^^^^^^^^^^^^^^^^^^^
2.1 receive string "AT+CMUX= command" through its serial port,initialize
mux mode config
2.2 switch the serial line to using the n_gsm line discipline by using
TIOCSETD ioctl.
2.3 configure the mux using GSMIOC_GETCONF / GSMIOC_SETCONF ioctl.
2.4 obtain base gsmtty number for the used serial port::
#include <stdio.h>
#include <stdint.h>
#include <linux/gsmmux.h>
#include <linux/tty.h>
#define DEFAULT_SPEED B115200
#define SERIAL_PORT /dev/ttyS0
int ldisc = N_GSM0710;
struct gsm_config c;
struct termios configuration;
uint32_t first;
/* open the serial port */
fd = open(SERIAL_PORT, O_RDWR | O_NOCTTY | O_NDELAY);
/* configure the serial port : speed, flow control ... */
/* get serial data and check "AT+CMUX=command" parameter ... */
/* use n_gsm line discipline */
ioctl(fd, TIOCSETD, &ldisc);
/* get n_gsm configuration */
ioctl(fd, GSMIOC_GETCONF, &c);
/* we are requester and need encoding 0 (basic) */
c.initiator = 0;
c.encapsulation = 0;
/* our modem defaults to a maximum size of 127 bytes */
c.mru = 127;
c.mtu = 127;
/* set the new configuration */
ioctl(fd, GSMIOC_SETCONF, &c);
/* get first gsmtty device node */
ioctl(fd, GSMIOC_GETFIRST, &first);
printf("first muxed line: /dev/gsmtty%i\n", first);
/* and wait for ever to keep the line discipline enabled */
daemon(0,0);
pause();
Additional Documentation
------------------------
More practical details on the protocol and how it's supported by industrial
modems can be found in the following documents :
- http://www.telit.com/module/infopool/download.php?id=616
- http://www.u-blox.com/images/downloads/Product_Docs/LEON-G100-G200-MuxImplementation_ApplicationNote_%28GSM%20G1-CS-10002%29.pdf
- http://www.sierrawireless.com/Support/Downloads/AirPrime/WMP_Series/~/media/Support_Downloads/AirPrime/Application_notes/CMUX_Feature_Application_Note-Rev004.ashx
- http://wm.sim.com/sim/News/photo/2010721161442.pdf
11-03-08 - Eric Bénard - <eric@eukrea.com>

Some files were not shown because too many files have changed in this diff Show More