]> git.baikalelectronics.ru Git - kernel.git/commit
drivers/serial: Add driver for Aspeed virtual UART
authorJeremy Kerr <jk@ozlabs.org>
Tue, 2 May 2017 07:45:43 +0000 (17:15 +0930)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 18 May 2017 14:19:16 +0000 (16:19 +0200)
commitd72846e91488e3051e9651577a7d2b02ced668a5
tree8fce64827bd08687c18af1e95941f7cc809a6e43
parent64bc2ca49d45b4d9e6488682fb440315b9c4b246
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>
Documentation/ABI/stable/sysfs-driver-aspeed-vuart [new file with mode: 0644]
Documentation/devicetree/bindings/serial/8250.txt
drivers/tty/serial/8250/8250_aspeed_vuart.c [new file with mode: 0644]
drivers/tty/serial/8250/Kconfig
drivers/tty/serial/8250/Makefile