linux/drivers/tty/serial/8250
Jeremy Kerr 7fbcf3afe6 drivers/serial: Add driver for Aspeed virtual UART
This change adds a driver for the 16550-based Aspeed virtual UART
device. We use a similar process to the of_serial driver for device
probe, but expose some VUART-specific functions through sysfs too.

The VUART is two UART 'front ends' connected by their FIFO (no actual
serial line in between). One is on the BMC side (management controller)
and one is on the host CPU side.

This driver is for the BMC side. The sysfs files allow the BMC
userspace, which owns the system configuration policy, to specify at
what IO port and interrupt number the host side will appear to the host
on the Host <-> BMC LPC bus. It could be different on a different system
(though most of them use 3f8/4).

OpenPOWER host firmware doesn't like it when the host-side of the
VUART's FIFO is not drained. This driver only disables host TX discard
mode when the port is in use. We set the VUART enabled bit when we bind
to the device, and clear it on unbind.

We don't want to do this on open/release, as the host may be using this
bit to configure serial output modes, which is independent of whether
the devices has been opened by BMC userspace.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Signed-off-by: Joel Stanley <joel@jms.id.au>
Acked-by: Rob Herring <robh@kernel.org>
Reviewed-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-05-18 16:19:16 +02:00
..
8250_accent.c tty: serial: 8250: Add generic port init macro 2016-02-06 23:15:53 -08:00
8250_acorn.c tty: serial: 8250: Fix whitespace errors 2016-02-06 23:15:53 -08:00
8250_aspeed_vuart.c drivers/serial: Add driver for Aspeed virtual UART 2017-05-18 16:19:16 +02:00
8250_bcm2835aux.c serial: bcm2835: fix unsigned int issue with irq 2016-02-14 17:39:36 -08:00
8250_boca.c tty: serial: 8250: Add generic port init macro 2016-02-06 23:15:53 -08:00
8250_core.c Annotation of module parameters that specify device settings 2017-05-10 19:13:03 -07:00
8250_dma.c serial: 8250_dma: power off device after TX is done 2016-11-16 10:57:26 +01:00
8250_dw.c Merge 4.11-rc4 into tty-next 2017-03-29 08:58:53 +02:00
8250_early.c serial: 8250_early: Add earlycon support for Palmchip UART 2017-04-18 17:47:42 +02:00
8250_em.c serial: 8250: remove the redundant include 2015-03-26 22:21:08 +01:00
8250_exar_st16c554.c tty: serial: 8250: Add generic port init macro 2016-02-06 23:15:53 -08:00
8250_exar.c serial: 8250_exar: Remove duplicate assignment 2017-05-18 16:19:16 +02:00
8250_fintek.c serial: 8250_fintek: Enable high speed mode on Fintek F81866 2017-03-17 14:17:11 +09:00
8250_fourport.c tty: serial: 8250: Add generic port init macro 2016-02-06 23:15:53 -08:00
8250_fsl.c serial: export fsl8250_handle_irq 2015-11-20 16:19:54 -08:00
8250_gsc.c tty: serial: 8250: 8250_gsc:- Handle return NULL error from ioremap_nocache 2017-01-19 14:20:23 +01:00
8250_hp300.c serial: hp300: mask the warning for people just doing build coverage 2017-01-25 11:08:30 +01:00
8250_hub6.c tty: serial: 8250: Fix whitespace errors 2016-02-06 23:15:53 -08:00
8250_ingenic.c serial: 8250_ingenic: drop #if conditional surrounding earlycon code 2016-06-25 14:31:04 -07:00
8250_lpc18xx.c serial: 8250: add LPC18xx/43xx UART driver 2015-06-01 06:56:33 +09:00
8250_lpss.c serial: 8250_lpss: Unconditionally set PCI master for Quark 2017-03-31 15:36:54 +02:00
8250_mid.c serial: 8250_mid: set PCI master only for DMA capable device 2017-01-19 14:20:23 +01:00
8250_moxa.c serial: 8250: moxa: Store num_ports in brd 2017-01-12 11:51:25 +01:00
8250_mtk.c serial: 8250_mtk: support big baud rate. 2016-08-31 16:01:26 +02:00
8250_of.c 8250: of: remove remnants of generic of_serial driver 2017-01-27 09:23:36 +01:00
8250_omap.c serial: 8250: omap: Disable DMA for console UART 2017-05-18 16:19:16 +02:00
8250_pci.c serial: pci: Remove unused pci_boards entries 2017-02-10 15:12:39 +01:00
8250_pnp.c tty: serial: 8250: Fix indentation warnings 2016-02-06 23:15:53 -08:00
8250_port.c serial: 8250: Add flag so drivers can avoid THRE probe 2017-05-18 16:19:16 +02:00
8250_pxa.c serial: pxa2xx: mark PM functions as __maybe_unused 2016-11-10 14:50:46 +01:00
8250_uniphier.c serial: 8250_uniphier: avoid locking for FCR register write 2016-11-10 14:30:09 +01:00
8250.h serial: 8250: Add IrDA to UART capabilities 2016-11-16 10:59:38 +01:00
Kconfig drivers/serial: Add driver for Aspeed virtual UART 2017-05-18 16:19:16 +02:00
Makefile drivers/serial: Add driver for Aspeed virtual UART 2017-05-18 16:19:16 +02:00
serial_cs.c tty: serial: 8250: Fix multi-line strings 2016-02-06 23:15:53 -08:00