1/*
2 * Setup kernel for a Sun3x machine
3 *
4 * (C) 1999 Thomas Bogendoerfer (tsbogend@alpha.franken.de)
5 *
6 * based on code from Oliver Jowett <oliver@jowett.manawatu.gen.nz>
7 */
8
9#include <linux/types.h>
10#include <linux/mm.h>
11#include <linux/console.h>
12#include <linux/init.h>
13
14#include <asm/system.h>
15#include <asm/machdep.h>
16#include <asm/irq.h>
17#include <asm/sun3xprom.h>
18#include <asm/sun3ints.h>
19#include <asm/setup.h>
20
21#include "time.h"
22
23volatile char *clock_va;
24extern volatile unsigned char *sun3_intreg;
25
26
27int __init sun3x_keyb_init(void)
28{
29	return 0;
30}
31
32int sun3x_kbdrate(struct kbd_repeat *r)
33{
34	return 0;
35}
36
37void sun3x_kbd_leds(unsigned int i)
38{
39
40}
41
42void sun3_leds(unsigned int i)
43{
44
45}
46
47/* should probably detect types of these eventually. */
48static void sun3x_get_model(char *model)
49{
50	sprintf(model, "Sun3x");
51}
52
53/*
54 *  Setup the sun3x configuration info
55 */
56void __init config_sun3x(void)
57{
58
59	sun3x_prom_init();
60
61	mach_get_irq_list	 = sun3_get_irq_list;
62	mach_max_dma_address = 0xffffffff; /* we can DMA anywhere, whee */
63
64#ifdef CONFIG_VT
65	mach_keyb_init       = sun3x_keyb_init;
66	mach_kbdrate         = sun3x_kbdrate;
67	mach_kbd_leds        = sun3x_kbd_leds;
68#endif
69
70	mach_default_handler = &sun3_default_handler;
71	mach_sched_init      = sun3x_sched_init;
72	mach_init_IRQ        = sun3_init_IRQ;
73	enable_irq           = sun3_enable_irq;
74	disable_irq          = sun3_disable_irq;
75	mach_request_irq     = sun3_request_irq;
76	mach_free_irq        = sun3_free_irq;
77	mach_process_int     = sun3_process_int;
78
79	mach_gettimeoffset   = sun3x_gettimeoffset;
80	mach_reset           = sun3x_reboot;
81
82	mach_gettod          = sun3x_gettod;
83	mach_hwclk           = sun3x_hwclk;
84	mach_get_model       = sun3x_get_model;
85
86	sun3_intreg = (unsigned char *)SUN3X_INTREG;
87
88	/* only the serial console is known to work anyway... */
89
90}
91
92