GNU Linux-libre 6.8.7-gnu
[releases.git] / drivers / net / ethernet / freescale / dpaa2 / dprtc-cmd.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * Copyright 2013-2016 Freescale Semiconductor Inc.
4  * Copyright 2016-2018 NXP
5  */
6
7 #ifndef _FSL_DPRTC_CMD_H
8 #define _FSL_DPRTC_CMD_H
9
10 /* Command versioning */
11 #define DPRTC_CMD_BASE_VERSION          1
12 #define DPRTC_CMD_VERSION_2             2
13 #define DPRTC_CMD_ID_OFFSET             4
14
15 #define DPRTC_CMD(id)   (((id) << DPRTC_CMD_ID_OFFSET) | DPRTC_CMD_BASE_VERSION)
16 #define DPRTC_CMD_V2(id) (((id) << DPRTC_CMD_ID_OFFSET) | DPRTC_CMD_VERSION_2)
17
18 /* Command IDs */
19 #define DPRTC_CMDID_CLOSE                       DPRTC_CMD(0x800)
20 #define DPRTC_CMDID_OPEN                        DPRTC_CMD(0x810)
21
22 #define DPRTC_CMDID_SET_IRQ_ENABLE              DPRTC_CMD(0x012)
23 #define DPRTC_CMDID_GET_IRQ_ENABLE              DPRTC_CMD(0x013)
24 #define DPRTC_CMDID_SET_IRQ_MASK                DPRTC_CMD_V2(0x014)
25 #define DPRTC_CMDID_GET_IRQ_MASK                DPRTC_CMD(0x015)
26 #define DPRTC_CMDID_GET_IRQ_STATUS              DPRTC_CMD(0x016)
27 #define DPRTC_CMDID_CLEAR_IRQ_STATUS            DPRTC_CMD(0x017)
28
29 #pragma pack(push, 1)
30 struct dprtc_cmd_open {
31         __le32 dprtc_id;
32 };
33
34 struct dprtc_cmd_get_irq {
35         __le32 pad;
36         u8 irq_index;
37 };
38
39 struct dprtc_cmd_set_irq_enable {
40         u8 en;
41         u8 pad[3];
42         u8 irq_index;
43 };
44
45 struct dprtc_rsp_get_irq_enable {
46         u8 en;
47 };
48
49 struct dprtc_cmd_set_irq_mask {
50         __le32 mask;
51         u8 irq_index;
52 };
53
54 struct dprtc_rsp_get_irq_mask {
55         __le32 mask;
56 };
57
58 struct dprtc_cmd_get_irq_status {
59         __le32 status;
60         u8 irq_index;
61 };
62
63 struct dprtc_rsp_get_irq_status {
64         __le32 status;
65 };
66
67 struct dprtc_cmd_clear_irq_status {
68         __le32 status;
69         u8 irq_index;
70 };
71
72 #pragma pack(pop)
73
74 #endif /* _FSL_DPRTC_CMD_H */