mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-13 22:25:03 +00:00
09864c1cdf
Introduce support for LINFlex driver, based on: - the version of Freescale LPUART driver after commitb3e3bf2ef2
("Merge 4.0-rc7 into tty-next"); - commitabf1e0a980
("tty: serial: fsl_lpuart: lock port on console write"). In this basic version, the driver can be tested using initramfs and relies on the clocks and pin muxing set up by U-Boot. Remarks concerning the earlycon support: - LinFlexD does not allow character transmissions in the INIT mode (see section 47.4.2.1 in the reference manual[1]). Therefore, a mutual exclusion between the first linflex_setup_watermark/linflex_set_termios executions and linflex_earlycon_putchar was employed and the characters normally sent to earlycon during initialization are kept in a buffer and sent afterwards. - Empirically, character transmission is also forbidden within the last 1-2 ms before entering the INIT mode, so we use an explicit timeout (PREINIT_DELAY) between linflex_earlycon_putchar and the first call to linflex_setup_watermark. - U-Boot currently uses the UART FIFO mode, while this driver makes the transition to the buffer mode. Therefore, the earlycon putchar function matches the U-Boot behavior before initializations and the Linux behavior after. [1] https://www.nxp.com/webapp/Download?colCode=S32V234RM Signed-off-by: Stoica Cosmin-Stefan <cosmin.stoica@nxp.com> Signed-off-by: Adrian.Nitu <adrian.nitu@freescale.com> Signed-off-by: Larisa Grigore <Larisa.Grigore@nxp.com> Signed-off-by: Ana Nedelcu <B56683@freescale.com> Signed-off-by: Mihaela Martinas <Mihaela.Martinas@freescale.com> Signed-off-by: Matthew Nunez <matthew.nunez@nxp.com> [stefan-gabriel.mirea@nxp.com: Reduced for upstreaming and implemented earlycon support] Signed-off-by: Stefan-Gabriel Mirea <stefan-gabriel.mirea@nxp.com> Link: https://lore.kernel.org/r/20190809112853.15846-6-stefan-gabriel.mirea@nxp.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
100 lines
4 KiB
Makefile
100 lines
4 KiB
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
#
|
|
# Makefile for the kernel serial device drivers.
|
|
#
|
|
|
|
obj-$(CONFIG_SERIAL_CORE) += serial_core.o
|
|
|
|
obj-$(CONFIG_SERIAL_EARLYCON) += earlycon.o
|
|
obj-$(CONFIG_SERIAL_EARLYCON_ARM_SEMIHOST) += earlycon-arm-semihost.o
|
|
obj-$(CONFIG_SERIAL_EARLYCON_RISCV_SBI) += earlycon-riscv-sbi.o
|
|
|
|
# These Sparc drivers have to appear before others such as 8250
|
|
# which share ttySx minor node space. Otherwise console device
|
|
# names change and other unplesantries.
|
|
obj-$(CONFIG_SERIAL_SUNCORE) += suncore.o
|
|
obj-$(CONFIG_SERIAL_SUNHV) += sunhv.o
|
|
obj-$(CONFIG_SERIAL_SUNZILOG) += sunzilog.o
|
|
obj-$(CONFIG_SERIAL_SUNSU) += sunsu.o
|
|
obj-$(CONFIG_SERIAL_SUNSAB) += sunsab.o
|
|
|
|
obj-$(CONFIG_SERIAL_21285) += 21285.o
|
|
|
|
# Now bring in any enabled 8250/16450/16550 type drivers.
|
|
obj-$(CONFIG_SERIAL_8250) += 8250/
|
|
|
|
obj-$(CONFIG_SERIAL_AMBA_PL010) += amba-pl010.o
|
|
obj-$(CONFIG_SERIAL_AMBA_PL011) += amba-pl011.o
|
|
obj-$(CONFIG_SERIAL_CLPS711X) += clps711x.o
|
|
obj-$(CONFIG_SERIAL_PXA_NON8250) += pxa.o
|
|
obj-$(CONFIG_SERIAL_PNX8XXX) += pnx8xxx_uart.o
|
|
obj-$(CONFIG_SERIAL_SA1100) += sa1100.o
|
|
obj-$(CONFIG_SERIAL_BCM63XX) += bcm63xx_uart.o
|
|
obj-$(CONFIG_SERIAL_SAMSUNG) += samsung.o
|
|
obj-$(CONFIG_SERIAL_MAX3100) += max3100.o
|
|
obj-$(CONFIG_SERIAL_MAX310X) += max310x.o
|
|
obj-$(CONFIG_SERIAL_IP22_ZILOG) += ip22zilog.o
|
|
obj-$(CONFIG_SERIAL_MUX) += mux.o
|
|
obj-$(CONFIG_SERIAL_MCF) += mcf.o
|
|
obj-$(CONFIG_SERIAL_PMACZILOG) += pmac_zilog.o
|
|
obj-$(CONFIG_SERIAL_HS_LPC32XX) += lpc32xx_hs.o
|
|
obj-$(CONFIG_SERIAL_DZ) += dz.o
|
|
obj-$(CONFIG_SERIAL_ZS) += zs.o
|
|
obj-$(CONFIG_SERIAL_SH_SCI) += sh-sci.o
|
|
obj-$(CONFIG_SERIAL_SGI_L1_CONSOLE) += sn_console.o
|
|
obj-$(CONFIG_SERIAL_CPM) += cpm_uart/
|
|
obj-$(CONFIG_SERIAL_IMX) += imx.o
|
|
obj-$(CONFIG_SERIAL_MPC52xx) += mpc52xx_uart.o
|
|
obj-$(CONFIG_SERIAL_ICOM) += icom.o
|
|
obj-$(CONFIG_SERIAL_MESON) += meson_uart.o
|
|
obj-$(CONFIG_SERIAL_SB1250_DUART) += sb1250-duart.o
|
|
obj-$(CONFIG_SERIAL_SCCNXP) += sccnxp.o
|
|
obj-$(CONFIG_SERIAL_SC16IS7XX_CORE) += sc16is7xx.o
|
|
obj-$(CONFIG_SERIAL_JSM) += jsm/
|
|
obj-$(CONFIG_SERIAL_TXX9) += serial_txx9.o
|
|
obj-$(CONFIG_SERIAL_VR41XX) += vr41xx_siu.o
|
|
obj-$(CONFIG_SERIAL_SGI_IOC4) += ioc4_serial.o
|
|
obj-$(CONFIG_SERIAL_SGI_IOC3) += ioc3_serial.o
|
|
obj-$(CONFIG_SERIAL_ATMEL) += atmel_serial.o
|
|
obj-$(CONFIG_SERIAL_UARTLITE) += uartlite.o
|
|
obj-$(CONFIG_SERIAL_MSM) += msm_serial.o
|
|
obj-$(CONFIG_SERIAL_QCOM_GENI) += qcom_geni_serial.o
|
|
obj-$(CONFIG_SERIAL_OMAP) += omap-serial.o
|
|
obj-$(CONFIG_SERIAL_ALTERA_UART) += altera_uart.o
|
|
obj-$(CONFIG_SERIAL_ST_ASC) += st-asc.o
|
|
obj-$(CONFIG_SERIAL_QE) += ucc_uart.o
|
|
obj-$(CONFIG_SERIAL_TIMBERDALE) += timbuart.o
|
|
obj-$(CONFIG_SERIAL_GRLIB_GAISLER_APBUART) += apbuart.o
|
|
obj-$(CONFIG_SERIAL_ALTERA_JTAGUART) += altera_jtaguart.o
|
|
obj-$(CONFIG_SERIAL_VT8500) += vt8500_serial.o
|
|
obj-$(CONFIG_SERIAL_IFX6X60) += ifx6x60.o
|
|
obj-$(CONFIG_SERIAL_PCH_UART) += pch_uart.o
|
|
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_TEGRA_TCU) += tegra-tcu.o
|
|
obj-$(CONFIG_SERIAL_AR933X) += ar933x_uart.o
|
|
obj-$(CONFIG_SERIAL_EFM32_UART) += efm32-uart.o
|
|
obj-$(CONFIG_SERIAL_ARC) += arc_uart.o
|
|
obj-$(CONFIG_SERIAL_RP2) += rp2.o
|
|
obj-$(CONFIG_SERIAL_FSL_LPUART) += fsl_lpuart.o
|
|
obj-$(CONFIG_SERIAL_FSL_LINFLEXUART) += fsl_linflexuart.o
|
|
obj-$(CONFIG_SERIAL_CONEXANT_DIGICOLOR) += digicolor-usart.o
|
|
obj-$(CONFIG_SERIAL_MEN_Z135) += men_z135_uart.o
|
|
obj-$(CONFIG_SERIAL_SPRD) += sprd_serial.o
|
|
obj-$(CONFIG_SERIAL_STM32) += stm32-usart.o
|
|
obj-$(CONFIG_SERIAL_MVEBU_UART) += mvebu-uart.o
|
|
obj-$(CONFIG_SERIAL_PIC32) += pic32_uart.o
|
|
obj-$(CONFIG_SERIAL_MPS2_UART) += mps2-uart.o
|
|
obj-$(CONFIG_SERIAL_OWL) += owl-uart.o
|
|
obj-$(CONFIG_SERIAL_RDA) += rda-uart.o
|
|
obj-$(CONFIG_SERIAL_MILBEAUT_USIO) += milbeaut_usio.o
|
|
obj-$(CONFIG_SERIAL_SIFIVE) += sifive.o
|
|
|
|
# GPIOLIB helpers for modem control lines
|
|
obj-$(CONFIG_SERIAL_MCTRL_GPIO) += serial_mctrl_gpio.o
|
|
|
|
obj-$(CONFIG_SERIAL_KGDB_NMI) += kgdb_nmi.o
|
|
obj-$(CONFIG_KGDB_SERIAL_CONSOLE) += kgdboc.o
|