Commit | Line | Data |
---|---|---|
b2441318 | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
bde440ee BA |
2 | #ifndef __RPROC_QCOM_COMMON_H__ |
3 | #define __RPROC_QCOM_COMMON_H__ | |
4 | ||
b90fcfcb BA |
5 | #include <linux/remoteproc.h> |
6 | #include "remoteproc_internal.h" | |
1fb82ee8 BA |
7 | #include <linux/soc/qcom/qmi.h> |
8 | ||
9 | struct qcom_sysmon; | |
b90fcfcb | 10 | |
eea07023 BA |
11 | struct qcom_rproc_glink { |
12 | struct rproc_subdev subdev; | |
13 | ||
14 | struct device *dev; | |
15 | struct device_node *node; | |
16 | struct qcom_glink *edge; | |
17 | }; | |
18 | ||
b90fcfcb BA |
19 | struct qcom_rproc_subdev { |
20 | struct rproc_subdev subdev; | |
21 | ||
22 | struct device *dev; | |
23 | struct device_node *node; | |
24 | struct qcom_smd_edge *edge; | |
25 | }; | |
bde440ee | 26 | |
1e140df0 BA |
27 | struct qcom_rproc_ssr { |
28 | struct rproc_subdev subdev; | |
29 | ||
30 | const char *name; | |
31 | }; | |
32 | ||
eea07023 BA |
33 | void qcom_add_glink_subdev(struct rproc *rproc, struct qcom_rproc_glink *glink); |
34 | void qcom_remove_glink_subdev(struct rproc *rproc, struct qcom_rproc_glink *glink); | |
35 | ||
dcb57ed4 SJ |
36 | int qcom_register_dump_segments(struct rproc *rproc, const struct firmware *fw); |
37 | ||
b90fcfcb BA |
38 | void qcom_add_smd_subdev(struct rproc *rproc, struct qcom_rproc_subdev *smd); |
39 | void qcom_remove_smd_subdev(struct rproc *rproc, struct qcom_rproc_subdev *smd); | |
40 | ||
1e140df0 BA |
41 | void qcom_add_ssr_subdev(struct rproc *rproc, struct qcom_rproc_ssr *ssr, |
42 | const char *ssr_name); | |
43 | void qcom_remove_ssr_subdev(struct rproc *rproc, struct qcom_rproc_ssr *ssr); | |
44 | ||
1fb82ee8 BA |
45 | #if IS_ENABLED(CONFIG_QCOM_SYSMON) |
46 | struct qcom_sysmon *qcom_add_sysmon_subdev(struct rproc *rproc, | |
47 | const char *name, | |
48 | int ssctl_instance); | |
49 | void qcom_remove_sysmon_subdev(struct qcom_sysmon *sysmon); | |
50 | #else | |
51 | static inline struct qcom_sysmon *qcom_add_sysmon_subdev(struct rproc *rproc, | |
52 | const char *name, | |
53 | int ssctl_instance) | |
54 | { | |
55 | return NULL; | |
56 | } | |
57 | ||
58 | static inline void qcom_remove_sysmon_subdev(struct qcom_sysmon *sysmon) | |
59 | { | |
60 | } | |
61 | #endif | |
62 | ||
bde440ee | 63 | #endif |