summaryrefslogtreecommitdiff
path: root/src/ao_serial.c
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2011-05-06 20:33:58 -0700
committerKeith Packard <keithp@keithp.com>2011-05-06 20:35:03 -0700
commit19bfa3882a2d95fcade256c2d63ad24f794281e5 (patch)
tree0bd2916b878c9be08056033950e8944ff88950fb /src/ao_serial.c
parentd9cc27641fe1778c098b065bf110be7823e6c9f4 (diff)
altos: Use USART configuration 1 with flow control for TBT
It's just wired that way. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src/ao_serial.c')
-rw-r--r--src/ao_serial.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/ao_serial.c b/src/ao_serial.c
index 9c0b798d..2e7dad7b 100644
--- a/src/ao_serial.c
+++ b/src/ao_serial.c
@@ -127,6 +127,18 @@ ao_serial_set_speed(uint8_t speed)
void
ao_serial_init(void)
{
+#if HAS_SERIAL_1_ALT_1
+ /* Set up the USART pin assignment */
+ PERCFG = (PERCFG & ~PERCFG_U1CFG_ALT_MASK) | PERCFG_U1CFG_ALT_1;
+
+ P2DIR = (P2DIR & ~P2DIR_PRIP0_MASK) | P2DIR_PRIP0_USART1_USART0;
+
+ /* Make the USART pins be controlled by the USART */
+ P0SEL |= (1 << 5) | (1 << 4);
+#if HAS_SERIAL_1_HW_FLOW
+ P0SEL |= (1 << 3) | (1 << 2);
+#endif
+#else
/* Set up the USART pin assignment */
PERCFG = (PERCFG & ~PERCFG_U1CFG_ALT_MASK) | PERCFG_U1CFG_ALT_2;
@@ -135,6 +147,8 @@ ao_serial_init(void)
/* Make the USART pins be controlled by the USART */
P1SEL |= (1 << 6) | (1 << 7);
+ P1SEL |= (1 << 5) | (1 << 4);
+#endif
/* UART mode with receiver enabled */
U1CSR = (UxCSR_MODE_UART | UxCSR_RE);
@@ -144,7 +158,11 @@ ao_serial_init(void)
/* Reasonable serial parameters */
U1UCR = (UxUCR_FLUSH |
+#if HAS_SERIAL_1_HW_FLOW
+ UxUCR_FLOW_ENABLE |
+#else
UxUCR_FLOW_DISABLE |
+#endif
UxUCR_D9_EVEN_PARITY |
UxUCR_BIT9_8_BITS |
UxUCR_PARITY_DISABLE |