blob: 1c7e2127c758451f9a8baab6a51070b6605812b3 [file] [log] [blame]
Shengjiu Wangebcd5d52021-10-11 17:20:12 +08001/* 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/* Remote core start/stop method */
19enum imx_rproc_method {
20 IMX_RPROC_NONE,
21 /* Through syscon regmap */
22 IMX_RPROC_MMIO,
23 /* Through ARM SMCCC */
24 IMX_RPROC_SMC,
Shengjiu Wangd2320a02021-10-11 17:20:13 +080025 /* Through System Control Unit API */
26 IMX_RPROC_SCU_API,
Shengjiu Wangebcd5d52021-10-11 17:20:12 +080027};
28
29struct imx_rproc_dcfg {
30 u32 src_reg;
31 u32 src_mask;
32 u32 src_start;
33 u32 src_stop;
34 const struct imx_rproc_att *att;
35 size_t att_size;
36 enum imx_rproc_method method;
37};
38
39#endif /* _IMX_RPROC_H */