• Romain Izard's avatar
    tty/serial: at91: restore dynamic driver binding · f4a8ab04
    Romain Izard authored
    In commit c39dfebc, the modular support
    code for atmel_serial was removed, as the driver cannot be built as a
    module. Because no use case was proposed, the dynamic driver binding
    support was removed as well.
    
    The atmel_serial driver can manage up to 7 serial controllers, which are
    multiplexed with other functions. For example, in the Atmel SAMA5D2, the
    Flexcom controllers can work as USART, SPI or I2C controllers, and on
    all Atmel devices serial lines can be reconfigured as GPIOs.
    
    My use case uses GPIOs to transfer a firmware update using a custom
    protocol on the lines used as a serial port during the normal life of
    the device. If it is not possible to unbind the atmel_serial driver, the
    GPIO lines remain reserved and prevent this case from working.
    
    This patch reinstates the atmel_serial_remove function, and fixes it as
    it failed to clear the "clk" field on removal, triggering an oops when
    a device was bound again after being unbound.
    Acked-by: default avatarNicolas Ferre <nicolas.ferre@atmel.com>
    Signed-off-by: default avatarRomain Izard <romain.izard.pro@gmail.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    f4a8ab04
atmel_serial.c 72 KB