]> git.proxmox.com Git - ceph.git/blob - ceph/src/spdk/dpdk/drivers/net/dpaa2/mc/fsl_dprtc.h
update source to Ceph Pacific 16.2.2
[ceph.git] / ceph / src / spdk / dpdk / drivers / net / dpaa2 / mc / fsl_dprtc.h
1 /* SPDX-License-Identifier: (BSD-3-Clause OR GPL-2.0)
2 * Copyright 2019 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 /**
90 * struct dprtc_attr - Structure representing DPRTC attributes
91 * @id: DPRTC object ID
92 */
93 struct dprtc_attr {
94 int id;
95 int paddr;
96 int little_endian;
97 };
98
99 int dprtc_get_attributes(struct fsl_mc_io *mc_io,
100 uint32_t cmd_flags,
101 uint16_t token,
102 struct dprtc_attr *attr);
103
104 int dprtc_get_api_version(struct fsl_mc_io *mc_io,
105 uint32_t cmd_flags,
106 uint16_t *major_ver,
107 uint16_t *minor_ver);
108
109 #endif /* __FSL_DPRTC_H */