diff options
Diffstat (limited to 'cpu/at91rm9200/serial.c')
-rw-r--r-- | cpu/at91rm9200/serial.c | 89 |
1 files changed, 44 insertions, 45 deletions
diff --git a/cpu/at91rm9200/serial.c b/cpu/at91rm9200/serial.c index f80fd43..43e1553 100644 --- a/cpu/at91rm9200/serial.c +++ b/cpu/at91rm9200/serial.c @@ -36,55 +36,54 @@ /* ggi thunder */ AT91PS_USART us = (AT91PS_USART) AT91C_BASE_DBGU; -void serial_setbrg(void) - { - DECLARE_GLOBAL_DATA_PTR; - int baudrate; +void serial_setbrg (void) +{ + DECLARE_GLOBAL_DATA_PTR; + int baudrate; - if ((baudrate = gd->bd->bi_baudrate) <= 0) - baudrate = CONFIG_BAUDRATE; - us->US_BRGR = 33 /* AT91C_MASTER_CLOCK / baudrate / 16 */; /* hardcode so no __divsi3 */ - } + if ((baudrate = gd->bd->bi_baudrate) <= 0) + baudrate = CONFIG_BAUDRATE; + us->US_BRGR = CFG_AT91C_BRGR_DIVISOR; /* hardcode so no __divsi3 */ +} -int serial_init(void) - { - /* make any port initializations specific to this port */ - *AT91C_PIOA_PDR = AT91C_PA31_DTXD | AT91C_PA30_DRXD; /* PA 31 & 30 */ - *AT91C_PMC_PCER = 1 << AT91C_ID_SYS; /* enable clock */ - serial_setbrg(); +int serial_init (void) +{ + /* make any port initializations specific to this port */ + *AT91C_PIOA_PDR = AT91C_PA31_DTXD | AT91C_PA30_DRXD; /* PA 31 & 30 */ + *AT91C_PMC_PCER = 1 << AT91C_ID_SYS; /* enable clock */ + serial_setbrg (); - us->US_CR = AT91C_US_RSTRX | AT91C_US_RSTTX; - us->US_CR = AT91C_US_RXEN | AT91C_US_TXEN; - us->US_MR = ( AT91C_US_CLKS_CLOCK | AT91C_US_CHRL_8_BITS | AT91C_US_PAR_NONE | AT91C_US_NBSTOP_1_BIT ); - us->US_IMR = ~0ul; - return (0); - } + us->US_CR = AT91C_US_RSTRX | AT91C_US_RSTTX; + us->US_CR = AT91C_US_RXEN | AT91C_US_TXEN; + us->US_MR = + (AT91C_US_CLKS_CLOCK | AT91C_US_CHRL_8_BITS | + AT91C_US_PAR_NONE | AT91C_US_NBSTOP_1_BIT); + us->US_IMR = ~0ul; + return (0); +} -void serial_putc(const char c) - { - if (c == '\n') - serial_putc('\r'); - while( (us->US_CSR & AT91C_US_TXRDY) == 0 ) - ; - us->US_THR=c; - } +void serial_putc (const char c) +{ + if (c == '\n') + serial_putc ('\r'); + while ((us->US_CSR & AT91C_US_TXRDY) == 0); + us->US_THR = c; +} -void -serial_puts (const char *s) - { - while (*s) - { - serial_putc (*s++); - } - } +void serial_puts (const char *s) +{ + while (*s) { + serial_putc (*s++); + } +} -int serial_getc(void) - { - while( (us->US_CSR & AT91C_US_RXRDY) == 0 ); - return us->US_RHR; - } +int serial_getc (void) +{ + while ((us->US_CSR & AT91C_US_RXRDY) == 0); + return us->US_RHR; +} -int serial_tstc(void) - { - return ((us->US_CSR & AT91C_US_RXRDY) == AT91C_US_RXRDY); - } +int serial_tstc (void) +{ + return ((us->US_CSR & AT91C_US_RXRDY) == AT91C_US_RXRDY); +} |