mirror of https://github.com/F-Stack/f-stack.git
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 */
|