net/ice: refine debug build option
[dpdk.git] / drivers / common / cnxk / roc_tim.h
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(C) 2021 Marvell.
3  */
4
5 #ifndef _ROC_TIM_H_
6 #define _ROC_TIM_H_
7
8 enum roc_tim_clk_src {
9         ROC_TIM_CLK_SRC_10NS = 0,
10         ROC_TIM_CLK_SRC_GPIO,
11         ROC_TIM_CLK_SRC_GTI,
12         ROC_TIM_CLK_SRC_PTP,
13         ROC_TIM_CLK_SRC_INVALID,
14 };
15
16 struct roc_tim {
17         struct roc_sso *roc_sso;
18         /* Public data. */
19         uint16_t nb_lfs;
20         /* Private data. */
21 #define TIM_MEM_SZ (1 * 1024)
22         uint8_t reserved[TIM_MEM_SZ] __plt_cache_aligned;
23 } __plt_cache_aligned;
24
25 int __roc_api roc_tim_init(struct roc_tim *roc_tim);
26 void __roc_api roc_tim_fini(struct roc_tim *roc_tim);
27
28 /* TIM config */
29 int __roc_api roc_tim_lf_enable(struct roc_tim *roc_tim, uint8_t ring_id,
30                                 uint64_t *start_tsc, uint32_t *cur_bkt);
31 int __roc_api roc_tim_lf_disable(struct roc_tim *roc_tim, uint8_t ring_id);
32 int __roc_api roc_tim_lf_config(struct roc_tim *roc_tim, uint8_t ring_id,
33                                 enum roc_tim_clk_src clk_src,
34                                 uint8_t ena_periodic, uint8_t ena_dfb,
35                                 uint32_t bucket_sz, uint32_t chunk_sz,
36                                 uint32_t interval);
37 int __roc_api roc_tim_lf_alloc(struct roc_tim *roc_tim, uint8_t ring_id,
38                                uint64_t *clk);
39 int __roc_api roc_tim_lf_free(struct roc_tim *roc_tim, uint8_t ring_id);
40 uintptr_t __roc_api roc_tim_lf_base_get(struct roc_tim *roc_tim,
41                                         uint8_t ring_id);
42
43 #endif