]> git.karo-electronics.de Git - karo-tx-linux.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)
commit7fbcf3afe6e8e180bfc39fb3f41657fa6e4af55c
tree8fce64827bd08687c18af1e95941f7cc809a6e43
parentea5244e2af3b4813bf3d90ba6a6481d1a3c33d15
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