Commit | Line | Data |
---|---|---|
3b415c8f BA |
1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | ||
3 | #ifndef __QCOM_Q6V5_H__ | |
4 | #define __QCOM_Q6V5_H__ | |
5 | ||
6 | #include <linux/kernel.h> | |
7 | #include <linux/completion.h> | |
8 | ||
9 | struct rproc; | |
10 | struct qcom_smem_state; | |
11 | ||
12 | struct qcom_q6v5 { | |
13 | struct device *dev; | |
14 | struct rproc *rproc; | |
15 | ||
16 | struct qcom_smem_state *state; | |
17 | unsigned stop_bit; | |
18 | ||
19 | int wdog_irq; | |
20 | int fatal_irq; | |
21 | int ready_irq; | |
22 | int handover_irq; | |
23 | int stop_irq; | |
24 | ||
25 | bool handover_issued; | |
26 | ||
27 | struct completion start_done; | |
28 | struct completion stop_done; | |
29 | ||
30 | int crash_reason; | |
31 | ||
32 | bool running; | |
33 | ||
34 | void (*handover)(struct qcom_q6v5 *q6v5); | |
35 | }; | |
36 | ||
37 | int qcom_q6v5_init(struct qcom_q6v5 *q6v5, struct platform_device *pdev, | |
38 | struct rproc *rproc, int crash_reason, | |
39 | void (*handover)(struct qcom_q6v5 *q6v5)); | |
40 | ||
41 | int qcom_q6v5_prepare(struct qcom_q6v5 *q6v5); | |
42 | int qcom_q6v5_unprepare(struct qcom_q6v5 *q6v5); | |
43 | int qcom_q6v5_request_stop(struct qcom_q6v5 *q6v5); | |
44 | int qcom_q6v5_wait_for_start(struct qcom_q6v5 *q6v5, int timeout); | |
45 | ||
46 | #endif |