86 lines
1.9 KiB
C
86 lines
1.9 KiB
C
|
/*
|
||
|
* linux/arch/sh/boards/cat68701/setup.c
|
||
|
*
|
||
|
* Copyright (C) 2000 Niibe Yutaka
|
||
|
* 2001 Yutaro Ebihara
|
||
|
*
|
||
|
* Setup routines for A-ONE Corp CAT-68701 SH7708 Board
|
||
|
*
|
||
|
* This file is subject to the terms and conditions of the GNU General Public
|
||
|
* License. See the file "COPYING" in the main directory of this archive
|
||
|
* for more details.
|
||
|
*
|
||
|
*/
|
||
|
|
||
|
#include <asm/io.h>
|
||
|
#include <asm/machvec.h>
|
||
|
#include <asm/mach/io.h>
|
||
|
#include <linux/module.h>
|
||
|
#include <linux/init.h>
|
||
|
#include <linux/sched.h>
|
||
|
|
||
|
const char *get_system_type(void)
|
||
|
{
|
||
|
return "CAT-68701";
|
||
|
}
|
||
|
|
||
|
#ifdef CONFIG_HEARTBEAT
|
||
|
void heartbeat_cat68701()
|
||
|
{
|
||
|
static unsigned int cnt = 0, period = 0 , bit = 0;
|
||
|
cnt += 1;
|
||
|
if (cnt < period) {
|
||
|
return;
|
||
|
}
|
||
|
cnt = 0;
|
||
|
|
||
|
/* Go through the points (roughly!):
|
||
|
* f(0)=10, f(1)=16, f(2)=20, f(5)=35,f(inf)->110
|
||
|
*/
|
||
|
period = 110 - ( (300<<FSHIFT)/
|
||
|
((avenrun[0]/5) + (3<<FSHIFT)) );
|
||
|
|
||
|
if(bit){ bit=0; }else{ bit=1; }
|
||
|
outw(bit<<15,0x3fe);
|
||
|
}
|
||
|
#endif /* CONFIG_HEARTBEAT */
|
||
|
|
||
|
unsigned long cat68701_isa_port2addr(unsigned long offset)
|
||
|
{
|
||
|
/* CompactFlash (IDE) */
|
||
|
if (((offset >= 0x1f0) && (offset <= 0x1f7)) || (offset==0x3f6))
|
||
|
return 0xba000000 + offset;
|
||
|
|
||
|
/* INPUT PORT */
|
||
|
if ((offset >= 0x3fc) && (offset <= 0x3fd))
|
||
|
return 0xb4007000 + offset;
|
||
|
|
||
|
/* OUTPUT PORT */
|
||
|
if ((offset >= 0x3fe) && (offset <= 0x3ff))
|
||
|
return 0xb4007400 + offset;
|
||
|
|
||
|
return offset + 0xb4000000; /* other I/O (EREA 5)*/
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
* The Machine Vector
|
||
|
*/
|
||
|
|
||
|
struct sh_machine_vector mv_cat68701 __initmv = {
|
||
|
.mv_nr_irqs = 32,
|
||
|
.mv_isa_port2addr = cat68701_isa_port2addr,
|
||
|
.mv_irq_demux = cat68701_irq_demux,
|
||
|
|
||
|
.mv_init_irq = init_cat68701_IRQ,
|
||
|
#ifdef CONFIG_HEARTBEAT
|
||
|
.mv_heartbeat = heartbeat_cat68701,
|
||
|
#endif
|
||
|
};
|
||
|
ALIAS_MV(cat68701)
|
||
|
|
||
|
int __init platform_setup(void)
|
||
|
{
|
||
|
/* dummy read erea5 (CS8900A) */
|
||
|
}
|
||
|
|