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