2005-04-17 06:20:36 +08:00
|
|
|
/*
|
|
|
|
* linux/arch/arm/mach-footbridge/cats-hw.c
|
|
|
|
*
|
|
|
|
* CATS machine fixup
|
|
|
|
*
|
|
|
|
* Copyright (C) 1998, 1999 Russell King, Phil Blundell
|
|
|
|
*/
|
|
|
|
#include <linux/ioport.h>
|
|
|
|
#include <linux/kernel.h>
|
|
|
|
#include <linux/init.h>
|
2006-07-14 23:23:33 +08:00
|
|
|
#include <linux/screen_info.h>
|
2008-09-06 19:10:45 +08:00
|
|
|
#include <linux/io.h>
|
2008-12-06 16:25:16 +08:00
|
|
|
#include <linux/spinlock.h>
|
2005-04-17 06:20:36 +08:00
|
|
|
|
|
|
|
#include <asm/hardware/dec21285.h>
|
|
|
|
#include <asm/mach-types.h>
|
|
|
|
#include <asm/setup.h>
|
|
|
|
|
|
|
|
#include <asm/mach/arch.h>
|
|
|
|
|
|
|
|
#include "common.h"
|
|
|
|
|
|
|
|
#define CFG_PORT 0x370
|
|
|
|
#define INDEX_PORT (CFG_PORT)
|
|
|
|
#define DATA_PORT (CFG_PORT + 1)
|
|
|
|
|
|
|
|
static int __init cats_hw_init(void)
|
|
|
|
{
|
|
|
|
if (machine_is_cats()) {
|
|
|
|
/* Set Aladdin to CONFIGURE mode */
|
|
|
|
outb(0x51, CFG_PORT);
|
|
|
|
outb(0x23, CFG_PORT);
|
|
|
|
|
|
|
|
/* Select logical device 3 */
|
|
|
|
outb(0x07, INDEX_PORT);
|
|
|
|
outb(0x03, DATA_PORT);
|
|
|
|
|
|
|
|
/* Set parallel port to DMA channel 3, ECP+EPP1.9,
|
|
|
|
enable EPP timeout */
|
|
|
|
outb(0x74, INDEX_PORT);
|
|
|
|
outb(0x03, DATA_PORT);
|
|
|
|
|
|
|
|
outb(0xf0, INDEX_PORT);
|
|
|
|
outb(0x0f, DATA_PORT);
|
|
|
|
|
|
|
|
outb(0xf1, INDEX_PORT);
|
|
|
|
outb(0x07, DATA_PORT);
|
|
|
|
|
|
|
|
/* Select logical device 4 */
|
|
|
|
outb(0x07, INDEX_PORT);
|
|
|
|
outb(0x04, DATA_PORT);
|
|
|
|
|
|
|
|
/* UART1 high speed mode */
|
|
|
|
outb(0xf0, INDEX_PORT);
|
|
|
|
outb(0x02, DATA_PORT);
|
|
|
|
|
|
|
|
/* Select logical device 5 */
|
|
|
|
outb(0x07, INDEX_PORT);
|
|
|
|
outb(0x05, DATA_PORT);
|
|
|
|
|
|
|
|
/* UART2 high speed mode */
|
|
|
|
outb(0xf0, INDEX_PORT);
|
|
|
|
outb(0x02, DATA_PORT);
|
|
|
|
|
|
|
|
/* Set Aladdin to RUN mode */
|
|
|
|
outb(0xbb, CFG_PORT);
|
|
|
|
}
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
__initcall(cats_hw_init);
|
|
|
|
|
|
|
|
/*
|
|
|
|
* CATS uses soft-reboot by default, since
|
|
|
|
* hard reboots fail on early boards.
|
|
|
|
*/
|
|
|
|
static void __init
|
ARM: platform fixups: remove mdesc argument to fixup function
Get rid of the mdesc pointer in the fixup function call. No one uses
the mdesc pointer, it shouldn't be modified anyway, and we can't wrap
it, so let's remove it.
Platform files found by:
$ regexp=$(git grep -h '\.fixup.*=' arch/arm |
sed 's!.*= *\([^,]*\),* *!\1!' | sort -u |
tr '\n' '|' | sed 's,|$,,;s,|,\\|,g')
$ git grep $regexp arch/arm
Acked-by: Nicolas Pitre <nicolas.pitre@linaro.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2010-12-20 18:37:50 +08:00
|
|
|
fixup_cats(struct tag *tags, char **cmdline, struct meminfo *mi)
|
2005-04-17 06:20:36 +08:00
|
|
|
{
|
2007-10-17 13:36:04 +08:00
|
|
|
screen_info.orig_video_lines = 25;
|
|
|
|
screen_info.orig_video_points = 16;
|
|
|
|
screen_info.orig_y = 24;
|
2005-04-17 06:20:36 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
MACHINE_START(CATS, "Chalice-CATS")
|
2005-07-04 00:38:58 +08:00
|
|
|
/* Maintainer: Philip Blundell */
|
2011-07-06 10:38:11 +08:00
|
|
|
.atag_offset = 0x100,
|
2011-11-01 22:27:33 +08:00
|
|
|
.restart_mode = 's',
|
2005-07-04 00:38:58 +08:00
|
|
|
.fixup = fixup_cats,
|
|
|
|
.map_io = footbridge_map_io,
|
|
|
|
.init_irq = footbridge_init_irq,
|
2012-11-09 03:40:59 +08:00
|
|
|
.init_time = isa_timer_init,
|
2011-11-04 03:47:54 +08:00
|
|
|
.restart = footbridge_restart,
|
2005-04-17 06:20:36 +08:00
|
|
|
MACHINE_END
|