#include <linux/bitops.h>
#include <linux/interrupt.h>
#include <linux/io.h>
#include <linux/irq.h>
#include <linux/irqdomain.h>
#include <linux/mailbox_controller.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#define APSS_CPUCP_IPC_CHAN_SUPPORTED …
#define APSS_CPUCP_MBOX_CMD_OFF …
#define APSS_CPUCP_TX_MBOX_CMD(i) …
#define APSS_CPUCP_RX_MBOX_CMD(i) …
#define APSS_CPUCP_RX_MBOX_MAP …
#define APSS_CPUCP_RX_MBOX_STAT …
#define APSS_CPUCP_RX_MBOX_CLEAR …
#define APSS_CPUCP_RX_MBOX_EN …
#define APSS_CPUCP_RX_MBOX_CMD_MASK …
struct qcom_cpucp_mbox { … };
static inline int channel_number(struct mbox_chan *chan)
{ … }
static irqreturn_t qcom_cpucp_mbox_irq_fn(int irq, void *data)
{ … }
static int qcom_cpucp_mbox_startup(struct mbox_chan *chan)
{ … }
static void qcom_cpucp_mbox_shutdown(struct mbox_chan *chan)
{ … }
static int qcom_cpucp_mbox_send_data(struct mbox_chan *chan, void *data)
{ … }
static const struct mbox_chan_ops qcom_cpucp_mbox_chan_ops = …;
static int qcom_cpucp_mbox_probe(struct platform_device *pdev)
{ … }
static const struct of_device_id qcom_cpucp_mbox_of_match[] = …;
MODULE_DEVICE_TABLE(of, qcom_cpucp_mbox_of_match);
static struct platform_driver qcom_cpucp_mbox_driver = …;
static int __init qcom_cpucp_mbox_init(void)
{ … }
core_initcall(qcom_cpucp_mbox_init);
static void __exit qcom_cpucp_mbox_exit(void)
{ … }
module_exit(qcom_cpucp_mbox_exit);
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;