summaryrefslogtreecommitdiffstats
path: root/src/target/firmware/include/uart.h
blob: 870a096806f7a4367c58179ef7e1b46c0966a8b5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#ifndef _UART_H
#define _UART_H

#include <stdint.h>

enum uart_baudrate {
	UART_38400,
	UART_57600,
	UART_115200,
	UART_230400,
	UART_460800,
	UART_614400,
	UART_921600,
};

enum uart_id {
	UART_IRDA,
	UART_MODEM,
};

void uart_init(uint8_t uart, uint8_t interrupts);
void uart_putchar_wait(uint8_t uart, int c);
int uart_putchar_nb(uint8_t uart, int c);
int uart_getchar_nb(uint8_t uart, uint8_t *ch);
int uart_tx_busy(uint8_t uart);
int uart_baudrate(uint8_t uart, enum uart_baudrate bdrt);

enum uart_irq {
	UART_IRQ_TX_EMPTY,
	UART_IRQ_RX_CHAR,
};

void uart_irq_enable(uint8_t uart, enum uart_irq irq, int on);

void uart_poll(uint8_t uart);

#endif /* _UART_H */