#include <linux/console.h>
#include <linux/mailbox_client.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/serial.h>
#include <linux/serial_core.h>
#include <linux/slab.h>
#include <linux/tty.h>
#include <linux/tty_flip.h>
#define TCU_MBOX_BYTE(i, x) …
#define TCU_MBOX_BYTE_V(x, i) …
#define TCU_MBOX_NUM_BYTES(x) …
#define TCU_MBOX_NUM_BYTES_V(x) …
struct tegra_tcu { … };
static unsigned int tegra_tcu_uart_tx_empty(struct uart_port *port)
{ … }
static void tegra_tcu_uart_set_mctrl(struct uart_port *port, unsigned int mctrl)
{ … }
static unsigned int tegra_tcu_uart_get_mctrl(struct uart_port *port)
{ … }
static void tegra_tcu_uart_stop_tx(struct uart_port *port)
{ … }
static void tegra_tcu_write_one(struct tegra_tcu *tcu, u32 value,
unsigned int count)
{ … }
static void tegra_tcu_write(struct tegra_tcu *tcu, const char *s,
unsigned int count)
{ … }
static void tegra_tcu_uart_start_tx(struct uart_port *port)
{ … }
static void tegra_tcu_uart_stop_rx(struct uart_port *port)
{ … }
static void tegra_tcu_uart_break_ctl(struct uart_port *port, int ctl)
{ … }
static int tegra_tcu_uart_startup(struct uart_port *port)
{ … }
static void tegra_tcu_uart_shutdown(struct uart_port *port)
{ … }
static void tegra_tcu_uart_set_termios(struct uart_port *port,
struct ktermios *new,
const struct ktermios *old)
{ … }
static const struct uart_ops tegra_tcu_uart_ops = …;
#if IS_ENABLED(CONFIG_SERIAL_TEGRA_TCU_CONSOLE)
static void tegra_tcu_console_write(struct console *cons, const char *s,
unsigned int count)
{ … }
static int tegra_tcu_console_setup(struct console *cons, char *options)
{ … }
#endif
static void tegra_tcu_receive(struct mbox_client *cl, void *msg)
{ … }
static int tegra_tcu_probe(struct platform_device *pdev)
{ … }
static void tegra_tcu_remove(struct platform_device *pdev)
{ … }
static const struct of_device_id tegra_tcu_match[] = …;
MODULE_DEVICE_TABLE(of, tegra_tcu_match);
static struct platform_driver tegra_tcu_driver = …;
module_platform_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;
MODULE_DESCRIPTION(…) …;