diff options
author | Rob Rice <rrice@broadcom.com> | 2016-06-30 15:59:23 -0400 |
---|---|---|
committer | Jassi Brar <jaswinder.singh@linaro.org> | 2016-07-28 09:34:47 +0530 |
commit | a24532f8d17b7211dfb0259920edfcffc8306606 (patch) | |
tree | 9c1efa9b105ddcd10a733a250bf023bc1a18b7a6 /include/linux/mailbox | |
parent | b04f127286e6fdbd731681f9564b0a0cd36e4bbf (diff) |
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 <rob.rice@broadcom.com>
Reviewed-by: Scott Branden <scott.branden@broadcom.com>
Reviewed-by: Ray Jui <ray.jui@broadcom.com>
Signed-off-by: Jassi Brar <jaswinder.singh@linaro.org>
Diffstat (limited to 'include/linux/mailbox')
-rw-r--r-- | include/linux/mailbox/brcm-message.h | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/include/linux/mailbox/brcm-message.h b/include/linux/mailbox/brcm-message.h new file mode 100644 index 000000000000..6b55c938b401 --- /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 <linux/scatterlist.h> + +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_ */ |