linux/drivers/firmware/imx/imx-scu.c

// SPDX-License-Identifier: GPL-2.0+
/*
 * Copyright 2018 NXP
 *  Author: Dong Aisheng <[email protected]>
 *
 * Implementation of the SCU IPC functions using MUs (client side).
 *
 */

#include <linux/err.h>
#include <linux/firmware/imx/ipc.h>
#include <linux/firmware/imx/sci.h>
#include <linux/interrupt.h>
#include <linux/irq.h>
#include <linux/kernel.h>
#include <linux/mailbox_client.h>
#include <linux/module.h>
#include <linux/mutex.h>
#include <linux/of.h>
#include <linux/of_platform.h>
#include <linux/platform_device.h>

#define SCU_MU_CHAN_NUM
#define MAX_RX_TIMEOUT

struct imx_sc_chan {};

struct imx_sc_ipc {};

/*
 * This type is used to indicate error response for most functions.
 */
enum imx_sc_error_codes {};

static int imx_sc_linux_errmap[IMX_SC_ERR_LAST] =;

static struct imx_sc_ipc *imx_sc_ipc_handle;

static inline int imx_sc_to_linux_errno(int errno)
{}

/*
 * Get the default handle used by SCU
 */
int imx_scu_get_handle(struct imx_sc_ipc **ipc)
{}
EXPORT_SYMBOL();

/* Callback called when the word of a message is ack-ed, eg read by SCU */
static void imx_scu_tx_done(struct mbox_client *cl, void *mssg, int r)
{}

static void imx_scu_rx_callback(struct mbox_client *c, void *msg)
{}

static int imx_scu_ipc_write(struct imx_sc_ipc *sc_ipc, void *msg)
{}

/*
 * RPC command/response
 */
int imx_scu_call_rpc(struct imx_sc_ipc *sc_ipc, void *msg, bool have_resp)
{}
EXPORT_SYMBOL();

static int imx_scu_probe(struct platform_device *pdev)
{}

static const struct of_device_id imx_scu_match[] =;

static struct platform_driver imx_scu_driver =;

static int __init imx_scu_driver_init(void)
{}
subsys_initcall_sync(imx_scu_driver_init);

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