184c39d165
This patch add support for dprtc (Data Path Real Time Clock) sub-module based on MC 10.16.0 flib. It provides interface for PTP stack software to access physical IEEE 1588 Real Time Clock. Signed-off-by: Priyanka Jain <priyanka.jain@nxp.com> Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
110 lines
2.4 KiB
C
110 lines
2.4 KiB
C
/* SPDX-License-Identifier: (BSD-3-Clause OR GPL-2.0)
|
|
* Copyright 2019 NXP
|
|
*/
|
|
#ifndef __FSL_DPRTC_H
|
|
#define __FSL_DPRTC_H
|
|
|
|
/** @addtogroup dprtc Data Path Real Time Counter API
|
|
* Contains initialization APIs and runtime control APIs for RTC
|
|
* @{
|
|
*/
|
|
|
|
struct fsl_mc_io;
|
|
|
|
int dprtc_open(struct fsl_mc_io *mc_io,
|
|
uint32_t cmd_flags,
|
|
int dprtc_id,
|
|
uint16_t *token);
|
|
|
|
int dprtc_close(struct fsl_mc_io *mc_io,
|
|
uint32_t cmd_flags,
|
|
uint16_t token);
|
|
|
|
/**
|
|
* struct dprtc_cfg - Structure representing DPRTC configuration
|
|
* @options: place holder
|
|
*/
|
|
struct dprtc_cfg {
|
|
uint32_t options;
|
|
};
|
|
|
|
int dprtc_create(struct fsl_mc_io *mc_io,
|
|
uint16_t dprc_token,
|
|
uint32_t cmd_flags,
|
|
const struct dprtc_cfg *cfg,
|
|
uint32_t *obj_id);
|
|
|
|
int dprtc_destroy(struct fsl_mc_io *mc_io,
|
|
uint16_t dprc_token,
|
|
uint32_t cmd_flags,
|
|
uint32_t object_id);
|
|
|
|
int dprtc_enable(struct fsl_mc_io *mc_io,
|
|
uint32_t cmd_flags,
|
|
uint16_t token);
|
|
|
|
int dprtc_disable(struct fsl_mc_io *mc_io,
|
|
uint32_t cmd_flags,
|
|
uint16_t token);
|
|
|
|
int dprtc_is_enabled(struct fsl_mc_io *mc_io,
|
|
uint32_t cmd_flags,
|
|
uint16_t token,
|
|
int *en);
|
|
|
|
int dprtc_reset(struct fsl_mc_io *mc_io,
|
|
uint32_t cmd_flags,
|
|
uint16_t token);
|
|
|
|
int dprtc_set_clock_offset(struct fsl_mc_io *mc_io,
|
|
uint32_t cmd_flags,
|
|
uint16_t token,
|
|
int64_t offset);
|
|
|
|
int dprtc_set_freq_compensation(struct fsl_mc_io *mc_io,
|
|
uint32_t cmd_flags,
|
|
uint16_t token,
|
|
uint32_t freq_compensation);
|
|
|
|
int dprtc_get_freq_compensation(struct fsl_mc_io *mc_io,
|
|
uint32_t cmd_flags,
|
|
uint16_t token,
|
|
uint32_t *freq_compensation);
|
|
|
|
int dprtc_get_time(struct fsl_mc_io *mc_io,
|
|
uint32_t cmd_flags,
|
|
uint16_t token,
|
|
uint64_t *time);
|
|
|
|
int dprtc_set_time(struct fsl_mc_io *mc_io,
|
|
uint32_t cmd_flags,
|
|
uint16_t token,
|
|
uint64_t time);
|
|
|
|
int dprtc_set_alarm(struct fsl_mc_io *mc_io,
|
|
uint32_t cmd_flags,
|
|
uint16_t token,
|
|
uint64_t time);
|
|
|
|
/**
|
|
* struct dprtc_attr - Structure representing DPRTC attributes
|
|
* @id: DPRTC object ID
|
|
*/
|
|
struct dprtc_attr {
|
|
int id;
|
|
int paddr;
|
|
int little_endian;
|
|
};
|
|
|
|
int dprtc_get_attributes(struct fsl_mc_io *mc_io,
|
|
uint32_t cmd_flags,
|
|
uint16_t token,
|
|
struct dprtc_attr *attr);
|
|
|
|
int dprtc_get_api_version(struct fsl_mc_io *mc_io,
|
|
uint32_t cmd_flags,
|
|
uint16_t *major_ver,
|
|
uint16_t *minor_ver);
|
|
|
|
#endif /* __FSL_DPRTC_H */
|