|
@@ -23,21 +23,7 @@
|
|
|
|
|
|
#include <asm/io.h>
|
|
|
#include <asm/arch/clk.h>
|
|
|
-#include <asm/arch/memory-map.h>
|
|
|
-
|
|
|
-#if defined(CONFIG_USART0)
|
|
|
-# define USART_ID 0
|
|
|
-# define USART_BASE USART0_BASE
|
|
|
-#elif defined(CONFIG_USART1)
|
|
|
-# define USART_ID 1
|
|
|
-# define USART_BASE USART1_BASE
|
|
|
-#elif defined(CONFIG_USART2)
|
|
|
-# define USART_ID 2
|
|
|
-# define USART_BASE USART2_BASE
|
|
|
-#elif defined(CONFIG_USART3)
|
|
|
-# define USART_ID 3
|
|
|
-# define USART_BASE USART3_BASE
|
|
|
-#endif
|
|
|
+#include <asm/arch/hardware.h>
|
|
|
|
|
|
#include "atmel_usart.h"
|
|
|
|
|
@@ -45,7 +31,7 @@ DECLARE_GLOBAL_DATA_PTR;
|
|
|
|
|
|
void serial_setbrg(void)
|
|
|
{
|
|
|
- atmel_usart3_t *usart = (atmel_usart3_t*)USART_BASE;
|
|
|
+ atmel_usart3_t *usart = (atmel_usart3_t *)CONFIG_USART_BASE;
|
|
|
unsigned long divisor;
|
|
|
unsigned long usart_hz;
|
|
|
|
|
@@ -54,14 +40,14 @@ void serial_setbrg(void)
|
|
|
* Baud Rate = --------------
|
|
|
* 16 * CD
|
|
|
*/
|
|
|
- usart_hz = get_usart_clk_rate(USART_ID);
|
|
|
+ usart_hz = get_usart_clk_rate(CONFIG_USART_ID);
|
|
|
divisor = (usart_hz / 16 + gd->baudrate / 2) / gd->baudrate;
|
|
|
writel(USART3_BF(CD, divisor), &usart->brgr);
|
|
|
}
|
|
|
|
|
|
int serial_init(void)
|
|
|
{
|
|
|
- atmel_usart3_t *usart = (atmel_usart3_t*)USART_BASE;
|
|
|
+ atmel_usart3_t *usart = (atmel_usart3_t *)CONFIG_USART_BASE;
|
|
|
|
|
|
writel(USART3_BIT(RSTRX) | USART3_BIT(RSTTX), &usart->cr);
|
|
|
|
|
@@ -80,7 +66,7 @@ int serial_init(void)
|
|
|
|
|
|
void serial_putc(char c)
|
|
|
{
|
|
|
- atmel_usart3_t *usart = (atmel_usart3_t*)USART_BASE;
|
|
|
+ atmel_usart3_t *usart = (atmel_usart3_t *)CONFIG_USART_BASE;
|
|
|
|
|
|
if (c == '\n')
|
|
|
serial_putc('\r');
|
|
@@ -97,7 +83,7 @@ void serial_puts(const char *s)
|
|
|
|
|
|
int serial_getc(void)
|
|
|
{
|
|
|
- atmel_usart3_t *usart = (atmel_usart3_t*)USART_BASE;
|
|
|
+ atmel_usart3_t *usart = (atmel_usart3_t *)CONFIG_USART_BASE;
|
|
|
|
|
|
while (!(readl(&usart->csr) & USART3_BIT(RXRDY)))
|
|
|
WATCHDOG_RESET();
|
|
@@ -106,6 +92,6 @@ int serial_getc(void)
|
|
|
|
|
|
int serial_tstc(void)
|
|
|
{
|
|
|
- atmel_usart3_t *usart = (atmel_usart3_t*)USART_BASE;
|
|
|
+ atmel_usart3_t *usart = (atmel_usart3_t *)CONFIG_USART_BASE;
|
|
|
return (readl(&usart->csr) & USART3_BIT(RXRDY)) != 0;
|
|
|
}
|