49 lines · 1.3 KB · C
RawDownload
/* 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;	void __iomem *shmem;	u64 shmem_size;	u32 latency;	u32 max_access_rate;	u16 min_turnaround_time;}; /* Generic Communications Channel Shared Memory Region */#define PCC_SIGNATURE			0x50434300/* Generic Communications Channel Command Field */#define PCC_CMD_GENERATE_DB_INTR	BIT(15)/* Generic Communications Channel Status Field */#define PCC_STATUS_CMD_COMPLETE		BIT(0)#define PCC_STATUS_SCI_DOORBELL		BIT(1)#define PCC_STATUS_ERROR		BIT(2)#define PCC_STATUS_PLATFORM_NOTIFY	BIT(3)/* Initiator Responder Communications Channel Flags */#define PCC_CMD_COMPLETION_NOTIFY	BIT(0) #define MAX_PCC_SUBSPACES	256 #ifdef CONFIG_PCCextern 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);#elsestatic 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 */