Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1097c6ac authored by Yoichi Yuasa's avatar Yoichi Yuasa Committed by Ralf Baechle
Browse files

[MIPS] time: Add GT641xx timer0 clockevent driver



And make use of it for Cobalt.  A few others such as the Malta could make
use of it as well.

Signed-off-by: default avatarYoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>
Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent d0453365
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -66,6 +66,7 @@ config BCM47XX
config MIPS_COBALT
	bool "Cobalt Server"
	select CEVT_R4K
	select CEVT_GT641XX
	select DMA_NONCOHERENT
	select HW_HAS_PCI
	select I8253
@@ -729,6 +730,9 @@ config ARCH_MAY_HAVE_PC_FDC
config BOOT_RAW
	bool

config CEVT_GT641XX
	bool

config CEVT_R4K
	bool

+1 −1
Original line number Diff line number Diff line
@@ -2,7 +2,7 @@
# Makefile for the Cobalt micro systems family specific parts of the kernel
#

obj-y := buttons.o irq.o led.o reset.o rtc.o serial.o setup.o
obj-y := buttons.o irq.o led.o reset.o rtc.o serial.o setup.o time.o

obj-$(CONFIG_PCI)		+= pci.o
obj-$(CONFIG_EARLY_PRINTK)	+= console.o
+3 −21
Original line number Diff line number Diff line
@@ -9,19 +9,17 @@
 * Copyright (C) 2001, 2002, 2003 by Liam Davies (ldavies@agile.tv)
 *
 */
#include <linux/interrupt.h>
#include <linux/init.h>
#include <linux/interrupt.h>
#include <linux/io.h>
#include <linux/ioport.h>
#include <linux/pm.h>

#include <asm/bootinfo.h>
#include <asm/time.h>
#include <asm/i8253.h>
#include <asm/io.h>
#include <asm/reboot.h>
#include <asm/gt64120.h>

#include <cobalt.h>
#include <irq.h>

extern void cobalt_machine_restart(char *command);
extern void cobalt_machine_halt(void);
@@ -41,17 +39,6 @@ const char *get_system_type(void)
	return "MIPS Cobalt";
}

void __init plat_timer_setup(struct irqaction *irq)
{
	/* Load timer value for HZ (TCLK is 50MHz) */
	GT_WRITE(GT_TC0_OFS, 50*1000*1000 / HZ);

	/* Enable timer0 */
	GT_WRITE(GT_TC_CONTROL_OFS, GT_TC_CONTROL_ENTC0_MSK | GT_TC_CONTROL_SELTC0_MSK);

	setup_irq(GT641XX_TIMER0_IRQ, irq);
}

/*
 * Cobalt doesn't have PS/2 keyboard/mouse interfaces,
 * keyboard conntroller is never used.
@@ -84,11 +71,6 @@ static struct resource cobalt_reserved_resources[] = {
	},
};

void __init plat_time_init(void)
{
	setup_pit_timer();
}

void __init plat_mem_setup(void)
{
	int i;
+35 −0
Original line number Diff line number Diff line
/*
 *  Cobalt time initialization.
 *
 *  Copyright (C) 2007  Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>
 *
 *  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.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 */
#include <linux/init.h>

#include <asm/gt64120.h>
#include <asm/i8253.h>
#include <asm/time.h>

#define GT641XX_BASE_CLOCK	50000000	/* 50MHz */

void __init plat_time_init(void)
{
	setup_pit_timer();

	gt641xx_set_base_clock(GT641XX_BASE_CLOCK);

	mips_timer_state = gt641xx_timer0_state;
}
+1 −0
Original line number Diff line number Diff line
@@ -9,6 +9,7 @@ obj-y += cpu-probe.o branch.o entry.o genex.o irq.o process.o \
		   time.o topology.o traps.o unaligned.o

obj-$(CONFIG_CEVT_R4K)		+= cevt-r4k.o
obj-$(CONFIG_CEVT_GT641XX)	+= cevt-gt641xx.o

binfmt_irix-objs	:= irixelf.o irixinv.o irixioctl.o irixsig.o	\
			   irix5sys.o sysirix.o
Loading