Merge 71a7507afb ("Merge tag 'driver-core-6.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core") into android-mainline
Steps on the way to 6.2-rc1 Change-Id: I9d64267f1444a265cff934624397272c6465bff8 Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
@@ -35,6 +35,15 @@ Description: This controls cursor delay when using arrow keys. When a
|
||||
characters. Set this to a higher value to adjust for the delay
|
||||
and better synchronisation between cursor position and speech.
|
||||
|
||||
What: /sys/accessibility/speakup/cur_phonetic
|
||||
KernelVersion: 6.2
|
||||
Contact: speakup@linux-speakup.org
|
||||
Description: This allows speakup to speak letters phoneticaly when arrowing through
|
||||
a word letter by letter. This doesn't affect the spelling when typing
|
||||
the characters. When cur_phonetic=1, speakup will speak characters
|
||||
phoneticaly when arrowing over a letter. When cur_phonetic=0, speakup
|
||||
will speak letters as normally.
|
||||
|
||||
What: /sys/accessibility/speakup/delimiters
|
||||
KernelVersion: 2.6
|
||||
Contact: speakup@linux-speakup.org
|
||||
|
||||
@@ -197,7 +197,7 @@ Description: Specific MJPEG format descriptors
|
||||
read-only
|
||||
bmaControls this format's data for bmaControls in
|
||||
the streaming header
|
||||
bmInterfaceFlags specifies interlace information,
|
||||
bmInterlaceFlags specifies interlace information,
|
||||
read-only
|
||||
bAspectRatioY the X dimension of the picture aspect
|
||||
ratio, read-only
|
||||
@@ -253,7 +253,7 @@ Description: Specific uncompressed format descriptors
|
||||
read-only
|
||||
bmaControls this format's data for bmaControls in
|
||||
the streaming header
|
||||
bmInterfaceFlags specifies interlace information,
|
||||
bmInterlaceFlags specifies interlace information,
|
||||
read-only
|
||||
bAspectRatioY the X dimension of the picture aspect
|
||||
ratio, read-only
|
||||
|
||||
@@ -91,6 +91,13 @@ Description: Enables the root user to set the device to specific state.
|
||||
Valid values are "disable", "enable", "suspend", "resume".
|
||||
User can read this property to see the valid values
|
||||
|
||||
What: /sys/kernel/debug/habanalabs/hl<n>/device_release_watchdog_timeout
|
||||
Date: Oct 2022
|
||||
KernelVersion: 6.2
|
||||
Contact: ttayar@habana.ai
|
||||
Description: The watchdog timeout value in seconds for a device relese upon
|
||||
certain error cases, after which the device is reset.
|
||||
|
||||
What: /sys/kernel/debug/habanalabs/hl<n>/dma_size
|
||||
Date: Apr 2021
|
||||
KernelVersion: 5.13
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
What: /sys/bus/coreboot
|
||||
Date: August 2022
|
||||
Contact: Jack Rosenthal <jrosenth@chromium.org>
|
||||
Description:
|
||||
The coreboot bus provides a variety of virtual devices used to
|
||||
access data structures created by the Coreboot BIOS.
|
||||
|
||||
What: /sys/bus/coreboot/devices/cbmem-<id>
|
||||
Date: August 2022
|
||||
Contact: Jack Rosenthal <jrosenth@chromium.org>
|
||||
Description:
|
||||
CBMEM is a downwards-growing memory region created by Coreboot,
|
||||
and contains tagged data structures to be shared with payloads
|
||||
in the boot process and the OS. Each CBMEM entry is given a
|
||||
directory in /sys/bus/coreboot/devices based on its id.
|
||||
A list of ids known to Coreboot can be found in the coreboot
|
||||
source tree at
|
||||
``src/commonlib/bsd/include/commonlib/bsd/cbmem_id.h``.
|
||||
|
||||
What: /sys/bus/coreboot/devices/cbmem-<id>/address
|
||||
Date: August 2022
|
||||
Contact: Jack Rosenthal <jrosenth@chromium.org>
|
||||
Description:
|
||||
This is the pyhsical memory address that the CBMEM entry's data
|
||||
begins at, in hexadecimal (e.g., ``0x76ffe000``).
|
||||
|
||||
What: /sys/bus/coreboot/devices/cbmem-<id>/size
|
||||
Date: August 2022
|
||||
Contact: Jack Rosenthal <jrosenth@chromium.org>
|
||||
Description:
|
||||
This is the size of the CBMEM entry's data, in hexadecimal
|
||||
(e.g., ``0x1234``).
|
||||
|
||||
What: /sys/bus/coreboot/devices/cbmem-<id>/mem
|
||||
Date: August 2022
|
||||
Contact: Jack Rosenthal <jrosenth@chromium.org>
|
||||
Description:
|
||||
A file exposing read/write access to the entry's data. Note
|
||||
that this file does not support mmap(), as coreboot
|
||||
does not guarantee that the data will be page-aligned.
|
||||
|
||||
The mode of this file is 0600. While there shouldn't be
|
||||
anything security-sensitive contained in CBMEM, read access
|
||||
requires root privileges given this is exposing a small subset
|
||||
of physical memory.
|
||||
@@ -0,0 +1,46 @@
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_voltage-voltage_filter_mode_available
|
||||
KernelVersion: 6.2
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
Reading returns a list with the possible filter modes.
|
||||
|
||||
* "sinc4" - Sinc 4. Excellent noise performance. Long
|
||||
1st conversion time. No natural 50/60Hz rejection.
|
||||
|
||||
* "sinc4+sinc1" - Sinc4 + averaging by 8. Low 1st conversion
|
||||
time.
|
||||
|
||||
* "sinc3" - Sinc3. Moderate 1st conversion time.
|
||||
Good noise performance.
|
||||
|
||||
* "sinc3+rej60" - Sinc3 + 60Hz rejection. At a sampling
|
||||
frequency of 50Hz, achieves simultaneous 50Hz and 60Hz
|
||||
rejection.
|
||||
|
||||
* "sinc3+sinc1" - Sinc3 + averaging by 8. Low 1st conversion
|
||||
time. Best used with a sampling frequency of at least
|
||||
216.19Hz.
|
||||
|
||||
* "sinc3+pf1" - Sinc3 + Post Filter 1. 53dB rejection @
|
||||
50Hz, 58dB rejection @ 60Hz.
|
||||
|
||||
* "sinc3+pf2" - Sinc3 + Post Filter 2. 70dB rejection @
|
||||
50Hz, 70dB rejection @ 60Hz.
|
||||
|
||||
* "sinc3+pf3" - Sinc3 + Post Filter 3. 99dB rejection @
|
||||
50Hz, 103dB rejection @ 60Hz.
|
||||
|
||||
* "sinc3+pf4" - Sinc3 + Post Filter 4. 103dB rejection @
|
||||
50Hz, 109dB rejection @ 60Hz.
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_voltageY-voltageZ_filter_mode
|
||||
KernelVersion: 6.2
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
Set the filter mode of the differential channel. When the filter
|
||||
mode changes, the in_voltageY-voltageZ_sampling_frequency and
|
||||
in_voltageY-voltageZ_sampling_frequency_available attributes
|
||||
might also change to accommodate the new filter mode.
|
||||
If the current sampling frequency is out of range for the new
|
||||
filter mode, the sampling frequency will be changed to the
|
||||
closest valid one.
|
||||
@@ -0,0 +1,13 @@
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_voltage_filterY_notch_en
|
||||
Date: September 2022
|
||||
KernelVersion: 6.0
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
Enable or disable a notch filter.
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_voltage_filterY_notch_center
|
||||
Date: September 2022
|
||||
KernelVersion: 6.0
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
Center frequency of the notch filter in Hz.
|
||||
@@ -0,0 +1,312 @@
|
||||
What: /sys/bus/platform/devices/smpro-errmon.*/error_[core|mem|pcie|other]_[ce|ue]
|
||||
KernelVersion: 6.1
|
||||
Contact: Quan Nguyen <quan@os.amperecomputing.com>
|
||||
Description:
|
||||
(RO) Contains the 48-byte Ampere (Vendor-Specific) Error Record printed
|
||||
in hex format according to the table below:
|
||||
|
||||
+--------+---------------+-------------+------------------------------------------------------------+
|
||||
| Offset | Field | Size (byte) | Description |
|
||||
+--------+---------------+-------------+------------------------------------------------------------+
|
||||
| 00 | Error Type | 1 | See :ref:`the table below <smpro-error-types>` for details |
|
||||
+--------+---------------+-------------+------------------------------------------------------------+
|
||||
| 01 | Subtype | 1 | See :ref:`the table below <smpro-error-types>` for details |
|
||||
+--------+---------------+-------------+------------------------------------------------------------+
|
||||
| 02 | Instance | 2 | See :ref:`the table below <smpro-error-types>` for details |
|
||||
+--------+---------------+-------------+------------------------------------------------------------+
|
||||
| 04 | Error status | 4 | See ARM RAS specification for details |
|
||||
+--------+---------------+-------------+------------------------------------------------------------+
|
||||
| 08 | Error Address | 8 | See ARM RAS specification for details |
|
||||
+--------+---------------+-------------+------------------------------------------------------------+
|
||||
| 16 | Error Misc 0 | 8 | See ARM RAS specification for details |
|
||||
+--------+---------------+-------------+------------------------------------------------------------+
|
||||
| 24 | Error Misc 1 | 8 | See ARM RAS specification for details |
|
||||
+--------+---------------+-------------+------------------------------------------------------------+
|
||||
| 32 | Error Misc 2 | 8 | See ARM RAS specification for details |
|
||||
+--------+---------------+-------------+------------------------------------------------------------+
|
||||
| 40 | Error Misc 3 | 8 | See ARM RAS specification for details |
|
||||
+--------+---------------+-------------+------------------------------------------------------------+
|
||||
|
||||
The table below defines the value of error types, their subtype, subcomponent and instance:
|
||||
|
||||
.. _smpro-error-types:
|
||||
|
||||
+-----------------+------------+----------+----------------+----------------------------------------+
|
||||
| Error Group | Error Type | Sub type | Sub component | Instance |
|
||||
+-----------------+------------+----------+----------------+----------------------------------------+
|
||||
| CPM (core) | 0 | 0 | Snoop-Logic | CPM # |
|
||||
+-----------------+------------+----------+----------------+----------------------------------------+
|
||||
| CPM (core) | 0 | 2 | Armv8 Core 1 | CPM # |
|
||||
+-----------------+------------+----------+----------------+----------------------------------------+
|
||||
| MCU (mem) | 1 | 1 | ERR1 | MCU # \| SLOT << 11 |
|
||||
+-----------------+------------+----------+----------------+----------------------------------------+
|
||||
| MCU (mem) | 1 | 2 | ERR2 | MCU # \| SLOT << 11 |
|
||||
+-----------------+------------+----------+----------------+----------------------------------------+
|
||||
| MCU (mem) | 1 | 3 | ERR3 | MCU # |
|
||||
+-----------------+------------+----------+----------------+----------------------------------------+
|
||||
| MCU (mem) | 1 | 4 | ERR4 | MCU # |
|
||||
+-----------------+------------+----------+----------------+----------------------------------------+
|
||||
| MCU (mem) | 1 | 5 | ERR5 | MCU # |
|
||||
+-----------------+------------+----------+----------------+----------------------------------------+
|
||||
| MCU (mem) | 1 | 6 | ERR6 | MCU # |
|
||||
+-----------------+------------+----------+----------------+----------------------------------------+
|
||||
| MCU (mem) | 1 | 7 | Link Error | MCU # |
|
||||
+-----------------+------------+----------+----------------+----------------------------------------+
|
||||
| Mesh (other) | 2 | 0 | Cross Point | X \| (Y << 5) \| NS <<11 |
|
||||
+-----------------+------------+----------+----------------+----------------------------------------+
|
||||
| Mesh (other) | 2 | 1 | Home Node(IO) | X \| (Y << 5) \| NS <<11 |
|
||||
+-----------------+------------+----------+----------------+----------------------------------------+
|
||||
| Mesh (other) | 2 | 2 | Home Node(Mem) | X \| (Y << 5) \| NS <<11 \| device<<12 |
|
||||
+-----------------+------------+----------+----------------+----------------------------------------+
|
||||
| Mesh (other) | 2 | 4 | CCIX Node | X \| (Y << 5) \| NS <<11 |
|
||||
+-----------------+------------+----------+----------------+----------------------------------------+
|
||||
| 2P Link (other) | 3 | 0 | N/A | Altra 2P Link # |
|
||||
+-----------------+------------+----------+----------------+----------------------------------------+
|
||||
| GIC (other) | 5 | 0 | ERR0 | 0 |
|
||||
+-----------------+------------+----------+----------------+----------------------------------------+
|
||||
| GIC (other) | 5 | 1 | ERR1 | 0 |
|
||||
+-----------------+------------+----------+----------------+----------------------------------------+
|
||||
| GIC (other) | 5 | 2 | ERR2 | 0 |
|
||||
+-----------------+------------+----------+----------------+----------------------------------------+
|
||||
| GIC (other) | 5 | 3 | ERR3 | 0 |
|
||||
+-----------------+------------+----------+----------------+----------------------------------------+
|
||||
| GIC (other) | 5 | 4 | ERR4 | 0 |
|
||||
+-----------------+------------+----------+----------------+----------------------------------------+
|
||||
| GIC (other) | 5 | 5 | ERR5 | 0 |
|
||||
+-----------------+------------+----------+----------------+----------------------------------------+
|
||||
| GIC (other) | 5 | 6 | ERR6 | 0 |
|
||||
+-----------------+------------+----------+----------------+----------------------------------------+
|
||||
| GIC (other) | 5 | 7 | ERR7 | 0 |
|
||||
+-----------------+------------+----------+----------------+----------------------------------------+
|
||||
| GIC (other) | 5 | 8 | ERR8 | 0 |
|
||||
+-----------------+------------+----------+----------------+----------------------------------------+
|
||||
| GIC (other) | 5 | 9 | ERR9 | 0 |
|
||||
+-----------------+------------+----------+----------------+----------------------------------------+
|
||||
| GIC (other) | 5 | 10 | ERR10 | 0 |
|
||||
+-----------------+------------+----------+----------------+----------------------------------------+
|
||||
| GIC (other) | 5 | 11 | ERR11 | 0 |
|
||||
+-----------------+------------+----------+----------------+----------------------------------------+
|
||||
| GIC (other) | 5 | 12 | ERR12 | 0 |
|
||||
+-----------------+------------+----------+----------------+----------------------------------------+
|
||||
| GIC (other) | 5 | 13-21 | ERR13 | RC # + 1 |
|
||||
+-----------------+------------+----------+----------------+----------------------------------------+
|
||||
| SMMU (other) | 6 | TCU | 100 | RC # |
|
||||
+-----------------+------------+----------+----------------+----------------------------------------+
|
||||
| SMMU (other) | 6 | TBU0 | 0 | RC # |
|
||||
+-----------------+------------+----------+----------------+----------------------------------------+
|
||||
| SMMU (other) | 6 | TBU1 | 1 | RC # |
|
||||
+-----------------+------------+----------+----------------+----------------------------------------+
|
||||
| SMMU (other) | 6 | TBU2 | 2 | RC # |
|
||||
+-----------------+------------+----------+----------------+----------------------------------------+
|
||||
| SMMU (other) | 6 | TBU3 | 3 | RC # |
|
||||
+-----------------+------------+----------+----------------+----------------------------------------+
|
||||
| SMMU (other) | 6 | TBU4 | 4 | RC # |
|
||||
+-----------------+------------+----------+----------------+----------------------------------------+
|
||||
| SMMU (other) | 6 | TBU5 | 5 | RC # |
|
||||
+-----------------+------------+----------+----------------+----------------------------------------+
|
||||
| SMMU (other) | 6 | TBU6 | 6 | RC # |
|
||||
+-----------------+------------+----------+----------------+----------------------------------------+
|
||||
| SMMU (other) | 6 | TBU7 | 7 | RC # |
|
||||
+-----------------+------------+----------+----------------+----------------------------------------+
|
||||
| SMMU (other) | 6 | TBU8 | 8 | RC # |
|
||||
+-----------------+------------+----------+----------------+----------------------------------------+
|
||||
| SMMU (other) | 6 | TBU9 | 9 | RC # |
|
||||
+-----------------+------------+----------+----------------+----------------------------------------+
|
||||
| PCIe AER (pcie) | 7 | Root | 0 | RC # |
|
||||
+-----------------+------------+----------+----------------+----------------------------------------+
|
||||
| PCIe AER (pcie) | 7 | Device | 1 | RC # |
|
||||
+-----------------+------------+----------+----------------+----------------------------------------+
|
||||
| PCIe RC (pcie) | 8 | RCA HB | 0 | RC # |
|
||||
+-----------------+------------+----------+----------------+----------------------------------------+
|
||||
| PCIe RC (pcie) | 8 | RCB HB | 1 | RC # |
|
||||
+-----------------+------------+----------+----------------+----------------------------------------+
|
||||
| PCIe RC (pcie) | 8 | RASDP | 8 | RC # |
|
||||
+-----------------+------------+----------+----------------+----------------------------------------+
|
||||
| OCM (other) | 9 | ERR0 | 0 | 0 |
|
||||
+-----------------+------------+----------+----------------+----------------------------------------+
|
||||
| OCM (other) | 9 | ERR1 | 1 | 0 |
|
||||
+-----------------+------------+----------+----------------+----------------------------------------+
|
||||
| OCM (other) | 9 | ERR2 | 2 | 0 |
|
||||
+-----------------+------------+----------+----------------+----------------------------------------+
|
||||
| SMpro (other) | 10 | ERR0 | 0 | 0 |
|
||||
+-----------------+------------+----------+----------------+----------------------------------------+
|
||||
| SMpro (other) | 10 | ERR1 | 1 | 0 |
|
||||
+-----------------+------------+----------+----------------+----------------------------------------+
|
||||
| SMpro (other) | 10 | MPA_ERR | 2 | 0 |
|
||||
+-----------------+------------+----------+----------------+----------------------------------------+
|
||||
| PMpro (other) | 11 | ERR0 | 0 | 0 |
|
||||
+-----------------+------------+----------+----------------+----------------------------------------+
|
||||
| PMpro (other) | 11 | ERR1 | 1 | 0 |
|
||||
+-----------------+------------+----------+----------------+----------------------------------------+
|
||||
| PMpro (other) | 11 | MPA_ERR | 2 | 0 |
|
||||
+-----------------+------------+----------+----------------+----------------------------------------+
|
||||
|
||||
Example::
|
||||
|
||||
# cat error_other_ue
|
||||
880807001e004010401040101500000001004010401040100c0000000000000000000000000000000000000000000000
|
||||
|
||||
The detail of each sysfs entries is as below:
|
||||
|
||||
+-------------+---------------------------------------------------------+----------------------------------+
|
||||
| Error | Sysfs entry | Description (when triggered) |
|
||||
+-------------+---------------------------------------------------------+----------------------------------+
|
||||
| Core's CE | /sys/bus/platform/devices/smpro-errmon.*/error_core_ce | Core has CE error |
|
||||
+-------------+---------------------------------------------------------+----------------------------------+
|
||||
| Core's UE | /sys/bus/platform/devices/smpro-errmon.*/error_core_ue | Core has UE error |
|
||||
+-------------+---------------------------------------------------------+----------------------------------+
|
||||
| Memory's CE | /sys/bus/platform/devices/smpro-errmon.*/error_mem_ce | Memory has CE error |
|
||||
+-------------+---------------------------------------------------------+----------------------------------+
|
||||
| Memory's UE | /sys/bus/platform/devices/smpro-errmon.*/error_mem_ue | Memory has UE error |
|
||||
+-------------+---------------------------------------------------------+----------------------------------+
|
||||
| PCIe's CE | /sys/bus/platform/devices/smpro-errmon.*/error_pcie_ce | any PCIe controller has CE error |
|
||||
+-------------+---------------------------------------------------------+----------------------------------+
|
||||
| PCIe's UE | /sys/bus/platform/devices/smpro-errmon.*/error_pcie_ue | any PCIe controller has UE error |
|
||||
+-------------+---------------------------------------------------------+----------------------------------+
|
||||
| Other's CE | /sys/bus/platform/devices/smpro-errmon.*/error_other_ce | any other CE error |
|
||||
+-------------+---------------------------------------------------------+----------------------------------+
|
||||
| Other's UE | /sys/bus/platform/devices/smpro-errmon.*/error_other_ue | any other UE error |
|
||||
+-------------+---------------------------------------------------------+----------------------------------+
|
||||
|
||||
UE: Uncorrect-able Error
|
||||
CE: Correct-able Error
|
||||
|
||||
For details, see section `3.3 Ampere (Vendor-Specific) Error Record Formats,
|
||||
Altra Family RAS Supplement`.
|
||||
|
||||
|
||||
What: /sys/bus/platform/devices/smpro-errmon.*/overflow_[core|mem|pcie|other]_[ce|ue]
|
||||
KernelVersion: 6.1
|
||||
Contact: Quan Nguyen <quan@os.amperecomputing.com>
|
||||
Description:
|
||||
(RO) Return the overflow status of each type HW error reported:
|
||||
|
||||
- 0 : No overflow
|
||||
- 1 : There is an overflow and the oldest HW errors are dropped
|
||||
|
||||
The detail of each sysfs entries is as below:
|
||||
|
||||
+-------------+-----------------------------------------------------------+---------------------------------------+
|
||||
| Overflow | Sysfs entry | Description |
|
||||
+-------------+-----------------------------------------------------------+---------------------------------------+
|
||||
| Core's CE | /sys/bus/platform/devices/smpro-errmon.*/overflow_core_ce | Core CE error overflow |
|
||||
+-------------+-----------------------------------------------------------+---------------------------------------+
|
||||
| Core's UE | /sys/bus/platform/devices/smpro-errmon.*/overflow_core_ue | Core UE error overflow |
|
||||
+-------------+-----------------------------------------------------------+---------------------------------------+
|
||||
| Memory's CE | /sys/bus/platform/devices/smpro-errmon.*/overflow_mem_ce | Memory CE error overflow |
|
||||
+-------------+-----------------------------------------------------------+---------------------------------------+
|
||||
| Memory's UE | /sys/bus/platform/devices/smpro-errmon.*/overflow_mem_ue | Memory UE error overflow |
|
||||
+-------------+-----------------------------------------------------------+---------------------------------------+
|
||||
| PCIe's CE | /sys/bus/platform/devices/smpro-errmon.*/overflow_pcie_ce | any PCIe controller CE error overflow |
|
||||
+-------------+-----------------------------------------------------------+---------------------------------------+
|
||||
| PCIe's UE | /sys/bus/platform/devices/smpro-errmon.*/overflow_pcie_ue | any PCIe controller UE error overflow |
|
||||
+-------------+-----------------------------------------------------------+---------------------------------------+
|
||||
| Other's CE | /sys/bus/platform/devices/smpro-errmon.*/overflow_other_ce| any other CE error overflow |
|
||||
+-------------+-----------------------------------------------------------+---------------------------------------+
|
||||
| Other's UE | /sys/bus/platform/devices/smpro-errmon.*/overflow_other_ue| other UE error overflow |
|
||||
+-------------+-----------------------------------------------------------+---------------------------------------+
|
||||
|
||||
where:
|
||||
|
||||
- UE: Uncorrect-able Error
|
||||
- CE: Correct-able Error
|
||||
|
||||
What: /sys/bus/platform/devices/smpro-errmon.*/[error|warn]_[smpro|pmpro]
|
||||
KernelVersion: 6.1
|
||||
Contact: Quan Nguyen <quan@os.amperecomputing.com>
|
||||
Description:
|
||||
(RO) Contains the internal firmware error/warning printed as hex format.
|
||||
|
||||
The detail of each sysfs entries is as below:
|
||||
|
||||
+---------------+------------------------------------------------------+--------------------------+
|
||||
| Error | Sysfs entry | Description |
|
||||
+---------------+------------------------------------------------------+--------------------------+
|
||||
| SMpro error | /sys/bus/platform/devices/smpro-errmon.*/error_smpro | system has SMpro error |
|
||||
+---------------+------------------------------------------------------+--------------------------+
|
||||
| SMpro warning | /sys/bus/platform/devices/smpro-errmon.*/warn_smpro | system has SMpro warning |
|
||||
+---------------+------------------------------------------------------+--------------------------+
|
||||
| PMpro error | /sys/bus/platform/devices/smpro-errmon.*/error_pmpro | system has PMpro error |
|
||||
+---------------+------------------------------------------------------+--------------------------+
|
||||
| PMpro warning | /sys/bus/platform/devices/smpro-errmon.*/warn_pmpro | system has PMpro warning |
|
||||
+---------------+------------------------------------------------------+--------------------------+
|
||||
|
||||
For details, see section `5.10 RAS Internal Error Register Definitions,
|
||||
Altra Family Soc BMC Interface Specification`.
|
||||
|
||||
What: /sys/bus/platform/devices/smpro-errmon.*/event_[vrd_warn_fault|vrd_hot|dimm_hot]
|
||||
KernelVersion: 6.1
|
||||
Contact: Quan Nguyen <quan@os.amperecomputing.com>
|
||||
Description:
|
||||
(RO) Contains the detail information in case of VRD/DIMM warning/hot events
|
||||
in hex format as below::
|
||||
|
||||
AAAA
|
||||
|
||||
where:
|
||||
|
||||
- ``AAAA``: The event detail information data
|
||||
|
||||
The detail of each sysfs entries is as below:
|
||||
|
||||
+---------------+---------------------------------------------------------------+---------------------+
|
||||
| Event | Sysfs entry | Description |
|
||||
+---------------+---------------------------------------------------------------+---------------------+
|
||||
| VRD HOT | /sys/bus/platform/devices/smpro-errmon.*/event_vrd_hot | VRD Hot |
|
||||
+---------------+---------------------------------------------------------------+---------------------+
|
||||
| VR Warn/Fault | /sys/bus/platform/devices/smpro-errmon.*/event_vrd_warn_fault | VR Warning or Fault |
|
||||
+---------------+---------------------------------------------------------------+---------------------+
|
||||
| DIMM HOT | /sys/bus/platform/devices/smpro-errmon.*/event_dimm_hot | DIMM Hot |
|
||||
+---------------+---------------------------------------------------------------+---------------------+
|
||||
|
||||
For more details, see section `5.7 GPI Status Registers,
|
||||
Altra Family Soc BMC Interface Specification`.
|
||||
|
||||
What: /sys/bus/platform/devices/smpro-misc.*/boot_progress
|
||||
KernelVersion: 6.1
|
||||
Contact: Quan Nguyen <quan@os.amperecomputing.com>
|
||||
Description:
|
||||
(RO) Contains the boot stages information in hex as format below::
|
||||
|
||||
AABBCCCCCCCC
|
||||
|
||||
where:
|
||||
|
||||
- ``AA`` : The boot stages
|
||||
|
||||
- 00: SMpro firmware booting
|
||||
- 01: PMpro firmware booting
|
||||
- 02: ATF BL1 firmware booting
|
||||
- 03: DDR initialization
|
||||
- 04: DDR training report status
|
||||
- 05: ATF BL2 firmware booting
|
||||
- 06: ATF BL31 firmware booting
|
||||
- 07: ATF BL32 firmware booting
|
||||
- 08: UEFI firmware booting
|
||||
- 09: OS booting
|
||||
|
||||
- ``BB`` : Boot status
|
||||
|
||||
- 00: Not started
|
||||
- 01: Started
|
||||
- 02: Completed without error
|
||||
- 03: Failed.
|
||||
|
||||
- ``CCCCCCCC``: Boot status information defined for each boot stages
|
||||
|
||||
For details, see section `5.11 Boot Stage Register Definitions`
|
||||
and section `6. Processor Boot Progress Codes, Altra Family Soc BMC
|
||||
Interface Specification`.
|
||||
|
||||
|
||||
What: /sys/bus/platform/devices/smpro-misc*/soc_power_limit
|
||||
KernelVersion: 6.1
|
||||
Contact: Quan Nguyen <quan@os.amperecomputing.com>
|
||||
Description:
|
||||
(RW) Contains the desired SoC power limit in Watt.
|
||||
Writes to this sysfs set the desired SoC power limit (W).
|
||||
Reads from this register return the current SoC power limit (W).
|
||||
The value ranges:
|
||||
|
||||
- Minimum: 120 W
|
||||
- Maximum: Socket TDP power
|
||||
@@ -264,6 +264,17 @@ Description:
|
||||
attached to the port will not be detected, initialized,
|
||||
or enumerated.
|
||||
|
||||
What: /sys/bus/usb/devices/.../<hub_interface>/port<X>/early_stop
|
||||
Date: Sep 2022
|
||||
Contact: Ray Chi <raychi@google.com>
|
||||
Description:
|
||||
Some USB hosts have some watchdog mechanisms so that the device
|
||||
may enter ramdump if it takes a long time during port initialization.
|
||||
This attribute allows each port just has two attempts so that the
|
||||
port initialization will be failed quickly. In addition, if a port
|
||||
which is marked with early_stop has failed to initialize, it will ignore
|
||||
all future connections until this attribute is clear.
|
||||
|
||||
What: /sys/bus/usb/devices/.../power/usb2_lpm_l1_timeout
|
||||
Date: May 2013
|
||||
Contact: Mathias Nyman <mathias.nyman@linux.intel.com>
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
What: /sys/kernel/cpu_byteorder
|
||||
Date: February 2023
|
||||
KernelVersion: 6.2
|
||||
Contact: Thomas Weißschuh <linux@weissschuh.net>
|
||||
Description:
|
||||
The endianness of the running kernel.
|
||||
|
||||
Access: Read
|
||||
|
||||
Valid values:
|
||||
"little", "big"
|
||||
Users: util-linux
|
||||
@@ -0,0 +1,232 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/bus/fsl,imx8qxp-pixel-link-msi-bus.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Freescale i.MX8qxp Pixel Link Medium Speed Interconnect (MSI) Bus
|
||||
|
||||
maintainers:
|
||||
- Liu Ying <victor.liu@nxp.com>
|
||||
|
||||
description: |
|
||||
i.MX8qxp pixel link MSI bus is used to control settings of PHYs, I/Os
|
||||
sitting together with the PHYs. It is not the same as the MSI bus coming
|
||||
from i.MX8 System Controller Unit (SCU) which is used to control power,
|
||||
clock and reset through the i.MX8 Distributed Slave System Controller (DSC).
|
||||
|
||||
i.MX8qxp pixel link MSI bus is a simple memory-mapped bus. Two input clocks,
|
||||
that is, MSI clock and AHB clock, need to be enabled so that peripherals
|
||||
connected to the bus can be accessed. Also, the bus is part of a power
|
||||
domain. The power domain needs to be enabled before the peripherals can
|
||||
be accessed.
|
||||
|
||||
Peripherals in i.MX8qm/qxp imaging, LVDS, MIPI DSI and HDMI TX subsystems,
|
||||
like I2C controller, PWM controller, MIPI DSI controller and Control and
|
||||
Status Registers (CSR) module, are accessed through the bus.
|
||||
|
||||
The i.MX System Controller Firmware (SCFW) owns and uses the i.MX8qm/qxp
|
||||
pixel link MSI bus controller and does not allow SCFW user to control it.
|
||||
So, the controller's registers cannot be accessed by SCFW user. Hence,
|
||||
the interrupts generated by the controller don't make any sense from SCFW
|
||||
user's point of view.
|
||||
|
||||
allOf:
|
||||
- $ref: simple-pm-bus.yaml#
|
||||
|
||||
# We need a select here so we don't match all nodes with 'simple-pm-bus'.
|
||||
select:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- fsl,imx8qxp-display-pixel-link-msi-bus
|
||||
- fsl,imx8qm-display-pixel-link-msi-bus
|
||||
required:
|
||||
- compatible
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
items:
|
||||
- enum:
|
||||
- fsl,imx8qxp-display-pixel-link-msi-bus
|
||||
- fsl,imx8qm-display-pixel-link-msi-bus
|
||||
- const: simple-pm-bus
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: master gated clock from system
|
||||
- description: AHB clock
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: msi
|
||||
- const: ahb
|
||||
|
||||
patternProperties:
|
||||
"^.*@[0-9a-f]+$":
|
||||
description: Devices attached to the bus
|
||||
type: object
|
||||
properties:
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- reg
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
- clock-names
|
||||
- power-domains
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/imx8-lpcg.h>
|
||||
#include <dt-bindings/firmware/imx/rsrc.h>
|
||||
bus@56200000 {
|
||||
compatible = "fsl,imx8qxp-display-pixel-link-msi-bus", "simple-pm-bus";
|
||||
reg = <0x56200000 0x20000>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
interrupt-parent = <&dc0_irqsteer>;
|
||||
interrupts = <320>;
|
||||
ranges;
|
||||
clocks = <&dc0_disp_ctrl_link_mst0_lpcg IMX_LPCG_CLK_4>,
|
||||
<&dc0_disp_ctrl_link_mst0_lpcg IMX_LPCG_CLK_4>;
|
||||
clock-names = "msi", "ahb";
|
||||
power-domains = <&pd IMX_SC_R_DC_0>;
|
||||
|
||||
syscon@56221000 {
|
||||
compatible = "fsl,imx8qxp-mipi-lvds-csr", "syscon", "simple-mfd";
|
||||
reg = <0x56221000 0x1000>;
|
||||
clocks = <&mipi_lvds_0_di_mipi_lvds_regs_lpcg IMX_LPCG_CLK_4>;
|
||||
clock-names = "ipg";
|
||||
|
||||
pxl2dpi {
|
||||
compatible = "fsl,imx8qxp-pxl2dpi";
|
||||
fsl,sc-resource = <IMX_SC_R_MIPI_0>;
|
||||
power-domains = <&pd IMX_SC_R_MIPI_0>;
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <0>;
|
||||
|
||||
mipi_lvds_0_pxl2dpi_dc0_pixel_link0: endpoint@0 {
|
||||
reg = <0>;
|
||||
remote-endpoint = <&dc0_pixel_link0_mipi_lvds_0_pxl2dpi>;
|
||||
};
|
||||
|
||||
mipi_lvds_0_pxl2dpi_dc0_pixel_link1: endpoint@1 {
|
||||
reg = <1>;
|
||||
remote-endpoint = <&dc0_pixel_link1_mipi_lvds_0_pxl2dpi>;
|
||||
};
|
||||
};
|
||||
|
||||
port@1 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <1>;
|
||||
|
||||
mipi_lvds_0_pxl2dpi_mipi_lvds_0_ldb_ch0: endpoint@0 {
|
||||
reg = <0>;
|
||||
remote-endpoint = <&mipi_lvds_0_ldb_ch0_mipi_lvds_0_pxl2dpi>;
|
||||
};
|
||||
|
||||
mipi_lvds_0_pxl2dpi_mipi_lvds_0_ldb_ch1: endpoint@1 {
|
||||
reg = <1>;
|
||||
remote-endpoint = <&mipi_lvds_0_ldb_ch1_mipi_lvds_0_pxl2dpi>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
ldb {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "fsl,imx8qxp-ldb";
|
||||
clocks = <&clk IMX_SC_R_LVDS_0 IMX_SC_PM_CLK_MISC2>,
|
||||
<&clk IMX_SC_R_LVDS_0 IMX_SC_PM_CLK_BYPASS>;
|
||||
clock-names = "pixel", "bypass";
|
||||
power-domains = <&pd IMX_SC_R_LVDS_0>;
|
||||
|
||||
channel@0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <0>;
|
||||
phys = <&mipi_lvds_0_phy>;
|
||||
phy-names = "lvds_phy";
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
|
||||
mipi_lvds_0_ldb_ch0_mipi_lvds_0_pxl2dpi: endpoint {
|
||||
remote-endpoint = <&mipi_lvds_0_pxl2dpi_mipi_lvds_0_ldb_ch0>;
|
||||
};
|
||||
};
|
||||
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
|
||||
/* ... */
|
||||
};
|
||||
};
|
||||
|
||||
channel@1 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <1>;
|
||||
phys = <&mipi_lvds_0_phy>;
|
||||
phy-names = "lvds_phy";
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
|
||||
mipi_lvds_0_ldb_ch1_mipi_lvds_0_pxl2dpi: endpoint {
|
||||
remote-endpoint = <&mipi_lvds_0_pxl2dpi_mipi_lvds_0_ldb_ch1>;
|
||||
};
|
||||
};
|
||||
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
|
||||
/* ... */
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
clock-controller@56223004 {
|
||||
compatible = "fsl,imx8qxp-lpcg";
|
||||
reg = <0x56223004 0x4>;
|
||||
#clock-cells = <1>;
|
||||
clocks = <&mipi_lvds_0_ipg_clk>;
|
||||
clock-indices = <IMX_LPCG_CLK_4>;
|
||||
clock-output-names = "mipi_lvds_0_di_mipi_lvds_regs_lpcg_ipg_clk";
|
||||
power-domains = <&pd IMX_SC_R_MIPI_0>;
|
||||
};
|
||||
|
||||
phy@56228300 {
|
||||
compatible = "fsl,imx8qxp-mipi-dphy";
|
||||
reg = <0x56228300 0x100>;
|
||||
clocks = <&clk IMX_SC_R_LVDS_0 IMX_SC_PM_CLK_PHY>;
|
||||
clock-names = "phy_ref";
|
||||
#phy-cells = <0>;
|
||||
fsl,syscon = <&mipi_lvds_0_csr>;
|
||||
power-domains = <&pd IMX_SC_R_MIPI_0>;
|
||||
};
|
||||
};
|
||||
@@ -10,6 +10,9 @@ title: I2C EEPROMs compatible with Atmel's AT24
|
||||
maintainers:
|
||||
- Bartosz Golaszewski <bgolaszewski@baylibre.com>
|
||||
|
||||
allOf:
|
||||
- $ref: /schemas/nvmem/nvmem.yaml
|
||||
|
||||
select:
|
||||
properties:
|
||||
compatible:
|
||||
@@ -183,7 +186,7 @@ required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
additionalProperties: false
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
|
||||
@@ -104,6 +104,7 @@ required:
|
||||
|
||||
allOf:
|
||||
- $ref: /schemas/spi/spi-peripheral-props.yaml#
|
||||
- $ref: /schemas/nvmem/nvmem.yaml
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
|
||||
@@ -47,6 +47,7 @@ required:
|
||||
|
||||
allOf:
|
||||
- $ref: /schemas/spi/spi-peripheral-props.yaml#
|
||||
- $ref: /schemas/nvmem/nvmem.yaml
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
|
||||
@@ -0,0 +1,81 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/fpga/lattice,sysconfig.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Lattice Slave SPI sysCONFIG FPGA manager
|
||||
|
||||
maintainers:
|
||||
- Ivan Bornyakov <i.bornyakov@metrotek.ru>
|
||||
|
||||
description: |
|
||||
Lattice sysCONFIG port, which is used for FPGA configuration, among others,
|
||||
have Slave Serial Peripheral Interface. Only full reconfiguration is
|
||||
supported.
|
||||
|
||||
Programming of ECP5 is done by writing uncompressed bitstream image in .bit
|
||||
format into FPGA's SRAM configuration memory.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- lattice,sysconfig-ecp5
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
program-gpios:
|
||||
description:
|
||||
A GPIO line connected to PROGRAMN (active low) pin of the device.
|
||||
Initiates configuration sequence.
|
||||
maxItems: 1
|
||||
|
||||
init-gpios:
|
||||
description:
|
||||
A GPIO line connected to INITN (active low) pin of the device.
|
||||
Indicates that the FPGA is ready to be configured.
|
||||
maxItems: 1
|
||||
|
||||
done-gpios:
|
||||
description:
|
||||
A GPIO line connected to DONE (active high) pin of the device.
|
||||
Indicates that the configuration sequence is complete.
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
allOf:
|
||||
- $ref: /schemas/spi/spi-peripheral-props.yaml
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: lattice,sysconfig-ecp5
|
||||
then:
|
||||
properties:
|
||||
spi-max-frequency:
|
||||
maximum: 60000000
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
fpga-mgr@0 {
|
||||
compatible = "lattice,sysconfig-ecp5";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <20000000>;
|
||||
program-gpios = <&gpio3 4 GPIO_ACTIVE_LOW>;
|
||||
init-gpios = <&gpio3 3 GPIO_ACTIVE_LOW>;
|
||||
done-gpios = <&gpio3 2 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
};
|
||||
@@ -4,20 +4,22 @@
|
||||
$id: http://devicetree.org/schemas/iio/accel/adi,adxl355.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Analog Devices ADXL355 3-Axis, Low noise MEMS Accelerometer
|
||||
title: Analog Devices ADXL355 and ADXL359 3-Axis, Low noise MEMS Accelerometers
|
||||
|
||||
maintainers:
|
||||
- Puranjay Mohan <puranjay12@gmail.com>
|
||||
|
||||
description: |
|
||||
Analog Devices ADXL355 3-Axis, Low noise MEMS Accelerometer that supports
|
||||
both I2C & SPI interfaces
|
||||
Analog Devices ADXL355 and ADXL359 3-Axis, Low noise MEMS Accelerometers that
|
||||
support both I2C & SPI interfaces
|
||||
https://www.analog.com/en/products/adxl355.html
|
||||
https://www.analog.com/en/products/adxl359.html
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- adi,adxl355
|
||||
- adi,adxl359
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
@@ -0,0 +1,65 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/accel/kionix,kx022a.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: ROHM/Kionix KX022A Accelerometer
|
||||
|
||||
maintainers:
|
||||
- Matti Vaittinen <mazziesaccount@gmail.com>
|
||||
|
||||
description: |
|
||||
KX022A is a 3-axis accelerometer supporting +/- 2G, 4G, 8G and 16G ranges,
|
||||
output data-rates from 0.78Hz to 1600Hz and a hardware-fifo buffering.
|
||||
KX022A can be accessed either via I2C or SPI.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: kionix,kx022a
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
minItems: 1
|
||||
maxItems: 2
|
||||
|
||||
interrupt-names:
|
||||
minItems: 1
|
||||
items:
|
||||
- enum: [INT1, INT2]
|
||||
- const: INT2
|
||||
|
||||
vdd-supply: true
|
||||
io-vdd-supply: true
|
||||
|
||||
mount-matrix:
|
||||
description: |
|
||||
an optional 3x3 mounting rotation matrix.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
accel@1f {
|
||||
compatible = "kionix,kx022a";
|
||||
reg = <0x1f>;
|
||||
|
||||
interrupt-parent = <&gpio1>;
|
||||
interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
|
||||
interrupt-names = "INT1";
|
||||
|
||||
io-vdd-supply = <&iovdd>;
|
||||
vdd-supply = <&vdd>;
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,262 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
# Copyright 2022 Analog Devices Inc.
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/adc/adi,ad4130.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Analog Devices AD4130 ADC device driver
|
||||
|
||||
maintainers:
|
||||
- Cosmin Tanislav <cosmin.tanislav@analog.com>
|
||||
|
||||
description: |
|
||||
Bindings for the Analog Devices AD4130 ADC. Datasheet can be found here:
|
||||
https://www.analog.com/media/en/technical-documentation/data-sheets/AD4130-8.pdf
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- adi,ad4130
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
description: phandle to the master clock (mclk)
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: mclk
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
interrupt-names:
|
||||
description: |
|
||||
Specify which interrupt pin should be configured as Data Ready / FIFO
|
||||
interrupt.
|
||||
Default if not supplied is int.
|
||||
enum:
|
||||
- int
|
||||
- clk
|
||||
- p2
|
||||
- dout
|
||||
|
||||
'#address-cells':
|
||||
const: 1
|
||||
|
||||
'#size-cells':
|
||||
const: 0
|
||||
|
||||
'#clock-cells':
|
||||
const: 0
|
||||
|
||||
clock-output-names:
|
||||
maxItems: 1
|
||||
|
||||
refin1-supply:
|
||||
description: refin1 supply. Can be used as reference for conversion.
|
||||
|
||||
refin2-supply:
|
||||
description: refin2 supply. Can be used as reference for conversion.
|
||||
|
||||
avdd-supply:
|
||||
description: AVDD voltage supply. Can be used as reference for conversion.
|
||||
|
||||
iovdd-supply:
|
||||
description: IOVDD voltage supply. Used for the chip interface.
|
||||
|
||||
spi-max-frequency:
|
||||
maximum: 5000000
|
||||
|
||||
adi,ext-clk-freq-hz:
|
||||
description: Specify the frequency of the external clock.
|
||||
enum: [76800, 153600]
|
||||
default: 76800
|
||||
|
||||
adi,bipolar:
|
||||
description: Specify if the device should be used in bipolar mode.
|
||||
type: boolean
|
||||
|
||||
adi,vbias-pins:
|
||||
description: Analog inputs to apply a voltage bias of (AVDD − AVSS) / 2 to.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
minItems: 1
|
||||
maxItems: 16
|
||||
items:
|
||||
minimum: 0
|
||||
maximum: 15
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
|
||||
patternProperties:
|
||||
"^channel@([0-9a-f])$":
|
||||
type: object
|
||||
$ref: adc.yaml
|
||||
unevaluatedProperties: false
|
||||
|
||||
properties:
|
||||
reg:
|
||||
description: The channel number.
|
||||
minimum: 0
|
||||
maximum: 15
|
||||
|
||||
diff-channels:
|
||||
description: |
|
||||
Besides the analog inputs available, internal inputs can be used.
|
||||
16: Internal temperature sensor.
|
||||
17: AVSS
|
||||
18: Internal reference
|
||||
19: DGND
|
||||
20: (AVDD − AVSS)/6+
|
||||
21: (AVDD − AVSS)/6-
|
||||
22: (IOVDD − DGND)/6+
|
||||
23: (IOVDD − DGND)/6-
|
||||
24: (ALDO − AVSS)/6+
|
||||
25: (ALDO − AVSS)/6-
|
||||
26: (DLDO − DGND)/6+
|
||||
27: (DLDO − DGND)/6-
|
||||
28: V_MV_P
|
||||
29: V_MV_M
|
||||
items:
|
||||
minimum: 0
|
||||
maximum: 29
|
||||
|
||||
adi,reference-select:
|
||||
description: |
|
||||
Select the reference source to use when converting on the
|
||||
specific channel. Valid values are:
|
||||
0: REFIN1(+)/REFIN1(−)
|
||||
1: REFIN2(+)/REFIN2(−)
|
||||
2: REFOUT/AVSS (Internal reference)
|
||||
3: AVDD/AVSS
|
||||
If not specified, REFIN1 is used.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
enum: [0, 1, 2, 3]
|
||||
default: 0
|
||||
|
||||
adi,excitation-pin-0:
|
||||
description: |
|
||||
Analog input to apply excitation current to while the channel
|
||||
is active.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 0
|
||||
maximum: 15
|
||||
default: 0
|
||||
|
||||
adi,excitation-pin-1:
|
||||
description: |
|
||||
Analog input to apply excitation current to while this channel
|
||||
is active.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 0
|
||||
maximum: 15
|
||||
default: 0
|
||||
|
||||
adi,excitation-current-0-nanoamp:
|
||||
description: |
|
||||
Excitation current in nanoamps to be applied to pin specified in
|
||||
adi,excitation-pin-0 while this channel is active.
|
||||
enum: [0, 100, 10000, 20000, 50000, 100000, 150000, 200000]
|
||||
default: 0
|
||||
|
||||
adi,excitation-current-1-nanoamp:
|
||||
description: |
|
||||
Excitation current in nanoamps to be applied to pin specified in
|
||||
adi,excitation-pin-1 while this channel is active.
|
||||
enum: [0, 100, 10000, 20000, 50000, 100000, 150000, 200000]
|
||||
default: 0
|
||||
|
||||
adi,burnout-current-nanoamp:
|
||||
description: |
|
||||
Burnout current in nanoamps to be applied for this channel.
|
||||
enum: [0, 500, 2000, 4000]
|
||||
default: 0
|
||||
|
||||
adi,buffered-positive:
|
||||
description: Enable buffered mode for positive input.
|
||||
type: boolean
|
||||
|
||||
adi,buffered-negative:
|
||||
description: Enable buffered mode for negative input.
|
||||
type: boolean
|
||||
|
||||
required:
|
||||
- reg
|
||||
- diff-channels
|
||||
|
||||
allOf:
|
||||
- $ref: /schemas/spi/spi-peripheral-props.yaml#
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
adc@0 {
|
||||
compatible = "adi,ad4130";
|
||||
reg = <0>;
|
||||
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
spi-max-frequency = <5000000>;
|
||||
interrupts = <27 IRQ_TYPE_EDGE_FALLING>;
|
||||
interrupt-parent = <&gpio>;
|
||||
|
||||
channel@0 {
|
||||
reg = <0>;
|
||||
|
||||
adi,reference-select = <2>;
|
||||
|
||||
/* AIN8, AIN9 */
|
||||
diff-channels = <8 9>;
|
||||
};
|
||||
|
||||
channel@1 {
|
||||
reg = <1>;
|
||||
|
||||
adi,reference-select = <2>;
|
||||
|
||||
/* AIN10, AIN11 */
|
||||
diff-channels = <10 11>;
|
||||
};
|
||||
|
||||
channel@2 {
|
||||
reg = <2>;
|
||||
|
||||
adi,reference-select = <2>;
|
||||
|
||||
/* Temperature Sensor, DGND */
|
||||
diff-channels = <16 19>;
|
||||
};
|
||||
|
||||
channel@3 {
|
||||
reg = <3>;
|
||||
|
||||
adi,reference-select = <2>;
|
||||
|
||||
/* Internal reference, DGND */
|
||||
diff-channels = <18 19>;
|
||||
};
|
||||
|
||||
channel@4 {
|
||||
reg = <4>;
|
||||
|
||||
adi,reference-select = <2>;
|
||||
|
||||
/* DGND, DGND */
|
||||
diff-channels = <19 19>;
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -11,7 +11,7 @@ maintainers:
|
||||
|
||||
description: |
|
||||
Analog Devices AD7904, AD7914, AD7923, AD7924 4 Channel ADCs, and AD7908,
|
||||
AD7918, AD7928 8 Channels ADCs.
|
||||
AD7918, AD7927, AD7928 8 Channels ADCs.
|
||||
|
||||
Specifications about the part can be found at:
|
||||
https://www.analog.com/media/en/technical-documentation/data-sheets/AD7923.pdf
|
||||
@@ -20,14 +20,22 @@ description: |
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- adi,ad7904
|
||||
- adi,ad7914
|
||||
- adi,ad7923
|
||||
- adi,ad7924
|
||||
- adi,ad7908
|
||||
- adi,ad7918
|
||||
- adi,ad7928
|
||||
oneOf:
|
||||
- enum:
|
||||
- adi,ad7904
|
||||
- adi,ad7908
|
||||
- adi,ad7914
|
||||
- adi,ad7918
|
||||
- adi,ad7923
|
||||
- adi,ad7928
|
||||
- const: adi,ad7924
|
||||
deprecated: true
|
||||
- items:
|
||||
- const: adi,ad7924
|
||||
- const: adi,ad7923
|
||||
- items:
|
||||
- const: adi,ad7927
|
||||
- const: adi,ad7928
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
@@ -0,0 +1,177 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
# Copyright 2022 Analog Devices Inc.
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/adc/adi,max11410.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Analog Devices MAX11410 ADC device driver
|
||||
|
||||
maintainers:
|
||||
- Ibrahim Tilki <Ibrahim.Tilki@analog.com>
|
||||
|
||||
description: |
|
||||
Bindings for the Analog Devices MAX11410 ADC device. Datasheet can be
|
||||
found here:
|
||||
https://datasheets.maximintegrated.com/en/ds/MAX11410.pdf
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- adi,max11410
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
minItems: 1
|
||||
maxItems: 2
|
||||
|
||||
interrupt-names:
|
||||
description: Name of the gpio pin of max11410 used for IRQ
|
||||
minItems: 1
|
||||
items:
|
||||
- enum: [gpio0, gpio1]
|
||||
- const: gpio1
|
||||
|
||||
'#address-cells':
|
||||
const: 1
|
||||
|
||||
'#size-cells':
|
||||
const: 0
|
||||
|
||||
avdd-supply:
|
||||
description: Optional avdd supply. Used as reference when no explicit reference supplied.
|
||||
|
||||
vref0p-supply:
|
||||
description: vref0p supply can be used as reference for conversion.
|
||||
|
||||
vref1p-supply:
|
||||
description: vref1p supply can be used as reference for conversion.
|
||||
|
||||
vref2p-supply:
|
||||
description: vref2p supply can be used as reference for conversion.
|
||||
|
||||
vref0n-supply:
|
||||
description: vref0n supply can be used as reference for conversion.
|
||||
|
||||
vref1n-supply:
|
||||
description: vref1n supply can be used as reference for conversion.
|
||||
|
||||
vref2n-supply:
|
||||
description: vref2n supply can be used as reference for conversion.
|
||||
|
||||
spi-max-frequency:
|
||||
maximum: 8000000
|
||||
|
||||
patternProperties:
|
||||
"^channel(@[0-9])?$":
|
||||
$ref: adc.yaml
|
||||
type: object
|
||||
description: Represents the external channels which are connected to the ADC.
|
||||
|
||||
properties:
|
||||
reg:
|
||||
description: The channel number in single-ended mode.
|
||||
minimum: 0
|
||||
maximum: 9
|
||||
|
||||
adi,reference:
|
||||
description: |
|
||||
Select the reference source to use when converting on
|
||||
the specific channel. Valid values are:
|
||||
0: VREF0P/VREF0N
|
||||
1: VREF1P/VREF1N
|
||||
2: VREF2P/VREF2N
|
||||
3: AVDD/AGND
|
||||
4: VREF0P/AGND
|
||||
5: VREF1P/AGND
|
||||
6: VREF2P/AGND
|
||||
If this field is left empty, AVDD/AGND is selected.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
enum: [0, 1, 2, 3, 4, 5, 6]
|
||||
default: 3
|
||||
|
||||
adi,input-mode:
|
||||
description: |
|
||||
Select signal path of input channels. Valid values are:
|
||||
0: Buffered, low-power, unity-gain path (default)
|
||||
1: Bypass path
|
||||
2: PGA path
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
enum: [0, 1, 2]
|
||||
default: 0
|
||||
|
||||
diff-channels: true
|
||||
|
||||
bipolar: true
|
||||
|
||||
settling-time-us: true
|
||||
|
||||
adi,buffered-vrefp:
|
||||
description: Enable buffered mode for positive reference.
|
||||
type: boolean
|
||||
|
||||
adi,buffered-vrefn:
|
||||
description: Enable buffered mode for negative reference.
|
||||
type: boolean
|
||||
|
||||
required:
|
||||
- reg
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
allOf:
|
||||
- $ref: /schemas/spi/spi-peripheral-props.yaml#
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
adc@0 {
|
||||
reg = <0>;
|
||||
compatible = "adi,max11410";
|
||||
spi-max-frequency = <8000000>;
|
||||
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
|
||||
interrupt-names = "gpio1";
|
||||
|
||||
avdd-supply = <&adc_avdd>;
|
||||
|
||||
vref1p-supply = <&adc_vref1p>;
|
||||
vref1n-supply = <&adc_vref1n>;
|
||||
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
channel@0 {
|
||||
reg = <0>;
|
||||
};
|
||||
|
||||
channel@1 {
|
||||
reg = <1>;
|
||||
diff-channels = <2 3>;
|
||||
adi,reference = <1>;
|
||||
bipolar;
|
||||
settling-time-us = <100000>;
|
||||
};
|
||||
|
||||
channel@2 {
|
||||
reg = <2>;
|
||||
diff-channels = <7 9>;
|
||||
adi,reference = <5>;
|
||||
adi,input-mode = <2>;
|
||||
settling-time-us = <50000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -18,7 +18,10 @@ description: |
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: qcom,spmi-iadc
|
||||
items:
|
||||
- enum:
|
||||
- qcom,pm8941-iadc
|
||||
- const: qcom,spmi-iadc
|
||||
|
||||
reg:
|
||||
description: IADC base address and length in the SPMI PMIC register map
|
||||
@@ -50,7 +53,7 @@ examples:
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
pmic_iadc: adc@3600 {
|
||||
compatible = "qcom,spmi-iadc";
|
||||
compatible = "qcom,pm8941-iadc", "qcom,spmi-iadc";
|
||||
reg = <0x3600>;
|
||||
interrupts = <0x0 0x36 0x0 IRQ_TYPE_EDGE_RISING>;
|
||||
qcom,external-resistor-micro-ohms = <10000>;
|
||||
|
||||
@@ -22,13 +22,11 @@ properties:
|
||||
- items:
|
||||
- const: qcom,pms405-adc
|
||||
- const: qcom,spmi-adc-rev2
|
||||
|
||||
- items:
|
||||
- enum:
|
||||
- qcom,spmi-vadc
|
||||
- qcom,spmi-adc5
|
||||
- qcom,spmi-adc-rev2
|
||||
- qcom,spmi-adc7
|
||||
- enum:
|
||||
- qcom,spmi-vadc
|
||||
- qcom,spmi-adc5
|
||||
- qcom,spmi-adc-rev2
|
||||
- qcom,spmi-adc7
|
||||
|
||||
reg:
|
||||
description: VADC base address in the SPMI PMIC register map
|
||||
|
||||
@@ -19,7 +19,7 @@ properties:
|
||||
compatible:
|
||||
items:
|
||||
- enum:
|
||||
- renesas,r9a07g043-adc # RZ/G2UL
|
||||
- renesas,r9a07g043-adc # RZ/G2UL and RZ/Five
|
||||
- renesas,r9a07g044-adc # RZ/G2L
|
||||
- renesas,r9a07g054-adc # RZ/V2L
|
||||
- const: renesas,rzg2l-adc
|
||||
|
||||
@@ -22,6 +22,7 @@ properties:
|
||||
- rockchip,rk3328-saradc
|
||||
- rockchip,rk3568-saradc
|
||||
- rockchip,rv1108-saradc
|
||||
- rockchip,rv1126-saradc
|
||||
- const: rockchip,rk3399-saradc
|
||||
|
||||
reg:
|
||||
|
||||
@@ -27,6 +27,7 @@ properties:
|
||||
- st,stm32f4-adc-core
|
||||
- st,stm32h7-adc-core
|
||||
- st,stm32mp1-adc-core
|
||||
- st,stm32mp13-adc-core
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
@@ -37,6 +38,7 @@ properties:
|
||||
- stm32f4 and stm32h7 share a common ADC interrupt line.
|
||||
- stm32mp1 has two separate interrupt lines, one for each ADC within
|
||||
ADC block.
|
||||
- stm32mp13 has an interrupt line per ADC block.
|
||||
minItems: 1
|
||||
maxItems: 2
|
||||
|
||||
@@ -180,6 +182,33 @@ allOf:
|
||||
maximum: 36000000
|
||||
default: 36000000
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: st,stm32mp13-adc-core
|
||||
|
||||
then:
|
||||
properties:
|
||||
clocks:
|
||||
minItems: 1
|
||||
maxItems: 2
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: bus
|
||||
- const: adc
|
||||
minItems: 1
|
||||
|
||||
interrupts:
|
||||
items:
|
||||
- description: ADC interrupt line
|
||||
|
||||
st,max-clk-rate-hz:
|
||||
minimum: 150000
|
||||
maximum: 75000000
|
||||
default: 75000000
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
@@ -208,6 +237,7 @@ patternProperties:
|
||||
- st,stm32f4-adc
|
||||
- st,stm32h7-adc
|
||||
- st,stm32mp1-adc
|
||||
- st,stm32mp13-adc
|
||||
|
||||
reg:
|
||||
description: |
|
||||
@@ -229,7 +259,7 @@ patternProperties:
|
||||
interrupts:
|
||||
description: |
|
||||
IRQ Line for the ADC instance. Valid values are:
|
||||
- 0 for adc@0
|
||||
- 0 for adc@0 (single adc for stm32mp13)
|
||||
- 1 for adc@100
|
||||
- 2 for adc@200 (stm32f4 only)
|
||||
maxItems: 1
|
||||
@@ -250,13 +280,14 @@ patternProperties:
|
||||
assigned-resolution-bits:
|
||||
description: |
|
||||
Resolution (bits) to use for conversions:
|
||||
- can be 6, 8, 10 or 12 on stm32f4
|
||||
- can be 6, 8, 10 or 12 on stm32f4 and stm32mp13
|
||||
- can be 8, 10, 12, 14 or 16 on stm32h7 and stm32mp1
|
||||
|
||||
st,adc-channels:
|
||||
description: |
|
||||
List of single-ended channels muxed for this ADC. It can have up to:
|
||||
- 16 channels, numbered from 0 to 15 (for in0..in15) on stm32f4
|
||||
- 19 channels, numbered from 0 to 18 (for in0..in18) on stm32mp13.
|
||||
- 20 channels, numbered from 0 to 19 (for in0..in19) on stm32h7 and
|
||||
stm32mp1.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
@@ -322,7 +353,7 @@ patternProperties:
|
||||
label:
|
||||
description: |
|
||||
Unique name to identify which channel this is.
|
||||
Reserved label names "vddcore", "vrefint" and "vbat"
|
||||
Reserved label names "vddcore", "vddcpu", "vddq_ddr", "vrefint" and "vbat"
|
||||
are used to identify internal channels with matching names.
|
||||
|
||||
diff-channels:
|
||||
@@ -419,6 +450,37 @@ patternProperties:
|
||||
items:
|
||||
minimum: 40
|
||||
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: st,stm32mp13-adc
|
||||
|
||||
then:
|
||||
properties:
|
||||
reg:
|
||||
const: 0x0
|
||||
|
||||
interrupts:
|
||||
const: 0
|
||||
|
||||
assigned-resolution-bits:
|
||||
enum: [6, 8, 10, 12]
|
||||
default: 12
|
||||
|
||||
st,adc-channels:
|
||||
minItems: 1
|
||||
maxItems: 19
|
||||
items:
|
||||
minimum: 0
|
||||
maximum: 18
|
||||
|
||||
st,min-sample-time-nsecs:
|
||||
minItems: 1
|
||||
maxItems: 19
|
||||
items:
|
||||
minimum: 40
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
|
||||
@@ -0,0 +1,373 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/addac/adi,ad74115.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Analog Devices AD74115H device
|
||||
|
||||
maintainers:
|
||||
- Cosmin Tanislav <cosmin.tanislav@analog.com>
|
||||
|
||||
description: |
|
||||
The AD74115H is a single-channel software configurable input/output
|
||||
device for industrial control applications. It contains functionality for
|
||||
analog output, analog input, digital output, digital input, resistance
|
||||
temperature detector, and thermocouple measurements integrated into a single
|
||||
chip solution with an SPI interface. The device features a 16-bit ADC and a
|
||||
14-bit DAC.
|
||||
|
||||
https://www.analog.com/en/products/ad74115h.html
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- adi,ad74115h
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
spi-max-frequency:
|
||||
maximum: 24000000
|
||||
|
||||
spi-cpol: true
|
||||
|
||||
reset-gpios: true
|
||||
|
||||
interrupts:
|
||||
minItems: 1
|
||||
maxItems: 2
|
||||
|
||||
interrupt-names:
|
||||
minItems: 1
|
||||
maxItems: 2
|
||||
items:
|
||||
enum:
|
||||
- adc_rdy
|
||||
- alert
|
||||
|
||||
avdd-supply: true
|
||||
avcc-supply: true
|
||||
dvcc-supply: true
|
||||
dovdd-supply: true
|
||||
refin-supply: true
|
||||
|
||||
adi,ch-func:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: |
|
||||
Channel function.
|
||||
0 - High impedance
|
||||
1 - Voltage output
|
||||
2 - Current output
|
||||
3 - Voltage input
|
||||
4 - Current input, externally-powered
|
||||
5 - Current input, loop-powered
|
||||
6 - Resistance input
|
||||
7 - RTD measure
|
||||
8 - Digital input logic
|
||||
9 - Digital input, loop-powered
|
||||
10 - Current output with HART
|
||||
11 - Current input, externally-powered, with HART
|
||||
12 - Current input, loop-powered, with HART
|
||||
minimum: 0
|
||||
maximum: 12
|
||||
default: 0
|
||||
|
||||
adi,conv2-mux:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: |
|
||||
Input node for ADC conversion 2.
|
||||
0 - SENSE_EXT1 to AGND_SENSE
|
||||
1 - SENSE_EXT2 to AGND_SENSE
|
||||
2 - SENSE_EXT2 to SENSE_EXT1
|
||||
3 - AGND to AGND
|
||||
minimum: 0
|
||||
maximum: 3
|
||||
default: 0
|
||||
|
||||
adi,conv2-range-microvolt:
|
||||
description: Conversion range for ADC conversion 2.
|
||||
oneOf:
|
||||
- items:
|
||||
- enum: [-2500000, 0]
|
||||
- const: 2500000
|
||||
- items:
|
||||
- enum: [-12000000, 0]
|
||||
- const: 12000000
|
||||
- items:
|
||||
- const: -2500000
|
||||
- const: 0
|
||||
- items:
|
||||
- const: -104000
|
||||
- const: 104000
|
||||
- items:
|
||||
- const: 0
|
||||
- const: 625000
|
||||
|
||||
adi,sense-agnd-buffer-low-power:
|
||||
type: boolean
|
||||
description:
|
||||
Whether to enable low-power buffered mode for the AGND sense pin.
|
||||
|
||||
adi,lf-buffer-low-power:
|
||||
type: boolean
|
||||
description:
|
||||
Whether to enable low-power buffered mode for the low-side filtered
|
||||
sense pin.
|
||||
|
||||
adi,hf-buffer-low-power:
|
||||
type: boolean
|
||||
description:
|
||||
Whether to enable low-power buffered mode for the high-side filtered
|
||||
sense pin.
|
||||
|
||||
adi,ext2-buffer-low-power:
|
||||
type: boolean
|
||||
description: Whether to enable low-power buffered mode for the EXT2 pin.
|
||||
|
||||
adi,ext1-buffer-low-power:
|
||||
type: boolean
|
||||
description: Whether to enable low-power buffered mode for the EXT1 pin.
|
||||
|
||||
adi,comparator-invert:
|
||||
type: boolean
|
||||
description: Whether to invert the comparator output.
|
||||
|
||||
adi,digital-input-sink-range-high:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: |
|
||||
When not present, the digital input range is from 0 to 3700uA in steps
|
||||
of 120uA, with a ~2k series resistance.
|
||||
When present, the digital input range is from 0 to 7400uA in steps
|
||||
of 240uA, with a ~1k series resistance.
|
||||
|
||||
adi,digital-input-sink-microamp:
|
||||
description: Sink current in digital input mode.
|
||||
minimum: 0
|
||||
maximum: 3700
|
||||
default: 0
|
||||
|
||||
adi,digital-input-debounce-mode-counter-reset:
|
||||
type: boolean
|
||||
description: |
|
||||
When not present, a counter increments when the signal is asserted
|
||||
and decrements when the signal is de-asserted.
|
||||
When present, a counter increments while the signal is asserted and
|
||||
resets when the signal de-asserts
|
||||
|
||||
adi,digital-input-unbuffered:
|
||||
type: boolean
|
||||
description: Whether to buffer digital input signals.
|
||||
|
||||
adi,digital-input-short-circuit-detection:
|
||||
type: boolean
|
||||
description: Whether to detect digital input short circuits.
|
||||
|
||||
adi,digital-input-open-circuit-detection:
|
||||
type: boolean
|
||||
description: Whether to detect digital input open circuits.
|
||||
|
||||
adi,digital-input-threshold-mode-fixed:
|
||||
type: boolean
|
||||
description: |
|
||||
When not present, the digital input threshold range is -0.96 * AVDD
|
||||
to AVDD.
|
||||
When present, the threshold range is fixed from -19V to 30V.
|
||||
|
||||
adi,dac-bipolar:
|
||||
type: boolean
|
||||
description: |
|
||||
When not present, the DAC operates in the 0V to 12V range.
|
||||
When present, the DAC operates in the -12V to 12V range.
|
||||
|
||||
adi,charge-pump:
|
||||
type: boolean
|
||||
description: Whether to enable the internal charge pump.
|
||||
|
||||
adi,dac-hart-slew:
|
||||
type: boolean
|
||||
description: Whether to use a HART-compatible slew rate.
|
||||
|
||||
adi,dac-current-limit-low:
|
||||
type: boolean
|
||||
description: |
|
||||
When not present, the DAC short-circuit current limit is 32mA in
|
||||
either source or sink for VOUT and 4mA sink for IOUT.
|
||||
When present, the limit is 16mA in either source or sink for VOUT,
|
||||
1mA sink for IOUT.
|
||||
|
||||
adi,4-wire-rtd:
|
||||
type: boolean
|
||||
description: |
|
||||
When not present, the ADC should be used for measuring 3-wire RTDs.
|
||||
When present, the ADC should be used for measuring 4-wire RTDs.
|
||||
|
||||
adi,3-wire-rtd-excitation-swap:
|
||||
type: boolean
|
||||
description: Whether to swap the excitation for 3-wire RTD.
|
||||
|
||||
adi,rtd-excitation-current-microamp:
|
||||
description: Excitation current to apply to RTD.
|
||||
enum: [250, 500, 750, 1000]
|
||||
default: 250
|
||||
|
||||
adi,ext1-burnout:
|
||||
type: boolean
|
||||
description: Whether to enable burnout current for EXT1.
|
||||
|
||||
adi,ext1-burnout-current-nanoamp:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description:
|
||||
Burnout current in nanoamps to be applied to EXT1.
|
||||
enum: [0, 50, 500, 1000, 10000]
|
||||
default: 0
|
||||
|
||||
adi,ext1-burnout-current-polarity-sourcing:
|
||||
type: boolean
|
||||
description: |
|
||||
When not present, the burnout current polarity for EXT1 is sinking.
|
||||
When present, the burnout current polarity for EXT1 is sourcing.
|
||||
|
||||
adi,ext2-burnout:
|
||||
type: boolean
|
||||
description: Whether to enable burnout current for EXT2.
|
||||
|
||||
adi,ext2-burnout-current-nanoamp:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: Burnout current in nanoamps to be applied to EXT2.
|
||||
enum: [0, 50, 500, 1000, 10000]
|
||||
default: 0
|
||||
|
||||
adi,ext2-burnout-current-polarity-sourcing:
|
||||
type: boolean
|
||||
description: |
|
||||
When not present, the burnout current polarity for EXT2 is sinking.
|
||||
When present, the burnout current polarity for EXT2 is sourcing.
|
||||
|
||||
adi,viout-burnout:
|
||||
type: boolean
|
||||
description: Whether to enable burnout current for VIOUT.
|
||||
|
||||
adi,viout-burnout-current-nanoamp:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: Burnout current in nanoamps to be applied to VIOUT.
|
||||
enum: [0, 1000, 10000]
|
||||
default: 0
|
||||
|
||||
adi,viout-burnout-current-polarity-sourcing:
|
||||
type: boolean
|
||||
description: |
|
||||
When not present, the burnout current polarity for VIOUT is sinking.
|
||||
When present, the burnout current polarity for VIOUT is sourcing.
|
||||
|
||||
adi,gpio0-mode:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: |
|
||||
GPIO functions.
|
||||
0 - Disabled
|
||||
1 - Logic I/O
|
||||
2 - Comparator output
|
||||
3 - Control HART CD
|
||||
4 - Monitor HART CD
|
||||
5 - Monitor HART EOM status
|
||||
minimum: 0
|
||||
maximum: 5
|
||||
default: 0
|
||||
|
||||
adi,gpio1-mode:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: |
|
||||
GPIO functions.
|
||||
0 - Disabled
|
||||
1 - Logic I/O
|
||||
2 - Drive external digital output FET
|
||||
3 - Control HART RXD
|
||||
4 - Monitor HART RXD
|
||||
5 - Monitor HART SOM status
|
||||
minimum: 0
|
||||
maximum: 5
|
||||
default: 0
|
||||
|
||||
adi,gpio2-mode:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: |
|
||||
GPIO functions.
|
||||
0 - Disabled
|
||||
1 - Logic I/O
|
||||
2 - Drive internal digital output FET
|
||||
3 - Control HART TXD
|
||||
4 - Monitor HART TXD
|
||||
5 - Monitor HART TX complete status
|
||||
minimum: 0
|
||||
maximum: 5
|
||||
default: 0
|
||||
|
||||
adi,gpio3-mode:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: |
|
||||
GPIO functions.
|
||||
0 - Disabled
|
||||
1 - Logic I/O
|
||||
2 - High impedance
|
||||
3 - Control HART RTS
|
||||
4 - Monitor HART RTS
|
||||
5 - Monitor HART CD complete status
|
||||
minimum: 0
|
||||
maximum: 5
|
||||
default: 0
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- spi-cpol
|
||||
- avdd-supply
|
||||
|
||||
allOf:
|
||||
- $ref: /schemas/spi/spi-peripheral-props.yaml#
|
||||
- if:
|
||||
required:
|
||||
- adi,digital-input-sink-range-high
|
||||
then:
|
||||
properties:
|
||||
adi,digital-input-sink-microamp:
|
||||
maximum: 7400
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
addac@0 {
|
||||
compatible = "adi,ad74115h";
|
||||
reg = <0>;
|
||||
|
||||
spi-max-frequency = <12000000>;
|
||||
spi-cpol;
|
||||
|
||||
reset-gpios = <&gpio 27 GPIO_ACTIVE_LOW>;
|
||||
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupts = <26 IRQ_TYPE_EDGE_FALLING>;
|
||||
interrupt-names = "adc_rdy";
|
||||
|
||||
avdd-supply = <&ad74115_avdd>;
|
||||
|
||||
adi,ch-func = <1>;
|
||||
adi,conv2-mux = <2>;
|
||||
adi,conv2-range-microvolt = <(-12000000) 12000000>;
|
||||
|
||||
adi,gpio0-mode = <1>;
|
||||
adi,gpio1-mode = <1>;
|
||||
adi,gpio2-mode = <1>;
|
||||
adi,gpio3-mode = <1>;
|
||||
|
||||
adi,dac-bipolar;
|
||||
};
|
||||
};
|
||||
...
|
||||
@@ -51,6 +51,9 @@ properties:
|
||||
Shunt (sense) resistor value in micro-Ohms.
|
||||
default: 100000000
|
||||
|
||||
reset-gpios:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
@@ -58,8 +61,6 @@ required:
|
||||
- spi-cpol
|
||||
- refin-supply
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
patternProperties:
|
||||
"^channel@[0-3]$":
|
||||
type: object
|
||||
@@ -103,6 +104,11 @@ patternProperties:
|
||||
required:
|
||||
- reg
|
||||
|
||||
allOf:
|
||||
- $ref: /schemas/spi/spi-peripheral-props.yaml#
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
@@ -113,9 +119,7 @@ examples:
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
cs-gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
|
||||
|
||||
ad74413r@0 {
|
||||
addac@0 {
|
||||
compatible = "adi,ad74413r";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <1000000>;
|
||||
@@ -128,6 +132,7 @@ examples:
|
||||
interrupts = <26 IRQ_TYPE_EDGE_FALLING>;
|
||||
|
||||
refin-supply = <&ad74413r_refin>;
|
||||
reset-gpios = <&gpio2 6 GPIO_ACTIVE_LOW>;
|
||||
|
||||
channel@0 {
|
||||
reg = <0>;
|
||||
|
||||
@@ -102,8 +102,7 @@ allOf:
|
||||
- if:
|
||||
properties:
|
||||
adi,dc-dc-mode:
|
||||
contains:
|
||||
enum: [1, 3]
|
||||
enum: [1, 3]
|
||||
then:
|
||||
properties:
|
||||
adi,range-microvolt: false
|
||||
|
||||
@@ -8,7 +8,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
title: Analog Devices AD5766 DAC device driver
|
||||
|
||||
maintainers:
|
||||
- Cristian Pop <cristian.pop@analog.com>
|
||||
- Nuno Sá <nuno.sa@analog.com>
|
||||
|
||||
description: |
|
||||
Bindings for the Analog Devices AD5766 current DAC device. Datasheet can be
|
||||
|
||||
@@ -160,13 +160,16 @@ properties:
|
||||
2: +2dBm
|
||||
3: +5dBm
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
|
||||
allOf:
|
||||
- $ref: /schemas/spi/spi-peripheral-props.yaml#
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
spi {
|
||||
|
||||
@@ -0,0 +1,92 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/frequency/adi,adf4377.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: ADF4377 Microwave Wideband Synthesizer with Integrated VCO
|
||||
|
||||
maintainers:
|
||||
- Antoniu Miclaus <antoniu.miclaus@analog.com>
|
||||
- Dragos Bogdan <dragos.bogdan@analog.com>
|
||||
|
||||
description: |
|
||||
The ADF4377 is a high performance, ultralow jitter, dual output integer-N
|
||||
phased locked loop (PLL) with integrated voltage controlled oscillator (VCO)
|
||||
ideally suited for data converter and mixed signal front end (MxFE) clock
|
||||
applications.
|
||||
|
||||
https://www.analog.com/en/products/adf4377.html
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- adi,adf4377
|
||||
- adi,adf4378
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
spi-max-frequency:
|
||||
maximum: 10000000
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
clock-names:
|
||||
description:
|
||||
External clock that provides reference input frequency.
|
||||
items:
|
||||
- const: ref_in
|
||||
|
||||
chip-enable-gpios:
|
||||
description:
|
||||
GPIO that controls the Chip Enable Pin.
|
||||
maxItems: 1
|
||||
|
||||
clk1-enable-gpios:
|
||||
description:
|
||||
GPIO that controls the Enable Clock 1 Output Buffer Pin.
|
||||
maxItems: 1
|
||||
|
||||
clk2-enable-gpios:
|
||||
description:
|
||||
GPIO that controls the Enable Clock 2 Output Buffer Pin.
|
||||
maxItems: 1
|
||||
|
||||
adi,muxout-select:
|
||||
description:
|
||||
On chip multiplexer output selection.
|
||||
high_z - MUXOUT Pin set to high-Z.
|
||||
lock_detect - MUXOUT Pin set to lock detector output.
|
||||
muxout_low - MUXOUT Pin set to low.
|
||||
f_div_rclk_2 - MUXOUT Pin set to fDIV_RCLK/2.
|
||||
f_div_nclk_2 - MUXOUT Pin set to fDIV_NCLK/2.
|
||||
muxout_high - MUXOUT Pin set to high.
|
||||
enum: [high_z, lock_detect, muxout_low, f_div_rclk_2, f_div_nclk_2, muxout_high]
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
- clock-names
|
||||
|
||||
allOf:
|
||||
- $ref: /schemas/spi/spi-peripheral-props.yaml#
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
frequency@0 {
|
||||
compatible = "adi,adf4377";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <10000000>;
|
||||
clocks = <&adf4377_ref_in>;
|
||||
clock-names = "ref_in";
|
||||
};
|
||||
};
|
||||
...
|
||||
@@ -70,7 +70,10 @@ required:
|
||||
- clock-names
|
||||
- vcm-supply
|
||||
|
||||
additionalProperties: false
|
||||
allOf:
|
||||
- $ref: /schemas/spi/spi-peripheral-props.yaml#
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
|
||||
@@ -104,7 +104,10 @@ required:
|
||||
- clock-names
|
||||
- vcm-supply
|
||||
|
||||
additionalProperties: false
|
||||
allOf:
|
||||
- $ref: /schemas/spi/spi-peripheral-props.yaml#
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
|
||||
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
title: ADMV4420 K Band Downconverter
|
||||
|
||||
maintainers:
|
||||
- Cristian Pop <cristian.pop@analog.com>
|
||||
- Nuno Sá <nuno.sa@analog.com>
|
||||
|
||||
description:
|
||||
The ADMV4420 is a highly integrated, double balanced, active
|
||||
@@ -37,7 +37,11 @@ required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
allOf:
|
||||
- $ref: /schemas/spi/spi-peripheral-props.yaml#
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
|
||||
@@ -113,7 +113,10 @@ required:
|
||||
- clocks
|
||||
- clock-names
|
||||
|
||||
additionalProperties: false
|
||||
allOf:
|
||||
- $ref: /schemas/spi/spi-peripheral-props.yaml#
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
|
||||
@@ -38,7 +38,10 @@ required:
|
||||
- spi-cpol
|
||||
- spi-cpha
|
||||
|
||||
additionalProperties: false
|
||||
allOf:
|
||||
- $ref: /schemas/spi/spi-peripheral-props.yaml#
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
|
||||
@@ -56,7 +56,10 @@ required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
additionalProperties: false
|
||||
allOf:
|
||||
- $ref: /schemas/spi/spi-peripheral-props.yaml#
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
|
||||
@@ -79,6 +79,7 @@ required:
|
||||
- spi-cpol
|
||||
|
||||
allOf:
|
||||
- $ref: /schemas/spi/spi-peripheral-props.yaml#
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
@@ -107,7 +108,7 @@ allOf:
|
||||
dependencies:
|
||||
adi,sync-mode: [ clocks ]
|
||||
|
||||
additionalProperties: false
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
|
||||
@@ -31,6 +31,7 @@ properties:
|
||||
- invensense,icm42602
|
||||
- invensense,icm42605
|
||||
- invensense,icm42622
|
||||
- invensense,icm42631
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
@@ -32,12 +32,20 @@ properties:
|
||||
- st,lsm6dsrx
|
||||
- st,lsm6dst
|
||||
- st,lsm6dsop
|
||||
- st,lsm6dsv
|
||||
- st,lsm6dso16is
|
||||
- items:
|
||||
- const: st,asm330lhhx
|
||||
- const: st,lsm6dsr
|
||||
- items:
|
||||
- const: st,lsm6dstx
|
||||
- const: st,lsm6dst
|
||||
- items:
|
||||
- const: st,lsm6dsv16x
|
||||
- const: st,lsm6dsv
|
||||
- items:
|
||||
- const: st,ism330is
|
||||
- const: st,lsm6dso16is
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
@@ -30,7 +30,10 @@ required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
additionalProperties: false
|
||||
allOf:
|
||||
- $ref: /schemas/spi/spi-peripheral-props.yaml#
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
@@ -52,6 +55,7 @@ examples:
|
||||
compatible = "meas,ms5611";
|
||||
reg = <0>;
|
||||
vdd-supply = <&ldo_3v3_gnss>;
|
||||
spi-max-frequency = <20000000>;
|
||||
};
|
||||
};
|
||||
...
|
||||
|
||||
@@ -33,7 +33,10 @@ required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
additionalProperties: false
|
||||
allOf:
|
||||
- $ref: /schemas/spi/spi-peripheral-props.yaml#
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
|
||||
@@ -49,7 +49,10 @@ required:
|
||||
- spi-cpha
|
||||
- interrupts
|
||||
|
||||
additionalProperties: false
|
||||
allOf:
|
||||
- $ref: /schemas/spi/spi-peripheral-props.yaml#
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
|
||||
@@ -33,8 +33,6 @@ properties:
|
||||
|
||||
spi-cpha: true
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
@@ -43,6 +41,11 @@ dependencies:
|
||||
spi-cpol: [ spi-cpha ]
|
||||
spi-cpha: [ spi-cpol ]
|
||||
|
||||
allOf:
|
||||
- $ref: /schemas/spi/spi-peripheral-props.yaml#
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
spi {
|
||||
|
||||
@@ -4,19 +4,30 @@
|
||||
$id: http://devicetree.org/schemas/iio/temperature/adi,ltc2983.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Analog Devices LTC2983 Multi-sensor Temperature system
|
||||
title: Analog Devices LTC2983, LTC2986, LTM2985 Multi-sensor Temperature system
|
||||
|
||||
maintainers:
|
||||
- Nuno Sá <nuno.sa@analog.com>
|
||||
|
||||
description: |
|
||||
Analog Devices LTC2983 Multi-Sensor Digital Temperature Measurement System
|
||||
Analog Devices LTC2983, LTC2984, LTC2986, LTM2985 Multi-Sensor Digital
|
||||
Temperature Measurement Systems
|
||||
|
||||
https://www.analog.com/media/en/technical-documentation/data-sheets/2983fc.pdf
|
||||
https://www.analog.com/media/en/technical-documentation/data-sheets/2984fb.pdf
|
||||
https://www.analog.com/media/en/technical-documentation/data-sheets/29861fa.pdf
|
||||
https://www.analog.com/media/en/technical-documentation/data-sheets/ltm2985.pdf
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- adi,ltc2983
|
||||
oneOf:
|
||||
- enum:
|
||||
- adi,ltc2983
|
||||
- adi,ltc2986
|
||||
- adi,ltm2985
|
||||
- items:
|
||||
- const: adi,ltc2984
|
||||
- const: adi,ltc2983
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
@@ -25,26 +36,26 @@ properties:
|
||||
maxItems: 1
|
||||
|
||||
adi,mux-delay-config-us:
|
||||
description:
|
||||
The LTC2983 performs 2 or 3 internal conversion cycles per temperature
|
||||
result. Each conversion cycle is performed with different excitation and
|
||||
input multiplexer configurations. Prior to each conversion, these
|
||||
excitation circuits and input switch configurations are changed and an
|
||||
internal 1ms delay ensures settling prior to the conversion cycle in most
|
||||
cases. An extra delay can be configured using this property. The value is
|
||||
rounded to nearest 100us.
|
||||
description: |
|
||||
Extra delay prior to each conversion, in addition to the internal 1ms
|
||||
delay, for the multiplexer to switch input configurations and
|
||||
excitation values.
|
||||
|
||||
This property is supposed to be in microseconds, but to maintain
|
||||
compatibility, this value will be multiplied by 100 before usage.
|
||||
maximum: 255
|
||||
default: 0
|
||||
|
||||
adi,filter-notch-freq:
|
||||
description:
|
||||
Set's the default setting of the digital filter. The default is
|
||||
simultaneous 50/60Hz rejection.
|
||||
Notch frequency of the digital filter.
|
||||
0 - 50/60Hz rejection
|
||||
1 - 60Hz rejection
|
||||
2 - 50Hz rejection
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 0
|
||||
maximum: 2
|
||||
default: 0
|
||||
|
||||
'#address-cells':
|
||||
const: 1
|
||||
@@ -53,19 +64,20 @@ properties:
|
||||
const: 0
|
||||
|
||||
patternProperties:
|
||||
"@([1-9]|1[0-9]|20)$":
|
||||
"@([0-9a-f]+)$":
|
||||
type: object
|
||||
description: Sensor.
|
||||
|
||||
properties:
|
||||
reg:
|
||||
description:
|
||||
The channel number. It can be connected to one of the 20 channels of
|
||||
the device.
|
||||
Channel number. Connects the sensor to the channel with this number
|
||||
of the device.
|
||||
minimum: 1
|
||||
maximum: 20
|
||||
|
||||
adi,sensor-type:
|
||||
description: Identifies the type of sensor connected to the device.
|
||||
description: Type of sensor connected to the device.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
|
||||
required:
|
||||
@@ -74,9 +86,7 @@ patternProperties:
|
||||
|
||||
"^thermocouple@":
|
||||
type: object
|
||||
description:
|
||||
Represents a thermocouple sensor which is connected to one of the device
|
||||
channels.
|
||||
description: Thermocouple sensor.
|
||||
|
||||
properties:
|
||||
adi,sensor-type:
|
||||
@@ -95,86 +105,87 @@ patternProperties:
|
||||
maximum: 9
|
||||
|
||||
adi,single-ended:
|
||||
description:
|
||||
Boolean property which set's the thermocouple as single-ended.
|
||||
description: Whether the sensor is single-ended.
|
||||
type: boolean
|
||||
|
||||
adi,sensor-oc-current-microamp:
|
||||
description:
|
||||
This property set's the pulsed current value applied during
|
||||
open-circuit detect.
|
||||
description: Pulsed current value applied during open-circuit detect.
|
||||
enum: [10, 100, 500, 1000]
|
||||
default: 10
|
||||
|
||||
adi,cold-junction-handle:
|
||||
description:
|
||||
Phandle which points to a sensor object responsible for measuring
|
||||
the thermocouple cold junction temperature.
|
||||
$ref: "/schemas/types.yaml#/definitions/phandle"
|
||||
Sensor responsible for measuring the thermocouple cold junction
|
||||
temperature.
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
|
||||
adi,custom-thermocouple:
|
||||
description:
|
||||
This is a table, where each entry should be a pair of
|
||||
voltage(mv)-temperature(K). The entries must be given in nv and uK
|
||||
so that, the original values must be multiplied by 1000000. For
|
||||
more details look at table 69 and 70.
|
||||
Note should be signed, but dtc doesn't currently maintain the
|
||||
sign.
|
||||
Used for digitizing custom thermocouples.
|
||||
See Page 59 of the datasheet.
|
||||
$ref: /schemas/types.yaml#/definitions/uint64-matrix
|
||||
minItems: 3
|
||||
maxItems: 64
|
||||
items:
|
||||
minItems: 2
|
||||
maxItems: 2
|
||||
items:
|
||||
- description: Voltage point in nV, signed.
|
||||
- description: Temperature point in uK.
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
properties:
|
||||
adi,sensor-type:
|
||||
const: 9
|
||||
then:
|
||||
required:
|
||||
- adi,custom-thermocouple
|
||||
|
||||
"^diode@":
|
||||
type: object
|
||||
description:
|
||||
Represents a diode sensor which is connected to one of the device
|
||||
channels.
|
||||
description: Diode sensor.
|
||||
|
||||
properties:
|
||||
adi,sensor-type:
|
||||
description: Identifies the sensor as a diode.
|
||||
description: Sensor type for diodes.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
const: 28
|
||||
|
||||
adi,single-ended:
|
||||
description: Boolean property which set's the diode as single-ended.
|
||||
description: Whether the sensor is single-ended.
|
||||
type: boolean
|
||||
|
||||
adi,three-conversion-cycles:
|
||||
description:
|
||||
Boolean property which set's three conversion cycles removing
|
||||
parasitic resistance effects between the LTC2983 and the diode.
|
||||
Whether to use three conversion cycles to remove parasitic
|
||||
resistance between the device and the diode.
|
||||
type: boolean
|
||||
|
||||
adi,average-on:
|
||||
description:
|
||||
Boolean property which enables a running average of the diode
|
||||
temperature reading. This reduces the noise when the diode is used
|
||||
as a cold junction temperature element on an isothermal block
|
||||
where temperatures change slowly.
|
||||
Whether to use a running average of the diode temperature
|
||||
reading to reduce the noise when the diode is used as a cold
|
||||
junction temperature element on an isothermal block where
|
||||
temperatures change slowly.
|
||||
type: boolean
|
||||
|
||||
adi,excitation-current-microamp:
|
||||
description:
|
||||
This property controls the magnitude of the excitation current
|
||||
applied to the diode. Depending on the number of conversions
|
||||
cycles, this property will assume different predefined values on
|
||||
each cycle. Just set the value of the first cycle (1l).
|
||||
Magnitude of the 1l excitation current applied to the diode.
|
||||
4l excitation current will be 4 times this value, and 8l
|
||||
excitation current will be 8 times value.
|
||||
enum: [10, 20, 40, 80]
|
||||
default: 10
|
||||
|
||||
adi,ideal-factor-value:
|
||||
description:
|
||||
This property sets the diode ideality factor. The real value must
|
||||
be multiplied by 1000000 to remove the fractional part. For more
|
||||
information look at table 20 of the datasheet.
|
||||
Diode ideality factor.
|
||||
Set this property to 1000000 times the real value.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
default: 0
|
||||
|
||||
"^rtd@":
|
||||
type: object
|
||||
description:
|
||||
Represents a rtd sensor which is connected to one of the device channels.
|
||||
description: RTD sensor.
|
||||
|
||||
properties:
|
||||
reg:
|
||||
@@ -197,68 +208,82 @@ patternProperties:
|
||||
maximum: 18
|
||||
|
||||
adi,rsense-handle:
|
||||
description:
|
||||
Phandle pointing to a rsense object associated with this RTD.
|
||||
$ref: "/schemas/types.yaml#/definitions/phandle"
|
||||
description: Associated sense resistor sensor.
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
|
||||
adi,number-of-wires:
|
||||
description:
|
||||
Identifies the number of wires used by the RTD. Setting this
|
||||
property to 5 means 4 wires with Kelvin Rsense.
|
||||
Number of wires used by the RTD.
|
||||
5 means 4 wires with Kelvin sense resistor.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
enum: [2, 3, 4, 5]
|
||||
default: 2
|
||||
|
||||
adi,rsense-share:
|
||||
description:
|
||||
Boolean property which enables Rsense sharing, where one sense
|
||||
resistor is used for multiple 2-, 3-, and/or 4-wire RTDs.
|
||||
type: boolean
|
||||
|
||||
adi,current-rotate:
|
||||
description:
|
||||
Boolean property which enables excitation current rotation to
|
||||
automatically remove parasitic thermocouple effects. Note that
|
||||
this property is not allowed for 2- and 3-wire RTDs.
|
||||
Whether to enable sense resistor sharing, where one sense
|
||||
resistor is used by multiple sensors.
|
||||
type: boolean
|
||||
|
||||
adi,excitation-current-microamp:
|
||||
description:
|
||||
This property controls the magnitude of the excitation current
|
||||
applied to the RTD.
|
||||
description: Excitation current applied to the RTD.
|
||||
enum: [5, 10, 25, 50, 100, 250, 500, 1000]
|
||||
default: 5
|
||||
|
||||
adi,rtd-curve:
|
||||
description:
|
||||
This property set the RTD curve used and the corresponding
|
||||
Callendar-VanDusen constants. Look at table 30 of the datasheet.
|
||||
description: |
|
||||
RTD curve and the corresponding Callendar-VanDusen constants.
|
||||
0 - European
|
||||
1 - American
|
||||
2 - Japanese
|
||||
3 - ITS-90
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 0
|
||||
maximum: 3
|
||||
default: 0
|
||||
|
||||
adi,custom-rtd:
|
||||
description:
|
||||
This is a table, where each entry should be a pair of
|
||||
resistance(ohm)-temperature(K). The entries added here are in uohm
|
||||
and uK. For more details values look at table 74 and 75.
|
||||
Used for digitizing custom RTDs.
|
||||
See Page 62 of the datasheet.
|
||||
$ref: /schemas/types.yaml#/definitions/uint64-matrix
|
||||
minItems: 3
|
||||
maxItems: 64
|
||||
items:
|
||||
minItems: 3
|
||||
maxItems: 64
|
||||
items:
|
||||
minItems: 2
|
||||
maxItems: 2
|
||||
- description: Resistance point in uOhms.
|
||||
- description: Temperature point in uK.
|
||||
|
||||
required:
|
||||
- adi,rsense-handle
|
||||
|
||||
dependencies:
|
||||
adi,current-rotate: [ "adi,rsense-share" ]
|
||||
allOf:
|
||||
- if:
|
||||
properties:
|
||||
adi,number-of-wires:
|
||||
const: 4
|
||||
then:
|
||||
properties:
|
||||
adi,current-rotate:
|
||||
description:
|
||||
Whether to enable excitation current rotation to automatically
|
||||
remove parasitic thermocouple effects.
|
||||
type: boolean
|
||||
|
||||
dependencies:
|
||||
adi,current-rotate: [ "adi,rsense-share" ]
|
||||
|
||||
- if:
|
||||
properties:
|
||||
adi,sensor-type:
|
||||
const: 18
|
||||
then:
|
||||
required:
|
||||
- adi,custom-rtd
|
||||
|
||||
"^thermistor@":
|
||||
type: object
|
||||
description:
|
||||
Represents a thermistor sensor which is connected to one of the device
|
||||
channels.
|
||||
description: Thermistor sensor.
|
||||
|
||||
properties:
|
||||
adi,sensor-type:
|
||||
@@ -277,61 +302,53 @@ patternProperties:
|
||||
maximum: 27
|
||||
|
||||
adi,rsense-handle:
|
||||
description:
|
||||
Phandle pointing to a rsense object associated with this
|
||||
thermistor.
|
||||
$ref: "/schemas/types.yaml#/definitions/phandle"
|
||||
description: Associated sense resistor sensor.
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
|
||||
adi,single-ended:
|
||||
description:
|
||||
Boolean property which set's the thermistor as single-ended.
|
||||
description: Whether the sensor is single-ended.
|
||||
type: boolean
|
||||
|
||||
adi,rsense-share:
|
||||
description:
|
||||
Boolean property which enables Rsense sharing, where one sense
|
||||
resistor is used for multiple thermistors. Note that this property
|
||||
is ignored if adi,single-ended is set.
|
||||
Whether to enable sense resistor sharing, where one sense
|
||||
resistor is used by multiple sensors.
|
||||
type: boolean
|
||||
|
||||
adi,current-rotate:
|
||||
description:
|
||||
Boolean property which enables excitation current rotation to
|
||||
automatically remove parasitic thermocouple effects.
|
||||
Whether to enable excitation current rotation to automatically
|
||||
remove parasitic thermocouple effects.
|
||||
type: boolean
|
||||
|
||||
adi,excitation-current-nanoamp:
|
||||
description:
|
||||
This property controls the magnitude of the excitation current
|
||||
applied to the thermistor. Value 0 set's the sensor in auto-range
|
||||
mode.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
Excitation current applied to the thermistor.
|
||||
0 sets the sensor in auto-range mode.
|
||||
enum: [0, 250, 500, 1000, 5000, 10000, 25000, 50000, 100000, 250000,
|
||||
500000, 1000000]
|
||||
default: 0
|
||||
|
||||
adi,custom-thermistor:
|
||||
description:
|
||||
This is a table, where each entry should be a pair of
|
||||
resistance(ohm)-temperature(K). The entries added here are in uohm
|
||||
and uK only for custom thermistors. For more details look at table
|
||||
78 and 79.
|
||||
Used for digitizing custom thermistors.
|
||||
See Page 65 of the datasheet.
|
||||
$ref: /schemas/types.yaml#/definitions/uint64-matrix
|
||||
minItems: 3
|
||||
maxItems: 64
|
||||
items:
|
||||
minItems: 2
|
||||
maxItems: 2
|
||||
items:
|
||||
- description: Resistance point in uOhms.
|
||||
- description: Temperature point in uK.
|
||||
|
||||
adi,custom-steinhart:
|
||||
description:
|
||||
Steinhart-Hart coefficients are also supported and can
|
||||
be programmed into the device memory using this property. For
|
||||
Steinhart sensors the coefficients are given in the raw
|
||||
format. Look at table 82 for more information.
|
||||
Steinhart-Hart coefficients in raw format, used for digitizing
|
||||
custom thermistors.
|
||||
See Page 68 of the datasheet.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
items:
|
||||
minItems: 6
|
||||
maxItems: 6
|
||||
minItems: 6
|
||||
maxItems: 6
|
||||
|
||||
required:
|
||||
- adi,rsense-handle
|
||||
@@ -339,25 +356,78 @@ patternProperties:
|
||||
dependencies:
|
||||
adi,current-rotate: [ "adi,rsense-share" ]
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
properties:
|
||||
adi,sensor-type:
|
||||
const: 26
|
||||
then:
|
||||
properties:
|
||||
adi,excitation-current-nanoamp:
|
||||
enum: [250, 500, 1000, 5000, 10000, 25000, 50000, 100000,
|
||||
250000, 500000, 1000000]
|
||||
default: 1000
|
||||
required:
|
||||
- adi,custom-steinhart
|
||||
- if:
|
||||
properties:
|
||||
adi,sensor-type:
|
||||
const: 27
|
||||
then:
|
||||
properties:
|
||||
adi,excitation-current-nanoamp:
|
||||
enum: [250, 500, 1000, 5000, 10000, 25000, 50000, 100000,
|
||||
250000, 500000, 1000000]
|
||||
default: 1000
|
||||
required:
|
||||
- adi,custom-thermistor
|
||||
|
||||
"^adc@":
|
||||
type: object
|
||||
description: Represents a channel which is being used as a direct adc.
|
||||
description: Direct ADC sensor.
|
||||
|
||||
properties:
|
||||
adi,sensor-type:
|
||||
description: Identifies the sensor as a direct adc.
|
||||
description: Sensor type for direct ADC sensors.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
const: 30
|
||||
|
||||
adi,single-ended:
|
||||
description: Boolean property which set's the adc as single-ended.
|
||||
description: Whether the sensor is single-ended.
|
||||
type: boolean
|
||||
|
||||
"^temp@":
|
||||
type: object
|
||||
description: Active analog temperature sensor.
|
||||
|
||||
properties:
|
||||
adi,sensor-type:
|
||||
description: Sensor type for active analog temperature sensors.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
const: 31
|
||||
|
||||
adi,single-ended:
|
||||
description: Whether the sensor is single-ended.
|
||||
type: boolean
|
||||
|
||||
adi,custom-temp:
|
||||
description:
|
||||
Used for digitizing active analog temperature sensors.
|
||||
See Page 67 of the LTM2985 datasheet.
|
||||
$ref: /schemas/types.yaml#/definitions/uint64-matrix
|
||||
minItems: 3
|
||||
maxItems: 64
|
||||
items:
|
||||
items:
|
||||
- description: Voltage point in nV, signed.
|
||||
- description: Temperature point in uK.
|
||||
|
||||
required:
|
||||
- adi,custom-temp
|
||||
|
||||
"^rsense@":
|
||||
type: object
|
||||
description:
|
||||
Represents a rsense which is connected to one of the device channels.
|
||||
Rsense are used by thermistors and RTD's.
|
||||
description: Sense resistor sensor.
|
||||
|
||||
properties:
|
||||
reg:
|
||||
@@ -365,14 +435,12 @@ patternProperties:
|
||||
maximum: 20
|
||||
|
||||
adi,sensor-type:
|
||||
description: Identifies the sensor as a rsense.
|
||||
description: Sensor type sense resistor sensors.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
const: 29
|
||||
|
||||
adi,rsense-val-milli-ohms:
|
||||
description:
|
||||
Sets the value of the sense resistor. Look at table 20 of the
|
||||
datasheet for information.
|
||||
description: Value of the sense resistor.
|
||||
|
||||
required:
|
||||
- adi,rsense-val-milli-ohms
|
||||
@@ -384,6 +452,18 @@ required:
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- adi,ltc2983
|
||||
- adi,ltc2984
|
||||
then:
|
||||
patternProperties:
|
||||
"^temp@": false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
@@ -391,7 +471,7 @@ examples:
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
sensor_ltc2983: ltc2983@0 {
|
||||
temperature-sensor@0 {
|
||||
compatible = "adi,ltc2983";
|
||||
reg = <0>;
|
||||
|
||||
|
||||
@@ -25,9 +25,14 @@ properties:
|
||||
- items:
|
||||
- enum:
|
||||
- qcom,sc7280-cpu-bwmon
|
||||
- qcom,sc8280xp-cpu-bwmon
|
||||
- qcom,sdm845-bwmon
|
||||
- const: qcom,msm8998-bwmon
|
||||
- const: qcom,msm8998-bwmon # BWMON v4
|
||||
- items:
|
||||
- enum:
|
||||
- qcom,sc8280xp-llcc-bwmon
|
||||
- const: qcom,sc7280-llcc-bwmon
|
||||
- const: qcom,sc7280-llcc-bwmon # BWMON v5
|
||||
- const: qcom,sdm845-llcc-bwmon # BWMON v5
|
||||
|
||||
|
||||
@@ -16,13 +16,21 @@ description:
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- qcom,sc7180-osm-l3
|
||||
- qcom,sc7280-epss-l3
|
||||
- qcom,sc8180x-osm-l3
|
||||
- qcom,sdm845-osm-l3
|
||||
- qcom,sm8150-osm-l3
|
||||
- qcom,sm8250-epss-l3
|
||||
oneOf:
|
||||
- items:
|
||||
- enum:
|
||||
- qcom,sc7180-osm-l3
|
||||
- qcom,sc8180x-osm-l3
|
||||
- qcom,sdm845-osm-l3
|
||||
- qcom,sm8150-osm-l3
|
||||
- const: qcom,osm-l3
|
||||
- items:
|
||||
- enum:
|
||||
- qcom,sc7280-epss-l3
|
||||
- qcom,sc8280xp-epss-l3
|
||||
- qcom,sm8250-epss-l3
|
||||
- qcom,sm8350-epss-l3
|
||||
- const: qcom,epss-l3
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
@@ -56,7 +64,7 @@ examples:
|
||||
#define RPMH_CXO_CLK 0
|
||||
|
||||
osm_l3: interconnect@17d41000 {
|
||||
compatible = "qcom,sdm845-osm-l3";
|
||||
compatible = "qcom,sdm845-osm-l3", "qcom,osm-l3";
|
||||
reg = <0x17d41000 0x1400>;
|
||||
|
||||
clocks = <&rpmhcc RPMH_CXO_CLK>, <&gcc GPLL0>;
|
||||
|
||||
@@ -79,7 +79,7 @@ patternProperties:
|
||||
|
||||
iommus:
|
||||
minItems: 1
|
||||
maxItems: 2
|
||||
maxItems: 3
|
||||
|
||||
qcom,nsessions:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
|
||||
@@ -0,0 +1,64 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/nvmem/layouts/kontron,sl28-vpd.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: NVMEM layout of the Kontron SMARC-sAL28 vital product data
|
||||
|
||||
maintainers:
|
||||
- Michael Walle <michael@walle.cc>
|
||||
|
||||
description:
|
||||
The vital product data (VPD) of the sl28 boards contains a serial
|
||||
number and a base MAC address. The actual MAC addresses for the
|
||||
on-board ethernet devices are derived from this base MAC address by
|
||||
adding an offset.
|
||||
|
||||
select: false
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: kontron,sl28-vpd
|
||||
|
||||
serial-number:
|
||||
type: object
|
||||
description: The board's serial number
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
base-mac-address:
|
||||
type: object
|
||||
description:
|
||||
Base MAC address for all on-module network interfaces. The first
|
||||
argument of the phandle will be treated as an offset.
|
||||
|
||||
properties:
|
||||
"#nvmem-cell-cells":
|
||||
const: 1
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
otp-1 {
|
||||
compatible = "user-otp";
|
||||
|
||||
nvmem-layout {
|
||||
compatible = "kontron,sl28-vpd";
|
||||
|
||||
serial_number: serial-number {
|
||||
};
|
||||
|
||||
base_mac_address: base-mac-address {
|
||||
#nvmem-cell-cells = <1>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
...
|
||||
@@ -0,0 +1,34 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/nvmem/layouts/nvmem-layout.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: NVMEM (Non Volatile Memory) layouts
|
||||
|
||||
maintainers:
|
||||
- Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
|
||||
- Michael Walle <michael@walle.cc>
|
||||
- Miquel Raynal <miquel.raynal@bootlin.com>
|
||||
|
||||
description: |
|
||||
Most NVMEM layouts are static and thus do not require additional description
|
||||
besides the bytes/bits offset and length. Other layouts can be less statically
|
||||
define and might require dynamic reading of the NVMEM device in order to
|
||||
perform their parsing. The nvmem-layout container is here to describe these.
|
||||
|
||||
oneOf:
|
||||
- $ref: kontron,sl28-vpd.yaml
|
||||
- $ref: onie,tlv-layout.yaml
|
||||
|
||||
properties:
|
||||
compatible: true
|
||||
|
||||
'#address-cells': false
|
||||
|
||||
'#size-cells': false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
|
||||
unevaluatedProperties: false
|
||||
@@ -0,0 +1,147 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/nvmem/layouts/onie,tlv-layout.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: NVMEM layout of the ONIE tlv table
|
||||
|
||||
maintainers:
|
||||
- Miquel Raynal <miquel.raynal@bootlin.com>
|
||||
|
||||
description:
|
||||
Modern networking hardware implementing the Open Compute Project ONIE
|
||||
infrastructure shall provide a non-volatile memory with a table whose the
|
||||
content is well specified and gives many information about the manufacturer
|
||||
(name, country of manufacture, etc) as well as device caracteristics (serial
|
||||
number, hardware version, mac addresses, etc). The underlaying device type
|
||||
(flash, EEPROM,...) is not specified. The exact location of each value is also
|
||||
dynamic and should be discovered at run time because it depends on the
|
||||
parameters the manufacturer decided to embed.
|
||||
|
||||
select: false
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: onie,tlv-layout
|
||||
|
||||
product-name:
|
||||
type: object
|
||||
additionalProperties: false
|
||||
|
||||
part-number:
|
||||
type: object
|
||||
additionalProperties: false
|
||||
|
||||
serial-number:
|
||||
type: object
|
||||
additionalProperties: false
|
||||
|
||||
mac-address:
|
||||
type: object
|
||||
description:
|
||||
Base MAC address for all on-module network interfaces. The first
|
||||
argument of the phandle will be treated as an offset.
|
||||
|
||||
properties:
|
||||
"#nvmem-cell-cells":
|
||||
const: 1
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
manufacture-date:
|
||||
type: object
|
||||
additionalProperties: false
|
||||
|
||||
device-version:
|
||||
type: object
|
||||
additionalProperties: false
|
||||
|
||||
label-revision:
|
||||
type: object
|
||||
additionalProperties: false
|
||||
|
||||
platforn-name:
|
||||
type: object
|
||||
additionalProperties: false
|
||||
|
||||
onie-version:
|
||||
type: object
|
||||
additionalProperties: false
|
||||
|
||||
num-macs:
|
||||
type: object
|
||||
additionalProperties: false
|
||||
|
||||
manufacturer:
|
||||
type: object
|
||||
additionalProperties: false
|
||||
|
||||
country-code:
|
||||
type: object
|
||||
additionalProperties: false
|
||||
|
||||
vendor:
|
||||
type: object
|
||||
additionalProperties: false
|
||||
|
||||
diag-version:
|
||||
type: object
|
||||
additionalProperties: false
|
||||
|
||||
service-tag:
|
||||
type: object
|
||||
additionalProperties: false
|
||||
|
||||
vendor-extension:
|
||||
type: object
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
eeprom@56 {
|
||||
compatible = "atmel,24c64";
|
||||
read-only;
|
||||
reg = <0x56>;
|
||||
|
||||
nvmem-layout {
|
||||
compatible = "onie,tlv-layout";
|
||||
|
||||
serial-number {
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
- |
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
flash@0 {
|
||||
compatible = "m25p80", "jedec,spi-nor";
|
||||
reg = <0>;
|
||||
|
||||
otp {
|
||||
compatible = "user-otp";
|
||||
|
||||
nvmem-layout {
|
||||
compatible = "onie,tlv-layout";
|
||||
|
||||
mac-address {
|
||||
#nvmem-cell-cells = <1>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
...
|
||||
@@ -39,6 +39,13 @@ properties:
|
||||
when it's driven low (logical '0') to allow writing.
|
||||
maxItems: 1
|
||||
|
||||
nvmem-layout:
|
||||
$ref: /schemas/nvmem/layouts/nvmem-layout.yaml
|
||||
description:
|
||||
Alternative to the statically defined nvmem cells, this
|
||||
container may reference more advanced (dynamic) layout
|
||||
parsers.
|
||||
|
||||
patternProperties:
|
||||
"@[0-9a-f]+(,[0-7])?$":
|
||||
type: object
|
||||
@@ -67,6 +74,7 @@ examples:
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
|
||||
qfprom: eeprom@700000 {
|
||||
compatible = "qcom,msm8974-qfprom", "qcom,qfprom";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
reg = <0x00700000 0x100000>;
|
||||
|
||||
@@ -22,6 +22,7 @@ properties:
|
||||
compatible:
|
||||
enum:
|
||||
- st,stm32f4-otp
|
||||
- st,stm32mp13-bsec
|
||||
- st,stm32mp15-bsec
|
||||
|
||||
reg:
|
||||
|
||||
@@ -28,6 +28,9 @@ properties:
|
||||
items:
|
||||
- const: phy
|
||||
|
||||
power-domains:
|
||||
maxItems: 1
|
||||
|
||||
vbus-supply:
|
||||
description:
|
||||
A phandle to the regulator for USB VBUS.
|
||||
|
||||
@@ -20,6 +20,7 @@ properties:
|
||||
oneOf:
|
||||
- enum:
|
||||
- ingenic,jz4740-uart
|
||||
- ingenic,jz4750-uart
|
||||
- ingenic,jz4760-uart
|
||||
- ingenic,jz4780-uart
|
||||
- ingenic,x1000-uart
|
||||
@@ -31,6 +32,9 @@ properties:
|
||||
- items:
|
||||
- const: ingenic,jz4725b-uart
|
||||
- const: ingenic,jz4740-uart
|
||||
- items:
|
||||
- const: ingenic,jz4755-uart
|
||||
- const: ingenic,jz4750-uart
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
@@ -67,6 +67,7 @@ properties:
|
||||
- enum:
|
||||
- renesas,scif-r8a779a0 # R-Car V3U
|
||||
- renesas,scif-r8a779f0 # R-Car S4-8
|
||||
- renesas,scif-r8a779g0 # R-Car V4H
|
||||
- const: renesas,rcar-gen4-scif # R-Car Gen4
|
||||
- const: renesas,scif # generic SCIF compatible UART
|
||||
|
||||
|
||||
@@ -67,8 +67,7 @@ allOf:
|
||||
- if:
|
||||
properties:
|
||||
xlnx,use-parity:
|
||||
contains:
|
||||
const: 1
|
||||
const: 1
|
||||
then:
|
||||
required:
|
||||
- xlnx,odd-parity
|
||||
|
||||
@@ -1,60 +0,0 @@
|
||||
SLIM(Serial Low Power Interchip Media Bus) bus
|
||||
|
||||
SLIMbus is a 2-wire bus, and is used to communicate with peripheral
|
||||
components like audio-codec.
|
||||
|
||||
Required property for SLIMbus controller node:
|
||||
- compatible - name of SLIMbus controller
|
||||
|
||||
Child nodes:
|
||||
Every SLIMbus controller node can contain zero or more child nodes
|
||||
representing slave devices on the bus. Every SLIMbus slave device is
|
||||
uniquely determined by the enumeration address containing 4 fields:
|
||||
Manufacturer ID, Product code, Device index, and Instance value for
|
||||
the device.
|
||||
If child node is not present and it is instantiated after device
|
||||
discovery (slave device reporting itself present).
|
||||
|
||||
In some cases it may be necessary to describe non-probeable device
|
||||
details such as non-standard ways of powering up a device. In
|
||||
such cases, child nodes for those devices will be present as
|
||||
slaves of the SLIMbus controller, as detailed below.
|
||||
|
||||
Required property for SLIMbus child node if it is present:
|
||||
- reg - Should be ('Device index', 'Instance ID') from SLIMbus
|
||||
Enumeration Address.
|
||||
Device Index Uniquely identifies multiple Devices within
|
||||
a single Component.
|
||||
Instance ID Is for the cases where multiple Devices of the
|
||||
same type or Class are attached to the bus.
|
||||
|
||||
- compatible -"slimMID,PID". The textual representation of Manufacturer ID,
|
||||
Product Code, shall be in lower case hexadecimal with leading
|
||||
zeroes suppressed
|
||||
|
||||
Optional property for SLIMbus child node if it is present:
|
||||
- slim-ifc-dev - Should be phandle to SLIMBus Interface device.
|
||||
Required for devices which deal with streams.
|
||||
|
||||
SLIMbus example for Qualcomm's slimbus manager component:
|
||||
|
||||
slim@28080000 {
|
||||
compatible = "qcom,apq8064-slim", "qcom,slim";
|
||||
reg = <0x28080000 0x2000>,
|
||||
interrupts = <0 33 0>;
|
||||
clocks = <&lcc SLIMBUS_SRC>, <&lcc AUDIO_SLIMBUS_CLK>;
|
||||
clock-names = "iface", "core";
|
||||
#address-cells = <2>;
|
||||
#size-cell = <0>;
|
||||
|
||||
codec_ifd: ifd@0,0{
|
||||
compatible = "slim217,60";
|
||||
reg = <0 0>;
|
||||
};
|
||||
|
||||
codec: wcd9310@1,0{
|
||||
compatible = "slim217,60";
|
||||
reg = <1 0>;
|
||||
slim-ifc-dev = <&codec_ifd>;
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,120 @@
|
||||
# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/slimbus/qcom,slim-ngd.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Qualcomm SoC SLIMBus Non Generic Device (NGD) Controller
|
||||
|
||||
maintainers:
|
||||
- Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
|
||||
- Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
|
||||
|
||||
description:
|
||||
SLIMBus NGD controller is a light-weight driver responsible for communicating
|
||||
with SLIMBus slaves directly over the bus using messaging interface and
|
||||
communicating with master component residing on ADSP for bandwidth and
|
||||
data-channel management
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- qcom,slim-ngd-v1.5.0 # for MSM8996
|
||||
- qcom,slim-ngd-v2.1.0 # for SDM845
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
"#address-cells":
|
||||
const: 1
|
||||
|
||||
"#size-cells":
|
||||
const: 0
|
||||
|
||||
dmas:
|
||||
maxItems: 2
|
||||
|
||||
dma-names:
|
||||
items:
|
||||
- const: rx
|
||||
- const: tx
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
iommus:
|
||||
maxItems: 1
|
||||
|
||||
patternProperties:
|
||||
"^slim@[0-9a-f]+$":
|
||||
type: object
|
||||
$ref: slimbus.yaml#
|
||||
description:
|
||||
Each subnode represents an instance of NGD
|
||||
|
||||
properties:
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- "#address-cells"
|
||||
- "#size-cells"
|
||||
- dmas
|
||||
- dma-names
|
||||
- interrupts
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
|
||||
slim-ngd@171c0000 {
|
||||
compatible = "qcom,slim-ngd-v2.1.0";
|
||||
reg = <0x171c0000 0x2c000>;
|
||||
interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>;
|
||||
|
||||
dmas = <&slimbam 3>, <&slimbam 4>;
|
||||
dma-names = "rx", "tx";
|
||||
iommus = <&apps_smmu 0x1806 0x0>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
slim@1 {
|
||||
reg = <1>;
|
||||
#address-cells = <2>;
|
||||
#size-cells = <0>;
|
||||
|
||||
codec@1,0 {
|
||||
compatible = "slim217,250";
|
||||
reg = <1 0>;
|
||||
slim-ifc-dev = <&wcd9340_ifd>;
|
||||
|
||||
#sound-dai-cells = <1>;
|
||||
|
||||
interrupts-extended = <&tlmm 54 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <1>;
|
||||
|
||||
#clock-cells = <0>;
|
||||
clock-frequency = <9600000>;
|
||||
clock-output-names = "mclk";
|
||||
qcom,micbias1-microvolt = <1800000>;
|
||||
qcom,micbias2-microvolt = <1800000>;
|
||||
qcom,micbias3-microvolt = <1800000>;
|
||||
qcom,micbias4-microvolt = <1800000>;
|
||||
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
reset-gpios = <&tlmm 64 GPIO_ACTIVE_HIGH>;
|
||||
|
||||
/* Rest of the WCD9340 codec */
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,86 @@
|
||||
# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/slimbus/qcom,slim.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Qualcomm SoC SLIMbus controller
|
||||
|
||||
maintainers:
|
||||
- Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
|
||||
- Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
|
||||
|
||||
description:
|
||||
SLIMbus controller used when applications processor controls SLIMbus master
|
||||
component.
|
||||
|
||||
allOf:
|
||||
- $ref: slimbus.yaml#
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
items:
|
||||
- enum:
|
||||
- qcom,apq8064-slim
|
||||
- const: qcom,slim
|
||||
|
||||
reg:
|
||||
items:
|
||||
- description: Physical address of controller register blocks
|
||||
- description: SLEW RATE register
|
||||
|
||||
reg-names:
|
||||
items:
|
||||
- const: ctrl
|
||||
- const: slew
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: Interface clock for this controller
|
||||
- description: Interrupt for controller core's BAM
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: iface
|
||||
- const: core
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- reg-names
|
||||
- clocks
|
||||
- clock-names
|
||||
- interrupts
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/qcom,gcc-msm8960.h>
|
||||
#include <dt-bindings/clock/qcom,lcc-msm8960.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
|
||||
soc {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges;
|
||||
|
||||
slim@28080000 {
|
||||
compatible = "qcom,apq8064-slim", "qcom,slim";
|
||||
reg = <0x28080000 0x2000>, <0x80207c 4>;
|
||||
reg-names = "ctrl", "slew";
|
||||
interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&lcc SLIMBUS_SRC>, <&lcc AUDIO_SLIMBUS_CLK>;
|
||||
clock-names = "iface", "core";
|
||||
#address-cells = <2>;
|
||||
#size-cells = <0>;
|
||||
|
||||
audio-codec@1,0 {
|
||||
compatible = "slim217,60";
|
||||
reg = <1 0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -1,84 +0,0 @@
|
||||
Qualcomm SLIMBus Non Generic Device (NGD) Controller binding
|
||||
|
||||
SLIMBus NGD controller is a light-weight driver responsible for communicating
|
||||
with SLIMBus slaves directly over the bus using messaging interface and
|
||||
communicating with master component residing on ADSP for bandwidth and
|
||||
data-channel management
|
||||
|
||||
Please refer to slimbus/bus.txt for details of the common SLIMBus bindings.
|
||||
|
||||
- compatible:
|
||||
Usage: required
|
||||
Value type: <stringlist>
|
||||
Definition: must be "qcom,slim-ngd-v<MAJOR>.<MINOR>.<STEP>"
|
||||
must be one of the following.
|
||||
"qcom,slim-ngd-v1.5.0" for MSM8996
|
||||
"qcom,slim-ngd-v2.1.0" for SDM845
|
||||
|
||||
- reg:
|
||||
Usage: required
|
||||
Value type: <prop-encoded-array>
|
||||
Definition: must specify the base address and size of the controller
|
||||
register space.
|
||||
- dmas
|
||||
Usage: required
|
||||
Value type: <array of phandles>
|
||||
Definition: List of rx and tx dma channels
|
||||
|
||||
- dma-names
|
||||
Usage: required
|
||||
Value type: <stringlist>
|
||||
Definition: must be "rx" and "tx".
|
||||
|
||||
- interrupts:
|
||||
Usage: required
|
||||
Value type: <prop-encoded-array>
|
||||
Definition: must list controller IRQ.
|
||||
|
||||
#address-cells
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Should be 1, reflecting the instance id of ngd.
|
||||
|
||||
#size-cells
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Should be 0
|
||||
|
||||
= NGD Devices
|
||||
Each subnode represents an instance of NGD, must contain the following
|
||||
properties:
|
||||
|
||||
- reg:
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: Should be instance id of ngd.
|
||||
|
||||
#address-cells
|
||||
Usage: required
|
||||
Refer to slimbus/bus.txt for details of the common SLIMBus bindings.
|
||||
|
||||
#size-cells
|
||||
Usage: required
|
||||
Refer to slimbus/bus.txt for details of the common SLIMBus bindings.
|
||||
|
||||
= EXAMPLE
|
||||
|
||||
slim@91c0000 {
|
||||
compatible = "qcom,slim-ngd-v1.5.0";
|
||||
reg = <0x91c0000 0x2c000>;
|
||||
interrupts = <0 163 0>;
|
||||
dmas = <&slimbam 3>, <&slimbam 4>;
|
||||
dma-names = "rx", "tx";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
ngd@1 {
|
||||
reg = <1>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
codec@1 {
|
||||
compatible = "slim217,1a0";
|
||||
reg = <1 0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -1,39 +0,0 @@
|
||||
Qualcomm SLIMbus controller
|
||||
This controller is used if applications processor driver controls SLIMbus
|
||||
master component.
|
||||
|
||||
Required properties:
|
||||
|
||||
- #address-cells - refer to Documentation/devicetree/bindings/slimbus/bus.txt
|
||||
- #size-cells - refer to Documentation/devicetree/bindings/slimbus/bus.txt
|
||||
|
||||
- reg : Offset and length of the register region(s) for the device
|
||||
- reg-names : Register region name(s) referenced in reg above
|
||||
Required register resource entries are:
|
||||
"ctrl": Physical address of controller register blocks
|
||||
"slew": required for "qcom,apq8064-slim" SOC.
|
||||
- compatible : should be "qcom,<SOC-NAME>-slim" for SOC specific compatible
|
||||
followed by "qcom,slim" for fallback.
|
||||
- interrupts : Interrupt number used by this controller
|
||||
- clocks : Interface and core clocks used by this SLIMbus controller
|
||||
- clock-names : Required clock-name entries are:
|
||||
"iface" : Interface clock for this controller
|
||||
"core" : Interrupt for controller core's BAM
|
||||
|
||||
Example:
|
||||
|
||||
slim@28080000 {
|
||||
compatible = "qcom,apq8064-slim", "qcom,slim";
|
||||
reg = <0x28080000 0x2000>, <0x80207C 4>;
|
||||
reg-names = "ctrl", "slew";
|
||||
interrupts = <0 33 0>;
|
||||
clocks = <&lcc SLIMBUS_SRC>, <&lcc AUDIO_SLIMBUS_CLK>;
|
||||
clock-names = "iface", "core";
|
||||
#address-cells = <2>;
|
||||
#size-cell = <0>;
|
||||
|
||||
wcd9310: audio-codec@1,0{
|
||||
compatible = "slim217,60";
|
||||
reg = <1 0>;
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,95 @@
|
||||
# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/slimbus/slimbus.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: SLIM (Serial Low Power Interchip Media) bus
|
||||
|
||||
maintainers:
|
||||
- Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
|
||||
|
||||
description:
|
||||
SLIMbus is a 2-wire bus, and is used to communicate with peripheral
|
||||
components like audio-codec.
|
||||
|
||||
properties:
|
||||
$nodename:
|
||||
pattern: "^slim(@.*|-[0-9a-f])*$"
|
||||
|
||||
"#address-cells":
|
||||
const: 2
|
||||
|
||||
"#size-cells":
|
||||
const: 0
|
||||
|
||||
patternProperties:
|
||||
"^.*@[0-9a-f]+,[0-9a-f]+$":
|
||||
type: object
|
||||
description: |
|
||||
Every SLIMbus controller node can contain zero or more child nodes
|
||||
representing slave devices on the bus. Every SLIMbus slave device is
|
||||
uniquely determined by the enumeration address containing 4 fields::
|
||||
Manufacturer ID, Product code, Device index, and Instance value for the
|
||||
device.
|
||||
|
||||
If child node is not present and it is instantiated after device
|
||||
discovery (slave device reporting itself present).
|
||||
|
||||
In some cases it may be necessary to describe non-probeable device
|
||||
details such as non-standard ways of powering up a device. In such cases,
|
||||
child nodes for those devices will be present as slaves of the SLIMbus
|
||||
controller.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
pattern: "^slim[0-9a-f]+,[0-9a-f]+$"
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
description: |
|
||||
Pair of (device index, instande ID), where::
|
||||
- Device index, which uniquely identifies multiple devices within a
|
||||
single component.
|
||||
- Instance ID, can be used for the cases where multiple devices of
|
||||
the same type or class are attached to the bus.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
additionalProperties: true
|
||||
|
||||
required:
|
||||
- "#address-cells"
|
||||
- "#size-cells"
|
||||
|
||||
additionalProperties: true
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/qcom,gcc-msm8960.h>
|
||||
#include <dt-bindings/clock/qcom,lcc-msm8960.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
|
||||
soc {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges;
|
||||
|
||||
slim@28080000 {
|
||||
compatible = "qcom,apq8064-slim", "qcom,slim";
|
||||
reg = <0x28080000 0x2000>, <0x80207c 4>;
|
||||
reg-names = "ctrl", "slew";
|
||||
interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&lcc SLIMBUS_SRC>, <&lcc AUDIO_SLIMBUS_CLK>;
|
||||
clock-names = "iface", "core";
|
||||
#address-cells = <2>;
|
||||
#size-cells = <0>;
|
||||
|
||||
audio-codec@1,0 {
|
||||
compatible = "slim217,60";
|
||||
reg = <1 0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -85,6 +85,14 @@ properties:
|
||||
description: >
|
||||
which of the PMIC Arb provided channels to use for accesses
|
||||
|
||||
qcom,bus-id:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 0
|
||||
maximum: 1
|
||||
description: >
|
||||
SPMI bus instance. only applicable to PMIC arbiter version 7 and beyond.
|
||||
Supported values, 0 = primary bus, 1 = secondary bus
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg-names
|
||||
@@ -113,5 +121,7 @@ examples:
|
||||
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <4>;
|
||||
|
||||
qcom,bus-id = <0>;
|
||||
};
|
||||
|
||||
|
||||
@@ -43,7 +43,10 @@ properties:
|
||||
- const: rockchip,rk3066-usb
|
||||
- const: snps,dwc2
|
||||
- const: lantiq,arx100-usb
|
||||
- const: lantiq,ase-usb
|
||||
- const: lantiq,danube-usb
|
||||
- const: lantiq,xrx200-usb
|
||||
- const: lantiq,xrx300-usb
|
||||
- items:
|
||||
- enum:
|
||||
- amlogic,meson8-usb
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only or BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/usb/genesys,gl850g.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Genesys Logic GL850G USB 2.0 hub controller
|
||||
|
||||
maintainers:
|
||||
- Icenowy Zheng <uwu@icenowy.me>
|
||||
|
||||
allOf:
|
||||
- $ref: usb-device.yaml#
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- usb5e3,608
|
||||
|
||||
reg: true
|
||||
|
||||
reset-gpios:
|
||||
description: GPIO controlling the RESET# pin.
|
||||
|
||||
vdd-supply:
|
||||
description:
|
||||
the regulator that provides 3.3V core power to the hub.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
usb {
|
||||
dr_mode = "host";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
hub: hub@1 {
|
||||
compatible = "usb5e3,608";
|
||||
reg = <1>;
|
||||
reset-gpios = <&pio 7 2 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
@@ -28,6 +28,7 @@ properties:
|
||||
- mediatek,mt7622-xhci
|
||||
- mediatek,mt7623-xhci
|
||||
- mediatek,mt7629-xhci
|
||||
- mediatek,mt7986-xhci
|
||||
- mediatek,mt8173-xhci
|
||||
- mediatek,mt8183-xhci
|
||||
- mediatek,mt8186-xhci
|
||||
|
||||
@@ -24,6 +24,7 @@ properties:
|
||||
- mediatek,mt2712-mtu3
|
||||
- mediatek,mt8173-mtu3
|
||||
- mediatek,mt8183-mtu3
|
||||
- mediatek,mt8186-mtu3
|
||||
- mediatek,mt8188-mtu3
|
||||
- mediatek,mt8192-mtu3
|
||||
- mediatek,mt8195-mtu3
|
||||
|
||||
@@ -39,6 +39,7 @@ properties:
|
||||
- qcom,sm8250-dwc3
|
||||
- qcom,sm8350-dwc3
|
||||
- qcom,sm8450-dwc3
|
||||
- qcom,sm8550-dwc3
|
||||
- const: qcom,dwc3
|
||||
|
||||
reg:
|
||||
@@ -301,6 +302,7 @@ allOf:
|
||||
- qcom,sm8150-dwc3
|
||||
- qcom,sm8250-dwc3
|
||||
- qcom,sm8450-dwc3
|
||||
- qcom,sm8550-dwc3
|
||||
then:
|
||||
properties:
|
||||
clocks:
|
||||
@@ -358,6 +360,7 @@ allOf:
|
||||
- qcom,sm8250-dwc3
|
||||
- qcom,sm8350-dwc3
|
||||
- qcom,sm8450-dwc3
|
||||
- qcom,sm8550-dwc3
|
||||
then:
|
||||
properties:
|
||||
interrupts:
|
||||
|
||||
@@ -27,6 +27,7 @@ properties:
|
||||
should default to OTG.
|
||||
$ref: /schemas/types.yaml#/definitions/string
|
||||
enum: [host, peripheral, otg]
|
||||
default: otg
|
||||
|
||||
hnp-disable:
|
||||
description:
|
||||
|
||||
@@ -39,6 +39,11 @@ properties:
|
||||
the VBus line.
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
|
||||
wakeup-source:
|
||||
description:
|
||||
Specify if the USB phy can detect the remote wakeup signal
|
||||
while the system sleep.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- '#phy-cells'
|
||||
|
||||
@@ -1,89 +0,0 @@
|
||||
Microchip USB 2.0 Hi-Speed Hub Controller
|
||||
|
||||
The device node for the configuration of a Microchip USB251x/xBi USB 2.0
|
||||
Hi-Speed Controller.
|
||||
|
||||
Required properties :
|
||||
- compatible : Should be "microchip,usb251xb" or one of the specific types:
|
||||
"microchip,usb2512b", "microchip,usb2512bi", "microchip,usb2513b",
|
||||
"microchip,usb2513bi", "microchip,usb2514b", "microchip,usb2514bi",
|
||||
"microchip,usb2517", "microchip,usb2517i", "microchip,usb2422"
|
||||
- reg : I2C address on the selected bus (default is <0x2C>)
|
||||
|
||||
Optional properties :
|
||||
- reset-gpios : Should specify the gpio for hub reset
|
||||
- vdd-supply : Should specify the phandle to the regulator supplying vdd
|
||||
- skip-config : Skip Hub configuration, but only send the USB-Attach command
|
||||
- vendor-id : Set USB Vendor ID of the hub (16 bit, default is 0x0424)
|
||||
- product-id : Set USB Product ID of the hub (16 bit, default depends on type)
|
||||
- device-id : Set USB Device ID of the hub (16 bit, default is 0x0bb3)
|
||||
- language-id : Set USB Language ID (16 bit, default is 0x0000)
|
||||
- manufacturer : Set USB Manufacturer string (max 31 characters long)
|
||||
- product : Set USB Product string (max 31 characters long)
|
||||
- serial : Set USB Serial string (max 31 characters long)
|
||||
- {bus,self}-powered : selects between self- and bus-powered operation
|
||||
(boolean, default is self-powered)
|
||||
- disable-hi-speed : disable USB Hi-Speed support (boolean)
|
||||
- {multi,single}-tt : selects between multi- and single-transaction-translator
|
||||
(boolean, default is multi-tt)
|
||||
- disable-eop : disable End of Packet generation in full-speed mode (boolean)
|
||||
- {ganged,individual}-sensing : select over-current sense type in self-powered
|
||||
mode (boolean, default is individual)
|
||||
- {ganged,individual}-port-switching : select port power switching mode
|
||||
(boolean, default is individual)
|
||||
- dynamic-power-switching : enable auto-switching from self- to bus-powered
|
||||
operation if the local power source is removed or unavailable (boolean)
|
||||
- oc-delay-us : Delay time (in microseconds) for filtering the over-current
|
||||
sense inputs. Valid values are 100, 4000, 8000 (default) and 16000. If
|
||||
an invalid value is given, the default is used instead.
|
||||
- compound-device : indicate the hub is part of a compound device (boolean)
|
||||
- port-mapping-mode : enable port mapping mode (boolean)
|
||||
- led-{usb,speed}-mode : led usb/speed indication mode selection
|
||||
(boolean, default is speed mode)
|
||||
- string-support : enable string descriptor support (required for manufacturer,
|
||||
product and serial string configuration)
|
||||
- non-removable-ports : Should specify the ports which have a non-removable
|
||||
device connected.
|
||||
- sp-disabled-ports : Specifies the ports which will be self-power disabled
|
||||
- bp-disabled-ports : Specifies the ports which will be bus-power disabled
|
||||
- sp-max-total-current-microamp: Specifies max current consumed by the hub
|
||||
from VBUS when operating in self-powered hub. It includes the hub
|
||||
silicon along with all associated circuitry including a permanently
|
||||
attached peripheral (range: 0 - 100000 uA, default 1000 uA)
|
||||
- bp-max-total-current-microamp: Specifies max current consumed by the hub
|
||||
from VBUS when operating in self-powered hub. It includes the hub
|
||||
silicon along with all associated circuitry including a permanently
|
||||
attached peripheral (range: 0 - 510000 uA, default 100000 uA)
|
||||
- sp-max-removable-current-microamp: Specifies max current consumed by the hub
|
||||
from VBUS when operating in self-powered hub. It includes the hub
|
||||
silicon along with all associated circuitry excluding a permanently
|
||||
attached peripheral (range: 0 - 100000 uA, default 1000 uA)
|
||||
- bp-max-removable-current-microamp: Specifies max current consumed by the hub
|
||||
from VBUS when operating in self-powered hub. It includes the hub
|
||||
silicon along with all associated circuitry excluding a permanently
|
||||
attached peripheral (range: 0 - 510000 uA, default 100000 uA)
|
||||
- power-on-time-ms : Specifies the time it takes from the time the host
|
||||
initiates the power-on sequence to a port until the port has adequate
|
||||
power. The value is given in ms in a 0 - 510 range (default is 100ms).
|
||||
- swap-dx-lanes : Specifies the ports which will swap the differential-pair
|
||||
(D+/D-), default is not-swapped.
|
||||
|
||||
Examples:
|
||||
usb2512b@2c {
|
||||
compatible = "microchip,usb2512b";
|
||||
reg = <0x2c>;
|
||||
reset-gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
usb2514b@2c {
|
||||
compatible = "microchip,usb2514b";
|
||||
reg = <0x2c>;
|
||||
vendor-id = /bits/ 16 <0x0000>;
|
||||
product-id = /bits/ 16 <0x0000>;
|
||||
string-support;
|
||||
manufacturer = "Foo";
|
||||
product = "Foo-Bar";
|
||||
serial = "1234567890A";
|
||||
/* correct misplaced usb connectors on port 1,2 */
|
||||
swap-dx-lanes = <1 2>;
|
||||
};
|
||||
@@ -0,0 +1,271 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/usb/usb251xb.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Microchip USB 2.0 Hi-Speed Hub Controller
|
||||
|
||||
maintainers:
|
||||
- Richard Leitner <richard.leitner@skidata.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- microchip,usb2422
|
||||
- microchip,usb2512b
|
||||
- microchip,usb2512bi
|
||||
- microchip,usb2513b
|
||||
- microchip,usb2513bi
|
||||
- microchip,usb2514b
|
||||
- microchip,usb2514bi
|
||||
- microchip,usb2517
|
||||
- microchip,usb2517i
|
||||
- microchip,usb251xb
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
reset-gpios:
|
||||
description: |
|
||||
Should specify the gpio for hub reset
|
||||
|
||||
vdd-supply:
|
||||
description: |
|
||||
Should specify the phandle to the regulator supplying vdd
|
||||
|
||||
skip-config:
|
||||
$ref: /schemas/types.yaml#/definitions/flag
|
||||
description: |
|
||||
Skip Hub configuration, but only send the USB-Attach command
|
||||
|
||||
vendor-id:
|
||||
$ref: /schemas/types.yaml#/definitions/uint16
|
||||
default: 0x0424
|
||||
description: |
|
||||
Set USB Vendor ID of the hub
|
||||
|
||||
product-id:
|
||||
$ref: /schemas/types.yaml#/definitions/uint16
|
||||
description: |
|
||||
Set USB Product ID of the hub
|
||||
|
||||
device-id:
|
||||
$ref: /schemas/types.yaml#/definitions/uint16
|
||||
default: 0x0bb3
|
||||
description: |
|
||||
Set USB Device ID of the hub
|
||||
|
||||
language-id:
|
||||
$ref: /schemas/types.yaml#/definitions/uint16
|
||||
default: 0x0000
|
||||
description: |
|
||||
Set USB Language ID
|
||||
|
||||
manufacturer:
|
||||
$ref: /schemas/types.yaml#/definitions/string
|
||||
description: |
|
||||
Set USB Manufacturer string (max 31 characters long)
|
||||
|
||||
product:
|
||||
$ref: /schemas/types.yaml#/definitions/string
|
||||
description: |
|
||||
Set USB Product string (max 31 characters long)
|
||||
|
||||
serial:
|
||||
$ref: /schemas/types.yaml#/definitions/string
|
||||
description: |
|
||||
Set USB Serial string (max 31 characters long)
|
||||
|
||||
bus-powered:
|
||||
$ref: /schemas/types.yaml#/definitions/flag
|
||||
description: |
|
||||
selects between self- and bus-powered operation
|
||||
(boolean, default is self-powered)
|
||||
|
||||
self-powered:
|
||||
$ref: /schemas/types.yaml#/definitions/flag
|
||||
description: |
|
||||
selects between self- and bus-powered operation
|
||||
(boolean, default is self-powered)
|
||||
|
||||
disable-hi-speed:
|
||||
$ref: /schemas/types.yaml#/definitions/flag
|
||||
description: |
|
||||
disable USB Hi-Speed support (boolean)
|
||||
|
||||
multi-tt:
|
||||
$ref: /schemas/types.yaml#/definitions/flag
|
||||
description: |
|
||||
selects between multi- and single-transaction-translator
|
||||
(boolean, default is multi-tt)
|
||||
|
||||
single-tt:
|
||||
$ref: /schemas/types.yaml#/definitions/flag
|
||||
description: |
|
||||
selects between multi- and single-transaction-translator
|
||||
(boolean, default is multi-tt)
|
||||
|
||||
disable-eop:
|
||||
$ref: /schemas/types.yaml#/definitions/flag
|
||||
description: |
|
||||
disable End of Packet generation in full-speed mode (boolean)
|
||||
|
||||
ganged-sensing:
|
||||
$ref: /schemas/types.yaml#/definitions/flag
|
||||
description: |
|
||||
select over-current sense type in self-powered mode
|
||||
(boolean, default is individual)
|
||||
|
||||
individual-sensing:
|
||||
$ref: /schemas/types.yaml#/definitions/flag
|
||||
description: |
|
||||
select over-current sense type in self-powered mode
|
||||
(boolean, default is individual)
|
||||
|
||||
ganged-port-switching:
|
||||
$ref: /schemas/types.yaml#/definitions/flag
|
||||
description: |
|
||||
select port power switching mode (boolean, default is individual)
|
||||
|
||||
individual-port-switching:
|
||||
$ref: /schemas/types.yaml#/definitions/flag
|
||||
description: |
|
||||
select port power switching mode (boolean, default is individual)
|
||||
|
||||
dynamic-power-switching:
|
||||
$ref: /schemas/types.yaml#/definitions/flag
|
||||
description: |
|
||||
enable auto-switching from self- to bus-powered operation if the
|
||||
local power source is removed or unavailable (boolean)
|
||||
|
||||
oc-delay-us:
|
||||
enum: [100, 4000, 8000, 16000]
|
||||
default: 8000
|
||||
description: |
|
||||
Delay time (in microseconds) for filtering the over-current sense
|
||||
inputs. If an invalid value is given, the default is used instead.
|
||||
|
||||
compound-device:
|
||||
$ref: /schemas/types.yaml#/definitions/flag
|
||||
description: |
|
||||
indicate the hub is part of a compound device (boolean)
|
||||
|
||||
port-mapping-mode:
|
||||
$ref: /schemas/types.yaml#/definitions/flag
|
||||
description: |
|
||||
enable port mapping mode (boolean)
|
||||
|
||||
led-usb-mode:
|
||||
$ref: /schemas/types.yaml#/definitions/flag
|
||||
description: |
|
||||
led usb/speed indication mode selection (boolean, default is speed mode)
|
||||
|
||||
led-speed-mode:
|
||||
$ref: /schemas/types.yaml#/definitions/flag
|
||||
description: |
|
||||
led usb/speed indication mode selection (boolean, default is speed mode)
|
||||
|
||||
string-support:
|
||||
$ref: /schemas/types.yaml#/definitions/flag
|
||||
description: |
|
||||
enable string descriptor support (required for manufacturer, product
|
||||
and serial string configuration)
|
||||
|
||||
non-removable-ports:
|
||||
$ref: /schemas/types.yaml#/definitions/uint8-array
|
||||
description: |
|
||||
Should specify the ports which have a non-removable device connected.
|
||||
|
||||
sp-disabled-ports:
|
||||
$ref: /schemas/types.yaml#/definitions/uint8-array
|
||||
description: |
|
||||
Specifies the ports which will be self-power disabled
|
||||
|
||||
bp-disabled-ports:
|
||||
$ref: /schemas/types.yaml#/definitions/uint8-array
|
||||
description: |
|
||||
Specifies the ports which will be bus-power disabled
|
||||
|
||||
sp-max-total-current-microamp:
|
||||
maximum: 100000
|
||||
default: 1000
|
||||
description: |
|
||||
Specifies max current consumed by the hub from VBUS when
|
||||
operating in self-powered hub. It includes the hub silicon
|
||||
along with all associated circuitry including a permanently
|
||||
attached peripheral.
|
||||
|
||||
bp-max-total-current-microamp:
|
||||
maximum: 510000
|
||||
default: 100000
|
||||
description: |
|
||||
Specifies max current consumed by the hub from VBUS when
|
||||
operating in self-powered hub. It includes the hub silicon
|
||||
along with all associated circuitry including a permanently
|
||||
attached peripheral.
|
||||
|
||||
sp-max-removable-current-microamp:
|
||||
maximum: 100000
|
||||
default: 1000
|
||||
description: |
|
||||
Specifies max current consumed by the hub from VBUS when
|
||||
operating in self-powered hub. It includes the hub silicon
|
||||
along with all associated circuitry excluding a permanently
|
||||
attached peripheral.
|
||||
|
||||
bp-max-removable-current-microamp:
|
||||
maximum: 510000
|
||||
default: 100000
|
||||
description: |
|
||||
Specifies max current consumed by the hub from VBUS when
|
||||
operating in self-powered hub. It includes the hub silicon
|
||||
along with all associated circuitry excluding a permanently
|
||||
attached peripheral.
|
||||
|
||||
power-on-time-ms:
|
||||
maximum: 510
|
||||
default: 100
|
||||
description: |
|
||||
Specifies the time it takes from the time the host initiates the
|
||||
power-on sequence to a port until the port has adequate power.
|
||||
|
||||
swap-dx-lanes:
|
||||
$ref: /schemas/types.yaml#/definitions/uint8-array
|
||||
description: |
|
||||
Specifies the ports which will swap the differential-pair (D+/D-),
|
||||
default is not-swapped.
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
usb-hub@2c {
|
||||
compatible = "microchip,usb2512b";
|
||||
reg = <0x2c>;
|
||||
reset-gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
usb-hub@2d {
|
||||
compatible = "microchip,usb2514b";
|
||||
reg = <0x2d>;
|
||||
vendor-id = /bits/ 16 <0x0000>;
|
||||
product-id = /bits/ 16 <0x0000>;
|
||||
string-support;
|
||||
manufacturer = "Foo";
|
||||
product = "Foo-Bar";
|
||||
serial = "1234567890A";
|
||||
/* correct misplaced usb connectors on port 1,2 */
|
||||
swap-dx-lanes = <1 2>;
|
||||
};
|
||||
};
|
||||
@@ -494,6 +494,8 @@ patternProperties:
|
||||
description: GE Fanuc Intelligent Platforms Embedded Systems, Inc.
|
||||
"^gemei,.*":
|
||||
description: Gemei Digital Technology Co., Ltd.
|
||||
"^genesys,.*":
|
||||
description: Genesys Logic, Inc.
|
||||
"^geniatech,.*":
|
||||
description: Geniatech, Inc.
|
||||
"^giantec,.*":
|
||||
@@ -941,6 +943,8 @@ patternProperties:
|
||||
description: One Laptop Per Child
|
||||
"^oneplus,.*":
|
||||
description: OnePlus Technology (Shenzhen) Co., Ltd.
|
||||
"^onie,.*":
|
||||
description: Open Network Install Environment group
|
||||
"^onion,.*":
|
||||
description: Onion Corporation
|
||||
"^onnn,.*":
|
||||
|
||||
@@ -365,6 +365,7 @@ MEM
|
||||
devm_kmemdup()
|
||||
devm_krealloc()
|
||||
devm_kstrdup()
|
||||
devm_kstrdup_const()
|
||||
devm_kvasprintf()
|
||||
devm_kzalloc()
|
||||
|
||||
@@ -395,6 +396,8 @@ PCI
|
||||
|
||||
PHY
|
||||
devm_usb_get_phy()
|
||||
devm_usb_get_phy_by_node()
|
||||
devm_usb_get_phy_by_phandle()
|
||||
devm_usb_put_phy()
|
||||
|
||||
PINCTRL
|
||||
|
||||
@@ -78,6 +78,9 @@ Other functions
|
||||
uart_get_lsr_info uart_handle_dcd_change uart_handle_cts_change
|
||||
uart_try_toggle_sysrq uart_get_console
|
||||
|
||||
.. kernel-doc:: include/linux/serial_core.h
|
||||
:identifiers: uart_port_tx_limited uart_port_tx
|
||||
|
||||
Other notes
|
||||
-----------
|
||||
|
||||
|
||||
@@ -29,23 +29,28 @@ RS485 Serial Communications
|
||||
3. Data Structures Already Available in the Kernel
|
||||
==================================================
|
||||
|
||||
The Linux kernel provides the serial_rs485 structure (see [1]) to handle
|
||||
RS485 communications. This data structure is used to set and configure RS485
|
||||
The Linux kernel provides the struct serial_rs485 to handle RS485
|
||||
communications. This data structure is used to set and configure RS485
|
||||
parameters in the platform data and in ioctls.
|
||||
|
||||
The device tree can also provide RS485 boot time parameters (see [2]
|
||||
for bindings). The driver is in charge of filling this data structure from
|
||||
the values given by the device tree.
|
||||
The device tree can also provide RS485 boot time parameters
|
||||
[#DT-bindings]_. The serial core fills the struct serial_rs485 from the
|
||||
values given by the device tree when the driver calls
|
||||
uart_get_rs485_mode().
|
||||
|
||||
Any driver for devices capable of working both as RS232 and RS485 should
|
||||
implement the rs485_config callback and provide rs485_supported in the
|
||||
uart_port structure. The serial core calls rs485_config to do the device
|
||||
specific part in response to TIOCSRS485 ioctl (see below). The rs485_config
|
||||
callback receives a pointer to a sanitizated serial_rs485 structure. The
|
||||
serial_rs485 userspace provides is sanitized before calling rs485_config
|
||||
using rs485_supported that indicates what RS485 features the driver supports
|
||||
for the uart_port. TIOCGRS485 ioctl can be used to read back the
|
||||
serial_rs485 structure matching to the current configuration.
|
||||
implement the ``rs485_config`` callback and provide ``rs485_supported``
|
||||
in the ``struct uart_port``. The serial core calls ``rs485_config`` to do
|
||||
the device specific part in response to TIOCSRS485 ioctl (see below). The
|
||||
``rs485_config`` callback receives a pointer to a sanitizated struct
|
||||
serial_rs485. The struct serial_rs485 userspace provides is sanitized
|
||||
before calling ``rs485_config`` using ``rs485_supported`` that indicates
|
||||
what RS485 features the driver supports for the ``struct uart_port``.
|
||||
TIOCGRS485 ioctl can be used to read back the struct serial_rs485
|
||||
matching to the current configuration.
|
||||
|
||||
.. kernel-doc:: include/uapi/linux/serial.h
|
||||
:identifiers: serial_rs485 uart_get_rs485_mode
|
||||
|
||||
4. Usage from user-level
|
||||
========================
|
||||
@@ -103,29 +108,28 @@ RS485 Serial Communications
|
||||
========================
|
||||
|
||||
The Linux kernel provides addressing mode for multipoint RS-485 serial
|
||||
communications line. The addressing mode is enabled with SER_RS485_ADDRB
|
||||
flag in serial_rs485. Struct serial_rs485 has two additional flags and
|
||||
fields for enabling receive and destination addresses.
|
||||
communications line. The addressing mode is enabled with
|
||||
``SER_RS485_ADDRB`` flag in struct serial_rs485. The struct serial_rs485
|
||||
has two additional flags and fields for enabling receive and destination
|
||||
addresses.
|
||||
|
||||
Address mode flags:
|
||||
- SER_RS485_ADDRB: Enabled addressing mode (sets also ADDRB in termios).
|
||||
- SER_RS485_ADDR_RECV: Receive (filter) address enabled.
|
||||
- SER_RS485_ADDR_DEST: Set destination address.
|
||||
- ``SER_RS485_ADDRB``: Enabled addressing mode (sets also ADDRB in termios).
|
||||
- ``SER_RS485_ADDR_RECV``: Receive (filter) address enabled.
|
||||
- ``SER_RS485_ADDR_DEST``: Set destination address.
|
||||
|
||||
Address fields (enabled with corresponding SER_RS485_ADDR_* flag):
|
||||
- addr_recv: Receive address.
|
||||
- addr_dest: Destination address.
|
||||
Address fields (enabled with corresponding ``SER_RS485_ADDR_*`` flag):
|
||||
- ``addr_recv``: Receive address.
|
||||
- ``addr_dest``: Destination address.
|
||||
|
||||
Once a receive address is set, the communication can occur only with the
|
||||
particular device and other peers are filtered out. It is left up to the
|
||||
receiver side to enforce the filtering. Receive address will be cleared
|
||||
if SER_RS485_ADDR_RECV is not set.
|
||||
if ``SER_RS485_ADDR_RECV`` is not set.
|
||||
|
||||
Note: not all devices supporting RS485 support multipoint addressing.
|
||||
|
||||
6. References
|
||||
=============
|
||||
|
||||
[1] include/uapi/linux/serial.h
|
||||
|
||||
[2] Documentation/devicetree/bindings/serial/rs485.txt
|
||||
.. [#DT-bindings] Documentation/devicetree/bindings/serial/rs485.txt
|
||||
|
||||
+45
-4
@@ -1152,6 +1152,15 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git
|
||||
F: drivers/net/amt.c
|
||||
|
||||
ANALOG DEVICES INC AD4130 DRIVER
|
||||
M: Cosmin Tanislav <cosmin.tanislav@analog.com>
|
||||
L: linux-iio@vger.kernel.org
|
||||
S: Supported
|
||||
W: http://ez.analog.com/community/linux-device-drivers
|
||||
F: Documentation/ABI/testing/sysfs-bus-iio-adc-ad4130
|
||||
F: Documentation/devicetree/bindings/iio/adc/adi,ad4130.yaml
|
||||
F: drivers/iio/adc/ad4130.c
|
||||
|
||||
ANALOG DEVICES INC AD7192 DRIVER
|
||||
M: Alexandru Tachici <alexandru.tachici@analog.com>
|
||||
L: linux-iio@vger.kernel.org
|
||||
@@ -1201,6 +1210,14 @@ W: https://ez.analog.com/linux-software-drivers
|
||||
F: Documentation/devicetree/bindings/iio/adc/adi,ad7780.yaml
|
||||
F: drivers/iio/adc/ad7780.c
|
||||
|
||||
ANALOG DEVICES INC AD74115 DRIVER
|
||||
M: Cosmin Tanislav <cosmin.tanislav@analog.com>
|
||||
L: linux-iio@vger.kernel.org
|
||||
S: Supported
|
||||
W: http://ez.analog.com/community/linux-device-drivers
|
||||
F: Documentation/devicetree/bindings/iio/addac/adi,ad74115.yaml
|
||||
F: drivers/iio/addac/ad74115.c
|
||||
|
||||
ANALOG DEVICES INC AD74413R DRIVER
|
||||
M: Cosmin Tanislav <cosmin.tanislav@analog.com>
|
||||
L: linux-iio@vger.kernel.org
|
||||
@@ -1224,6 +1241,14 @@ W: https://ez.analog.com/linux-software-drivers
|
||||
F: Documentation/devicetree/bindings/iio/amplifiers/adi,ada4250.yaml
|
||||
F: drivers/iio/amplifiers/ada4250.c
|
||||
|
||||
ANALOG DEVICES INC ADF4377 DRIVER
|
||||
M: Antoniu Miclaus <antoniu.miclaus@analog.com>
|
||||
L: linux-iio@vger.kernel.org
|
||||
S: Supported
|
||||
W: https://ez.analog.com/linux-software-drivers
|
||||
F: Documentation/devicetree/bindings/iio/frequency/adi,adf4377.yaml
|
||||
F: drivers/iio/frequency/adf4377.c
|
||||
|
||||
ANALOG DEVICES INC ADGS1408 DRIVER
|
||||
M: Mircea Caprioru <mircea.caprioru@analog.com>
|
||||
S: Supported
|
||||
@@ -7935,6 +7960,12 @@ F: fs/notify/fanotify/
|
||||
F: include/linux/fanotify.h
|
||||
F: include/uapi/linux/fanotify.h
|
||||
|
||||
FARADAY FOTG210 USB2 DUAL-ROLE CONTROLLER
|
||||
M: Linus Walleij <linus.walleij@linaro.org>
|
||||
L: linux-usb@vger.kernel.org
|
||||
S: Maintained
|
||||
F: drivers/usb/fotg210/
|
||||
|
||||
FARSYNC SYNCHRONOUS DRIVER
|
||||
M: Kevin Curtis <kevin.curtis@farsite.co.uk>
|
||||
S: Supported
|
||||
@@ -11579,6 +11610,12 @@ F: drivers/mfd/khadas-mcu.c
|
||||
F: include/linux/mfd/khadas-mcu.h
|
||||
F: drivers/thermal/khadas_mcu_fan.c
|
||||
|
||||
KIONIX/ROHM KX022A ACCELEROMETER
|
||||
M: Matti Vaittinen <mazziesaccount@gmail.com>
|
||||
L: linux-iio@vger.kernel.org
|
||||
S: Supported
|
||||
F: drivers/iio/accel/kionix-kx022a*
|
||||
|
||||
KMEMLEAK
|
||||
M: Catalin Marinas <catalin.marinas@arm.com>
|
||||
S: Maintained
|
||||
@@ -12658,6 +12695,12 @@ S: Maintained
|
||||
F: Documentation/devicetree/bindings/regulator/maxim,max20086.yaml
|
||||
F: drivers/regulator/max20086-regulator.c
|
||||
|
||||
MAXIM MAX30208 TEMPERATURE SENSOR DRIVER
|
||||
M: Rajat Khandelwal <rajat.khandelwal@linux.intel.com>
|
||||
L: linux-iio@vger.kernel.org
|
||||
S: Maintained
|
||||
F: drivers/iio/temperature/max30208.c
|
||||
|
||||
MAXIM MAX77650 PMIC MFD DRIVER
|
||||
M: Bartosz Golaszewski <brgl@bgdev.pl>
|
||||
L: linux-kernel@vger.kernel.org
|
||||
@@ -13567,7 +13610,6 @@ F: arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
|
||||
|
||||
MHI BUS
|
||||
M: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
|
||||
R: Hemant Kumar <quic_hemantk@quicinc.com>
|
||||
L: mhi@lists.linux.dev
|
||||
L: linux-arm-msm@vger.kernel.org
|
||||
S: Maintained
|
||||
@@ -13802,7 +13844,7 @@ MICROCHIP USB251XB DRIVER
|
||||
M: Richard Leitner <richard.leitner@skidata.com>
|
||||
L: linux-usb@vger.kernel.org
|
||||
S: Maintained
|
||||
F: Documentation/devicetree/bindings/usb/usb251xb.txt
|
||||
F: Documentation/devicetree/bindings/usb/usb251xb.yaml
|
||||
F: drivers/usb/misc/usb251xb.c
|
||||
|
||||
MICROCHIP USBA UDC DRIVER
|
||||
@@ -14744,10 +14786,9 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux.git
|
||||
F: arch/nios2/
|
||||
|
||||
NITRO ENCLAVES (NE)
|
||||
M: Andra Paraschiv <andraprs@amazon.com>
|
||||
M: Alexandru Vasile <lexnv@amazon.com>
|
||||
M: Alexandru Ciobotaru <alcioa@amazon.com>
|
||||
L: linux-kernel@vger.kernel.org
|
||||
L: The AWS Nitro Enclaves Team <aws-nitro-enclaves-devel@amazon.com>
|
||||
S: Supported
|
||||
W: https://aws.amazon.com/ec2/nitro/nitro-enclaves/
|
||||
F: Documentation/virt/ne_overview.rst
|
||||
|
||||
@@ -154,13 +154,13 @@ static inline uint64_t cvmx_build_bits(uint64_t high_bit,
|
||||
|
||||
/**
|
||||
* Convert a memory pointer (void*) into a hardware compatible
|
||||
* memory address (uint64_t). Octeon hardware widgets don't
|
||||
* memory address (phys_addr_t). Octeon hardware widgets don't
|
||||
* understand logical addresses.
|
||||
*
|
||||
* @ptr: C style memory pointer
|
||||
* Returns Hardware physical address
|
||||
*/
|
||||
static inline uint64_t cvmx_ptr_to_phys(void *ptr)
|
||||
static inline phys_addr_t cvmx_ptr_to_phys(void *ptr)
|
||||
{
|
||||
if (sizeof(void *) == 8) {
|
||||
/*
|
||||
|
||||
@@ -911,7 +911,6 @@ CONFIG_USB_IDMOUSE=m
|
||||
CONFIG_USB_FTDI_ELAN=m
|
||||
CONFIG_USB_APPLEDISPLAY=m
|
||||
CONFIG_USB_SISUSBVGA=m
|
||||
CONFIG_USB_SISUSBVGA_CON=y
|
||||
CONFIG_USB_LD=m
|
||||
CONFIG_USB_TRANCEVIBRATOR=m
|
||||
CONFIG_USB_IOWARRIOR=m
|
||||
|
||||
@@ -53,7 +53,7 @@ struct coproc_instance {
|
||||
struct vas_window *txwin;
|
||||
};
|
||||
|
||||
static char *coproc_devnode(struct device *dev, umode_t *mode)
|
||||
static char *coproc_devnode(const struct device *dev, umode_t *mode)
|
||||
{
|
||||
return kasprintf(GFP_KERNEL, "crypto/%s", dev_name(dev));
|
||||
}
|
||||
|
||||
@@ -92,7 +92,6 @@ CONFIG_USB_SERIAL_PL2303=m
|
||||
CONFIG_USB_EMI62=m
|
||||
CONFIG_USB_EMI26=m
|
||||
CONFIG_USB_SISUSBVGA=m
|
||||
CONFIG_USB_SISUSBVGA_CON=y
|
||||
CONFIG_EXT2_FS=y
|
||||
CONFIG_EXT3_FS=y
|
||||
# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
|
||||
|
||||
@@ -1560,9 +1560,9 @@ static const struct file_operations pseudo_lock_dev_fops = {
|
||||
.mmap = pseudo_lock_dev_mmap,
|
||||
};
|
||||
|
||||
static char *pseudo_lock_devnode(struct device *dev, umode_t *mode)
|
||||
static char *pseudo_lock_devnode(const struct device *dev, umode_t *mode)
|
||||
{
|
||||
struct rdtgroup *rdtgrp;
|
||||
const struct rdtgroup *rdtgrp;
|
||||
|
||||
rdtgrp = dev_get_drvdata(dev);
|
||||
if (mode)
|
||||
|
||||
@@ -139,7 +139,7 @@ static int cpuid_device_destroy(unsigned int cpu)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static char *cpuid_devnode(struct device *dev, umode_t *mode)
|
||||
static char *cpuid_devnode(const struct device *dev, umode_t *mode)
|
||||
{
|
||||
return kasprintf(GFP_KERNEL, "cpu/%u/cpuid", MINOR(dev->devt));
|
||||
}
|
||||
|
||||
@@ -250,7 +250,7 @@ static int msr_device_destroy(unsigned int cpu)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static char *msr_devnode(struct device *dev, umode_t *mode)
|
||||
static char *msr_devnode(const struct device *dev, umode_t *mode)
|
||||
{
|
||||
return kasprintf(GFP_KERNEL, "cpu/%u/msr", MINOR(dev->devt));
|
||||
}
|
||||
|
||||
+1
-1
@@ -235,7 +235,7 @@ out_put_device:
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(bsg_register_queue);
|
||||
|
||||
static char *bsg_devnode(struct device *dev, umode_t *mode)
|
||||
static char *bsg_devnode(const struct device *dev, umode_t *mode)
|
||||
{
|
||||
return kasprintf(GFP_KERNEL, "bsg/%s", dev_name(dev));
|
||||
}
|
||||
|
||||
+2
-2
@@ -1189,9 +1189,9 @@ static void disk_release(struct device *dev)
|
||||
iput(disk->part0->bd_inode); /* frees the disk */
|
||||
}
|
||||
|
||||
static int block_uevent(struct device *dev, struct kobj_uevent_env *env)
|
||||
static int block_uevent(const struct device *dev, struct kobj_uevent_env *env)
|
||||
{
|
||||
struct gendisk *disk = dev_to_disk(dev);
|
||||
const struct gendisk *disk = dev_to_disk(dev);
|
||||
|
||||
return add_uevent_var(env, "DISKSEQ=%llu", disk->diskseq);
|
||||
}
|
||||
|
||||
@@ -40,7 +40,9 @@ hostprogs += makemapdata
|
||||
makemapdata-objs := makemapdata.o
|
||||
|
||||
quiet_cmd_mkmap = MKMAP $@
|
||||
cmd_mkmap = TOPDIR=$(srctree) $(obj)/makemapdata > $@
|
||||
cmd_mkmap = TOPDIR=$(srctree) \
|
||||
SPKDIR=$(if $(KBUILD_EXTMOD),$(KBUILD_EXTMOD),$(srctree)/drivers/accessibility/speakup) \
|
||||
$(obj)/makemapdata > $@
|
||||
|
||||
$(obj)/mapdata.h: $(obj)/makemapdata
|
||||
$(call cmd,mkmap)
|
||||
|
||||
@@ -914,6 +914,8 @@ static struct kobj_attribute say_word_ctl_attribute =
|
||||
__ATTR(say_word_ctl, 0644, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute spell_delay_attribute =
|
||||
__ATTR(spell_delay, 0644, spk_var_show, spk_var_store);
|
||||
static struct kobj_attribute cur_phonetic_attribute =
|
||||
__ATTR(cur_phonetic, 0644, spk_var_show, spk_var_store);
|
||||
|
||||
/*
|
||||
* These attributes are i18n related.
|
||||
@@ -967,6 +969,7 @@ static struct attribute *main_attrs[] = {
|
||||
&say_control_attribute.attr,
|
||||
&say_word_ctl_attribute.attr,
|
||||
&spell_delay_attribute.attr,
|
||||
&cur_phonetic_attribute.attr,
|
||||
NULL,
|
||||
};
|
||||
|
||||
|
||||
@@ -65,6 +65,7 @@ int spk_key_echo, spk_say_word_ctl;
|
||||
int spk_say_ctrl, spk_bell_pos;
|
||||
short spk_punc_mask;
|
||||
int spk_punc_level, spk_reading_punc;
|
||||
int spk_cur_phonetic;
|
||||
char spk_str_caps_start[MAXVARLEN + 1] = "\0";
|
||||
char spk_str_caps_stop[MAXVARLEN + 1] = "\0";
|
||||
char spk_str_pause[MAXVARLEN + 1] = "\0";
|
||||
@@ -1268,20 +1269,29 @@ int spk_set_key_info(const u_char *key_info, u_char *k_buffer)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct var_t spk_vars[] = {
|
||||
enum spk_vars_id {
|
||||
BELL_POS_ID = 0, SPELL_DELAY_ID, ATTRIB_BLEEP_ID,
|
||||
BLEEPS_ID, BLEEP_TIME_ID, PUNC_LEVEL_ID,
|
||||
READING_PUNC_ID, CURSOR_TIME_ID, SAY_CONTROL_ID,
|
||||
SAY_WORD_CTL_ID, NO_INTERRUPT_ID, KEY_ECHO_ID,
|
||||
CUR_PHONETIC_ID, V_LAST_VAR_ID, NB_ID
|
||||
};
|
||||
|
||||
static struct var_t spk_vars[NB_ID] = {
|
||||
/* bell must be first to set high limit */
|
||||
{BELL_POS, .u.n = {NULL, 0, 0, 0, 0, 0, NULL} },
|
||||
{SPELL_DELAY, .u.n = {NULL, 0, 0, 4, 0, 0, NULL} },
|
||||
{ATTRIB_BLEEP, .u.n = {NULL, 1, 0, 3, 0, 0, NULL} },
|
||||
{BLEEPS, .u.n = {NULL, 3, 0, 3, 0, 0, NULL} },
|
||||
{BLEEP_TIME, .u.n = {NULL, 30, 1, 200, 0, 0, NULL} },
|
||||
{PUNC_LEVEL, .u.n = {NULL, 1, 0, 4, 0, 0, NULL} },
|
||||
{READING_PUNC, .u.n = {NULL, 1, 0, 4, 0, 0, NULL} },
|
||||
{CURSOR_TIME, .u.n = {NULL, 120, 50, 600, 0, 0, NULL} },
|
||||
{SAY_CONTROL, TOGGLE_0},
|
||||
{SAY_WORD_CTL, TOGGLE_0},
|
||||
{NO_INTERRUPT, TOGGLE_0},
|
||||
{KEY_ECHO, .u.n = {NULL, 1, 0, 2, 0, 0, NULL} },
|
||||
[BELL_POS_ID] = { BELL_POS, .u.n = {NULL, 0, 0, 0, 0, 0, NULL} },
|
||||
[SPELL_DELAY_ID] = { SPELL_DELAY, .u.n = {NULL, 0, 0, 4, 0, 0, NULL} },
|
||||
[ATTRIB_BLEEP_ID] = { ATTRIB_BLEEP, .u.n = {NULL, 1, 0, 3, 0, 0, NULL} },
|
||||
[BLEEPS_ID] = { BLEEPS, .u.n = {NULL, 3, 0, 3, 0, 0, NULL} },
|
||||
[BLEEP_TIME_ID] = { BLEEP_TIME, .u.n = {NULL, 30, 1, 200, 0, 0, NULL} },
|
||||
[PUNC_LEVEL_ID] = { PUNC_LEVEL, .u.n = {NULL, 1, 0, 4, 0, 0, NULL} },
|
||||
[READING_PUNC_ID] = { READING_PUNC, .u.n = {NULL, 1, 0, 4, 0, 0, NULL} },
|
||||
[CURSOR_TIME_ID] = { CURSOR_TIME, .u.n = {NULL, 120, 50, 600, 0, 0, NULL} },
|
||||
[SAY_CONTROL_ID] { SAY_CONTROL, TOGGLE_0},
|
||||
[SAY_WORD_CTL_ID] = {SAY_WORD_CTL, TOGGLE_0},
|
||||
[NO_INTERRUPT_ID] = { NO_INTERRUPT, TOGGLE_0},
|
||||
[KEY_ECHO_ID] = { KEY_ECHO, .u.n = {NULL, 1, 0, 2, 0, 0, NULL} },
|
||||
[CUR_PHONETIC_ID] = { CUR_PHONETIC, .u.n = {NULL, 0, 0, 1, 0, 0, NULL} },
|
||||
V_LAST_VAR
|
||||
};
|
||||
|
||||
@@ -1712,8 +1722,12 @@ static void cursor_done(struct timer_list *unused)
|
||||
speakup_win_say(vc);
|
||||
else if (is_cursor == 1 || is_cursor == 4)
|
||||
say_line_from_to(vc, 0, vc->vc_cols, 0);
|
||||
else
|
||||
say_char(vc);
|
||||
else {
|
||||
if (spk_cur_phonetic == 1)
|
||||
say_phonetic_char(vc);
|
||||
else
|
||||
say_char(vc);
|
||||
}
|
||||
spk_keydown = 0;
|
||||
is_cursor = 0;
|
||||
out:
|
||||
@@ -2453,5 +2467,33 @@ out:
|
||||
return err;
|
||||
}
|
||||
|
||||
module_param_named(bell_pos, spk_vars[BELL_POS_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(spell_delay, spk_vars[SPELL_DELAY_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(attrib_bleep, spk_vars[ATTRIB_BLEEP_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(bleeps, spk_vars[BLEEPS_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(bleep_time, spk_vars[BLEEP_TIME_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(punc_level, spk_vars[PUNC_LEVEL_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(reading_punc, spk_vars[READING_PUNC_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(cursor_time, spk_vars[CURSOR_TIME_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(say_control, spk_vars[SAY_CONTROL_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(say_word_ctl, spk_vars[SAY_WORD_CTL_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(no_interrupt, spk_vars[NO_INTERRUPT_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(key_echo, spk_vars[KEY_ECHO_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(cur_phonetic, spk_vars[CUR_PHONETIC_ID].u.n.default_val, int, 0444);
|
||||
|
||||
MODULE_PARM_DESC(bell_pos, "This works much like a typewriter bell. If for example 72 is echoed to bell_pos, it will beep the PC speaker when typing on a line past character 72.");
|
||||
MODULE_PARM_DESC(spell_delay, "This controls how fast a word is spelled when speakup's spell word review command is pressed.");
|
||||
MODULE_PARM_DESC(attrib_bleep, "Beeps the PC speaker when there is an attribute change such as background color when using speakup review commands. One = on, zero = off.");
|
||||
MODULE_PARM_DESC(bleeps, "This controls whether one hears beeps through the PC speaker when using speakup review commands.");
|
||||
MODULE_PARM_DESC(bleep_time, "This controls the duration of the PC speaker beeps speakup produces.");
|
||||
MODULE_PARM_DESC(punc_level, "Controls the level of punctuation spoken as the screen is displayed, not reviewed.");
|
||||
MODULE_PARM_DESC(reading_punc, "It controls the level of punctuation when reviewing the screen with speakup's screen review commands.");
|
||||
MODULE_PARM_DESC(cursor_time, "This controls cursor delay when using arrow keys.");
|
||||
MODULE_PARM_DESC(say_control, "This controls if speakup speaks shift, alt and control when those keys are pressed or not.");
|
||||
MODULE_PARM_DESC(say_word_ctl, "Sets thw say_word_ctl on load.");
|
||||
MODULE_PARM_DESC(no_interrupt, "Controls if typing interrupts output from speakup.");
|
||||
MODULE_PARM_DESC(key_echo, "Controls if speakup speaks keys when they are typed. One = on zero = off or don't echo keys.");
|
||||
MODULE_PARM_DESC(cur_phonetic, "Controls if speakup speaks letters phonetically during navigation. One = on zero = off or don't speak phonetically.");
|
||||
|
||||
module_init(speakup_init);
|
||||
module_exit(speakup_exit);
|
||||
|
||||
@@ -51,12 +51,15 @@ main(int argc, char *argv[])
|
||||
{
|
||||
int value, i;
|
||||
struct st_key *this;
|
||||
const char *dir_name;
|
||||
const char *dir_name, *spk_dir_name;
|
||||
char *cp;
|
||||
|
||||
dir_name = getenv("TOPDIR");
|
||||
if (!dir_name)
|
||||
dir_name = ".";
|
||||
spk_dir_name = getenv("SPKDIR");
|
||||
if (!spk_dir_name)
|
||||
spk_dir_name = "drivers/accessibility/speakup";
|
||||
bzero(key_table, sizeof(key_table));
|
||||
add_key("shift", 1, is_shift);
|
||||
add_key("altgr", 2, is_shift);
|
||||
@@ -83,7 +86,7 @@ main(int argc, char *argv[])
|
||||
add_key(def_name, value, is_input);
|
||||
}
|
||||
|
||||
open_input(dir_name, "drivers/accessibility/speakup/spk_priv_keyinfo.h");
|
||||
open_input(spk_dir_name, "spk_priv_keyinfo.h");
|
||||
while (get_define()) {
|
||||
if (strlen(def_val) > 5) {
|
||||
//if (def_val[0] == '(')
|
||||
|
||||
@@ -105,6 +105,7 @@ extern int spk_no_intr, spk_say_ctrl, spk_say_word_ctl, spk_punc_level;
|
||||
extern int spk_reading_punc, spk_attrib_bleep, spk_bleeps;
|
||||
extern int spk_bleep_time, spk_bell_pos;
|
||||
extern int spk_spell_delay, spk_key_echo;
|
||||
extern int spk_cur_phonetic;
|
||||
extern short spk_punc_mask;
|
||||
extern short spk_pitch_shift, synth_flags;
|
||||
extern bool spk_quiet_boot;
|
||||
|
||||
@@ -34,14 +34,23 @@ static int synth_port_control;
|
||||
static int port_forced;
|
||||
static unsigned int synth_portlist[] = { 0x2a8, 0 };
|
||||
|
||||
static struct var_t vars[] = {
|
||||
{ CAPS_START, .u.s = {"\033P8" } },
|
||||
{ CAPS_STOP, .u.s = {"\033P5" } },
|
||||
{ RATE, .u.n = {"\033R%c", 9, 0, 17, 0, 0, "0123456789abcdefgh" } },
|
||||
{ PITCH, .u.n = {"\033P%d", 5, 0, 9, 0, 0, NULL } },
|
||||
{ VOL, .u.n = {"\033A%d", 5, 0, 9, 0, 0, NULL } },
|
||||
{ TONE, .u.n = {"\033V%d", 5, 0, 9, 0, 0, NULL } },
|
||||
{ DIRECT, .u.n = {NULL, 0, 0, 1, 0, 0, NULL } },
|
||||
enum default_vars_id {
|
||||
CAPS_START_ID = 0, CAPS_STOP_ID,
|
||||
RATE_ID, PITCH_ID,
|
||||
VOL_ID, TONE_ID,
|
||||
DIRECT_ID, V_LAST_VAR_ID,
|
||||
NB_ID
|
||||
};
|
||||
|
||||
|
||||
static struct var_t vars[NB_ID] = {
|
||||
[CAPS_START_ID] = { CAPS_START, .u.s = {"\033P8" } },
|
||||
[CAPS_STOP_ID] = { CAPS_STOP, .u.s = {"\033P5" } },
|
||||
[RATE_ID] = { RATE, .u.n = {"\033R%c", 9, 0, 17, 0, 0, "0123456789abcdefgh" } },
|
||||
[PITCH_ID] = { PITCH, .u.n = {"\033P%d", 5, 0, 9, 0, 0, NULL } },
|
||||
[VOL_ID] = { VOL, .u.n = {"\033A%d", 5, 0, 9, 0, 0, NULL } },
|
||||
[TONE_ID] = { TONE, .u.n = {"\033V%d", 5, 0, 9, 0, 0, NULL } },
|
||||
[DIRECT_ID] = { DIRECT, .u.n = {NULL, 0, 0, 1, 0, 0, NULL } },
|
||||
V_LAST_VAR
|
||||
};
|
||||
|
||||
@@ -305,9 +314,22 @@ static void accent_release(struct spk_synth *synth)
|
||||
|
||||
module_param_hw_named(port, port_forced, int, ioport, 0444);
|
||||
module_param_named(start, synth_acntpc.startup, short, 0444);
|
||||
module_param_named(rate, vars[RATE_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(pitch, vars[PITCH_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(vol, vars[VOL_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(tone, vars[TONE_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(direct, vars[DIRECT_ID].u.n.default_val, int, 0444);
|
||||
|
||||
|
||||
|
||||
MODULE_PARM_DESC(port, "Set the port for the synthesizer (override probing).");
|
||||
MODULE_PARM_DESC(start, "Start the synthesizer once it is loaded.");
|
||||
MODULE_PARM_DESC(rate, "Set the rate variable on load.");
|
||||
MODULE_PARM_DESC(pitch, "Set the pitch variable on load.");
|
||||
MODULE_PARM_DESC(vol, "Set the vol variable on load.");
|
||||
MODULE_PARM_DESC(tone, "Set the tone variable on load.");
|
||||
MODULE_PARM_DESC(direct, "Set the direct variable on load.");
|
||||
|
||||
|
||||
module_spk_synth(synth_acntpc);
|
||||
|
||||
|
||||
@@ -19,14 +19,24 @@
|
||||
|
||||
static int synth_probe(struct spk_synth *synth);
|
||||
|
||||
static struct var_t vars[] = {
|
||||
{ CAPS_START, .u.s = {"\033P8" } },
|
||||
{ CAPS_STOP, .u.s = {"\033P5" } },
|
||||
{ RATE, .u.n = {"\033R%c", 9, 0, 17, 0, 0, "0123456789abcdefgh" } },
|
||||
{ PITCH, .u.n = {"\033P%d", 5, 0, 9, 0, 0, NULL } },
|
||||
{ VOL, .u.n = {"\033A%d", 9, 0, 9, 0, 0, NULL } },
|
||||
{ TONE, .u.n = {"\033V%d", 5, 0, 9, 0, 0, NULL } },
|
||||
{ DIRECT, .u.n = {NULL, 0, 0, 1, 0, 0, NULL } },
|
||||
|
||||
enum default_vars_id {
|
||||
CAPS_START_ID = 0, CAPS_STOP_ID,
|
||||
RATE_ID, PITCH_ID,
|
||||
VOL_ID, TONE_ID,
|
||||
DIRECT_ID, V_LAST_VAR_ID,
|
||||
NB_ID
|
||||
};
|
||||
|
||||
|
||||
static struct var_t vars[NB_ID] = {
|
||||
[CAPS_START_ID] = { CAPS_START, .u.s = {"\033P8" } },
|
||||
[CAPS_STOP_ID] = { CAPS_STOP, .u.s = {"\033P5" } },
|
||||
[RATE_ID] = { RATE, .u.n = {"\033R%c", 9, 0, 17, 0, 0, "0123456789abcdefgh" } },
|
||||
[PITCH_ID] = { PITCH, .u.n = {"\033P%d", 5, 0, 9, 0, 0, NULL } },
|
||||
[VOL_ID] = { VOL, .u.n = {"\033A%d", 9, 0, 9, 0, 0, NULL } },
|
||||
[TONE_ID] = { TONE, .u.n = {"\033V%d", 5, 0, 9, 0, 0, NULL } },
|
||||
[DIRECT_ID] = { DIRECT, .u.n = {NULL, 0, 0, 1, 0, 0, NULL } },
|
||||
V_LAST_VAR
|
||||
};
|
||||
|
||||
@@ -129,10 +139,21 @@ static int synth_probe(struct spk_synth *synth)
|
||||
module_param_named(ser, synth_acntsa.ser, int, 0444);
|
||||
module_param_named(dev, synth_acntsa.dev_name, charp, 0444);
|
||||
module_param_named(start, synth_acntsa.startup, short, 0444);
|
||||
module_param_named(rate, vars[RATE_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(pitch, vars[PITCH_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(vol, vars[VOL_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(tone, vars[TONE_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(direct, vars[DIRECT_ID].u.n.default_val, int, 0444);
|
||||
|
||||
MODULE_PARM_DESC(ser, "Set the serial port for the synthesizer (0-based).");
|
||||
MODULE_PARM_DESC(dev, "Set the device e.g. ttyUSB0, for the synthesizer.");
|
||||
MODULE_PARM_DESC(start, "Start the synthesizer once it is loaded.");
|
||||
MODULE_PARM_DESC(rate, "Set the rate variable on load.");
|
||||
MODULE_PARM_DESC(pitch, "Set the pitch variable on load.");
|
||||
MODULE_PARM_DESC(vol, "Set the vol variable on load.");
|
||||
MODULE_PARM_DESC(tone, "Set the tone variable on load.");
|
||||
MODULE_PARM_DESC(direct, "Set the direct variable on load.");
|
||||
|
||||
|
||||
module_spk_synth(synth_acntsa);
|
||||
|
||||
|
||||
@@ -24,15 +24,28 @@
|
||||
|
||||
static void do_catch_up(struct spk_synth *synth);
|
||||
|
||||
static struct var_t vars[] = {
|
||||
{ CAPS_START, .u.s = {"cap, " } },
|
||||
{ CAPS_STOP, .u.s = {"" } },
|
||||
{ RATE, .u.n = {"@W%d", 6, 1, 9, 0, 0, NULL } },
|
||||
{ PITCH, .u.n = {"@F%x", 10, 0, 15, 0, 0, NULL } },
|
||||
{ VOL, .u.n = {"@A%x", 10, 0, 15, 0, 0, NULL } },
|
||||
{ VOICE, .u.n = {"@V%d", 1, 1, 6, 0, 0, NULL } },
|
||||
{ LANG, .u.n = {"@=%d,", 1, 1, 4, 0, 0, NULL } },
|
||||
{ DIRECT, .u.n = {NULL, 0, 0, 1, 0, 0, NULL } },
|
||||
|
||||
|
||||
enum default_vars_id {
|
||||
CAPS_START_ID = 0, CAPS_STOP_ID,
|
||||
RATE_ID, PITCH_ID,
|
||||
VOL_ID, VOICE_ID, LANG_ID,
|
||||
DIRECT_ID, V_LAST_VAR_ID,
|
||||
NB_ID
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
static struct var_t vars[NB_ID] = {
|
||||
[CAPS_START_ID] = { CAPS_START, .u.s = {"cap, " } },
|
||||
[CAPS_STOP_ID] = { CAPS_STOP, .u.s = {"" } },
|
||||
[RATE_ID] = { RATE, .u.n = {"@W%d", 6, 1, 9, 0, 0, NULL } },
|
||||
[PITCH_ID] = { PITCH, .u.n = {"@F%x", 10, 0, 15, 0, 0, NULL } },
|
||||
[VOL_ID] = { VOL, .u.n = {"@A%x", 10, 0, 15, 0, 0, NULL } },
|
||||
[VOICE_ID] = { VOICE, .u.n = {"@V%d", 1, 1, 6, 0, 0, NULL } },
|
||||
[LANG_ID] = { LANG, .u.n = {"@=%d,", 1, 1, 4, 0, 0, NULL } },
|
||||
[DIRECT_ID] = { DIRECT, .u.n = {NULL, 0, 0, 1, 0, 0, NULL } },
|
||||
V_LAST_VAR
|
||||
};
|
||||
|
||||
@@ -193,10 +206,25 @@ static void do_catch_up(struct spk_synth *synth)
|
||||
module_param_named(ser, synth_apollo.ser, int, 0444);
|
||||
module_param_named(dev, synth_apollo.dev_name, charp, 0444);
|
||||
module_param_named(start, synth_apollo.startup, short, 0444);
|
||||
module_param_named(rate, vars[RATE_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(pitch, vars[PITCH_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(vol, vars[VOL_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(voice, vars[VOICE_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(lang, vars[LANG_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(direct, vars[DIRECT_ID].u.n.default_val, int, 0444);
|
||||
|
||||
|
||||
MODULE_PARM_DESC(ser, "Set the serial port for the synthesizer (0-based).");
|
||||
MODULE_PARM_DESC(dev, "Set the device e.g. ttyUSB0, for the synthesizer.");
|
||||
MODULE_PARM_DESC(start, "Start the synthesizer once it is loaded.");
|
||||
MODULE_PARM_DESC(rate, "Set the rate variable on load.");
|
||||
MODULE_PARM_DESC(pitch, "Set the pitch variable on load.");
|
||||
MODULE_PARM_DESC(vol, "Set the vol variable on load.");
|
||||
MODULE_PARM_DESC(voice, "Set the voice variable on load.");
|
||||
MODULE_PARM_DESC(lang, "Set the lang variable on load.");
|
||||
MODULE_PARM_DESC(direct, "Set the direct variable on load.");
|
||||
|
||||
|
||||
|
||||
module_spk_synth(synth_apollo);
|
||||
|
||||
|
||||
@@ -19,15 +19,24 @@
|
||||
static int synth_probe(struct spk_synth *synth);
|
||||
static void synth_flush(struct spk_synth *synth);
|
||||
|
||||
static struct var_t vars[] = {
|
||||
{ CAPS_START, .u.s = {"\x05[f99]" } },
|
||||
{ CAPS_STOP, .u.s = {"\x05[f80]" } },
|
||||
{ RATE, .u.n = {"\x05[r%d]", 10, 0, 20, 100, -10, NULL } },
|
||||
{ PITCH, .u.n = {"\x05[f%d]", 80, 39, 4500, 0, 0, NULL } },
|
||||
{ VOL, .u.n = {"\x05[g%d]", 21, 0, 40, 0, 0, NULL } },
|
||||
{ TONE, .u.n = {"\x05[s%d]", 9, 0, 63, 0, 0, NULL } },
|
||||
{ PUNCT, .u.n = {"\x05[A%c]", 0, 0, 3, 0, 0, "nmsa" } },
|
||||
{ DIRECT, .u.n = {NULL, 0, 0, 1, 0, 0, NULL } },
|
||||
|
||||
enum default_vars_id {
|
||||
CAPS_START_ID = 0, CAPS_STOP_ID,
|
||||
RATE_ID, PITCH_ID,
|
||||
VOL_ID, TONE_ID, PUNCT_ID,
|
||||
DIRECT_ID, V_LAST_VAR_ID,
|
||||
NB_ID
|
||||
};
|
||||
|
||||
static struct var_t vars[NB_ID] = {
|
||||
[CAPS_START_ID] = { CAPS_START, .u.s = {"\x05[f99]" } },
|
||||
[CAPS_STOP_ID] = { CAPS_STOP, .u.s = {"\x05[f80]" } },
|
||||
[RATE_ID] = { RATE, .u.n = {"\x05[r%d]", 10, 0, 20, 100, -10, NULL } },
|
||||
[PITCH_ID] = { PITCH, .u.n = {"\x05[f%d]", 80, 39, 4500, 0, 0, NULL } },
|
||||
[VOL_ID] = { VOL, .u.n = {"\x05[g%d]", 21, 0, 40, 0, 0, NULL } },
|
||||
[TONE_ID] = { TONE, .u.n = {"\x05[s%d]", 9, 0, 63, 0, 0, NULL } },
|
||||
[PUNCT_ID] = { PUNCT, .u.n = {"\x05[A%c]", 0, 0, 3, 0, 0, "nmsa" } },
|
||||
[DIRECT_ID] = { DIRECT, .u.n = {NULL, 0, 0, 1, 0, 0, NULL } },
|
||||
V_LAST_VAR
|
||||
};
|
||||
|
||||
@@ -158,10 +167,25 @@ static int synth_probe(struct spk_synth *synth)
|
||||
module_param_named(ser, synth_audptr.ser, int, 0444);
|
||||
module_param_named(dev, synth_audptr.dev_name, charp, 0444);
|
||||
module_param_named(start, synth_audptr.startup, short, 0444);
|
||||
module_param_named(rate, vars[RATE_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(pitch, vars[PITCH_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(vol, vars[VOL_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(tone, vars[TONE_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(punct, vars[PUNCT_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(direct, vars[DIRECT_ID].u.n.default_val, int, 0444);
|
||||
|
||||
|
||||
|
||||
MODULE_PARM_DESC(ser, "Set the serial port for the synthesizer (0-based).");
|
||||
MODULE_PARM_DESC(dev, "Set the device e.g. ttyUSB0, for the synthesizer.");
|
||||
MODULE_PARM_DESC(start, "Start the synthesizer once it is loaded.");
|
||||
MODULE_PARM_DESC(rate, "Set the rate variable on load.");
|
||||
MODULE_PARM_DESC(pitch, "Set the pitch variable on load.");
|
||||
MODULE_PARM_DESC(vol, "Set the vol variable on load.");
|
||||
MODULE_PARM_DESC(tone, "Set the tone variable on load.");
|
||||
MODULE_PARM_DESC(punct, "Set the punct variable on load.");
|
||||
MODULE_PARM_DESC(direct, "Set the direct variable on load.");
|
||||
|
||||
|
||||
module_spk_synth(synth_audptr);
|
||||
|
||||
|
||||
@@ -16,14 +16,23 @@
|
||||
#define SYNTH_CLEAR 0x18
|
||||
#define PROCSPEECH '\r'
|
||||
|
||||
static struct var_t vars[] = {
|
||||
{ CAPS_START, .u.s = {"\x05\x31\x32P" } },
|
||||
{ CAPS_STOP, .u.s = {"\x05\x38P" } },
|
||||
{ RATE, .u.n = {"\x05%dE", 8, 1, 16, 0, 0, NULL } },
|
||||
{ PITCH, .u.n = {"\x05%dP", 8, 0, 16, 0, 0, NULL } },
|
||||
{ VOL, .u.n = {"\x05%dV", 8, 0, 16, 0, 0, NULL } },
|
||||
{ TONE, .u.n = {"\x05%dT", 8, 0, 16, 0, 0, NULL } },
|
||||
{ DIRECT, .u.n = {NULL, 0, 0, 1, 0, 0, NULL } },
|
||||
|
||||
enum default_vars_id {
|
||||
CAPS_START_ID = 0, CAPS_STOP_ID,
|
||||
RATE_ID, PITCH_ID,
|
||||
VOL_ID, TONE_ID,
|
||||
DIRECT_ID, V_LAST_VAR_ID,
|
||||
NB_ID
|
||||
};
|
||||
|
||||
static struct var_t vars[NB_ID] = {
|
||||
[CAPS_START_ID] = { CAPS_START, .u.s = {"\x05\x31\x32P" } },
|
||||
[CAPS_STOP_ID] = { CAPS_STOP, .u.s = {"\x05\x38P" } },
|
||||
[RATE_ID] = { RATE, .u.n = {"\x05%dE", 8, 1, 16, 0, 0, NULL } },
|
||||
[PITCH_ID] = { PITCH, .u.n = {"\x05%dP", 8, 0, 16, 0, 0, NULL } },
|
||||
[VOL_ID] = { VOL, .u.n = {"\x05%dV", 8, 0, 16, 0, 0, NULL } },
|
||||
[TONE_ID] = { TONE, .u.n = {"\x05%dT", 8, 0, 16, 0, 0, NULL } },
|
||||
[DIRECT_ID] = { DIRECT, .u.n = {NULL, 0, 0, 1, 0, 0, NULL } },
|
||||
V_LAST_VAR
|
||||
};
|
||||
|
||||
@@ -113,10 +122,21 @@ static struct spk_synth synth_bns = {
|
||||
module_param_named(ser, synth_bns.ser, int, 0444);
|
||||
module_param_named(dev, synth_bns.dev_name, charp, 0444);
|
||||
module_param_named(start, synth_bns.startup, short, 0444);
|
||||
module_param_named(rate, vars[RATE_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(pitch, vars[PITCH_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(vol, vars[VOL_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(tone, vars[TONE_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(direct, vars[DIRECT_ID].u.n.default_val, int, 0444);
|
||||
|
||||
|
||||
MODULE_PARM_DESC(ser, "Set the serial port for the synthesizer (0-based).");
|
||||
MODULE_PARM_DESC(dev, "Set the device e.g. ttyUSB0, for the synthesizer.");
|
||||
MODULE_PARM_DESC(start, "Start the synthesizer once it is loaded.");
|
||||
MODULE_PARM_DESC(rate, "Set the rate variable on load.");
|
||||
MODULE_PARM_DESC(pitch, "Set the pitch variable on load.");
|
||||
MODULE_PARM_DESC(vol, "Set the vol variable on load.");
|
||||
MODULE_PARM_DESC(tone, "Set the tone variable on load.");
|
||||
MODULE_PARM_DESC(direct, "Set the direct variable on load.");
|
||||
|
||||
module_spk_synth(synth_bns);
|
||||
|
||||
|
||||
@@ -38,16 +38,25 @@ static void synth_flush(struct spk_synth *synth);
|
||||
|
||||
static int in_escape;
|
||||
|
||||
static struct var_t vars[] = {
|
||||
{ CAPS_START, .u.s = {"[:dv ap 222]" } },
|
||||
{ CAPS_STOP, .u.s = {"[:dv ap 100]" } },
|
||||
{ RATE, .u.n = {"[:ra %d]", 7, 0, 9, 150, 25, NULL } },
|
||||
{ PITCH, .u.n = {"[:dv ap %d]", 100, 0, 100, 0, 0, NULL } },
|
||||
{ INFLECTION, .u.n = {"[:dv pr %d] ", 100, 0, 10000, 0, 0, NULL } },
|
||||
{ VOL, .u.n = {"[:dv gv %d]", 13, 0, 16, 0, 5, NULL } },
|
||||
{ PUNCT, .u.n = {"[:pu %c]", 0, 0, 2, 0, 0, "nsa" } },
|
||||
{ VOICE, .u.n = {"[:n%c]", 0, 0, 9, 0, 0, "phfdburwkv" } },
|
||||
{ DIRECT, .u.n = {NULL, 0, 0, 1, 0, 0, NULL } },
|
||||
|
||||
enum default_vars_id {
|
||||
CAPS_START_ID = 0, CAPS_STOP_ID,
|
||||
RATE_ID, PITCH_ID, INFLECTION_ID,
|
||||
VOL_ID, PUNCT_ID, VOICE_ID,
|
||||
DIRECT_ID, V_LAST_ID,
|
||||
NB_ID,
|
||||
};
|
||||
|
||||
static struct var_t vars[NB_ID] = {
|
||||
[CAPS_START_ID] = { CAPS_START, .u.s = {"[:dv ap 222]" } },
|
||||
[CAPS_STOP_ID] = { CAPS_STOP, .u.s = {"[:dv ap 100]" } },
|
||||
[RATE_ID] = { RATE, .u.n = {"[:ra %d]", 7, 0, 9, 150, 25, NULL } },
|
||||
[PITCH_ID] = { PITCH, .u.n = {"[:dv ap %d]", 100, 0, 100, 0, 0, NULL } },
|
||||
[INFLECTION_ID] = { INFLECTION, .u.n = {"[:dv pr %d] ", 100, 0, 10000, 0, 0, NULL } },
|
||||
[VOL_ID] = { VOL, .u.n = {"[:dv gv %d]", 13, 0, 16, 0, 5, NULL } },
|
||||
[PUNCT_ID] = { PUNCT, .u.n = {"[:pu %c]", 0, 0, 2, 0, 0, "nsa" } },
|
||||
[VOICE_ID] = { VOICE, .u.n = {"[:n%c]", 0, 0, 9, 0, 0, "phfdburwkv" } },
|
||||
[DIRECT_ID] = { DIRECT, .u.n = {NULL, 0, 0, 1, 0, 0, NULL } },
|
||||
V_LAST_VAR
|
||||
};
|
||||
|
||||
@@ -225,10 +234,25 @@ static void synth_flush(struct spk_synth *synth)
|
||||
module_param_named(ser, synth_decext.ser, int, 0444);
|
||||
module_param_named(dev, synth_decext.dev_name, charp, 0444);
|
||||
module_param_named(start, synth_decext.startup, short, 0444);
|
||||
module_param_named(rate, vars[RATE_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(pitch, vars[PITCH_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(inflection, vars[INFLECTION_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(vol, vars[VOL_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(punct, vars[PUNCT_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(voice, vars[VOICE_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(direct, vars[DIRECT_ID].u.n.default_val, int, 0444);
|
||||
|
||||
|
||||
MODULE_PARM_DESC(ser, "Set the serial port for the synthesizer (0-based).");
|
||||
MODULE_PARM_DESC(dev, "Set the device e.g. ttyUSB0, for the synthesizer.");
|
||||
MODULE_PARM_DESC(start, "Start the synthesizer once it is loaded.");
|
||||
MODULE_PARM_DESC(rate, "Set the rate variable on load.");
|
||||
MODULE_PARM_DESC(pitch, "Set the pitch variable on load.");
|
||||
MODULE_PARM_DESC(inflection, "Set the inflection variable on load.");
|
||||
MODULE_PARM_DESC(vol, "Set the vol variable on load.");
|
||||
MODULE_PARM_DESC(punct, "Set the punct variable on load.");
|
||||
MODULE_PARM_DESC(voice, "Set the voice variable on load.");
|
||||
MODULE_PARM_DESC(direct, "Set the direct variable on load.");
|
||||
|
||||
module_spk_synth(synth_decext);
|
||||
|
||||
|
||||
@@ -134,16 +134,27 @@ static int synth_portlist[] = { 0x340, 0x350, 0x240, 0x250, 0 };
|
||||
static int in_escape, is_flushing;
|
||||
static int dt_stat, dma_state;
|
||||
|
||||
static struct var_t vars[] = {
|
||||
{ CAPS_START, .u.s = {"[:dv ap 200]" } },
|
||||
{ CAPS_STOP, .u.s = {"[:dv ap 100]" } },
|
||||
{ RATE, .u.n = {"[:ra %d]", 9, 0, 18, 150, 25, NULL } },
|
||||
{ PITCH, .u.n = {"[:dv ap %d]", 80, 0, 100, 20, 0, NULL } },
|
||||
{ INFLECTION, .u.n = {"[:dv pr %d] ", 100, 0, 10000, 0, 0, NULL } },
|
||||
{ VOL, .u.n = {"[:vo se %d]", 5, 0, 9, 5, 10, NULL } },
|
||||
{ PUNCT, .u.n = {"[:pu %c]", 0, 0, 2, 0, 0, "nsa" } },
|
||||
{ VOICE, .u.n = {"[:n%c]", 0, 0, 9, 0, 0, "phfdburwkv" } },
|
||||
{ DIRECT, .u.n = {NULL, 0, 0, 1, 0, 0, NULL } },
|
||||
|
||||
enum default_vars_id {
|
||||
CAPS_START_ID = 0, CAPS_STOP_ID,
|
||||
RATE_ID, PITCH_ID, INFLECTION_ID,
|
||||
VOL_ID, PUNCT_ID, VOICE_ID,
|
||||
DIRECT_ID, V_LAST_VAR_ID,
|
||||
NB_ID,
|
||||
};
|
||||
|
||||
|
||||
|
||||
static struct var_t vars[NB_ID] = {
|
||||
[CAPS_START_ID] = { CAPS_START, .u.s = {"[:dv ap 200]" } },
|
||||
[CAPS_STOP_ID] = { CAPS_STOP, .u.s = {"[:dv ap 100]" } },
|
||||
[RATE_ID] = { RATE, .u.n = {"[:ra %d]", 9, 0, 18, 150, 25, NULL } },
|
||||
[PITCH_ID] = { PITCH, .u.n = {"[:dv ap %d]", 80, 0, 100, 20, 0, NULL } },
|
||||
[INFLECTION_ID] = { INFLECTION, .u.n = {"[:dv pr %d] ", 100, 0, 10000, 0, 0, NULL } },
|
||||
[VOL_ID] = { VOL, .u.n = {"[:vo se %d]", 5, 0, 9, 5, 10, NULL } },
|
||||
[PUNCT_ID] = { PUNCT, .u.n = {"[:pu %c]", 0, 0, 2, 0, 0, "nsa" } },
|
||||
[VOICE_ID] = { VOICE, .u.n = {"[:n%c]", 0, 0, 9, 0, 0, "phfdburwkv" } },
|
||||
[DIRECT_ID] = { DIRECT, .u.n = {NULL, 0, 0, 1, 0, 0, NULL } },
|
||||
V_LAST_VAR
|
||||
};
|
||||
|
||||
@@ -483,8 +494,25 @@ static void dtpc_release(struct spk_synth *synth)
|
||||
}
|
||||
|
||||
module_param_named(start, synth_dec_pc.startup, short, 0444);
|
||||
module_param_named(rate, vars[RATE_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(pitch, vars[PITCH_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(inflection, vars[INFLECTION_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(vol, vars[VOL_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(punct, vars[PUNCT_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(voice, vars[VOICE_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(direct, vars[DIRECT_ID].u.n.default_val, int, 0444);
|
||||
|
||||
|
||||
|
||||
|
||||
MODULE_PARM_DESC(start, "Start the synthesizer once it is loaded.");
|
||||
MODULE_PARM_DESC(rate, "Set the rate variable on load.");
|
||||
MODULE_PARM_DESC(pitch, "Set the pitch variable on load.");
|
||||
MODULE_PARM_DESC(inflection, "Set the inflection variable on load.");
|
||||
MODULE_PARM_DESC(vol, "Set the vol variable on load.");
|
||||
MODULE_PARM_DESC(punct, "Set the punct variable on load.");
|
||||
MODULE_PARM_DESC(voice, "Set the voice variable on load.");
|
||||
MODULE_PARM_DESC(direct, "Set the direct variable on load.");
|
||||
|
||||
module_spk_synth(synth_dec_pc);
|
||||
|
||||
|
||||
@@ -40,16 +40,24 @@ static int is_flushing;
|
||||
static DEFINE_SPINLOCK(flush_lock);
|
||||
static DECLARE_WAIT_QUEUE_HEAD(flush);
|
||||
|
||||
static struct var_t vars[] = {
|
||||
{ CAPS_START, .u.s = {"[:dv ap 160] " } },
|
||||
{ CAPS_STOP, .u.s = {"[:dv ap 100 ] " } },
|
||||
{ RATE, .u.n = {"[:ra %d] ", 180, 75, 650, 0, 0, NULL } },
|
||||
{ PITCH, .u.n = {"[:dv ap %d] ", 122, 50, 350, 0, 0, NULL } },
|
||||
{ INFLECTION, .u.n = {"[:dv pr %d] ", 100, 0, 10000, 0, 0, NULL } },
|
||||
{ VOL, .u.n = {"[:dv g5 %d] ", 86, 60, 86, 0, 0, NULL } },
|
||||
{ PUNCT, .u.n = {"[:pu %c] ", 0, 0, 2, 0, 0, "nsa" } },
|
||||
{ VOICE, .u.n = {"[:n%c] ", 0, 0, 9, 0, 0, "phfdburwkv" } },
|
||||
{ DIRECT, .u.n = {NULL, 0, 0, 1, 0, 0, NULL } },
|
||||
enum default_vars_id {
|
||||
CAPS_START_ID = 0, CAPS_STOP_ID,
|
||||
RATE_ID, PITCH_ID, INFLECTION_ID,
|
||||
VOL_ID, PUNCT_ID, VOICE_ID,
|
||||
DIRECT_ID, V_LAST_VAR_ID,
|
||||
NB_ID,
|
||||
};
|
||||
|
||||
static struct var_t vars[NB_ID] = {
|
||||
[CAPS_START_ID] = { CAPS_START, .u.s = {"[:dv ap 160] " } },
|
||||
[CAPS_STOP_ID] = { CAPS_STOP, .u.s = {"[:dv ap 100 ] " } },
|
||||
[RATE_ID] = { RATE, .u.n = {"[:ra %d] ", 180, 75, 650, 0, 0, NULL } },
|
||||
[PITCH_ID] = { PITCH, .u.n = {"[:dv ap %d] ", 122, 50, 350, 0, 0, NULL } },
|
||||
[INFLECTION_ID] = { INFLECTION, .u.n = {"[:dv pr %d] ", 100, 0, 10000, 0, 0, NULL } },
|
||||
[VOL_ID] = { VOL, .u.n = {"[:dv g5 %d] ", 86, 60, 86, 0, 0, NULL } },
|
||||
[PUNCT_ID] = { PUNCT, .u.n = {"[:pu %c] ", 0, 0, 2, 0, 0, "nsa" } },
|
||||
[VOICE_ID] = { VOICE, .u.n = {"[:n%c] ", 0, 0, 9, 0, 0, "phfdburwkv" } },
|
||||
[DIRECT_ID] = { DIRECT, .u.n = {NULL, 0, 0, 1, 0, 0, NULL } },
|
||||
V_LAST_VAR
|
||||
};
|
||||
|
||||
@@ -306,10 +314,27 @@ static void synth_flush(struct spk_synth *synth)
|
||||
module_param_named(ser, synth_dectlk.ser, int, 0444);
|
||||
module_param_named(dev, synth_dectlk.dev_name, charp, 0444);
|
||||
module_param_named(start, synth_dectlk.startup, short, 0444);
|
||||
module_param_named(rate, vars[RATE_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(pitch, vars[PITCH_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(inflection, vars[INFLECTION_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(vol, vars[VOL_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(punct, vars[PUNCT_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(voice, vars[VOICE_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(direct, vars[DIRECT_ID].u.n.default_val, int, 0444);
|
||||
|
||||
|
||||
|
||||
MODULE_PARM_DESC(ser, "Set the serial port for the synthesizer (0-based).");
|
||||
MODULE_PARM_DESC(dev, "Set the device e.g. ttyUSB0, for the synthesizer.");
|
||||
MODULE_PARM_DESC(start, "Start the synthesizer once it is loaded.");
|
||||
MODULE_PARM_DESC(rate, "Set the rate variable on load.");
|
||||
MODULE_PARM_DESC(pitch, "Set the pitch variable on load.");
|
||||
MODULE_PARM_DESC(inflection, "Set the inflection variable on load.");
|
||||
MODULE_PARM_DESC(vol, "Set the vol variable on load.");
|
||||
MODULE_PARM_DESC(punct, "Set the punct variable on load.");
|
||||
MODULE_PARM_DESC(voice, "Set the voice variable on load.");
|
||||
MODULE_PARM_DESC(direct, "Set the direct variable on load.");
|
||||
|
||||
|
||||
module_spk_synth(synth_dectlk);
|
||||
|
||||
|
||||
@@ -37,17 +37,27 @@ static unsigned int synth_portlist[] = {
|
||||
|
||||
static u_char synth_status;
|
||||
|
||||
static struct var_t vars[] = {
|
||||
{ CAPS_START, .u.s = {"\x01+35p" } },
|
||||
{ CAPS_STOP, .u.s = {"\x01-35p" } },
|
||||
{ RATE, .u.n = {"\x01%ds", 8, 0, 9, 0, 0, NULL } },
|
||||
{ PITCH, .u.n = {"\x01%dp", 50, 0, 99, 0, 0, NULL } },
|
||||
{ VOL, .u.n = {"\x01%dv", 5, 0, 9, 0, 0, NULL } },
|
||||
{ TONE, .u.n = {"\x01%dx", 1, 0, 2, 0, 0, NULL } },
|
||||
{ PUNCT, .u.n = {"\x01%db", 7, 0, 15, 0, 0, NULL } },
|
||||
{ VOICE, .u.n = {"\x01%do", 0, 0, 7, 0, 0, NULL } },
|
||||
{ FREQUENCY, .u.n = {"\x01%df", 5, 0, 9, 0, 0, NULL } },
|
||||
{ DIRECT, .u.n = {NULL, 0, 0, 1, 0, 0, NULL } },
|
||||
enum default_vars_id {
|
||||
CAPS_START_ID = 0, CAPS_STOP_ID,
|
||||
RATE_ID, PITCH_ID,
|
||||
VOL_ID, TONE_ID, PUNCT_ID,
|
||||
VOICE_ID, FREQUENCY_ID,
|
||||
DIRECT_ID, V_LAST_VAR_ID,
|
||||
NB_ID,
|
||||
};
|
||||
|
||||
|
||||
static struct var_t vars[NB_ID] = {
|
||||
[CAPS_START_ID] = { CAPS_START, .u.s = {"\x01+35p" } },
|
||||
[CAPS_STOP_ID] = { CAPS_STOP, .u.s = {"\x01-35p" } },
|
||||
[RATE_ID] = { RATE, .u.n = {"\x01%ds", 8, 0, 9, 0, 0, NULL } },
|
||||
[PITCH_ID] = { PITCH, .u.n = {"\x01%dp", 50, 0, 99, 0, 0, NULL } },
|
||||
[VOL_ID] = { VOL, .u.n = {"\x01%dv", 5, 0, 9, 0, 0, NULL } },
|
||||
[TONE_ID] = { TONE, .u.n = {"\x01%dx", 1, 0, 2, 0, 0, NULL } },
|
||||
[PUNCT_ID] = { PUNCT, .u.n = {"\x01%db", 7, 0, 15, 0, 0, NULL } },
|
||||
[VOICE_ID] = { VOICE, .u.n = {"\x01%do", 0, 0, 7, 0, 0, NULL } },
|
||||
[FREQUENCY_ID] = { FREQUENCY, .u.n = {"\x01%df", 5, 0, 9, 0, 0, NULL } },
|
||||
[DIRECT_ID] = { DIRECT, .u.n = {NULL, 0, 0, 1, 0, 0, NULL } },
|
||||
V_LAST_VAR
|
||||
};
|
||||
|
||||
@@ -376,9 +386,27 @@ static void dtlk_release(struct spk_synth *synth)
|
||||
|
||||
module_param_hw_named(port, port_forced, int, ioport, 0444);
|
||||
module_param_named(start, synth_dtlk.startup, short, 0444);
|
||||
module_param_named(rate, vars[RATE_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(pitch, vars[PITCH_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(vol, vars[VOL_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(tone, vars[TONE_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(punct, vars[PUNCT_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(voice, vars[VOICE_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(frequency, vars[FREQUENCY_ID].u.n.default_val, int, 0444);
|
||||
module_param_named(direct, vars[DIRECT_ID].u.n.default_val, int, 0444);
|
||||
|
||||
|
||||
MODULE_PARM_DESC(port, "Set the port for the synthesizer (override probing).");
|
||||
MODULE_PARM_DESC(start, "Start the synthesizer once it is loaded.");
|
||||
MODULE_PARM_DESC(rate, "Set the rate variable on load.");
|
||||
MODULE_PARM_DESC(pitch, "Set the pitch variable on load.");
|
||||
MODULE_PARM_DESC(vol, "Set the vol variable on load.");
|
||||
MODULE_PARM_DESC(tone, "Set the tone variable on load.");
|
||||
MODULE_PARM_DESC(punct, "Set the punct variable on load.");
|
||||
MODULE_PARM_DESC(voice, "Set the voice variable on load.");
|
||||
MODULE_PARM_DESC(frequency, "Set the frequency variable on load.");
|
||||
MODULE_PARM_DESC(direct, "Set the direct variable on load.");
|
||||
|
||||
|
||||
module_spk_synth(synth_dtlk);
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user