• Zang Roy-r61911's avatar
    [SERIAL] 8250: add tsi108 serial support · 3be91ec7
    Zang Roy-r61911 authored
    The following patch gets rid of CONFIG_TSI108_BRIDGE.  I add UPIO_TSI to
    handle IIR and IER register in serial_in and serial_out.
    
    (1) the reason to rewrite serial_in:
    
        TSI108 rev Z1 version ERRATA.  Reading the UART's Interrupt
        Identification Register (IIR) clears the Transmit Holding Register
        Empty (THRE) and Transmit buffer Empty (TEMP) interrupts even if they
        are not enabled in the Interrupt Enable Register (IER).  This leads to
        loss of the interrupts.  Interrupts are not cleared when reading UART
        registers as 32-bit word.
    
    (2) the reason to rewrite serial_out:
    
        Check for UART_IER_UUE bit in the autoconfig routine.  This section
        of autoconfig is excluded for Tsi108/109 because bits 7 and 6 are
        reserved for internal use.  They are R/W bits.  In addition to
        incorrect identification, changing these bits (from 00) will make
        Tsi108/109 UART non-functional.
    Signed-off-by: default avatarRoy Zang <tie-fei.zang@freescale.com>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
    3be91ec7
serial_core.c 57.3 KB