162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright 2013-2016 Freescale Semiconductor Inc.
462306a36Sopenharmony_ci * Copyright 2016-2018 NXP
562306a36Sopenharmony_ci */
662306a36Sopenharmony_ci
762306a36Sopenharmony_ci#ifndef __FSL_DPRTC_H
862306a36Sopenharmony_ci#define __FSL_DPRTC_H
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ci/* Data Path Real Time Counter API
1162306a36Sopenharmony_ci * Contains initialization APIs and runtime control APIs for RTC
1262306a36Sopenharmony_ci */
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_cistruct fsl_mc_io;
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ci#define DPRTC_MAX_IRQ_NUM	1
1762306a36Sopenharmony_ci#define DPRTC_IRQ_INDEX		0
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci#define DPRTC_EVENT_PPS		0x08000000
2062306a36Sopenharmony_ci#define DPRTC_EVENT_ETS1	0x00800000
2162306a36Sopenharmony_ci#define DPRTC_EVENT_ETS2	0x00400000
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ciint dprtc_open(struct fsl_mc_io *mc_io,
2462306a36Sopenharmony_ci	       u32 cmd_flags,
2562306a36Sopenharmony_ci	       int dprtc_id,
2662306a36Sopenharmony_ci	       u16 *token);
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ciint dprtc_close(struct fsl_mc_io *mc_io,
2962306a36Sopenharmony_ci		u32 cmd_flags,
3062306a36Sopenharmony_ci		u16 token);
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ciint dprtc_set_irq_enable(struct fsl_mc_io *mc_io,
3362306a36Sopenharmony_ci			 u32 cmd_flags,
3462306a36Sopenharmony_ci			 u16 token,
3562306a36Sopenharmony_ci			 u8 irq_index,
3662306a36Sopenharmony_ci			 u8 en);
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ciint dprtc_get_irq_enable(struct fsl_mc_io *mc_io,
3962306a36Sopenharmony_ci			 u32 cmd_flags,
4062306a36Sopenharmony_ci			 u16 token,
4162306a36Sopenharmony_ci			 u8 irq_index,
4262306a36Sopenharmony_ci			 u8 *en);
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_ciint dprtc_set_irq_mask(struct fsl_mc_io *mc_io,
4562306a36Sopenharmony_ci		       u32 cmd_flags,
4662306a36Sopenharmony_ci		       u16 token,
4762306a36Sopenharmony_ci		       u8 irq_index,
4862306a36Sopenharmony_ci		       u32 mask);
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ciint dprtc_get_irq_mask(struct fsl_mc_io *mc_io,
5162306a36Sopenharmony_ci		       u32 cmd_flags,
5262306a36Sopenharmony_ci		       u16 token,
5362306a36Sopenharmony_ci		       u8 irq_index,
5462306a36Sopenharmony_ci		       u32 *mask);
5562306a36Sopenharmony_ci
5662306a36Sopenharmony_ciint dprtc_get_irq_status(struct fsl_mc_io *mc_io,
5762306a36Sopenharmony_ci			 u32 cmd_flags,
5862306a36Sopenharmony_ci			 u16 token,
5962306a36Sopenharmony_ci			 u8 irq_index,
6062306a36Sopenharmony_ci			 u32 *status);
6162306a36Sopenharmony_ci
6262306a36Sopenharmony_ciint dprtc_clear_irq_status(struct fsl_mc_io *mc_io,
6362306a36Sopenharmony_ci			   u32 cmd_flags,
6462306a36Sopenharmony_ci			   u16 token,
6562306a36Sopenharmony_ci			   u8 irq_index,
6662306a36Sopenharmony_ci			   u32 status);
6762306a36Sopenharmony_ci
6862306a36Sopenharmony_ci#endif /* __FSL_DPRTC_H */
69