altos: Use USART configuration 1 with flow control for TBT
authorKeith Packard <keithp@keithp.com>
Sat, 7 May 2011 03:33:58 +0000 (20:33 -0700)
committerKeith Packard <keithp@keithp.com>
Sat, 7 May 2011 03:35:03 +0000 (20:35 -0700)
It's just wired that way.

Signed-off-by: Keith Packard <keithp@keithp.com>
src/ao_pins.h
src/ao_serial.c
src/cc1111.h

index bc9bdcb9ce03cc3c91beb49512749f646980b7e9..4c31f75551498db6168748a22ec2dca6aee4c2ec 100644 (file)
        #define HAS_USB                 1
        #define HAS_BEEP                0
        #define HAS_SERIAL_1            1
        #define HAS_USB                 1
        #define HAS_BEEP                0
        #define HAS_SERIAL_1            1
+       #define HAS_SERIAL_1_ALT_1      1
+       #define HAS_SERIAL_1_ALT_2      0
+       #define HAS_SERIAL_1_HW_FLOW    1
        #define USE_SERIAL_STDIN        1
        #define HAS_ADC                 0
        #define HAS_DBG                 1
        #define USE_SERIAL_STDIN        1
        #define HAS_ADC                 0
        #define HAS_DBG                 1
index 9c0b798daf674cfcd894fe07db4eefa4c7cab236..2e7dad7bb8f9c7da774de4dd8f763b66779743c9 100644 (file)
@@ -127,6 +127,18 @@ ao_serial_set_speed(uint8_t speed)
 void
 ao_serial_init(void)
 {
 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;
 
        /* 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);
 
        /* 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);
 
        /* 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 |
 
        /* Reasonable serial parameters */
        U1UCR = (UxUCR_FLUSH |
+#if HAS_SERIAL_1_HW_FLOW
+                UxUCR_FLOW_ENABLE |
+#else
                 UxUCR_FLOW_DISABLE |
                 UxUCR_FLOW_DISABLE |
+#endif
                 UxUCR_D9_EVEN_PARITY |
                 UxUCR_BIT9_8_BITS |
                 UxUCR_PARITY_DISABLE |
                 UxUCR_D9_EVEN_PARITY |
                 UxUCR_BIT9_8_BITS |
                 UxUCR_PARITY_DISABLE |
index a07490e52bc2ffa697cb2580e4506e1713735db0..5b018cb5168cd41020d0896017fab894353f76b3 100644 (file)
@@ -589,6 +589,12 @@ sfr at 0xFD P0DIR;
 sfr at 0xFE P1DIR;
 sfr at 0xFF P2DIR;
 
 sfr at 0xFE P1DIR;
 sfr at 0xFF P2DIR;
 
+#define P2DIR_PRIP0_USART0_USART1      (0 << 6)
+#define P2DIR_PRIP0_USART1_USART0      (1 << 6)
+#define P2DIR_PRIP0_TIMER1_01_USART1   (2 << 6)
+#define P2DIR_PRIP0_TIMER1_2_USART0    (3 << 6)
+#define P2DIR_PRIP0_MASK               (3 << 6)
+
 sfr at 0x8F P0INP;
 
 /* Select between tri-state and pull up/down
 sfr at 0x8F P0INP;
 
 /* Select between tri-state and pull up/down