blob: 728be9834d8b2196eac80865f261acd40ffc1b87 [file] [log] [blame]
Greg Kroah-Hartmanb2441312017-11-01 15:07:57 +01001/* SPDX-License-Identifier: GPL-2.0 */
Bjorn Anderssonbde440e2017-01-27 02:28:32 -08002#ifndef __RPROC_QCOM_COMMON_H__
3#define __RPROC_QCOM_COMMON_H__
4
Bjorn Anderssonb90fcfc2017-01-27 07:04:54 -08005#include <linux/remoteproc.h>
6#include "remoteproc_internal.h"
7
Bjorn Anderssoneea07022017-08-29 16:13:35 -07008struct qcom_rproc_glink {
9 struct rproc_subdev subdev;
10
11 struct device *dev;
12 struct device_node *node;
13 struct qcom_glink *edge;
14};
15
Bjorn Anderssonb90fcfc2017-01-27 07:04:54 -080016struct qcom_rproc_subdev {
17 struct rproc_subdev subdev;
18
19 struct device *dev;
20 struct device_node *node;
21 struct qcom_smd_edge *edge;
22};
Bjorn Anderssonbde440e2017-01-27 02:28:32 -080023
Bjorn Andersson1e140df2017-07-24 22:56:43 -070024struct qcom_rproc_ssr {
25 struct rproc_subdev subdev;
26
27 const char *name;
28};
29
Bjorn Anderssoneea07022017-08-29 16:13:35 -070030void qcom_add_glink_subdev(struct rproc *rproc, struct qcom_rproc_glink *glink);
31void qcom_remove_glink_subdev(struct rproc *rproc, struct qcom_rproc_glink *glink);
32
Bjorn Anderssonb90fcfc2017-01-27 07:04:54 -080033void qcom_add_smd_subdev(struct rproc *rproc, struct qcom_rproc_subdev *smd);
34void qcom_remove_smd_subdev(struct rproc *rproc, struct qcom_rproc_subdev *smd);
35
Bjorn Andersson1e140df2017-07-24 22:56:43 -070036void qcom_add_ssr_subdev(struct rproc *rproc, struct qcom_rproc_ssr *ssr,
37 const char *ssr_name);
38void qcom_remove_ssr_subdev(struct rproc *rproc, struct qcom_rproc_ssr *ssr);
39
Bjorn Anderssonbde440e2017-01-27 02:28:32 -080040#endif