xref: /linux/drivers/remoteproc/imx_rproc.h (revision 906fd46a65383cd639e5eec72a047efc33045d86)
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 */
11 struct 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 /* Remote core start/stop method */
19 enum imx_rproc_method {
20 	IMX_RPROC_NONE,
21 	/* Through syscon regmap */
22 	IMX_RPROC_MMIO,
23 	/* Through ARM SMCCC */
24 	IMX_RPROC_SMC,
25 	/* Through System Control Unit API */
26 	IMX_RPROC_SCU_API,
27 };
28 
29 struct 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 	enum imx_rproc_method		method;
39 };
40 
41 #endif /* _IMX_RPROC_H */
42