u-boot-brain/arch/arm/include/asm/arch-sunxi/timer.h
Jernej Skrabec 44726096cf sunxi: Introduce common symbol for H6 like SoCs
It turns out that there are at least 2 other SoCs which have basically
the same memory map, similar clocks and other features as H6. It's very
likely that we'll see more such SoCs in the future. In order to ease
porting to new SoCs and lower ifdef clutter, introduce common symbol for
them.

Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
Reviewed-by: Samuel Holland <samuel@sholland.org>
Reviewed-by: Andre Przywara <andre.przywara@arm.com>
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
2021-01-25 21:52:00 +00:00

88 lines
1.7 KiB
C

/* SPDX-License-Identifier: GPL-2.0+ */
/*
* (C) Copyright 2007-2011
* Allwinner Technology Co., Ltd. <www.allwinnertech.com>
* Tom Cubie <tangliang@allwinnertech.com>
*
* Configuration settings for the Allwinner A10-evb board.
*/
#ifndef _SUNXI_TIMER_H_
#define _SUNXI_TIMER_H_
#ifndef __ASSEMBLY__
#include <linux/types.h>
#include <asm/arch/watchdog.h>
/* General purpose timer */
struct sunxi_timer {
u32 ctl;
u32 inter;
u32 val;
u8 res[4];
};
/* Audio video sync*/
struct sunxi_avs {
u32 ctl; /* 0x80 */
u32 cnt0; /* 0x84 */
u32 cnt1; /* 0x88 */
u32 div; /* 0x8c */
};
/* 64 bit counter */
struct sunxi_64cnt {
u32 ctl; /* 0xa0 */
u32 lo; /* 0xa4 */
u32 hi; /* 0xa8 */
};
/* Rtc */
struct sunxi_rtc {
u32 ctl; /* 0x100 */
u32 yymmdd; /* 0x104 */
u32 hhmmss; /* 0x108 */
};
/* Alarm */
struct sunxi_alarm {
u32 ddhhmmss; /* 0x10c */
u32 hhmmss; /* 0x110 */
u32 en; /* 0x114 */
u32 irqen; /* 0x118 */
u32 irqsta; /* 0x11c */
};
/* Timer general purpose register */
struct sunxi_tgp {
u32 tgpd;
};
struct sunxi_timer_reg {
u32 tirqen; /* 0x00 */
u32 tirqsta; /* 0x04 */
u8 res1[8];
struct sunxi_timer timer[6]; /* We have 6 timers */
u8 res2[16];
struct sunxi_avs avs;
#if defined(CONFIG_SUNXI_GEN_SUN4I) || defined(CONFIG_MACH_SUN8I_R40)
struct sunxi_wdog wdog; /* 0x90 */
/* XXX the following is not accurate for sun5i/sun7i */
struct sunxi_64cnt cnt64; /* 0xa0 */
u8 res4[0x58];
struct sunxi_rtc rtc;
struct sunxi_alarm alarm;
struct sunxi_tgp tgp[4];
u8 res5[8];
u32 cpu_cfg;
#elif defined(CONFIG_SUNXI_GEN_SUN6I) || defined(CONFIG_SUN50I_GEN_H6)
u8 res3[16];
struct sunxi_wdog wdog[5]; /* We have 5 watchdogs */
#endif
};
#endif /* __ASSEMBLY__ */
#endif