blob: 6aacfd7b39696db1f498570974f9aec017f4eace [file] [log] [blame]
Ian Campbell643cf0e2014-05-05 11:52:23 +01001/*
2 * (C) Copyright 2007-2011
3 * Allwinner Technology Co., Ltd. <www.allwinnertech.com>
4 * Tom Cubie <tangliang@allwinnertech.com>
5 *
6 * Configuration settings for the Allwinner A10-evb board.
7 *
8 * SPDX-License-Identifier: GPL-2.0+
9 */
10
11#ifndef _SUNXI_TIMER_H_
12#define _SUNXI_TIMER_H_
13
14#ifndef __ASSEMBLY__
15
16#include <linux/types.h>
17
18/* General purpose timer */
19struct sunxi_timer {
20 u32 ctl;
21 u32 inter;
22 u32 val;
23 u8 res[4];
24};
25
26/* Audio video sync*/
27struct sunxi_avs {
28 u32 ctl; /* 0x80 */
29 u32 cnt0; /* 0x84 */
30 u32 cnt1; /* 0x88 */
31 u32 div; /* 0x8c */
32};
33
34/* 64 bit counter */
35struct sunxi_64cnt {
36 u32 ctl; /* 0xa0 */
37 u32 lo; /* 0xa4 */
38 u32 hi; /* 0xa8 */
39};
40
41/* Watchdog */
42struct sunxi_wdog {
43 u32 ctl; /* 0x90 */
44 u32 mode; /* 0x94 */
45};
46
47/* Rtc */
48struct sunxi_rtc {
49 u32 ctl; /* 0x100 */
50 u32 yymmdd; /* 0x104 */
51 u32 hhmmss; /* 0x108 */
52};
53
54/* Alarm */
55struct sunxi_alarm {
56 u32 ddhhmmss; /* 0x10c */
57 u32 hhmmss; /* 0x110 */
58 u32 en; /* 0x114 */
59 u32 irqen; /* 0x118 */
60 u32 irqsta; /* 0x11c */
61};
62
63/* Timer general purpose register */
64struct sunxi_tgp {
65 u32 tgpd;
66};
67
68struct sunxi_timer_reg {
69 u32 tirqen; /* 0x00 */
70 u32 tirqsta; /* 0x04 */
71 u8 res1[8];
72 struct sunxi_timer timer[6]; /* We have 6 timers */
73 u8 res2[16];
74 struct sunxi_avs avs;
75 struct sunxi_wdog wdog;
76 u8 res3[8];
77 struct sunxi_64cnt cnt64;
78 u8 res4[0x58];
79 struct sunxi_rtc rtc;
80 struct sunxi_alarm alarm;
81 struct sunxi_tgp tgp[4];
82 u8 res5[8];
83 u32 cpu_cfg;
84};
85
86#endif /* __ASSEMBLY__ */
87
88#endif