mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-24 03:53:31 +00:00
44726096cf
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>
87 lines
1.7 KiB
C
87 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
|