mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-08-31 14:28:52 +09:00
![Icenowy Zheng](/assets/img/avatar_default.png)
The H6 SoC has a sun6i-style watchdog in its timer part. Enable the usage of it. Signed-off-by: Icenowy Zheng <icenowy@aosc.io> Acked-by: Maxime Ripard <maxime.ripard@bootlin.com> Reviewed-by: Jagan Teki <jagan@openedev.com> Tested-by: Jagan Teki <jagan@amarulasolutions.com>
88 lines
1.7 KiB
C
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_MACH_SUN50I_H6)
|
|
u8 res3[16];
|
|
struct sunxi_wdog wdog[5]; /* We have 5 watchdogs */
|
|
#endif
|
|
};
|
|
|
|
#endif /* __ASSEMBLY__ */
|
|
|
|
#endif
|