1/*
2 *  linux/arch/m68k/hp300/config.c
3 *
4 *  Copyright (C) 1998 Philip Blundell <philb@gnu.org>
5 *
6 *  This file contains the HP300-specific initialisation code.  It gets
7 *  called by setup.c.
8 */
9
10#include <linux/config.h>
11#include <linux/types.h>
12#include <linux/mm.h>
13#include <linux/kd.h>
14#include <linux/tty.h>
15#include <linux/console.h>
16#include <linux/interrupt.h>
17#include <linux/init.h>
18#include <asm/machdep.h>
19#include <asm/blinken.h>
20#include <asm/hwtest.h>                           /* hwreg_present() */
21
22#include "ints.h"
23#include "time.h"
24
25extern void hp300_reset(void);
26extern void (*hp300_default_handler[])(int, void *, struct pt_regs *);
27extern int hp300_get_irq_list(char *buf);
28
29#ifdef CONFIG_VT
30extern int hp300_keyb_init(void);
31static int hp300_kbdrate(struct kbd_repeat *k)
32{
33  return 0;
34}
35#endif
36
37#ifdef CONFIG_HEARTBEAT
38static void hp300_pulse(int x)
39{
40   if (x)
41      blinken_leds(0xfe);
42   else
43      blinken_leds(0xff);
44}
45#endif
46
47static void hp300_get_model(char *model)
48{
49  strcpy(model, "HP9000/300");
50}
51
52void __init config_hp300(void)
53{
54  mach_sched_init      = hp300_sched_init;
55#ifdef CONFIG_VT
56  mach_keyb_init       = hp300_keyb_init;
57  mach_kbdrate         = hp300_kbdrate;
58#endif
59  mach_init_IRQ        = hp300_init_IRQ;
60  mach_request_irq     = hp300_request_irq;
61  mach_free_irq        = hp300_free_irq;
62  mach_get_model       = hp300_get_model;
63  mach_get_irq_list    = hp300_get_irq_list;
64  mach_gettimeoffset   = hp300_gettimeoffset;
65  mach_default_handler = &hp300_default_handler;
66  mach_reset           = hp300_reset;
67#ifdef CONFIG_HEARTBEAT
68  mach_heartbeat       = hp300_pulse;
69#endif
70#ifdef CONFIG_DUMMY_CONSOLE
71  conswitchp	       = &dummy_con;
72#endif
73  mach_max_dma_address = 0xffffffff;
74}
75