linux/drivers/remoteproc/qcom_q6v5.h
<<
>>
Prefs
   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
   9struct rproc;
  10struct qcom_smem_state;
  11
  12struct 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
  37int 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
  41int qcom_q6v5_prepare(struct qcom_q6v5 *q6v5);
  42int qcom_q6v5_unprepare(struct qcom_q6v5 *q6v5);
  43int qcom_q6v5_request_stop(struct qcom_q6v5 *q6v5);
  44int qcom_q6v5_wait_for_start(struct qcom_q6v5 *q6v5, int timeout);
  45unsigned long qcom_q6v5_panic(struct qcom_q6v5 *q6v5);
  46
  47#endif
  48