tty: serial: add driver for the SiFive UART
Add a serial driver for the SiFive UART, found on SiFive FU540 devices (among others). The underlying serial IP block is relatively basic, and currently does not support serial break detection. Further information on the IP block can be found in the documentation and Chisel sources: https://static.dev.sifive.com/FU540-C000-v1.0.pdf https://github.com/sifive/sifive-blocks/tree/master/src/main/scala/devices/uart This driver was written in collaboration with Wesley Terpstra <wesley@sifive.com>. Boot-tested on a SiFive HiFive Unleashed A00 board. Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: Jiri Slaby <jslaby@suse.com> Cc: Palmer Dabbelt <palmer@sifive.com> Cc: Wesley Terpstra <wesley@sifive.com> Cc: linux-serial@vger.kernel.org Cc: linux-riscv@lists.infradead.org Cc: linux-kernel@vger.kernel.org Cc: Julia Lawall <julia.lawall@lip6.fr> Signed-off-by: Paul Walmsley <paul.walmsley@sifive.com> Signed-off-by: Paul Walmsley <paul@pwsan.com>hifive-unleashed-5.1
parent
e93c9c99a6
commit
a496e047bd
|
@ -1095,6 +1095,30 @@ config SERIAL_OMAP_CONSOLE
|
|||
your boot loader about how to pass options to the kernel at
|
||||
boot time.)
|
||||
|
||||
config SERIAL_SIFIVE
|
||||
tristate "SiFive UART support"
|
||||
depends on OF
|
||||
select SERIAL_CORE
|
||||
help
|
||||
Select this option if you are building a kernel for a device that
|
||||
contains a SiFive UART IP block. This type of UART is present on
|
||||
SiFive FU540 SoCs, among others.
|
||||
|
||||
config SERIAL_SIFIVE_CONSOLE
|
||||
bool "Console on SiFive UART"
|
||||
depends on SERIAL_SIFIVE=y
|
||||
select SERIAL_CORE_CONSOLE
|
||||
help
|
||||
Select this option if you would like to use a SiFive UART as the
|
||||
system console.
|
||||
|
||||
Even if you say Y here, the currently visible virtual console
|
||||
(/dev/tty0) will still be used as the system console by default, but
|
||||
you can alter that using a kernel command line option such as
|
||||
"console=ttySIFx". (Try "man bootparam" or see the documentation of
|
||||
your boot loader about how to pass options to the kernel at
|
||||
boot time.)
|
||||
|
||||
config SERIAL_LANTIQ
|
||||
bool "Lantiq serial driver"
|
||||
depends on LANTIQ
|
||||
|
|
|
@ -92,6 +92,7 @@ obj-$(CONFIG_SERIAL_PIC32) += pic32_uart.o
|
|||
obj-$(CONFIG_SERIAL_MPS2_UART) += mps2-uart.o
|
||||
obj-$(CONFIG_SERIAL_OWL) += owl-uart.o
|
||||
obj-$(CONFIG_SERIAL_RDA) += rda-uart.o
|
||||
obj-$(CONFIG_SERIAL_SIFIVE) += sifive.o
|
||||
|
||||
# GPIOLIB helpers for modem control lines
|
||||
obj-$(CONFIG_SERIAL_MCTRL_GPIO) += serial_mctrl_gpio.o
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -287,4 +287,7 @@
|
|||
/* RDA UART */
|
||||
#define PORT_RDA 118
|
||||
|
||||
/* SiFive UART */
|
||||
#define PORT_SIFIVE_V0 118
|
||||
|
||||
#endif /* _UAPILINUX_SERIAL_CORE_H */
|
||||
|
|
Loading…
Reference in New Issue