mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-24 03:50:53 +07:00
dt-bindings: serial: Convert 8250 to json-schema
Some fixes were done during the conversion: Slightly better examples. The original example was for an OMAP serial port, which is not even described by this binding, but by omap_serial.txt instead. Added compatible strings, that were used, byt not documented: andestech,uart16550, cavium,octeon-3860-uart, fsl,16550-FIFO64, nvidia,tegra186-uart, nvidia,tegra194-uart, nxp,lpc1850-uart, opencores,uart16550-rtlsvn105, ralink,mt7620a-uart, ralink,rt3052-uart, ralink,rt3883-uart and xlnx,xps-uart16550-2.00.b. Removed "serial" compatible string. It's redundant with the node name (which, in OFW, serves the same purpose as the compatible string). Signed-off-by: Lubomir Rintel <lkundrak@v3.sk> [robh: allow additional properties. clocks/clock-frequency can be optional on original 8250 series with standard clocks] Signed-off-by: Rob Herring <robh@kernel.org>
This commit is contained in:
parent
e5651e8398
commit
e69f5dc623
@ -1,102 +0,0 @@
|
||||
* UART (Universal Asynchronous Receiver/Transmitter)
|
||||
|
||||
Required properties:
|
||||
- compatible : one of:
|
||||
- "ns8250"
|
||||
- "ns16450"
|
||||
- "ns16550a"
|
||||
- "ns16550"
|
||||
- "ns16750"
|
||||
- "ns16850"
|
||||
- For Tegra20, must contain "nvidia,tegra20-uart"
|
||||
- For other Tegra, must contain '"nvidia,<chip>-uart",
|
||||
"nvidia,tegra20-uart"' where <chip> is tegra30, tegra114, tegra124,
|
||||
tegra132, or tegra210.
|
||||
- "nxp,lpc3220-uart"
|
||||
- "ralink,rt2880-uart"
|
||||
- For MediaTek BTIF, must contain '"mediatek,<chip>-btif",
|
||||
"mediatek,mtk-btif"' where <chip> is mt7622, mt7623.
|
||||
- "altr,16550-FIFO32"
|
||||
- "altr,16550-FIFO64"
|
||||
- "altr,16550-FIFO128"
|
||||
- "fsl,16550-FIFO64"
|
||||
- "fsl,ns16550"
|
||||
- "intel,xscale-uart"
|
||||
- "ti,da830-uart"
|
||||
- "aspeed,ast2400-vuart"
|
||||
- "aspeed,ast2500-vuart"
|
||||
- "nuvoton,npcm750-uart"
|
||||
- "mrvl,mmp-uart"
|
||||
- "mrvl,pxa-uart"
|
||||
- "serial" if the port type is unknown.
|
||||
- reg : offset and length of the register set for the device.
|
||||
- interrupts : should contain uart interrupt.
|
||||
- clock-frequency : the input clock frequency for the UART
|
||||
or
|
||||
clocks phandle to refer to the clk used as per Documentation/devicetree
|
||||
/bindings/clock/clock-bindings.txt
|
||||
|
||||
Optional properties:
|
||||
- current-speed : the current active speed of the UART.
|
||||
- reg-offset : offset to apply to the mapbase from the start of the registers.
|
||||
- reg-shift : quantity to shift the register offsets by.
|
||||
- reg-io-width : the size (in bytes) of the IO accesses that should be
|
||||
performed on the device. There are some systems that require 32-bit
|
||||
accesses to the UART (e.g. TI davinci).
|
||||
- used-by-rtas : set to indicate that the port is in use by the OpenFirmware
|
||||
RTAS and should not be registered.
|
||||
- no-loopback-test: set to indicate that the port does not implements loopback
|
||||
test mode
|
||||
- fifo-size: the fifo size of the UART.
|
||||
- auto-flow-control: one way to enable automatic flow control support. The
|
||||
driver is allowed to detect support for the capability even without this
|
||||
property.
|
||||
- tx-threshold: Specify the TX FIFO low water indication for parts with
|
||||
programmable TX FIFO thresholds.
|
||||
- resets : phandle + reset specifier pairs
|
||||
- overrun-throttle-ms : how long to pause uart rx when input overrun is encountered.
|
||||
- {rts,cts,dtr,dsr,rng,dcd}-gpios: specify a GPIO for RTS/CTS/DTR/DSR/RI/DCD
|
||||
line respectively. It will use specified GPIO instead of the peripheral
|
||||
function pin for the UART feature. If unsure, don't specify this property.
|
||||
- aspeed,sirq-polarity-sense: Only applicable to aspeed,ast2500-vuart.
|
||||
phandle to aspeed,ast2500-scu compatible syscon alongside register offset
|
||||
and bit number to identify how the SIRQ polarity should be configured.
|
||||
One possible data source is the LPC/eSPI mode bit.
|
||||
Example: aspeed,sirq-polarity-sense = <&syscon 0x70 25>
|
||||
|
||||
Note:
|
||||
* fsl,ns16550:
|
||||
------------
|
||||
Freescale DUART is very similar to the PC16552D (and to a
|
||||
pair of NS16550A), albeit with some nonstandard behavior such as
|
||||
erratum A-004737 (relating to incorrect BRK handling).
|
||||
|
||||
Represents a single port that is compatible with the DUART found
|
||||
on many Freescale chips (examples include mpc8349, mpc8548,
|
||||
mpc8641d, p4080 and ls2085a).
|
||||
|
||||
Example:
|
||||
|
||||
uart@80230000 {
|
||||
compatible = "ns8250";
|
||||
reg = <0x80230000 0x100>;
|
||||
clock-frequency = <3686400>;
|
||||
interrupts = <10>;
|
||||
reg-shift = <2>;
|
||||
};
|
||||
|
||||
Example for OMAP UART using GPIO-based modem control signals:
|
||||
|
||||
uart4: serial@49042000 {
|
||||
compatible = "ti,omap3-uart";
|
||||
reg = <0x49042000 0x400>;
|
||||
interrupts = <80>;
|
||||
ti,hwmods = "uart4";
|
||||
clock-frequency = <48000000>;
|
||||
cts-gpios = <&gpio3 5 GPIO_ACTIVE_LOW>;
|
||||
rts-gpios = <&gpio3 6 GPIO_ACTIVE_LOW>;
|
||||
dtr-gpios = <&gpio1 12 GPIO_ACTIVE_LOW>;
|
||||
dsr-gpios = <&gpio1 13 GPIO_ACTIVE_LOW>;
|
||||
dcd-gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
|
||||
rng-gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
|
||||
};
|
233
Documentation/devicetree/bindings/serial/8250.yaml
Normal file
233
Documentation/devicetree/bindings/serial/8250.yaml
Normal file
@ -0,0 +1,233 @@
|
||||
# Copyright 2020 Lubomir Rintel <lkundrak@v3.sk>
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/serial/8250.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: UART (Universal Asynchronous Receiver/Transmitter) bindings
|
||||
|
||||
maintainers:
|
||||
- devicetree@vger.kernel.org
|
||||
|
||||
allOf:
|
||||
- $ref: /schemas/serial.yaml#
|
||||
- if:
|
||||
required:
|
||||
- aspeed,sirq-polarity-sense
|
||||
then:
|
||||
properties:
|
||||
compatible:
|
||||
const: aspeed,ast2500-vuart
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
const: mrvl,mmp-uart
|
||||
then:
|
||||
properties:
|
||||
reg-shift:
|
||||
const: 2
|
||||
required:
|
||||
- reg-shift
|
||||
- if:
|
||||
not:
|
||||
properties:
|
||||
compatible:
|
||||
items:
|
||||
- enum:
|
||||
- ns8250
|
||||
- ns16450
|
||||
- ns16550
|
||||
- ns16550a
|
||||
then:
|
||||
anyOf:
|
||||
- required: [ clock-frequency ]
|
||||
- required: [ clocks ]
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
oneOf:
|
||||
- const: ns8250
|
||||
- const: ns16450
|
||||
- const: ns16550
|
||||
- const: ns16550a
|
||||
- const: ns16850
|
||||
- const: aspeed,ast2400-vuart
|
||||
- const: aspeed,ast2500-vuart
|
||||
- const: intel,xscale-uart
|
||||
- const: mrvl,pxa-uart
|
||||
- const: nuvoton,npcm750-uart
|
||||
- const: nvidia,tegra20-uart
|
||||
- const: nxp,lpc3220-uart
|
||||
- items:
|
||||
- enum:
|
||||
- altr,16550-FIFO32
|
||||
- altr,16550-FIFO64
|
||||
- altr,16550-FIFO128
|
||||
- fsl,16550-FIFO64
|
||||
- fsl,ns16550
|
||||
- andestech,uart16550
|
||||
- nxp,lpc1850-uart
|
||||
- opencores,uart16550-rtlsvn105
|
||||
- ti,da830-uart
|
||||
- const: ns16550a
|
||||
- items:
|
||||
- enum:
|
||||
- ns16750
|
||||
- cavium,octeon-3860-uart
|
||||
- xlnx,xps-uart16550-2.00.b
|
||||
- ralink,rt2880-uart
|
||||
- enum:
|
||||
- ns16550 # Deprecated, unless the FIFO really is broken
|
||||
- ns16550a
|
||||
- items:
|
||||
- enum:
|
||||
- ralink,mt7620a-uart
|
||||
- ralink,rt3052-uart
|
||||
- ralink,rt3883-uart
|
||||
- const: ralink,rt2880-uart
|
||||
- enum:
|
||||
- ns16550 # Deprecated, unless the FIFO really is broken
|
||||
- ns16550a
|
||||
- items:
|
||||
- enum:
|
||||
- mediatek,mt7622-btif
|
||||
- mediatek,mt7623-btif
|
||||
- const: mediatek,mtk-btif
|
||||
- items:
|
||||
- enum:
|
||||
- mediatek,mt7622-btif
|
||||
- mediatek,mt7623-btif
|
||||
- const: mediatek,mtk-btif
|
||||
- items:
|
||||
- const: mrvl,mmp-uart
|
||||
- const: intel,xscale-uart
|
||||
- items:
|
||||
- enum:
|
||||
- nvidia,tegra30-uart
|
||||
- nvidia,tegra114-uart
|
||||
- nvidia,tegra124-uart
|
||||
- nvidia,tegra186-uart
|
||||
- nvidia,tegra194-uart
|
||||
- nvidia,tegra210-uart
|
||||
- const: nvidia,tegra20-uart
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
clock-frequency: true
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
resets:
|
||||
maxItems: 1
|
||||
|
||||
current-speed:
|
||||
$ref: /schemas/types.yaml#definitions/uint32
|
||||
description: The current active speed of the UART.
|
||||
|
||||
reg-offset:
|
||||
description: |
|
||||
Offset to apply to the mapbase from the start of the registers.
|
||||
|
||||
reg-shift:
|
||||
description: Quantity to shift the register offsets by.
|
||||
|
||||
reg-io-width:
|
||||
description: |
|
||||
The size (in bytes) of the IO accesses that should be performed on the
|
||||
device. There are some systems that require 32-bit accesses to the
|
||||
UART (e.g. TI davinci).
|
||||
|
||||
used-by-rtas:
|
||||
type: boolean
|
||||
description: |
|
||||
Set to indicate that the port is in use by the OpenFirmware RTAS and
|
||||
should not be registered.
|
||||
|
||||
no-loopback-test:
|
||||
type: boolean
|
||||
description: |
|
||||
Set to indicate that the port does not implement loopback test mode.
|
||||
|
||||
fifo-size:
|
||||
$ref: /schemas/types.yaml#definitions/uint32
|
||||
description: The fifo size of the UART.
|
||||
|
||||
auto-flow-control:
|
||||
type: boolean
|
||||
description: |
|
||||
One way to enable automatic flow control support. The driver is
|
||||
allowed to detect support for the capability even without this
|
||||
property.
|
||||
|
||||
tx-threshold:
|
||||
$ref: /schemas/types.yaml#definitions/uint32
|
||||
description: |
|
||||
Specify the TX FIFO low water indication for parts with programmable
|
||||
TX FIFO thresholds.
|
||||
|
||||
overrun-throttle-ms:
|
||||
description: |
|
||||
How long to pause uart rx when input overrun is encountered.
|
||||
|
||||
rts-gpios: true
|
||||
cts-gpios: true
|
||||
dtr-gpios: true
|
||||
dsr-gpios: true
|
||||
rng-gpios: true
|
||||
dcd-gpios: true
|
||||
|
||||
aspeed,sirq-polarity-sense:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle-array
|
||||
description: |
|
||||
Phandle to aspeed,ast2500-scu compatible syscon alongside register
|
||||
offset and bit number to identify how the SIRQ polarity should be
|
||||
configured. One possible data source is the LPC/eSPI mode bit. Only
|
||||
applicable to aspeed,ast2500-vuart.
|
||||
|
||||
required:
|
||||
- reg
|
||||
- interrupts
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
serial@80230000 {
|
||||
compatible = "ns8250";
|
||||
reg = <0x80230000 0x100>;
|
||||
interrupts = <10>;
|
||||
reg-shift = <2>;
|
||||
clock-frequency = <48000000>;
|
||||
};
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
serial@49042000 {
|
||||
compatible = "andestech,uart16550", "ns16550a";
|
||||
reg = <0x49042000 0x400>;
|
||||
interrupts = <80>;
|
||||
clock-frequency = <48000000>;
|
||||
cts-gpios = <&gpio3 5 GPIO_ACTIVE_LOW>;
|
||||
rts-gpios = <&gpio3 6 GPIO_ACTIVE_LOW>;
|
||||
dtr-gpios = <&gpio1 12 GPIO_ACTIVE_LOW>;
|
||||
dsr-gpios = <&gpio1 13 GPIO_ACTIVE_LOW>;
|
||||
dcd-gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
|
||||
rng-gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
- |
|
||||
#include <dt-bindings/clock/aspeed-clock.h>
|
||||
serial@1e787000 {
|
||||
compatible = "aspeed,ast2500-vuart";
|
||||
reg = <0x1e787000 0x40>;
|
||||
reg-shift = <2>;
|
||||
interrupts = <8>;
|
||||
clocks = <&syscon ASPEED_CLK_APB>;
|
||||
no-loopback-test;
|
||||
aspeed,sirq-polarity-sense = <&syscon 0x70 25>;
|
||||
};
|
||||
|
||||
...
|
Loading…
Reference in New Issue
Block a user