1 /* SPDX-License-Identifier: (BSD-3-Clause OR GPL-2.0)
3 * Copyright 2013-2016 Freescale Semiconductor Inc.
4 * Copyright 2016-2017 NXP
7 #ifndef _FSL_DPBP_CMD_H
8 #define _FSL_DPBP_CMD_H
11 #define DPBP_VER_MAJOR 3
12 #define DPBP_VER_MINOR 4
14 /* Command versioning */
15 #define DPBP_CMD_BASE_VERSION 1
16 #define DPBP_CMD_VERSION_2 2
17 #define DPBP_CMD_ID_OFFSET 4
19 #define DPBP_CMD(id) ((id << DPBP_CMD_ID_OFFSET) | DPBP_CMD_BASE_VERSION)
20 #define DPBP_CMD_V2(id) ((id << DPBP_CMD_ID_OFFSET) | DPBP_CMD_VERSION_2)
23 #define DPBP_CMDID_CLOSE DPBP_CMD(0x800)
24 #define DPBP_CMDID_OPEN DPBP_CMD(0x804)
25 #define DPBP_CMDID_CREATE DPBP_CMD(0x904)
26 #define DPBP_CMDID_DESTROY DPBP_CMD(0x984)
27 #define DPBP_CMDID_GET_API_VERSION DPBP_CMD(0xa04)
29 #define DPBP_CMDID_ENABLE DPBP_CMD(0x002)
30 #define DPBP_CMDID_DISABLE DPBP_CMD(0x003)
31 #define DPBP_CMDID_GET_ATTR DPBP_CMD(0x004)
32 #define DPBP_CMDID_RESET DPBP_CMD(0x005)
33 #define DPBP_CMDID_IS_ENABLED DPBP_CMD(0x006)
35 #define DPBP_CMDID_SET_IRQ_ENABLE DPBP_CMD(0x012)
36 #define DPBP_CMDID_GET_IRQ_ENABLE DPBP_CMD(0x013)
37 #define DPBP_CMDID_SET_IRQ_MASK DPBP_CMD(0x014)
38 #define DPBP_CMDID_GET_IRQ_MASK DPBP_CMD(0x015)
39 #define DPBP_CMDID_GET_IRQ_STATUS DPBP_CMD(0x016)
40 #define DPBP_CMDID_CLEAR_IRQ_STATUS DPBP_CMD(0x017)
42 #define DPBP_CMDID_SET_NOTIFICATIONS DPBP_CMD_V2(0x1b0)
43 #define DPBP_CMDID_GET_NOTIFICATIONS DPBP_CMD_V2(0x1b1)
45 #define DPBP_CMDID_GET_FREE_BUFFERS_NUM DPBP_CMD(0x1b2)
48 struct dpbp_cmd_open {
52 struct dpbp_cmd_destroy {
56 #define DPBP_ENABLE 0x1
58 struct dpbp_rsp_is_enabled {
62 struct dpbp_rsp_get_attributes {
68 struct dpbp_cmd_set_notifications {
69 uint32_t depletion_entry;
70 uint32_t depletion_exit;
71 uint32_t surplus_entry;
72 uint32_t surplus_exit;
76 uint64_t message_iova;
79 struct dpbp_rsp_get_notifications {
80 uint32_t depletion_entry;
81 uint32_t depletion_exit;
82 uint32_t surplus_entry;
83 uint32_t surplus_exit;
87 uint64_t message_iova;
90 struct dpbp_rsp_get_api_version {
95 struct dpbp_rsp_get_num_free_bufs {
96 uint32_t num_free_bufs;
100 #endif /* _FSL_DPBP_CMD_H */