libaltos: Delay after opening bluetooth device on linux
[fw/altos] / src / cc1111 / ao_serial.c
index 2a93bf523852dc98a255b0baea7a3a8f9b7111ba..81727836d260e84ab88f3a1ae78c559296d9a525 100644 (file)
@@ -34,8 +34,14 @@ const __code struct ao_serial_speed ao_serial_speeds[] = {
                /* .baud = */ 59,
                /* .gcr =  */ (11 << UxGCR_BAUD_E_SHIFT) | UxGCR_ORDER_LSB
        },
+       /* [AO_SERIAL_SPEED_115200] = */ {
+               /* .baud = */ 59,
+               /* .gcr =  */ (12 << UxGCR_BAUD_E_SHIFT) | UxGCR_ORDER_LSB
+       },
 };
 
+#define AO_SERIAL_SPEED_MAX    AO_SERIAL_SPEED_115200
+
 #if HAS_SERIAL_0
 
 volatile __xdata struct ao_fifo        ao_serial0_rx_fifo;
@@ -86,7 +92,7 @@ ao_serial0_getchar(void) __critical
 
 #if USE_SERIAL_0_STDIN
 int
-ao_serial0_pollchar(void) __critical
+_ao_serial0_pollchar(void)
 {
        uint8_t c;
        if (ao_fifo_empty(ao_serial0_rx_fifo))
@@ -116,7 +122,7 @@ void
 ao_serial0_set_speed(uint8_t speed)
 {
        ao_serial0_drain();
-       if (speed > AO_SERIAL_SPEED_57600)
+       if (speed > AO_SERIAL_SPEED_MAX)
                return;
        U0UCR |= UxUCR_FLUSH;
        U0BAUD = ao_serial_speeds[speed].baud;
@@ -174,7 +180,7 @@ ao_serial1_getchar(void) __critical
 
 #if USE_SERIAL_1_STDIN
 int
-ao_serial1_pollchar(void) __critical
+_ao_serial1_pollchar(void)
 {
        uint8_t c;
        if (ao_fifo_empty(ao_serial1_rx_fifo))
@@ -204,7 +210,7 @@ void
 ao_serial1_set_speed(uint8_t speed)
 {
        ao_serial1_drain();
-       if (speed > AO_SERIAL_SPEED_57600)
+       if (speed > AO_SERIAL_SPEED_MAX)
                return;
        U1UCR |= UxUCR_FLUSH;
        U1BAUD = ao_serial_speeds[speed].baud;
@@ -265,7 +271,7 @@ ao_serial_init(void)
        IEN0 |= IEN0_URX0IE;
        IEN2 |= IEN2_UTX0IE;
 #if USE_SERIAL_0_STDIN && !DELAY_SERIAL_0_STDIN
-       ao_add_stdio(ao_serial0_pollchar,
+       ao_add_stdio(_ao_serial0_pollchar,
                     ao_serial0_putchar,
                     NULL);
 #endif
@@ -321,7 +327,7 @@ ao_serial_init(void)
        IEN2 |= IEN2_UTX1IE;
 
 #if USE_SERIAL_1_STDIN && !DELAY_SERIAL_1_STDIN
-       ao_add_stdio(ao_serial1_pollchar,
+       ao_add_stdio(_ao_serial1_pollchar,
                     ao_serial1_putchar,
                     NULL);
 #endif