1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* 3 * Copyright 2019 Google LLC. 4 */ 5 6 #ifndef __LINUX_RPMSG_MTK_RPMSG_H 7 #define __LINUX_RPMSG_MTK_RPMSG_H 8 9 #include <linux/platform_device.h> 10 #include <linux/remoteproc.h> 11 12 typedef void (*ipi_handler_t)(void *data, unsigned int len, void *priv); 13 14 /* 15 * struct mtk_rpmsg_info - IPI functions tied to the rpmsg device. 16 * @register_ipi: register IPI handler for an IPI id. 17 * @unregister_ipi: unregister IPI handler for a registered IPI id. 18 * @send_ipi: send IPI to an IPI id. wait is the timeout (in msecs) to wait 19 * until response, or 0 if there's no timeout. 20 * @ns_ipi_id: the IPI id used for name service, or -1 if name service isn't 21 * supported. 22 */ 23 struct mtk_rpmsg_info { 24 int (*register_ipi)(struct platform_device *pdev, u32 id, 25 ipi_handler_t handler, void *priv); 26 void (*unregister_ipi)(struct platform_device *pdev, u32 id); 27 int (*send_ipi)(struct platform_device *pdev, u32 id, 28 void *buf, unsigned int len, unsigned int wait); 29 int ns_ipi_id; 30 }; 31 32 struct rproc_subdev * 33 mtk_rpmsg_create_rproc_subdev(struct platform_device *pdev, 34 struct mtk_rpmsg_info *info); 35 36 void mtk_rpmsg_destroy_rproc_subdev(struct rproc_subdev *subdev); 37 38 #endif 39
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.