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 */
75