summaryrefslogtreecommitdiff
path: root/drivers/remoteproc/imx_rproc.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/remoteproc/imx_rproc.h')
-rw-r--r--drivers/remoteproc/imx_rproc.h21
1 files changed, 9 insertions, 12 deletions
diff --git a/drivers/remoteproc/imx_rproc.h b/drivers/remoteproc/imx_rproc.h
index 17a7d051c531..1b2d9f4d6d19 100644
--- a/drivers/remoteproc/imx_rproc.h
+++ b/drivers/remoteproc/imx_rproc.h
@@ -15,19 +15,16 @@ struct imx_rproc_att {
int flags;
};
-/* Remote core start/stop method */
-enum imx_rproc_method {
- IMX_RPROC_NONE,
- /* Through syscon regmap */
- IMX_RPROC_MMIO,
- /* Through ARM SMCCC */
- IMX_RPROC_SMC,
- /* Through System Control Unit API */
- IMX_RPROC_SCU_API,
-};
-
/* dcfg flags */
#define IMX_RPROC_NEED_SYSTEM_OFF BIT(0)
+#define IMX_RPROC_NEED_CLKS BIT(1)
+
+struct imx_rproc_plat_ops {
+ int (*start)(struct rproc *rproc);
+ int (*stop)(struct rproc *rproc);
+ int (*detach)(struct rproc *rproc);
+ int (*detect_mode)(struct rproc *rproc);
+};
struct imx_rproc_dcfg {
u32 src_reg;
@@ -38,8 +35,8 @@ struct imx_rproc_dcfg {
u32 gpr_wait;
const struct imx_rproc_att *att;
size_t att_size;
- enum imx_rproc_method method;
u32 flags;
+ const struct imx_rproc_plat_ops *ops;
};
#endif /* _IMX_RPROC_H */