1/* SPDX-License-Identifier: GPL-2.0-only */
2/*
3 * Copyright (c) 2017 Pengutronix, Oleksij Rempel <kernel@pengutronix.de>
4 * Copyright 2021 NXP
5 */
6
7#ifndef _IMX_RPROC_H
8#define _IMX_RPROC_H
9
10/* address translation table */
11struct imx_rproc_att {
12 u32 da; /* device address (From Cortex M4 view)*/
13 u32 sa; /* system bus address */
14 u32 size; /* size of reg range */
15 int flags;
16};
17
18/* dcfg flags */
19#define IMX_RPROC_NEED_SYSTEM_OFF BIT(0)
20#define IMX_RPROC_NEED_CLKS BIT(1)
21
22struct imx_rproc_plat_ops {
23 int (*start)(struct rproc *rproc);
24 int (*stop)(struct rproc *rproc);
25 int (*detach)(struct rproc *rproc);
26 int (*detect_mode)(struct rproc *rproc);
27};
28
29struct imx_rproc_dcfg {
30 u32 src_reg;
31 u32 src_mask;
32 u32 src_start;
33 u32 src_stop;
34 u32 gpr_reg;
35 u32 gpr_wait;
36 const struct imx_rproc_att *att;
37 size_t att_size;
38 u32 flags;
39 const struct imx_rproc_plat_ops *ops;
40};
41
42#endif /* _IMX_RPROC_H */
43

source code of linux/drivers/remoteproc/imx_rproc.h