mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 04:18:39 +08:00
55d235ebb6
Define the common macros to use when referring to various bitfields in the PCC generic communications channel command and status fields. Currently different drivers that need to use these bitfields have defined these locally. This common macro is intended to consolidate and replace those. Cc: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com> Link: https://lore.kernel.org/r/20230927-pcc_defines-v2-1-0b8ffeaef2e5@arm.com Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
49 lines
1.3 KiB
C
49 lines
1.3 KiB
C
/* 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;
|
|
};
|
|
|
|
/* 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_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 */
|