1*2a226927SNipun Gupta /* SPDX-License-Identifier: GPL-2.0
2*2a226927SNipun Gupta  *
3*2a226927SNipun Gupta  * Header file for the CDX Controller
4*2a226927SNipun Gupta  *
5*2a226927SNipun Gupta  * Copyright (C) 2022-2023, Advanced Micro Devices, Inc.
6*2a226927SNipun Gupta  */
7*2a226927SNipun Gupta 
8*2a226927SNipun Gupta #ifndef _CDX_CONTROLLER_H_
9*2a226927SNipun Gupta #define _CDX_CONTROLLER_H_
10*2a226927SNipun Gupta 
11*2a226927SNipun Gupta #include <linux/cdx/cdx_bus.h>
12*2a226927SNipun Gupta #include "mcdi_functions.h"
13*2a226927SNipun Gupta 
14*2a226927SNipun Gupta void cdx_rpmsg_post_probe(struct cdx_controller *cdx);
15*2a226927SNipun Gupta 
16*2a226927SNipun Gupta void cdx_rpmsg_pre_remove(struct cdx_controller *cdx);
17*2a226927SNipun Gupta 
18*2a226927SNipun Gupta int cdx_rpmsg_send(struct cdx_mcdi *cdx_mcdi,
19*2a226927SNipun Gupta 		   const struct cdx_dword *hdr, size_t hdr_len,
20*2a226927SNipun Gupta 		   const struct cdx_dword *sdu, size_t sdu_len);
21*2a226927SNipun Gupta 
22*2a226927SNipun Gupta void cdx_rpmsg_read_resp(struct cdx_mcdi *cdx_mcdi,
23*2a226927SNipun Gupta 			 struct cdx_dword *outbuf, size_t offset,
24*2a226927SNipun Gupta 			 size_t outlen);
25*2a226927SNipun Gupta 
26*2a226927SNipun Gupta int cdx_setup_rpmsg(struct platform_device *pdev);
27*2a226927SNipun Gupta 
28*2a226927SNipun Gupta void cdx_destroy_rpmsg(struct platform_device *pdev);
29*2a226927SNipun Gupta 
30*2a226927SNipun Gupta #endif /* _CDX_CONT_PRIV_H_ */
31