mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-29 08:01:08 +00:00
4e3d84066e
This does not have much impact on behavior, but makes code look more more like Linux. The use of devm_ioremap() often helps to delete .remove callbacks entirely. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
37 lines
681 B
C
37 lines
681 B
C
/*
|
|
* Copyright (C) 2016 Socionext Inc.
|
|
* Author: Masahiro Yamada <yamada.masahiro@socionext.com>
|
|
*
|
|
* SPDX-License-Identifier: GPL-2.0+
|
|
*/
|
|
|
|
#include <linux/bitops.h>
|
|
#include <linux/io.h>
|
|
#include <linux/sizes.h>
|
|
|
|
#define CNT_CONTROL_BASE 0x60E00000
|
|
|
|
#define CNTCR 0x000
|
|
#define CNTCR_EN BIT(0)
|
|
|
|
/* setup ARMv8 Generic Timer */
|
|
int timer_init(void)
|
|
{
|
|
void __iomem *base;
|
|
u32 tmp;
|
|
|
|
base = ioremap(CNT_CONTROL_BASE, SZ_4K);
|
|
|
|
/*
|
|
* Note:
|
|
* In a system that implements both Secure and Non-secure states,
|
|
* this register is only writable in Secure state.
|
|
*/
|
|
tmp = readl(base + CNTCR);
|
|
tmp |= CNTCR_EN;
|
|
writel(tmp, base + CNTCR);
|
|
|
|
iounmap(base);
|
|
|
|
return 0;
|
|
}
|