From: sudheer veliseti <sudheer.open@xxxxxxxxx> build config for DMA based UART driver in AST2500. Total Available UARTs in AST2500 are 4 Signed-off-by: sudheer veliseti <sudheer.open@xxxxxxxxx> --- Changes from v3->v4: - config name changed to SERIAL_AST_DMA_UART - new config AST_UART_DMA_RX_INTERRUPT introduced for selectin between DMA interrupt based RX vs timer based uart RX Changes in v2->v3: - change logs added drivers/tty/serial/8250/Kconfig | 43 ++++++++++++++++++++++++++++++++ drivers/tty/serial/8250/Makefile | 1 + 2 files changed, 44 insertions(+) diff --git a/drivers/tty/serial/8250/Kconfig b/drivers/tty/serial/8250/Kconfig index 15c2c5463835..7052ab0f4894 100644 --- a/drivers/tty/serial/8250/Kconfig +++ b/drivers/tty/serial/8250/Kconfig @@ -189,6 +189,49 @@ config SERIAL_8250_RUNTIME_UARTS with the module parameter "nr_uarts", or boot-time parameter 8250.nr_uarts +config SERIAL_AST_DMA_UART + tristate "AST UART driver with DMA" + select SERIAL_CORE + help + UART driver with DMA support for Aspeed BMC AST25XX. + this driver supports UARTs in AST2500. It uses + DMA channel of DMA engines present in these chips. + since this dma engine is used only by UARTs it is not + added as a separate DMA driver instead added as a layer + within UART driver. + +config AST_UART_DMA_RX_INTERRUPT + bool "DMA interrupt of UART RX" + depends on SERIAL_AST_DMA_UART + default y + help + This config is Enabled by default,which means Rx part + of UART is handled by DMA interrupt. + if the version of chip AST2500 doesn't support + DMA interrupt based RX,then Disable this option.Refer + driver code to see how Rx is handled by timer,if Rx + interrupt is not available. + + +config AST_NR_DMA_UARTS + int "Maximum number of uart dma serial ports" + depends on SERIAL_AST_DMA_UART + default "4" + help + Set this to the number of serial ports you want the driver + to support. This includes any ports discovered via ACPI or + PCI enumeration and any ports that may be added at run-time + via hot-plug, or any ISA multi-port serial cards. + +config AST_RUNTIME_DMA_UARTS + int "Number of uart dma serial ports to register at runtime" + depends on SERIAL_AST_DMA_UART + range 0 AST_NR_DMA_UARTS + default "4" + help + Set this to the maximum number of serial ports you want + the kernel to register at boot time. + config SERIAL_8250_EXTENDED bool "Extended 8250/16550 serial driver options" depends on SERIAL_8250 diff --git a/drivers/tty/serial/8250/Makefile b/drivers/tty/serial/8250/Makefile index 18751bc63a84..251f2e85efa1 100644 --- a/drivers/tty/serial/8250/Makefile +++ b/drivers/tty/serial/8250/Makefile @@ -36,6 +36,7 @@ obj-$(CONFIG_SERIAL_8250_LPSS) += 8250_lpss.o obj-$(CONFIG_SERIAL_8250_MID) += 8250_mid.o obj-$(CONFIG_SERIAL_8250_MOXA) += 8250_moxa.o obj-$(CONFIG_SERIAL_8250_PXA) += 8250_pxa.o +obj-$(CONFIG_SERIAL_AST_DMA_UART) += 8250_ast2500_uart_dma.o obj-$(CONFIG_SERIAL_OF_PLATFORM) += 8250_of.o CFLAGS_8250_ingenic.o += -I$(srctree)/scripts/dtc/libfdt -- 2.17.1