mirror of
https://github.com/torvalds/linux.git
synced 2024-12-01 00:21:32 +00:00
serial: tegra: add serial driver
NVIDIA's Tegra has multiple UART controller which supports: - APB DMA based controller fifo read/write. - End Of Data interrupt in incoming data to know whether end of frame achieve or not. - HW controlled RTS and CTS flow control to reduce SW overhead. Add serial driver to use all above feature. Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com> Acked-by: Alan Cox <alan@linux.intel.com> Reviewed-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
42d3419154
commit
e9ea096dd2
@ -0,0 +1,24 @@
|
||||
NVIDIA Tegra20/Tegra30 high speed (DMA based) UART controller driver.
|
||||
|
||||
Required properties:
|
||||
- compatible : should be "nvidia,tegra30-hsuart", "nvidia,tegra20-hsuart".
|
||||
- reg: Should contain UART controller registers location and length.
|
||||
- interrupts: Should contain UART controller interrupts.
|
||||
- nvidia,dma-request-selector : The Tegra DMA controller's phandle and
|
||||
request selector for this UART controller.
|
||||
|
||||
Optional properties:
|
||||
- nvidia,enable-modem-interrupt: Enable modem interrupts. Should be enable
|
||||
only if all 8 lines of UART controller are pinmuxed.
|
||||
|
||||
Example:
|
||||
|
||||
serial@70006000 {
|
||||
compatible = "nvidia,tegra30-hsuart", "nvidia,tegra20-hsuart";
|
||||
reg = <0x70006000 0x40>;
|
||||
reg-shift = <2>;
|
||||
interrupts = <0 36 0x04>;
|
||||
nvidia,dma-request-selector = <&apbdma 8>;
|
||||
nvidia,enable-modem-interrupt;
|
||||
status = "disabled";
|
||||
};
|
@ -269,6 +269,17 @@ config SERIAL_SIRFSOC_CONSOLE
|
||||
your boot loader about how to pass options to the kernel at
|
||||
boot time.)
|
||||
|
||||
config SERIAL_TEGRA
|
||||
tristate "NVIDIA Tegra20/30 SoC serial controller"
|
||||
depends on ARCH_TEGRA && TEGRA20_APB_DMA
|
||||
select SERIAL_CORE
|
||||
help
|
||||
Support for the on-chip UARTs on the NVIDIA Tegra series SOCs
|
||||
providing /dev/ttyHS0, 1, 2, 3 and 4 (note, some machines may not
|
||||
provide all of these ports, depending on how the serial port
|
||||
are enabled). This driver uses the APB DMA to achieve higher baudrate
|
||||
and better performance.
|
||||
|
||||
config SERIAL_MAX3100
|
||||
tristate "MAX3100 support"
|
||||
depends on SPI
|
||||
|
@ -80,6 +80,7 @@ obj-$(CONFIG_SERIAL_MXS_AUART) += mxs-auart.o
|
||||
obj-$(CONFIG_SERIAL_LANTIQ) += lantiq.o
|
||||
obj-$(CONFIG_SERIAL_XILINX_PS_UART) += xilinx_uartps.o
|
||||
obj-$(CONFIG_SERIAL_SIRFSOC) += sirfsoc_uart.o
|
||||
obj-$(CONFIG_SERIAL_TEGRA) += serial-tegra.o
|
||||
obj-$(CONFIG_SERIAL_AR933X) += ar933x_uart.o
|
||||
obj-$(CONFIG_SERIAL_EFM32_UART) += efm32-uart.o
|
||||
obj-$(CONFIG_SERIAL_ARC) += arc_uart.o
|
||||
|
1399
drivers/tty/serial/serial-tegra.c
Normal file
1399
drivers/tty/serial/serial-tegra.c
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user