RTEMS
6.1-rc1
bsps
riscv
riscv
include
bsp
fe310-uart.h
1
/*
2
* SPDX-License-Identifier: BSD-2-Clause
3
*
4
* Copyright (C) 2019 Pragnesh Patel <pragnesh.patel@sifive.com>
5
* Copyright (c) 2019 Sachin Ghadi <sachin.ghadi@sifive.com>
6
*
7
* Redistribution and use in source and binary forms, with or without
8
* modification, are permitted provided that the following conditions
9
* are met:
10
* 1. Redistributions of source code must retain the above copyright
11
* notice, this list of conditions and the following disclaimer.
12
* 2. Redistributions in binary form must reproduce the above copyright
13
* notice, this list of conditions and the following disclaimer in the
14
* documentation and/or other materials provided with the distribution.
15
*
16
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
20
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
24
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
26
* POSSIBILITY OF SUCH DAMAGE.
27
*/
28
29
#ifndef FE310_UART_H
30
#define FE310_UART_H
31
32
#define TXRXREADY (1 << 31)
33
34
#include <
rtems/termiostypes.h
>
35
#include <
rtems/irq.h
>
36
37
typedef
struct
{
38
uint32_t txdata;
39
uint32_t rxdata;
40
uint32_t txctrl;
41
uint32_t rxctrl;
42
uint32_t
ie
;
43
uint32_t ip;
44
uint32_t div;
45
}
fe310_uart_t
;
46
47
/* Low-level driver specific data structure */
48
typedef
struct
{
49
rtems_termios_device_context
base;
50
const
char
*device_name;
51
volatile
fe310_uart_t
*regs;
52
}
fe310_uart_context
;
53
54
int
fe310_uart_read(
rtems_termios_device_context
*base);
55
void
fe310_console_putchar(
rtems_termios_device_context
*
context
,
char
c);
56
57
extern
const
rtems_termios_device_handler
fe310_uart_handler;
58
59
extern
fe310_uart_context
driver_context;
60
61
#endif
/* FE310_UART_H */
irq.h
context
rtems_termios_device_context * context
Definition:
console-config.c:62
fe310_uart_context
Definition:
fe310-uart.h:48
fe310_uart_t
Definition:
fe310-uart.h:37
rtems_termios_device_context
Termios device context.
Definition:
termiosdevice.h:68
rtems_termios_device_handler
Termios device handler.
Definition:
termiosdevice.h:100
ie
unsigned ie
Definition:
tte.h:3
termiostypes.h
Generated by
1.9.4