Skip to content
  • Jeremy Kerr's avatar
    drivers/serial: Add driver for Aspeed virtual UART · 7fbcf3af
    Jeremy Kerr authored
    
    
    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: default avatarJeremy Kerr <jk@ozlabs.org>
    Signed-off-by: default avatarJoel Stanley <joel@jms.id.au>
    Acked-by: default avatarRob Herring <robh@kernel.org>
    Reviewed-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
    Reviewed-by: default avatarAndy Shevchenko <andy.shevchenko@gmail.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    7fbcf3af