forked from Minki/linux
a912e80bd0
Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 675 mass ave cambridge ma 02139 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 35 file(s). Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Armijn Hemel <armijn@tjaldur.nl> Reviewed-by: Richard Fontana <rfontana@redhat.com> Reviewed-by: Allison Randal <allison@lohutok.net> Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190527070032.655028468@linutronix.de Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
43 lines
1.1 KiB
C
43 lines
1.1 KiB
C
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
/*
|
|
* Copyright (C) 2010, Lars-Peter Clausen <lars@metafoo.de>
|
|
* JZ4740 platform timer support
|
|
*/
|
|
|
|
#include <linux/export.h>
|
|
#include <linux/io.h>
|
|
#include <linux/init.h>
|
|
#include <linux/kernel.h>
|
|
|
|
#include <asm/mach-jz4740/base.h>
|
|
#include <asm/mach-jz4740/timer.h>
|
|
|
|
void __iomem *jz4740_timer_base;
|
|
EXPORT_SYMBOL_GPL(jz4740_timer_base);
|
|
|
|
void jz4740_timer_enable_watchdog(void)
|
|
{
|
|
writel(BIT(16), jz4740_timer_base + JZ_REG_TIMER_STOP_CLEAR);
|
|
}
|
|
EXPORT_SYMBOL_GPL(jz4740_timer_enable_watchdog);
|
|
|
|
void jz4740_timer_disable_watchdog(void)
|
|
{
|
|
writel(BIT(16), jz4740_timer_base + JZ_REG_TIMER_STOP_SET);
|
|
}
|
|
EXPORT_SYMBOL_GPL(jz4740_timer_disable_watchdog);
|
|
|
|
void __init jz4740_timer_init(void)
|
|
{
|
|
jz4740_timer_base = ioremap(JZ4740_TCU_BASE_ADDR, 0x100);
|
|
|
|
if (!jz4740_timer_base)
|
|
panic("Failed to ioremap timer registers");
|
|
|
|
/* Disable all timer clocks except for those used as system timers */
|
|
writel(0x000100fc, jz4740_timer_base + JZ_REG_TIMER_STOP_SET);
|
|
|
|
/* Timer irqs are unmasked by default, mask them */
|
|
writel(0x00ff00ff, jz4740_timer_base + JZ_REG_TIMER_MASK_SET);
|
|
}
|