linux/drivers/remoteproc/ingenic_rproc.c

// SPDX-License-Identifier: GPL-2.0+
/*
 * Ingenic JZ47xx remoteproc driver
 * Copyright 2019, Paul Cercueil <[email protected]>
 */

#include <linux/bitops.h>
#include <linux/clk.h>
#include <linux/err.h>
#include <linux/interrupt.h>
#include <linux/io.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/remoteproc.h>

#include "remoteproc_internal.h"

#define REG_AUX_CTRL
#define REG_AUX_MSG_ACK
#define REG_AUX_MSG
#define REG_CORE_MSG_ACK
#define REG_CORE_MSG

#define AUX_CTRL_SLEEP
#define AUX_CTRL_MSG_IRQ_EN
#define AUX_CTRL_NMI_RESETS
#define AUX_CTRL_NMI
#define AUX_CTRL_SW_RESET

static bool auto_boot;
module_param(auto_boot, bool, 0400);
MODULE_PARM_DESC();

struct vpu_mem_map {};

struct vpu_mem_info {};

static const struct vpu_mem_map vpu_mem_map[] =;

/**
 * struct vpu - Ingenic VPU remoteproc private structure
 * @irq: interrupt number
 * @clks: pointers to the VPU and AUX clocks
 * @aux_base: raw pointer to the AUX interface registers
 * @mem_info: array of struct vpu_mem_info, which contain the mapping info of
 *            each of the external memories
 * @dev: private pointer to the device
 */
struct vpu {};

static int ingenic_rproc_prepare(struct rproc *rproc)
{}

static int ingenic_rproc_unprepare(struct rproc *rproc)
{}

static int ingenic_rproc_start(struct rproc *rproc)
{}

static int ingenic_rproc_stop(struct rproc *rproc)
{}

static void ingenic_rproc_kick(struct rproc *rproc, int vqid)
{}

static void *ingenic_rproc_da_to_va(struct rproc *rproc, u64 da, size_t len, bool *is_iomem)
{}

static const struct rproc_ops ingenic_rproc_ops =;

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

static int ingenic_rproc_probe(struct platform_device *pdev)
{}

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

static struct platform_driver ingenic_rproc_driver =;
module_platform_driver();

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