RTEMS
6.3
Toggle main menu visibility
Loading...
Searching...
No Matches
bsps
aarch64
raspberrypi
include
bsp
raspberrypi-uart.h
Go to the documentation of this file.
1
/* SPDX-License-Identifier: BSD-2-Clause */
2
10
11
/*
12
* Copyright (C) 2023 Utkarsh Verma
13
*
14
* Redistribution and use in source and binary forms, with or without
15
* modification, are permitted provided that the following conditions
16
* are met:
17
* 1. Redistributions of source code must retain the above copyright
18
* notice, this list of conditions and the following disclaimer.
19
* 2. Redistributions in binary form must reproduce the above copyright
20
* notice, this list of conditions and the following disclaimer in the
21
* documentation and/or other materials provided with the distribution.
22
*
23
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
24
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
27
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
28
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
29
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
30
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
31
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
32
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
33
* POSSIBILITY OF SUCH DAMAGE.
34
*/
35
36
#ifndef LIBBSP_AARCH64_RASPBERRYPI_BSP_RASPBERRYPI_UART_H
37
#define LIBBSP_AARCH64_RASPBERRYPI_BSP_RASPBERRYPI_UART_H
38
39
#include <bspopts.h>
40
#include <bsp/irq.h>
41
#include <bsp/raspberrypi.h>
42
#include <bsp/rpi-gpio.h>
43
#include <
dev/serial/arm-pl011.h
>
44
45
/*
46
* This macro exists to serve as a common point of definition for the
47
* parameters of the UARTs present in the Raspberry Pi 4. It is used in
48
* multiple locations with different rendering macros to prevent duplication
49
* of information.
50
*/
51
#define RASPBERRYPI_CONSOLE_DEVICES(CONSOLE_DEVICE_DEFINITION_RENDERER) \
52
CONSOLE_DEVICE_DEFINITION_RENDERER( \
53
0, "/dev/ttyAMA0", BCM2711_UART0_BASE,BCM2711_UART0_SIZE, \
54
BSP_PL011_CLOCK_FREQ, BCM2711_IRQ_PL011_UART, arm_pl011_context, \
55
&arm_pl011_fns, arm_pl011_write_polled, 15, 14, GPIO_AF0) \
56
CONSOLE_DEVICE_DEFINITION_RENDERER( \
57
2, "/dev/ttyAMA1", BCM2711_UART2_BASE, BCM2711_UART2_SIZE, \
58
BSP_PL011_CLOCK_FREQ, BCM2711_IRQ_PL011_UART, arm_pl011_context, \
59
&arm_pl011_fns, arm_pl011_write_polled, 1, 0, GPIO_AF4) \
60
CONSOLE_DEVICE_DEFINITION_RENDERER( \
61
3, "/dev/ttyAMA2", BCM2711_UART3_BASE, BCM2711_UART3_SIZE, \
62
BSP_PL011_CLOCK_FREQ, BCM2711_IRQ_PL011_UART, arm_pl011_context, \
63
&arm_pl011_fns, arm_pl011_write_polled, 5, 4, GPIO_AF4) \
64
CONSOLE_DEVICE_DEFINITION_RENDERER( \
65
4, "/dev/ttyAMA3", BCM2711_UART4_BASE, BCM2711_UART4_SIZE, \
66
BSP_PL011_CLOCK_FREQ, BCM2711_IRQ_PL011_UART, arm_pl011_context, \
67
&arm_pl011_fns, arm_pl011_write_polled, 9, 8, GPIO_AF4) \
68
CONSOLE_DEVICE_DEFINITION_RENDERER( \
69
5, "/dev/ttyAMA4", BCM2711_UART5_BASE, BCM2711_UART5_SIZE, \
70
BSP_PL011_CLOCK_FREQ, BCM2711_IRQ_PL011_UART, arm_pl011_context, \
71
&arm_pl011_fns, arm_pl011_write_polled, 13, 12, GPIO_AF4)
72
#endif
/* LIBBSP_AARCH64_RASPBERRYPI_BSP_RASPBERRYPI_UART_H */
arm-pl011.h
ARM PL011 Support Package.
Generated by
1.18.0