• Andrew Lunn's avatar
    USB: serial: add Moxa UPORT 12XX/14XX/16XX driver · ee467a1f
    Andrew Lunn authored
    Add a driver which supports the following Moxa USB to serial converters:
    *       2 ports : UPort 1250, UPort 1250I
    *       4 ports : UPort 1410, UPort 1450, UPort 1450I
    *       8 ports : UPort 1610-8, UPort 1650-8
    *      16 ports : UPort 1610-16, UPort 1650-16
    
    The UPORT devices don't directly fit the USB serial model. USB serial
    assumes a bulk in/out endpoint pair per serial port. Thus a dual port
    USB serial device is expected to have two bulk in/out pairs. The Moxa
    UPORT only has one pair for data transfer and places a header on each
    transfer over the endpoint indicating for which port the transfer
    relates to. There is a second endpoint pair for events, such as modem
    control lines changing state, setting baud rates etc. Again, a
    multiplexing header is used on these endpoints.
    
    Some ports need to have a kfifo explicitly allocated since the
    framework does not allocate one if there is no associated endpoints.
    The framework will however free it on unload of the module.
    
    All data transfers are made on port0, yet the locks are taken on PortN.
    urb->context points to PortN, even though the URB is for port0.
    
    Where possible, code from the generic driver is called. However
    mxuport_process_read_urb_data() is mostly a cut/paste of
    usb_serial_generic_process_read_urb().
    
    The driver will attempt to load firmware from userspace and compare
    the available version and the running version. If the available
    version is newer, it will be download into RAM of the device and
    started. This is optional and the driver appears to work O.K. with
    older firmware in the devices ROM.
    
    This driver is based on the MOXA driver and retains MOXAs copyright.
    
    [jhovold@gmail.com: fix get_fw_version error path and some style issues]
    Signed-off-by: default avatarAndrew Lunn <andrew@lunn.ch>
    Reviewed-by: default avatarJohan Hovold <jhovold@gmail.com>
    Signed-off-by: default avatarJohan Hovold <jhovold@gmail.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    ee467a1f
Kconfig 23.4 KB