diff gsm-fw/serial/uart.h @ 143:afceeeb2cba1

Our nuc-fw is destined to become gsm-fw, so I went ahead and did the big hg mv
author Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
date Tue, 12 Nov 2013 05:35:48 +0000
parents nuc-fw/serial/uart.h@22c8199e08af
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gsm-fw/serial/uart.h	Tue Nov 12 05:35:48 2013 +0000
@@ -0,0 +1,281 @@
+/*******************************************************************************
+ *
+ * UART.H
+ *
+ * This module allows to use the UARTs of chipset 1.5 in interrupt mode.
+ * The driver calls a user's function when characters are received.
+ *
+ * (C) Texas Instruments 1999 - 2003
+ *
+ ******************************************************************************/
+
+#ifndef __UART_H__
+#define __UART_H__
+
+typedef enum {
+    UA_UART_0,  /* IrDA */
+    UA_UART_1   /* Modem */
+    #if (CHIPSET == 12)
+      , UA_UART_2  /* Modem 2 */
+    #endif
+} T_tr_UartId;
+
+#if (CHIPSET == 12)
+  #define NUMBER_OF_TR_UART (3)
+#else
+  #define NUMBER_OF_TR_UART (2)
+#endif
+
+#ifndef C_EXTERN
+  #if 1 //(OP_L1_STANDALONE == 1)
+    #define C_EXTERN  extern
+  #else
+    #define C_EXTERN
+  #endif
+#endif
+
+/*******************************************************************************
+ *
+ *                           initialize_uart_sleep
+ * 
+ * Purpose  : Performs basic UART hardware initialization including sleep mode.
+ *
+ * Arguments: In : uart_id : UART id.
+ *            Out: none
+ *
+ * Returns: none
+ *
+ * Warning: Parameters are not verified.
+ *
+ ******************************************************************************/
+
+C_EXTERN void initialize_uart_sleep (T_tr_UartId uart_id);
+
+/*******************************************************************************
+ *
+ *                               UA_Init
+ * 
+ * Purpose  : Initializes the module and the UART.
+ *
+ * Arguments: In : uart_id : UART id.
+ *                 baudrate: baud rate selected.
+ *                 callback: user's function called characters are received.
+ *            Out: none
+ *
+ * Returns: none
+ *
+ * Warning: Parameters are not verified.
+ *
+ ******************************************************************************/
+
+C_EXTERN void UA_Init (T_tr_UartId uart_id,
+              T_tr_Baudrate baudrate,
+              void (callback_function (void)));
+
+/*******************************************************************************
+ *
+ *                           UA_ReadNChars
+ * 
+ * Purpose  : Reads N characters from the RX buffer.
+ *
+ * Arguments: In : uart_id      : UART id.
+ *                 buffer       : buffer address where the characters are
+ *                                copied.
+ *                 chars_to_read: number of characters to read.
+ *            Out: none
+ *
+ * Returns  : The number of characters read.
+ *
+ * Warning: Parameters are not verified.
+ *
+ ******************************************************************************/
+
+C_EXTERN SYS_UWORD32 UA_ReadNChars (T_tr_UartId uart_id,
+                           char *buffer,
+                           SYS_UWORD32 chars_to_read);
+
+/*******************************************************************************
+ *
+ *                           UA_ReadNBytes
+ * 
+ * Purpose  : Reads and destuff N bytes from the RX buffer.
+ *
+ * Arguments: In : uart_id      : UART id.
+ *                 buffer       : buffer address where the bytes are copied.
+ *                 chars_to_read: number of bytes to read.
+ *            Out: eof_detected : indicates if an EOF has been detected.
+ *
+ * Returns  : The number of bytes read.
+ *
+ * Warning: Parameters are not verified.
+ *
+ ******************************************************************************/
+
+C_EXTERN SYS_UWORD32 UA_ReadNBytes (T_tr_UartId uart_id,
+                           char *buffer,
+                           SYS_UWORD32 bytes_to_read,
+                           SYS_BOOL *eof_detected);
+
+/*******************************************************************************
+ *
+ *                           UA_WriteNChars
+ * 
+ * Purpose  : Writes N characters in the TX FIFO.
+ *
+ * Arguments: In : uart_id       : UART id.
+ *                 buffer        : buffer address from which characters are
+ *                                 written.
+ *                 bytes_to_write: number of bytes to write.
+ *            Out: none
+ *
+ * Returns  : Number of bytes written.
+ *
+ * Warning: Parameters are not verified.
+ *
+ ******************************************************************************/
+
+C_EXTERN SYS_UWORD32 UA_WriteNChars (T_tr_UartId uart_id,
+                            char *buffer,
+                            SYS_UWORD32 chars_to_write);
+
+/*******************************************************************************
+ *
+ *                           UA_EncapsulateNChars
+ * 
+ * Purpose  : Writes N characters in the TX FIFO in encapsulating them with 2
+ *            STX bytes (one at the beginning and one at the end).
+ *
+ * Arguments: In : uart_id       : UART id.
+ *                 buffer        : buffer address from which characters are
+ *                                 written.
+ *                 chars_to_write: number of chars to write.
+ *            Out: none
+ *
+ * Returns  : Number of chars written.
+ *
+ * Warning: Parameters are not verified.
+ *
+ ******************************************************************************/
+
+C_EXTERN SYS_UWORD32 UA_EncapsulateNChars (T_tr_UartId uart_id,
+                                  char *buffer,
+                                  SYS_UWORD32 chars_to_write);
+
+/*******************************************************************************
+ *
+ *                           UA_WriteNBytes
+ * 
+ * Purpose  : Writes N bytes in the TX FIFO in encapsulating with 2 STX bytes
+ *            at the beginning and the end of the frame, and in making byte
+ *            stuffing.
+ *
+ * Arguments: In : uart_id       : UART id.
+ *                 buffer        : buffer address from which bytes are
+ *                                 written.
+ *                 bytes_to_write: number of bytes to write.
+ *            Out: none
+ *
+ * Returns  : Number of bytes written.
+ *
+ * Warning: Parameters are not verified.
+ *
+ ******************************************************************************/
+
+C_EXTERN SYS_UWORD32 UA_WriteNBytes (T_tr_UartId uart_id, 
+                            SYS_UWORD8 *buffer, 
+                            SYS_UWORD32 bytes_to_write);
+                
+/*******************************************************************************
+ *
+ *                            UA_WriteChar
+ * 
+ * Purpose  : Writes a character in the TX FIFO.
+ *
+ * Arguments: In : uart: UART id.
+ *                 character
+ *            Out: none
+ *
+ * Returns  : none
+ *
+ * Warning: Parameters are not verified.
+ *
+ ******************************************************************************/
+
+C_EXTERN void UA_WriteChar (T_tr_UartId uart_id,
+                   char character);
+
+/*******************************************************************************
+ *
+ *                          UA_WriteString
+ * 
+ * Purpose  : Writes a null terminated string in the TX FIFO.
+ *
+ * Arguments: In : uart_id: UART id.
+ *                 buffer : buffer address from which characters are written.
+ *            Out: none
+ *
+ * Returns  : none
+ *
+ * Warning: Parameters are not verified.
+ *
+ ******************************************************************************/
+
+C_EXTERN void UA_WriteString (T_tr_UartId uart_id,
+                     char *buffer);
+
+/*******************************************************************************
+ *
+ *                             UA_EnterSleep
+ * 
+ * Purpose  : Checks if UART is ready to enter Deep Sleep. If ready, enables
+ *            wake-up interrupt.
+ *
+ * Arguments: In : uart_id : UART id.
+ *            Out: none
+ *
+ * Returns: 0	 : Deep Sleep is not possible.
+ *          >= 1 : Deep Sleep is possible.
+ *
+ * Warning: Parameters are not verified.
+ *
+ ******************************************************************************/
+
+C_EXTERN SYS_BOOL UA_EnterSleep (T_tr_UartId uart_id);
+
+/*******************************************************************************
+ *
+ *                              UA_WakeUp
+ * 
+ * Purpose  : Wakes up UART after Deep Sleep.
+ *
+ * Arguments: In : uart_id : UART id.
+ *            Out: none
+ *
+ * Returns: none
+ *
+ * Warning: Parameters are not verified.
+ *
+ ******************************************************************************/
+
+C_EXTERN void UA_WakeUp (T_tr_UartId uart_id);
+
+/*******************************************************************************
+ *
+ *                       UA_InterruptHandler
+ * 
+ * Purpose  : Interrupt handler.
+ *
+ * Arguments: In : uart_id         : origin of interrupt
+ *                 interrupt_status: source of interrupt
+ *            Out: none
+ *
+ * Returns  : none
+ *
+ ******************************************************************************/
+
+void UA_InterruptHandler (T_tr_UartId uart_id,
+                          SYS_UWORD8 interrupt_status);
+
+#undef C_EXTERN
+
+#endif /* __UART_H__ */