From a24532f8d17b7211dfb0259920edfcffc8306606 Mon Sep 17 00:00:00 2001 From: Rob Rice Date: Thu, 30 Jun 2016 15:59:23 -0400 Subject: mailbox: Add Broadcom PDC mailbox driver The Broadcom PDC mailbox driver is a mailbox controller that manages data transfers to and from one or more offload engines. Signed-off-by: Rob Rice Reviewed-by: Scott Branden Reviewed-by: Ray Jui Signed-off-by: Jassi Brar --- include/linux/mailbox/brcm-message.h | 56 ++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 include/linux/mailbox/brcm-message.h (limited to 'include/linux/mailbox') diff --git a/include/linux/mailbox/brcm-message.h b/include/linux/mailbox/brcm-message.h new file mode 100644 index 0000000..6b55c93 --- /dev/null +++ b/include/linux/mailbox/brcm-message.h @@ -0,0 +1,56 @@ +/* + * Copyright (C) 2016 Broadcom + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * Common header for Broadcom mailbox messages which is shared across + * Broadcom SoCs and Broadcom mailbox client drivers. + */ + +#ifndef _LINUX_BRCM_MESSAGE_H_ +#define _LINUX_BRCM_MESSAGE_H_ + +#include + +enum brcm_message_type { + BRCM_MESSAGE_UNKNOWN = 0, + BRCM_MESSAGE_SPU, + BRCM_MESSAGE_SBA, + BRCM_MESSAGE_MAX, +}; + +struct brcm_sba_command { + u64 cmd; +#define BRCM_SBA_CMD_TYPE_A BIT(0) +#define BRCM_SBA_CMD_TYPE_B BIT(1) +#define BRCM_SBA_CMD_TYPE_C BIT(2) +#define BRCM_SBA_CMD_HAS_RESP BIT(3) +#define BRCM_SBA_CMD_HAS_OUTPUT BIT(4) + u64 flags; + dma_addr_t input; + size_t input_len; + dma_addr_t resp; + size_t resp_len; + dma_addr_t output; + size_t output_len; +}; + +struct brcm_message { + enum brcm_message_type type; + union { + struct { + struct scatterlist *src; + struct scatterlist *dst; + } spu; + struct { + struct brcm_sba_command *cmds; + unsigned int cmds_count; + } sba; + }; + void *ctx; + int error; +}; + +#endif /* _LINUX_BRCM_MESSAGE_H_ */ -- cgit v1.1