Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c40a763b authored by Jean-Christophe PLAGNIOL-VILLARD's avatar Jean-Christophe PLAGNIOL-VILLARD Committed by Nicolas Ferre
Browse files

ARM: at91: uncompress Store UART address in a variable



This will allow a future change to auto-detect which UART to use.

Signed-off-by: default avatarJean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Acked-by: default avatarNicolas Ferre <nicolas.ferre@atmel.com>
parent 1234f4ba
Loading
Loading
Loading
Loading
+11 −9
Original line number Diff line number Diff line
@@ -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
@@ -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