mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 02:32:09 -04:00
dt-bindings: Add snapshot for 5.4-rc2
Add the device-tree bindings' snapshot from tmp-abe0ec5a8133 for 5.4-rc2. Change-Id: I346809db756dd18a509ce440499d98a7fefecd16
This commit is contained in:
parent
4cefd27db8
commit
e4b1dcc77e
273 changed files with 5575 additions and 3387 deletions
|
|
@ -1,38 +0,0 @@
|
|||
Amlogic Meson SoC UART Serial Interface
|
||||
=======================================
|
||||
|
||||
The Amlogic Meson SoC UART Serial Interface is present on a large range
|
||||
of SoCs, and can be present either in the "Always-On" power domain or the
|
||||
"Everything-Else" power domain.
|
||||
|
||||
The particularity of the "Always-On" Serial Interface is that the hardware
|
||||
is active since power-on and does not need any clock gating and is usable
|
||||
as very early serial console.
|
||||
|
||||
Required properties:
|
||||
- compatible : compatible: value should be different for each SoC family as :
|
||||
- Meson6 : "amlogic,meson6-uart"
|
||||
- Meson8 : "amlogic,meson8-uart"
|
||||
- Meson8b : "amlogic,meson8b-uart"
|
||||
- GX (GXBB, GXL, GXM) : "amlogic,meson-gx-uart"
|
||||
eventually followed by : "amlogic,meson-ao-uart" if this UART interface
|
||||
is in the "Always-On" power domain.
|
||||
- reg : offset and length of the register set for the device.
|
||||
- interrupts : identifier to the device interrupt
|
||||
- clocks : a list of phandle + clock-specifier pairs, one for each
|
||||
entry in clock names.
|
||||
- clock-names :
|
||||
* "xtal" for external xtal clock identifier
|
||||
* "pclk" for the bus core clock, either the clk81 clock or the gate clock
|
||||
* "baud" for the source of the baudrate generator, can be either the xtal
|
||||
or the pclk.
|
||||
|
||||
e.g.
|
||||
uart_A: serial@84c0 {
|
||||
compatible = "amlogic,meson-gx-uart";
|
||||
reg = <0x0 0x84c0 0x0 0x14>;
|
||||
interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>;
|
||||
/* Use xtal as baud rate clock source */
|
||||
clocks = <&xtal>, <&clkc CLKID_UART0>, <&xtal>;
|
||||
clock-names = "xtal", "pclk", "baud";
|
||||
};
|
||||
73
bindings/serial/amlogic,meson-uart.yaml
Normal file
73
bindings/serial/amlogic,meson-uart.yaml
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
# Copyright 2019 BayLibre, SAS
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: "http://devicetree.org/schemas/serial/amlogic,meson-uart.yaml#"
|
||||
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
|
||||
|
||||
title: Amlogic Meson SoC UART Serial Interface
|
||||
|
||||
maintainers:
|
||||
- Neil Armstrong <[email protected]>
|
||||
|
||||
description: |
|
||||
The Amlogic Meson SoC UART Serial Interface is present on a large range
|
||||
of SoCs, and can be present either in the "Always-On" power domain or the
|
||||
"Everything-Else" power domain.
|
||||
|
||||
The particularity of the "Always-On" Serial Interface is that the hardware
|
||||
is active since power-on and does not need any clock gating and is usable
|
||||
as very early serial console.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
oneOf:
|
||||
- description: Always-on power domain UART controller
|
||||
items:
|
||||
- enum:
|
||||
- amlogic,meson6-uart
|
||||
- amlogic,meson8-uart
|
||||
- amlogic,meson8b-uart
|
||||
- amlogic,meson-gx-uart
|
||||
- const: amlogic,meson-ao-uart
|
||||
- description: Everything-Else power domain UART controller
|
||||
enum:
|
||||
- amlogic,meson6-uart
|
||||
- amlogic,meson8-uart
|
||||
- amlogic,meson8b-uart
|
||||
- amlogic,meson-gx-uart
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: external xtal clock identifier
|
||||
- description: the bus core clock, either the clk81 clock or the gate clock
|
||||
- description: the source of the baudrate generator, can be either the xtal or the pclk
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: xtal
|
||||
- const: pclk
|
||||
- const: baud
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- clocks
|
||||
- clock-names
|
||||
|
||||
examples:
|
||||
- |
|
||||
serial@84c0 {
|
||||
compatible = "amlogic,meson-gx-uart";
|
||||
reg = <0x84c0 0x14>;
|
||||
interrupts = <26>;
|
||||
clocks = <&xtal>, <&pclk>, <&xtal>;
|
||||
clock-names = "xtal", "pclk", "baud";
|
||||
};
|
||||
22
bindings/serial/fsl,s32-linflexuart.txt
Normal file
22
bindings/serial/fsl,s32-linflexuart.txt
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
* Freescale LINFlexD UART
|
||||
|
||||
The LINFlexD controller implements several LIN protocol versions, as well as
|
||||
support for full-duplex UART communication through 8-bit and 9-bit frames.
|
||||
|
||||
See chapter 47 ("LINFlexD") in the reference manual[1].
|
||||
|
||||
Required properties:
|
||||
- compatible :
|
||||
- "fsl,s32v234-linflexuart" for LINFlexD configured in UART mode, which
|
||||
is compatible with the one integrated on S32V234 SoC
|
||||
- reg : Address and length of the register set for the device
|
||||
- interrupts : Should contain uart interrupt
|
||||
|
||||
Example:
|
||||
uart0: serial@40053000 {
|
||||
compatible = "fsl,s32v234-linflexuart";
|
||||
reg = <0x0 0x40053000 0x0 0x1000>;
|
||||
interrupts = <0 59 4>;
|
||||
};
|
||||
|
||||
[1] https://www.nxp.com/webapp/Download?colCode=S32V234RM
|
||||
|
|
@ -13,7 +13,10 @@ Required properties:
|
|||
- reg : Address and length of the register set for the device
|
||||
- interrupts : Should contain uart interrupt
|
||||
- clocks : phandle + clock specifier pairs, one for each entry in clock-names
|
||||
- clock-names : should contain: "ipg" - the uart clock
|
||||
- clock-names : For vf610/ls1021a/imx7ulp, "ipg" clock is for uart bus/baud
|
||||
clock. For imx8qxp lpuart, "ipg" clock is bus clock that is used to access
|
||||
lpuart controller registers, it also requires "baud" clock for module to
|
||||
receive/transmit data.
|
||||
|
||||
Optional properties:
|
||||
- dmas: A list of two dma specifiers, one for each entry in dma-names.
|
||||
|
|
|
|||
|
|
@ -1,7 +1,12 @@
|
|||
NVIDIA Tegra20/Tegra30 high speed (DMA based) UART controller driver.
|
||||
|
||||
Required properties:
|
||||
- compatible : should be "nvidia,tegra30-hsuart", "nvidia,tegra20-hsuart".
|
||||
- compatible : should be,
|
||||
"nvidia,tegra20-hsuart" for Tegra20,
|
||||
"nvidia,tegra30-hsuart" for Tegra30,
|
||||
"nvidia,tegra186-hsuart" for Tegra186,
|
||||
"nvidia,tegra194-hsuart" for Tegra194.
|
||||
|
||||
- reg: Should contain UART controller registers location and length.
|
||||
- interrupts: Should contain UART controller interrupts.
|
||||
- clocks: Must contain one entry, for the module clock.
|
||||
|
|
@ -19,6 +24,37 @@ Required properties:
|
|||
Optional properties:
|
||||
- nvidia,enable-modem-interrupt: Enable modem interrupts. Should be enable
|
||||
only if all 8 lines of UART controller are pinmuxed.
|
||||
- nvidia,adjust-baud-rates: List of entries providing percentage of baud rate
|
||||
adjustment within a range.
|
||||
Each entry contains sets of 3 values. Range low/high and adjusted rate.
|
||||
<range_low range_high adjusted_rate>
|
||||
When baud rate set on controller falls within the range mentioned in this
|
||||
field, baud rate will be adjusted by percentage mentioned here.
|
||||
Ex: <9600 115200 200>
|
||||
Increase baud rate by 2% when set baud rate falls within range 9600 to 115200
|
||||
|
||||
Baud Rate tolerance:
|
||||
Standard UART devices are expected to have tolerance for baud rate error by
|
||||
-4 to +4 %. All Tegra devices till Tegra210 had this support. However,
|
||||
Tegra186 chip has a known hardware issue. UART Rx baud rate tolerance level
|
||||
is 0% to +4% in 1-stop config. Otherwise, the received data will have
|
||||
corruption/invalid framing errors. Parker errata suggests adjusting baud
|
||||
rate to be higher than the deviations observed in Tx.
|
||||
|
||||
Tx deviation of connected device can be captured over scope (or noted from
|
||||
its spec) for valid range and Tegra baud rate has to be set above actual
|
||||
Tx baud rate observed. To do this we use nvidia,adjust-baud-rates
|
||||
|
||||
As an example, consider there is deviation observed in Tx for baud rates as
|
||||
listed below.
|
||||
0 to 9600 has 1% deviation
|
||||
9600 to 115200 2% deviation
|
||||
This slight deviation is expcted and Tegra UART is expected to handle it. Due
|
||||
to the issue stated above, baud rate on Tegra UART should be set equal to or
|
||||
above deviation observed for avoiding frame errors.
|
||||
Property should be set like this
|
||||
nvidia,adjust-baud-rates = <0 9600 100>,
|
||||
<9600 115200 200>;
|
||||
|
||||
Example:
|
||||
|
||||
|
|
@ -33,4 +69,5 @@ serial@70006000 {
|
|||
reset-names = "serial";
|
||||
dmas = <&apbdma 8>, <&apbdma 8>;
|
||||
dma-names = "rx", "tx";
|
||||
nvidia,adjust-baud-rates = <1000000 4000000 136>; /* 1.36% shift */
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,33 +0,0 @@
|
|||
SiFive asynchronous serial interface (UART)
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible: should be something similar to
|
||||
"sifive,<chip>-uart" for the UART as integrated
|
||||
on a particular chip, and "sifive,uart<version>" for the
|
||||
general UART IP block programming model. Supported
|
||||
compatible strings as of the date of this writing are:
|
||||
"sifive,fu540-c000-uart" for the SiFive UART v0 as
|
||||
integrated onto the SiFive FU540 chip, or "sifive,uart0"
|
||||
for the SiFive UART v0 IP block with no chip integration
|
||||
tweaks (if any)
|
||||
- reg: address and length of the register space
|
||||
- interrupts: Should contain the UART interrupt identifier
|
||||
- clocks: Should contain a clock identifier for the UART's parent clock
|
||||
|
||||
|
||||
UART HDL that corresponds to the IP block version numbers can be found
|
||||
here:
|
||||
|
||||
https://github.com/sifive/sifive-blocks/tree/master/src/main/scala/devices/uart
|
||||
|
||||
|
||||
Example:
|
||||
|
||||
uart0: serial@10010000 {
|
||||
compatible = "sifive,fu540-c000-uart", "sifive,uart0";
|
||||
interrupt-parent = <&plic0>;
|
||||
interrupts = <80>;
|
||||
reg = <0x0 0x10010000 0x0 0x1000>;
|
||||
clocks = <&prci PRCI_CLK_TLCLK>;
|
||||
};
|
||||
Loading…
Reference in a new issue