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