Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e9ea096d authored by Laxman Dewangan's avatar Laxman Dewangan Committed by Greg Kroah-Hartman
Browse files

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: default avatarLaxman Dewangan <ldewangan@nvidia.com>
Acked-by: default avatarAlan Cox <alan@linux.intel.com>
Reviewed-by: default avatarStephen Warren <swarren@nvidia.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 42d34191
Loading
Loading
Loading
Loading
+24 −0
Original line number Diff line number Diff line
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";
};
+11 −0
Original line number Diff line number Diff line
@@ -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
+1 −0
Original line number Diff line number Diff line
@@ -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 −0

File added.

Preview size limit exceeded, changes collapsed.