linux/drivers/mailbox/mailbox-mpfs.c

// SPDX-License-Identifier: GPL-2.0
/*
 * Microchip PolarFire SoC (MPFS) system controller/mailbox controller driver
 *
 * Copyright (c) 2020-2022 Microchip Corporation. All rights reserved.
 *
 * Author: Conor Dooley <[email protected]>
 *
 */

#include <linux/io.h>
#include <linux/err.h>
#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/interrupt.h>
#include <linux/mod_devicetable.h>
#include <linux/platform_device.h>
#include <linux/mailbox_controller.h>
#include <soc/microchip/mpfs.h>

#define SERVICES_CR_OFFSET
#define SERVICES_SR_OFFSET
#define MAILBOX_REG_OFFSET
#define MSS_SYS_MAILBOX_DATA_OFFSET
#define SCB_MASK_WIDTH

/* SCBCTRL service control register */

#define SCB_CTRL_REQ
#define SCB_CTRL_REQ_MASK

#define SCB_CTRL_BUSY
#define SCB_CTRL_BUSY_MASK

#define SCB_CTRL_ABORT
#define SCB_CTRL_ABORT_MASK

#define SCB_CTRL_NOTIFY
#define SCB_CTRL_NOTIFY_MASK

#define SCB_CTRL_POS
#define SCB_CTRL_MASK

/* SCBCTRL service status register */

#define SCB_STATUS_REQ
#define SCB_STATUS_REQ_MASK

#define SCB_STATUS_BUSY
#define SCB_STATUS_BUSY_MASK

#define SCB_STATUS_ABORT
#define SCB_STATUS_ABORT_MASK

#define SCB_STATUS_NOTIFY
#define SCB_STATUS_NOTIFY_MASK

#define SCB_STATUS_POS
#define SCB_STATUS_MASK

struct mpfs_mbox {};

static bool mpfs_mbox_busy(struct mpfs_mbox *mbox)
{}

static bool mpfs_mbox_last_tx_done(struct mbox_chan *chan)
{}

static int mpfs_mbox_send_data(struct mbox_chan *chan, void *data)
{}

static void mpfs_mbox_rx_data(struct mbox_chan *chan)
{}

static irqreturn_t mpfs_mbox_inbox_isr(int irq, void *data)
{}

static int mpfs_mbox_startup(struct mbox_chan *chan)
{}

static void mpfs_mbox_shutdown(struct mbox_chan *chan)
{}

static const struct mbox_chan_ops mpfs_mbox_ops =;

static int mpfs_mbox_probe(struct platform_device *pdev)
{}

static const struct of_device_id mpfs_mbox_of_match[] =;
MODULE_DEVICE_TABLE(of, mpfs_mbox_of_match);

static struct platform_driver mpfs_mbox_driver =;
module_platform_driver();

MODULE_LICENSE();
MODULE_AUTHOR();
MODULE_DESCRIPTION();