#include <linux/device.h>
#include <linux/interrupt.h>
#include <linux/io.h>
#include <linux/kernel.h>
#include <linux/mailbox_controller.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#define DRIVER_NAME …
#define MAILBOX_CMD_REG …
#define MAILBOX_PTR_REG …
#define MAILBOX_STS_REG …
#define MAILBOX_INTMASK_REG …
#define INT_PENDING_MSK …
#define INT_SPACE_MSK …
#define STS_PENDING_MSK …
#define STS_FULL_MSK …
#define STS_FULL_OFT …
#define MBOX_PENDING(status) …
#define MBOX_FULL(status) …
enum altera_mbox_msg { … };
#define MBOX_POLLING_MS …
struct altera_mbox { … };
static struct altera_mbox *mbox_chan_to_altera_mbox(struct mbox_chan *chan)
{ … }
static inline int altera_mbox_full(struct altera_mbox *mbox)
{ … }
static inline int altera_mbox_pending(struct altera_mbox *mbox)
{ … }
static void altera_mbox_rx_intmask(struct altera_mbox *mbox, bool enable)
{ … }
static void altera_mbox_tx_intmask(struct altera_mbox *mbox, bool enable)
{ … }
static bool altera_mbox_is_sender(struct altera_mbox *mbox)
{ … }
static void altera_mbox_rx_data(struct mbox_chan *chan)
{ … }
static void altera_mbox_poll_rx(struct timer_list *t)
{ … }
static irqreturn_t altera_mbox_tx_interrupt(int irq, void *p)
{ … }
static irqreturn_t altera_mbox_rx_interrupt(int irq, void *p)
{ … }
static int altera_mbox_startup_sender(struct mbox_chan *chan)
{ … }
static int altera_mbox_startup_receiver(struct mbox_chan *chan)
{ … }
static int altera_mbox_send_data(struct mbox_chan *chan, void *data)
{ … }
static bool altera_mbox_last_tx_done(struct mbox_chan *chan)
{ … }
static bool altera_mbox_peek_data(struct mbox_chan *chan)
{ … }
static int altera_mbox_startup(struct mbox_chan *chan)
{ … }
static void altera_mbox_shutdown(struct mbox_chan *chan)
{ … }
static const struct mbox_chan_ops altera_mbox_ops = …;
static int altera_mbox_probe(struct platform_device *pdev)
{ … }
static const struct of_device_id altera_mbox_match[] = …;
MODULE_DEVICE_TABLE(of, altera_mbox_match);
static struct platform_driver altera_mbox_driver = …;
module_platform_driver(…) …;
MODULE_LICENSE(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_ALIAS(…) …;