Replace ns16550.txt with binding files from Linux kernel. As suggested by Stephen Warren, we should keep the directory structure, filenames, and file content identical to the bindings in the Linux kernel. Signed-off-by: Thomas Chou <thomas@wytron.com.tw> Acked-by: Stephen Warren <swarren@nvidia.com> Reviewed-by: Simon Glass <sjg@chromium.org>master
parent
b99353b8ac
commit
75219d57ef
@ -0,0 +1,66 @@ |
||||
* 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" |
||||
- "ibm,qpace-nwp-serial" |
||||
- "altr,16550-FIFO32" |
||||
- "altr,16550-FIFO64" |
||||
- "altr,16550-FIFO128" |
||||
- "fsl,16550-FIFO64" |
||||
- "fsl,ns16550" |
||||
- "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. |
||||
|
||||
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>; |
||||
}; |
@ -1,10 +0,0 @@ |
||||
NS16550 UART |
||||
|
||||
This UART driver supports many chip variants and is used in mamy SoCs. |
||||
|
||||
Required properties: |
||||
- compatible: "ns16550" or "nvidia,tegra20-uart" |
||||
- reg: start address and size of registers |
||||
- reg-shift: shift value indicating register size: 0=byte, 1=16bit,2=32bit etc. |
||||
- clock-frequency: input clock frequency for the UART (used to calculate the |
||||
baud rate divisor) |
@ -0,0 +1,33 @@ |
||||
OMAP UART controller |
||||
|
||||
Required properties: |
||||
- compatible : should be "ti,omap2-uart" for OMAP2 controllers |
||||
- compatible : should be "ti,omap3-uart" for OMAP3 controllers |
||||
- compatible : should be "ti,omap4-uart" for OMAP4 controllers |
||||
- compatible : should be "ti,am4372-uart" for AM437x controllers |
||||
- compatible : should be "ti,am3352-uart" for AM335x controllers |
||||
- compatible : should be "ti,dra742-uart" for DRA7x controllers |
||||
- reg : address and length of the register space |
||||
- interrupts or interrupts-extended : Should contain the uart interrupt |
||||
specifier or both the interrupt |
||||
controller phandle and interrupt |
||||
specifier. |
||||
- ti,hwmods : Must be "uart<n>", n being the instance number (1-based) |
||||
|
||||
Optional properties: |
||||
- clock-frequency : frequency of the clock input to the UART |
||||
- dmas : DMA specifier, consisting of a phandle to the DMA controller |
||||
node and a DMA channel number. |
||||
- dma-names : "rx" for receive channel, "tx" for transmit channel. |
||||
|
||||
Example: |
||||
|
||||
uart4: serial@49042000 { |
||||
compatible = "ti,omap3-uart"; |
||||
reg = <0x49042000 0x400>; |
||||
interrupts = <80>; |
||||
dmas = <&sdma 81 &sdma 82>; |
||||
dma-names = "tx", "rx"; |
||||
ti,hwmods = "uart4"; |
||||
clock-frequency = <48000000>; |
||||
}; |
@ -0,0 +1,76 @@ |
||||
* Synopsys DesignWare ABP UART |
||||
|
||||
Required properties: |
||||
- compatible : "snps,dw-apb-uart" |
||||
- reg : offset and length of the register set for the device. |
||||
- interrupts : should contain uart interrupt. |
||||
|
||||
Clock handling: |
||||
The clock rate of the input clock needs to be supplied by one of |
||||
- clock-frequency : the input clock frequency for the UART. |
||||
- clocks : phandle to the input clock |
||||
|
||||
The supplying peripheral clock can also be handled, needing a second property |
||||
- clock-names: tuple listing input clock names. |
||||
Required elements: "baudclk", "apb_pclk" |
||||
|
||||
Optional properties: |
||||
- snps,uart-16550-compatible : reflects the value of UART_16550_COMPATIBLE |
||||
configuration parameter. Define this if your UART does not implement the busy |
||||
functionality. |
||||
- resets : phandle to the parent reset controller. |
||||
- reg-shift : quantity to shift the register offsets by. If this property is |
||||
not present then the register offsets are not shifted. |
||||
- reg-io-width : the size (in bytes) of the IO accesses that should be |
||||
performed on the device. If this property is not present then single byte |
||||
accesses are used. |
||||
- dcd-override : Override the DCD modem status signal. This signal will always |
||||
be reported as active instead of being obtained from the modem status |
||||
register. Define this if your serial port does not use this pin. |
||||
- dsr-override : Override the DTS modem status signal. This signal will always |
||||
be reported as active instead of being obtained from the modem status |
||||
register. Define this if your serial port does not use this pin. |
||||
- cts-override : Override the CTS modem status signal. This signal will always |
||||
be reported as active instead of being obtained from the modem status |
||||
register. Define this if your serial port does not use this pin. |
||||
- ri-override : Override the RI modem status signal. This signal will always be |
||||
reported as inactive instead of being obtained from the modem status register. |
||||
Define this if your serial port does not use this pin. |
||||
|
||||
Example: |
||||
|
||||
uart@80230000 { |
||||
compatible = "snps,dw-apb-uart"; |
||||
reg = <0x80230000 0x100>; |
||||
clock-frequency = <3686400>; |
||||
interrupts = <10>; |
||||
reg-shift = <2>; |
||||
reg-io-width = <4>; |
||||
dcd-override; |
||||
dsr-override; |
||||
cts-override; |
||||
ri-override; |
||||
}; |
||||
|
||||
Example with one clock: |
||||
|
||||
uart@80230000 { |
||||
compatible = "snps,dw-apb-uart"; |
||||
reg = <0x80230000 0x100>; |
||||
clocks = <&baudclk>; |
||||
interrupts = <10>; |
||||
reg-shift = <2>; |
||||
reg-io-width = <4>; |
||||
}; |
||||
|
||||
Example with two clocks: |
||||
|
||||
uart@80230000 { |
||||
compatible = "snps,dw-apb-uart"; |
||||
reg = <0x80230000 0x100>; |
||||
clocks = <&baudclk>, <&apb_pclk>; |
||||
clock-names = "baudclk", "apb_pclk"; |
||||
interrupts = <10>; |
||||
reg-shift = <2>; |
||||
reg-io-width = <4>; |
||||
}; |
Loading…
Reference in new issue