xref: /dpdk/drivers/bus/fslmc/mc/fsl_dpcon_cmd.h (revision 131a75b6e4df60586103d71defb85dcf9f77fb17)
1*131a75b6SHemant Agrawal /* SPDX-License-Identifier: (BSD-3-Clause OR GPL-2.0)
292c28aa4SNipun Gupta  *
392c28aa4SNipun Gupta  * Copyright 2013-2016 Freescale Semiconductor Inc.
4*131a75b6SHemant Agrawal  * Copyright 2016-2017 NXP
592c28aa4SNipun Gupta  *
692c28aa4SNipun Gupta  */
792c28aa4SNipun Gupta #ifndef _FSL_DPCON_CMD_H
892c28aa4SNipun Gupta #define _FSL_DPCON_CMD_H
992c28aa4SNipun Gupta 
1092c28aa4SNipun Gupta /* DPCON Version */
1192c28aa4SNipun Gupta #define DPCON_VER_MAJOR			3
1216bbc98aSShreyansh Jain #define DPCON_VER_MINOR			3
1316bbc98aSShreyansh Jain 
1416bbc98aSShreyansh Jain 
1516bbc98aSShreyansh Jain /* Command versioning */
1616bbc98aSShreyansh Jain #define DPCON_CMD_BASE_VERSION		1
1716bbc98aSShreyansh Jain #define DPCON_CMD_ID_OFFSET		4
1816bbc98aSShreyansh Jain 
1916bbc98aSShreyansh Jain #define DPCON_CMD(id)	((id << DPCON_CMD_ID_OFFSET) | DPCON_CMD_BASE_VERSION)
2092c28aa4SNipun Gupta 
2192c28aa4SNipun Gupta /* Command IDs */
2216bbc98aSShreyansh Jain #define DPCON_CMDID_CLOSE		DPCON_CMD(0x800)
2316bbc98aSShreyansh Jain #define DPCON_CMDID_OPEN		DPCON_CMD(0x808)
2416bbc98aSShreyansh Jain #define DPCON_CMDID_CREATE		DPCON_CMD(0x908)
2516bbc98aSShreyansh Jain #define DPCON_CMDID_DESTROY		DPCON_CMD(0x988)
2616bbc98aSShreyansh Jain #define DPCON_CMDID_GET_API_VERSION	DPCON_CMD(0xa08)
2792c28aa4SNipun Gupta 
2816bbc98aSShreyansh Jain #define DPCON_CMDID_ENABLE		DPCON_CMD(0x002)
2916bbc98aSShreyansh Jain #define DPCON_CMDID_DISABLE		DPCON_CMD(0x003)
3016bbc98aSShreyansh Jain #define DPCON_CMDID_GET_ATTR		DPCON_CMD(0x004)
3116bbc98aSShreyansh Jain #define DPCON_CMDID_RESET		DPCON_CMD(0x005)
3216bbc98aSShreyansh Jain #define DPCON_CMDID_IS_ENABLED		DPCON_CMD(0x006)
3392c28aa4SNipun Gupta 
3416bbc98aSShreyansh Jain #define DPCON_CMDID_SET_NOTIFICATION	DPCON_CMD(0x100)
3592c28aa4SNipun Gupta 
3616bbc98aSShreyansh Jain #pragma pack(push, 1)
3716bbc98aSShreyansh Jain struct dpcon_cmd_open {
3816bbc98aSShreyansh Jain 	uint32_t dpcon_id;
3916bbc98aSShreyansh Jain };
4092c28aa4SNipun Gupta 
4116bbc98aSShreyansh Jain struct dpcon_cmd_create {
4216bbc98aSShreyansh Jain 	uint8_t num_priorities;
4316bbc98aSShreyansh Jain };
4492c28aa4SNipun Gupta 
4516bbc98aSShreyansh Jain struct dpcon_cmd_destroy {
4616bbc98aSShreyansh Jain 	uint32_t object_id;
4716bbc98aSShreyansh Jain };
4892c28aa4SNipun Gupta 
4916bbc98aSShreyansh Jain #define DPCON_ENABLE			1
5092c28aa4SNipun Gupta 
5116bbc98aSShreyansh Jain struct dpcon_rsp_is_enabled {
5216bbc98aSShreyansh Jain 	uint8_t enabled;
5316bbc98aSShreyansh Jain };
5492c28aa4SNipun Gupta 
5516bbc98aSShreyansh Jain struct dpcon_rsp_get_attr {
5616bbc98aSShreyansh Jain 	uint32_t id;
5716bbc98aSShreyansh Jain 	uint16_t qbman_ch_id;
5816bbc98aSShreyansh Jain 	uint8_t num_priorities;
5916bbc98aSShreyansh Jain 	uint8_t pad;
6016bbc98aSShreyansh Jain };
6192c28aa4SNipun Gupta 
6216bbc98aSShreyansh Jain struct dpcon_cmd_set_notification {
6316bbc98aSShreyansh Jain 	uint32_t dpio_id;
6416bbc98aSShreyansh Jain 	uint8_t priority;
6516bbc98aSShreyansh Jain 	uint8_t pad[3];
6616bbc98aSShreyansh Jain 	uint64_t user_ctx;
6716bbc98aSShreyansh Jain };
6892c28aa4SNipun Gupta 
6916bbc98aSShreyansh Jain struct dpcon_rsp_get_api_version {
7016bbc98aSShreyansh Jain 	uint16_t major;
7116bbc98aSShreyansh Jain 	uint16_t minor;
7216bbc98aSShreyansh Jain };
7392c28aa4SNipun Gupta 
7416bbc98aSShreyansh Jain #pragma pack(pop)
7592c28aa4SNipun Gupta #endif /* _FSL_DPCON_CMD_H */
76