Linux debugging

Check our new training course

Linux debugging, tracing, profiling & perf. analysis

Check our new training course
with Creative Commons CC-BY-SA
lecture and lab materials

Bootlin logo

Elixir Cross Referencer

/*
 * Copyright (c) 2015 Intel Corporation.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#ifndef _RTC_DW_H_
#define _RTC_DW_H_

#include <board.h>
#include <device.h>
#include <rtc.h>

#ifdef __cplusplus
extern "C" {
#endif

#define RTC_CCVR		(0x0)
#define RTC_CMR			(0x4)
#define RTC_CLR			(0x8)
#define RTC_CCR			(0xC)
#define RTC_STAT		(0x10)
#define RTC_RSTAT		(0x14)
#define RTC_EOI			(0x18)
#define RTC_COMP_VERSION	(0x1C)

#define RTC_INTERRUPT_ENABLE	(1 << 0)
#define RTC_INTERRUPT_MASK	(1 << 1)
#define RTC_ENABLE		(1 << 2)
#define RTC_WRAP_ENABLE		(1 << 3)

#define RTC_CLK_DIV_EN		(1 << 2)
#define RTC_CLK_DIV_MASK	(0xF << 3)
#define RTC_CLK_DIV_1_HZ	(0xF << 3)
#define RTC_CLK_DIV_32768_HZ	(0x0 << 3)
#define RTC_CLK_DIV_8192_HZ	(0x2 << 3)
#define RTC_CLK_DIV_4096_HZ	(0x3 << 3)

struct rtc_dw_runtime {
	void (*rtc_dw_cb_fn)(struct device *dev);
#ifdef CONFIG_RTC_DW_CLOCK_GATE
	struct device *clock;
#endif
};

struct rtc_dw_dev_config {
	uint32_t base_address;
#ifdef CONFIG_RTC_DW_CLOCK_GATE
	void *clock_data;
#endif
};

int rtc_dw_init(struct device *dev);

#ifdef __cplusplus
}
#endif

#endif /* _RTC_DW_H_ */