diff options
author | Ingo Molnar <mingo@kernel.org> | 2015-05-17 08:57:31 +0300 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2015-05-17 08:57:31 +0300 |
commit | 75d95d84888cbd0024eb62ca7e72b3f7fe67dbdd (patch) | |
tree | 7167fa30a5c46766c10c4b9a37d7bf9373c26c6d /arch/arm/mach-rockchip/rockchip.c | |
parent | 52648e83c9a6b9f7fc3dd272d4d10175e93aa62a (diff) | |
parent | c0655fe9b0901a968800f56687be3c62b4cce5d2 (diff) | |
download | linux-75d95d84888cbd0024eb62ca7e72b3f7fe67dbdd.tar.xz |
Merge branch 'linus' into x86/asm, to resolve conflicts
Conflicts:
tools/testing/selftests/x86/Makefile
tools/testing/selftests/x86/run_x86_tests.sh
Diffstat (limited to 'arch/arm/mach-rockchip/rockchip.c')
-rw-r--r-- | arch/arm/mach-rockchip/rockchip.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/arch/arm/mach-rockchip/rockchip.c b/arch/arm/mach-rockchip/rockchip.c index d360ec044b66..b6cf3b449428 100644 --- a/arch/arm/mach-rockchip/rockchip.c +++ b/arch/arm/mach-rockchip/rockchip.c @@ -30,11 +30,30 @@ #include "pm.h" #define RK3288_GRF_SOC_CON0 0x244 +#define RK3288_TIMER6_7_PHYS 0xff810000 static void __init rockchip_timer_init(void) { if (of_machine_is_compatible("rockchip,rk3288")) { struct regmap *grf; + void __iomem *reg_base; + + /* + * Most/all uboot versions for rk3288 don't enable timer7 + * which is needed for the architected timer to work. + * So make sure it is running during early boot. + */ + reg_base = ioremap(RK3288_TIMER6_7_PHYS, SZ_16K); + if (reg_base) { + writel(0, reg_base + 0x30); + writel(0xffffffff, reg_base + 0x20); + writel(0xffffffff, reg_base + 0x24); + writel(1, reg_base + 0x30); + dsb(); + iounmap(reg_base); + } else { + pr_err("rockchip: could not map timer7 registers\n"); + } /* * Disable auto jtag/sdmmc switching that causes issues |