#include <linux/interrupt.h>
#include <linux/io.h>
#include <linux/iopoll.h>
#include <linux/kernel.h>
#include <linux/mailbox_controller.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/slab.h>
struct mtk_adsp_mbox_priv { … };
struct mtk_adsp_mbox_cfg { … };
static inline struct mtk_adsp_mbox_priv *get_mtk_adsp_mbox_priv(struct mbox_controller *mbox)
{ … }
static irqreturn_t mtk_adsp_mbox_irq(int irq, void *data)
{ … }
static irqreturn_t mtk_adsp_mbox_isr(int irq, void *data)
{ … }
static struct mbox_chan *mtk_adsp_mbox_xlate(struct mbox_controller *mbox,
const struct of_phandle_args *sp)
{ … }
static int mtk_adsp_mbox_startup(struct mbox_chan *chan)
{ … }
static void mtk_adsp_mbox_shutdown(struct mbox_chan *chan)
{ … }
static int mtk_adsp_mbox_send_data(struct mbox_chan *chan, void *data)
{ … }
static bool mtk_adsp_mbox_last_tx_done(struct mbox_chan *chan)
{ … }
static const struct mbox_chan_ops mtk_adsp_mbox_chan_ops = …;
static int mtk_adsp_mbox_probe(struct platform_device *pdev)
{ … }
static const struct mtk_adsp_mbox_cfg mt8186_adsp_mbox_cfg = …;
static const struct mtk_adsp_mbox_cfg mt8195_adsp_mbox_cfg = …;
static const struct of_device_id mtk_adsp_mbox_of_match[] = …;
MODULE_DEVICE_TABLE(of, mtk_adsp_mbox_of_match);
static struct platform_driver mtk_adsp_mbox_driver = …;
module_platform_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;