mirror of
https://github.com/AsahiLinux/u-boot
synced 2025-03-02 22:37:22 +00:00
We have a large number of places where while we historically referenced gd in the code we no longer do, as well as cases where the code added that line "just in case" during development and never dropped it. Signed-off-by: Tom Rini <trini@konsulko.com>
40 lines
904 B
C
40 lines
904 B
C
/*
|
|
* Copyright (C) Marvell International Ltd. and its affiliates
|
|
* Written-by: Prafulla Wadaskar <prafulla@marvell.com>
|
|
*
|
|
* Copyright (C) 2015 Stefan Roese <sr@denx.de>
|
|
*
|
|
* SPDX-License-Identifier: GPL-2.0+
|
|
*/
|
|
|
|
#include <common.h>
|
|
#include <asm/io.h>
|
|
#include <asm/arch/soc.h>
|
|
|
|
#define TIMER_LOAD_VAL 0xffffffff
|
|
|
|
static int init_done __attribute__((section(".data"))) = 0;
|
|
|
|
/*
|
|
* Timer initialization
|
|
*/
|
|
int timer_init(void)
|
|
{
|
|
/* Only init the timer once */
|
|
if (init_done)
|
|
return 0;
|
|
init_done = 1;
|
|
|
|
/* load value into timer */
|
|
writel(TIMER_LOAD_VAL, MVEBU_TIMER_BASE + 0x10);
|
|
writel(TIMER_LOAD_VAL, MVEBU_TIMER_BASE + 0x14);
|
|
|
|
#if defined(CONFIG_ARCH_MVEBU)
|
|
/* On Armada XP / 38x ..., the 25MHz clock source needs to be enabled */
|
|
setbits_le32(MVEBU_TIMER_BASE + 0x00, BIT(11));
|
|
#endif
|
|
/* enable timer in auto reload mode */
|
|
setbits_le32(MVEBU_TIMER_BASE + 0x00, 0x3);
|
|
|
|
return 0;
|
|
}
|