brintos

brintos / linux-shallow public Read only

0
0
Text · 1.3 KiB · 9b373d1 Raw
49 lines · c
1/* SPDX-License-Identifier: GPL-2.0-only */2/*3 * PCC (Platform Communications Channel) methods4 */5 6#ifndef _PCC_H7#define _PCC_H8 9#include <linux/mailbox_controller.h>10#include <linux/mailbox_client.h>11 12struct pcc_mbox_chan {13	struct mbox_chan *mchan;14	u64 shmem_base_addr;15	u64 shmem_size;16	u32 latency;17	u32 max_access_rate;18	u16 min_turnaround_time;19};20 21/* Generic Communications Channel Shared Memory Region */22#define PCC_SIGNATURE			0x5043430023/* Generic Communications Channel Command Field */24#define PCC_CMD_GENERATE_DB_INTR	BIT(15)25/* Generic Communications Channel Status Field */26#define PCC_STATUS_CMD_COMPLETE		BIT(0)27#define PCC_STATUS_SCI_DOORBELL		BIT(1)28#define PCC_STATUS_ERROR		BIT(2)29#define PCC_STATUS_PLATFORM_NOTIFY	BIT(3)30/* Initiator Responder Communications Channel Flags */31#define PCC_CMD_COMPLETION_NOTIFY	BIT(0)32 33#define MAX_PCC_SUBSPACES	25634 35#ifdef CONFIG_PCC36extern struct pcc_mbox_chan *37pcc_mbox_request_channel(struct mbox_client *cl, int subspace_id);38extern void pcc_mbox_free_channel(struct pcc_mbox_chan *chan);39#else40static inline struct pcc_mbox_chan *41pcc_mbox_request_channel(struct mbox_client *cl, int subspace_id)42{43	return ERR_PTR(-ENODEV);44}45static inline void pcc_mbox_free_channel(struct pcc_mbox_chan *chan) { }46#endif47 48#endif /* _PCC_H */49