Imported Upstream version 3.2.2
[debian/gnuradio] / usrp2 / firmware / lib / hal_uart.h
1 /* -*- c -*- */
2 /*
3  * Copyright 2007,2008 Free Software Foundation, Inc.
4  *
5  * This program is free software: you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation, either version 3 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
17  */
18
19 #ifndef INCLUDED_HAL_UART_H
20 #define INCLUDED_HAL_UART_H
21
22
23 /*!
24  * \brief one-time call to init
25  */
26 void hal_uart_init(void);
27
28 typedef enum {
29   US_9600,
30   US_19200,
31   US_38400,
32   US_57600,
33   US_115200,
34   US_230400,
35 } hal_uart_speed_t;
36
37 typedef struct {
38   hal_uart_speed_t      speed;
39 } hal_uart_config_t;
40
41 /*!
42  * \brief Set uart parameters
43  *  Default is 115,200 bps, 8N1.
44  */
45 void hal_uart_set_config(const hal_uart_config_t *c);
46
47 /*!
48  * \brief Get uart configuation.
49  */
50 void hal_uart_get_config(hal_uart_config_t *c);
51
52 /*!
53  * \brief Enqueue \p ch for output over serial port
54  */
55 void hal_uart_putc(int ch);
56
57 /*!
58  * \brief Enqueue \p ch for output over serial port, silent fail if queue is full
59  */
60 void hal_uart_putc_nowait(int ch);
61
62 /*
63  * \brief Blocking read of next char from serial port
64  */
65 int hal_uart_getc(void);
66
67
68 #endif /* INCLUDED_HAL_UART_H */