• Haavard Skinnemoen's avatar
    [PATCH] atmel_serial: Pass fixed register mappings through platform_data · 75d35213
    Haavard Skinnemoen authored
    In order to initialize the serial console early, the atmel_serial
    driver had to do a hack where it compared the physical address of the
    port with an address known to be permanently mapped, and used it as a
    virtual address. This got around the limitation that ioremap() isn't
    always available when the console is being initalized.
    
    This patch removes that hack and replaces it with a new "regs" field
    in struct atmel_uart_data that the board-specific code can initialize
    to a fixed virtual mapping for platform devices where this is possible.
    It also initializes the DBGU's regs field with the address the driver
    used to check against.
    
    On AVR32, the "regs" field is initialized from the physical base
    address when this it can be accessed through a permanently 1:1 mapped
    segment, i.e. the P4 segment.
    
    If regs is NULL, the console initialization is delayed until the "real"
    driver is up and running and ioremap() can be used.
    Signed-off-by: default avatarHaavard Skinnemoen <hskinnemoen@atmel.com>
    Acked-by: default avatarAndrew Victor <andrew@sanpeople.com>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    75d35213
at32ap7000.c 20.8 KB