Skip to content

Commit

Permalink
ARM: at91: uncompress Store UART address in a variable
Browse files Browse the repository at this point in the history
This will allow a future change to auto-detect which UART to use.

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com>
  • Loading branch information
Jean-Christophe PLAGNIOL-VILLARD authored and Nicolas Ferre committed Apr 17, 2012
1 parent 1234f4b commit c40a763
Showing 1 changed file with 11 additions and 9 deletions.
20 changes: 11 additions & 9 deletions arch/arm/mach-at91/include/mach/uncompress.h
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,14 @@
#define UART_OFFSET AT91_USART5
#endif

void __iomem *at91_uart;

static inline void arch_decomp_setup(void)
{
#ifdef UART_OFFSET
at91_uart = (void __iomem *) UART_OFFSET; /* physical address */
#endif
}
/*
* The following code assumes the serial port has already been
* initialized by the bootloader. If you didn't setup a port in
Expand All @@ -53,27 +61,21 @@
static void putc(int c)
{
#ifdef UART_OFFSET
void __iomem *sys = (void __iomem *) UART_OFFSET; /* physical address */

while (!(__raw_readl(sys + ATMEL_US_CSR) & ATMEL_US_TXRDY))
while (!(__raw_readl(at91_uart + ATMEL_US_CSR) & ATMEL_US_TXRDY))
barrier();
__raw_writel(c, sys + ATMEL_US_THR);
__raw_writel(c, at91_uart + ATMEL_US_THR);
#endif
}

static inline void flush(void)
{
#ifdef UART_OFFSET
void __iomem *sys = (void __iomem *) UART_OFFSET; /* physical address */

/* wait for transmission to complete */
while (!(__raw_readl(sys + ATMEL_US_CSR) & ATMEL_US_TXEMPTY))
while (!(__raw_readl(at91_uart + ATMEL_US_CSR) & ATMEL_US_TXEMPTY))
barrier();
#endif
}

#define arch_decomp_setup()

#define arch_decomp_wdog()

#endif

0 comments on commit c40a763

Please sign in to comment.