| /* SPDX-License-Identifier: GPL-2.0-only */ |
| /* |
| * PCC (Platform Communications Channel) methods |
| */ |
| |
| #ifndef _PCC_H |
| #define _PCC_H |
| |
| #include <linux/mailbox_controller.h> |
| #include <linux/mailbox_client.h> |
| |
| struct pcc_mbox_chan { |
| struct mbox_chan *mchan; |
| u64 shmem_base_addr; |
| u64 shmem_size; |
| u32 latency; |
| u32 max_access_rate; |
| u16 min_turnaround_time; |
| }; |
| |
| #define MAX_PCC_SUBSPACES 256 |
| #ifdef CONFIG_PCC |
| extern struct pcc_mbox_chan * |
| pcc_mbox_request_channel(struct mbox_client *cl, int subspace_id); |
| extern void pcc_mbox_free_channel(struct pcc_mbox_chan *chan); |
| #else |
| static inline struct pcc_mbox_chan * |
| pcc_mbox_request_channel(struct mbox_client *cl, int subspace_id) |
| { |
| return ERR_PTR(-ENODEV); |
| } |
| static inline void pcc_mbox_free_channel(struct pcc_mbox_chan *chan) { } |
| #endif |
| |
| #endif /* _PCC_H */ |