linux/include/linux/mailbox/brcm-message.h
<<
>>
Prefs
   1/*
   2 *  Copyright (C) 2016 Broadcom
   3 *
   4 * This program is free software; you can redistribute it and/or modify
   5 * it under the terms of the GNU General Public License version 2 as
   6 * published by the Free Software Foundation.
   7 *
   8 * Common header for Broadcom mailbox messages which is shared across
   9 * Broadcom SoCs and Broadcom mailbox client drivers.
  10 */
  11
  12#ifndef _LINUX_BRCM_MESSAGE_H_
  13#define _LINUX_BRCM_MESSAGE_H_
  14
  15#include <linux/scatterlist.h>
  16
  17enum brcm_message_type {
  18        BRCM_MESSAGE_UNKNOWN = 0,
  19        BRCM_MESSAGE_SPU,
  20        BRCM_MESSAGE_SBA,
  21        BRCM_MESSAGE_MAX,
  22};
  23
  24struct brcm_sba_command {
  25        u64 cmd;
  26#define BRCM_SBA_CMD_TYPE_A             BIT(0)
  27#define BRCM_SBA_CMD_TYPE_B             BIT(1)
  28#define BRCM_SBA_CMD_TYPE_C             BIT(2)
  29#define BRCM_SBA_CMD_HAS_RESP           BIT(3)
  30#define BRCM_SBA_CMD_HAS_OUTPUT         BIT(4)
  31        u64 flags;
  32        dma_addr_t input;
  33        size_t input_len;
  34        dma_addr_t resp;
  35        size_t resp_len;
  36        dma_addr_t output;
  37        size_t output_len;
  38};
  39
  40struct brcm_message {
  41        enum brcm_message_type type;
  42        union {
  43                struct {
  44                        struct scatterlist *src;
  45                        struct scatterlist *dst;
  46                } spu;
  47                struct {
  48                        struct brcm_sba_command *cmds;
  49                        unsigned int cmds_count;
  50                } sba;
  51        };
  52        void *ctx;
  53        int error;
  54};
  55
  56#endif /* _LINUX_BRCM_MESSAGE_H_ */
  57