net/softnic: fix useless address check
[dpdk.git] / drivers / net / dpaa2 / mc / fsl_dprtc.h
1 /* SPDX-License-Identifier: (BSD-3-Clause OR GPL-2.0)
2  * Copyright 2019-2021 NXP
3  */
4 #ifndef __FSL_DPRTC_H
5 #define __FSL_DPRTC_H
6
7 /** @addtogroup dprtc Data Path Real Time Counter API
8  * Contains initialization APIs and runtime control APIs for RTC
9  * @{
10  */
11
12 struct fsl_mc_io;
13
14 int dprtc_open(struct fsl_mc_io *mc_io,
15                uint32_t cmd_flags,
16                int dprtc_id,
17                uint16_t *token);
18
19 int dprtc_close(struct fsl_mc_io *mc_io,
20                 uint32_t cmd_flags,
21                 uint16_t token);
22
23 /**
24  * struct dprtc_cfg - Structure representing DPRTC configuration
25  * @options:    place holder
26  */
27 struct dprtc_cfg {
28         uint32_t options;
29 };
30
31 int dprtc_create(struct fsl_mc_io *mc_io,
32                  uint16_t dprc_token,
33                  uint32_t cmd_flags,
34                  const struct dprtc_cfg *cfg,
35                  uint32_t *obj_id);
36
37 int dprtc_destroy(struct fsl_mc_io *mc_io,
38                   uint16_t dprc_token,
39                   uint32_t cmd_flags,
40                   uint32_t object_id);
41
42 int dprtc_enable(struct fsl_mc_io *mc_io,
43                  uint32_t cmd_flags,
44                  uint16_t token);
45
46 int dprtc_disable(struct fsl_mc_io *mc_io,
47                   uint32_t cmd_flags,
48                   uint16_t token);
49
50 int dprtc_is_enabled(struct fsl_mc_io *mc_io,
51                      uint32_t cmd_flags,
52                      uint16_t token,
53                      int *en);
54
55 int dprtc_reset(struct fsl_mc_io *mc_io,
56                 uint32_t cmd_flags,
57                 uint16_t token);
58
59 int dprtc_set_clock_offset(struct fsl_mc_io *mc_io,
60                            uint32_t cmd_flags,
61                            uint16_t token,
62                            int64_t offset);
63
64 int dprtc_set_freq_compensation(struct fsl_mc_io *mc_io,
65                   uint32_t cmd_flags,
66                   uint16_t token,
67                   uint32_t freq_compensation);
68
69 int dprtc_get_freq_compensation(struct fsl_mc_io *mc_io,
70                   uint32_t cmd_flags,
71                   uint16_t token,
72                   uint32_t *freq_compensation);
73
74 int dprtc_get_time(struct fsl_mc_io *mc_io,
75                    uint32_t cmd_flags,
76                    uint16_t token,
77                    uint64_t *time);
78
79 int dprtc_set_time(struct fsl_mc_io *mc_io,
80                    uint32_t cmd_flags,
81                    uint16_t token,
82                    uint64_t time);
83
84 int dprtc_set_alarm(struct fsl_mc_io *mc_io,
85                     uint32_t cmd_flags,
86                     uint16_t token,
87                     uint64_t time);
88
89 struct dprtc_ext_trigger_status {
90                         uint64_t timestamp;
91                         uint8_t unread_valid_timestamp;
92 };
93
94 int dprtc_get_ext_trigger_timestamp(struct fsl_mc_io *mc_io,
95                         uint32_t cmd_flags,
96                         uint16_t token,
97                         uint8_t id,
98                         struct dprtc_ext_trigger_status *status);
99
100 int dprtc_set_fiper_loopback(struct fsl_mc_io *mc_io,
101                         uint32_t cmd_flags,
102                         uint16_t token,
103                         uint8_t id,
104                         uint8_t fiper_as_input);
105
106 /**
107  * struct dprtc_attr - Structure representing DPRTC attributes
108  * @id:         DPRTC object ID
109  */
110 struct dprtc_attr {
111         int id;
112         int paddr;
113         int little_endian;
114 };
115
116 int dprtc_get_attributes(struct fsl_mc_io *mc_io,
117                          uint32_t cmd_flags,
118                          uint16_t token,
119                          struct dprtc_attr *attr);
120
121 int dprtc_get_api_version(struct fsl_mc_io *mc_io,
122                           uint32_t cmd_flags,
123                           uint16_t *major_ver,
124                           uint16_t *minor_ver);
125
126 #endif /* __FSL_DPRTC_H */