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

Commit 55046237 authored by Mayank Rana's avatar Mayank Rana Committed by Greg Kroah-Hartman
Browse files

serial: msm_serial_hs: Add MSM high speed UART driver

This driver supports UART-DM HW on MSM platforms. It uses the on
chip DMA to drive data transfers and has optional support for UART
power management independent of Linux suspend/resume and wakeup
from Rx.

The driver was originally developed by Google. It is functionally
equivalent to the version available at:
http://android.git.kernel.org/?p=kernel/experimental.git


the differences being:
1) Remove wakelocks and change unsupported DMA API.
2) Replace clock selection register codes by macros.
3) Fix checkpatch errors and add inline documentation.
4) Add runtime PM hooks for active power state transitions.
5) Handle error path and cleanup resources if required.

CC: Nick Pelly <npelly@google.com>
Signed-off-by: default avatarSankalp Bose <sankalpb@codeaurora.org>
Signed-off-by: default avatarMayank Rana <mrana@codeaurora.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 00bff392
Loading
Loading
Loading
Loading
+12 −0
Original line number Original line Diff line number Diff line
@@ -1319,6 +1319,18 @@ config SERIAL_MSM_CONSOLE
	depends on SERIAL_MSM=y
	depends on SERIAL_MSM=y
	select SERIAL_CORE_CONSOLE
	select SERIAL_CORE_CONSOLE


config SERIAL_MSM_HS
	tristate "MSM UART High Speed: Serial Driver"
	depends on ARCH_MSM
	select SERIAL_CORE
	help
	  If you have a machine based on MSM family of SoCs, you
	  can enable its onboard high speed serial port by enabling
	  this option.

	  Choose M here to compile it as a module. The module will be
	  called msm_serial_hs.

config SERIAL_VT8500
config SERIAL_VT8500
	bool "VIA VT8500 on-chip serial port support"
	bool "VIA VT8500 on-chip serial port support"
	depends on ARM && ARCH_VT8500
	depends on ARM && ARCH_VT8500
+1 −0
Original line number Original line Diff line number Diff line
@@ -76,6 +76,7 @@ obj-$(CONFIG_SERIAL_SGI_IOC3) += ioc3_serial.o
obj-$(CONFIG_SERIAL_ATMEL) += atmel_serial.o
obj-$(CONFIG_SERIAL_ATMEL) += atmel_serial.o
obj-$(CONFIG_SERIAL_UARTLITE) += uartlite.o
obj-$(CONFIG_SERIAL_UARTLITE) += uartlite.o
obj-$(CONFIG_SERIAL_MSM) += msm_serial.o
obj-$(CONFIG_SERIAL_MSM) += msm_serial.o
obj-$(CONFIG_SERIAL_MSM_HS) += msm_serial_hs.o
obj-$(CONFIG_SERIAL_NETX) += netx-serial.o
obj-$(CONFIG_SERIAL_NETX) += netx-serial.o
obj-$(CONFIG_SERIAL_OF_PLATFORM) += of_serial.o
obj-$(CONFIG_SERIAL_OF_PLATFORM) += of_serial.o
obj-$(CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL) += nwpserial.o
obj-$(CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL) += nwpserial.o