xref: /openbmc/linux/include/acpi/pcc.h (revision 7b6da7fe)
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 Holla pcc_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 Holla static inline void pcc_mbox_free_channel(struct pcc_mbox_chan *chan) { }
33866ae696SHoan Tran #endif
34866ae696SHoan Tran 
35866ae696SHoan Tran #endif /* _PCC_H */
36