1b886d83cSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */ 2866ae696SHoan Tran /* 3866ae696SHoan Tran * PCC (Platform Communications Channel) methods 4866ae696SHoan Tran */ 5866ae696SHoan Tran 6866ae696SHoan Tran #ifndef _PCC_H 7866ae696SHoan Tran #define _PCC_H 8866ae696SHoan Tran 9866ae696SHoan Tran #include <linux/mailbox_controller.h> 10866ae696SHoan Tran #include <linux/mailbox_client.h> 11866ae696SHoan Tran 120f2591e2SSudeep Holla struct pcc_mbox_chan { 130f2591e2SSudeep Holla struct mbox_chan *mchan; 140f2591e2SSudeep Holla u64 shmem_base_addr; 150f2591e2SSudeep Holla u64 shmem_size; 160f2591e2SSudeep Holla u32 latency; 170f2591e2SSudeep Holla u32 max_access_rate; 180f2591e2SSudeep Holla u16 min_turnaround_time; 190f2591e2SSudeep Holla }; 200f2591e2SSudeep Holla 21c4b766c2SGeorge Cherian #define MAX_PCC_SUBSPACES 256 22866ae696SHoan Tran #ifdef CONFIG_PCC 23*7b6da7feSSudeep Holla extern struct pcc_mbox_chan * 24*7b6da7feSSudeep Holla pcc_mbox_request_channel(struct mbox_client *cl, int subspace_id); 25*7b6da7feSSudeep Holla extern void pcc_mbox_free_channel(struct pcc_mbox_chan *chan); 26866ae696SHoan Tran #else 27*7b6da7feSSudeep Holla static inline struct pcc_mbox_chan * pcc_mbox_request_channel(struct mbox_client * cl,int subspace_id)28*7b6da7feSSudeep Hollapcc_mbox_request_channel(struct mbox_client *cl, int subspace_id) 29866ae696SHoan Tran { 30d0679cfaSHoan Tran return ERR_PTR(-ENODEV); 31866ae696SHoan Tran } pcc_mbox_free_channel(struct pcc_mbox_chan * chan)32*7b6da7feSSudeep Hollastatic inline void pcc_mbox_free_channel(struct pcc_mbox_chan *chan) { } 33866ae696SHoan Tran #endif 34866ae696SHoan Tran 35866ae696SHoan Tran #endif /* _PCC_H */ 36