1 /* SPDX-License-Identifier: (BSD-3-Clause OR GPL-2.0) 2 * 3 * Copyright 2013-2016 Freescale Semiconductor Inc. 4 * Copyright 2017-2021, 2024 NXP 5 * 6 */ 7 #ifndef __FSL_DPCON_H 8 #define __FSL_DPCON_H 9 10 #include <rte_compat.h> 11 12 /* Data Path Concentrator API 13 * Contains initialization APIs and runtime control APIs for DPCON 14 */ 15 16 struct fsl_mc_io; 17 18 /** General DPCON macros */ 19 20 /** 21 * Use it to disable notifications; see dpcon_set_notification() 22 */ 23 #define DPCON_INVALID_DPIO_ID (int)(-1) 24 25 __rte_internal 26 int dpcon_open(struct fsl_mc_io *mc_io, 27 uint32_t cmd_flags, 28 int dpcon_id, 29 uint16_t *token); 30 31 __rte_internal 32 int dpcon_close(struct fsl_mc_io *mc_io, 33 uint32_t cmd_flags, 34 uint16_t token); 35 36 /** 37 * struct dpcon_cfg - Structure representing DPCON configuration 38 * @num_priorities: Number of priorities for the DPCON channel (1-8) 39 */ 40 struct dpcon_cfg { 41 uint8_t num_priorities; 42 }; 43 44 int dpcon_create(struct fsl_mc_io *mc_io, 45 uint16_t dprc_token, 46 uint32_t cmd_flags, 47 const struct dpcon_cfg *cfg, 48 uint32_t *obj_id); 49 50 int dpcon_destroy(struct fsl_mc_io *mc_io, 51 uint16_t dprc_token, 52 uint32_t cmd_flags, 53 uint32_t obj_id); 54 55 __rte_internal 56 int dpcon_enable(struct fsl_mc_io *mc_io, 57 uint32_t cmd_flags, 58 uint16_t token); 59 60 __rte_internal 61 int dpcon_disable(struct fsl_mc_io *mc_io, 62 uint32_t cmd_flags, 63 uint16_t token); 64 65 int dpcon_is_enabled(struct fsl_mc_io *mc_io, 66 uint32_t cmd_flags, 67 uint16_t token, 68 int *en); 69 70 __rte_internal 71 int dpcon_reset(struct fsl_mc_io *mc_io, 72 uint32_t cmd_flags, 73 uint16_t token); 74 75 /** 76 * struct dpcon_attr - Structure representing DPCON attributes 77 * @id: DPCON object ID 78 * @qbman_ch_id: Channel ID to be used by dequeue operation 79 * @num_priorities: Number of priorities for the DPCON channel (1-8) 80 */ 81 struct dpcon_attr { 82 int id; 83 uint16_t qbman_ch_id; 84 uint8_t num_priorities; 85 }; 86 87 __rte_internal 88 int dpcon_get_attributes(struct fsl_mc_io *mc_io, 89 uint32_t cmd_flags, 90 uint16_t token, 91 struct dpcon_attr *attr); 92 93 int dpcon_get_api_version(struct fsl_mc_io *mc_io, 94 uint32_t cmd_flags, 95 uint16_t *major_ver, 96 uint16_t *minor_ver); 97 98 #endif /* __FSL_DPCON_H */ 99