Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6
[linux-2.6] / arch / m68knommu / platform / 523x / config.c
1 /***************************************************************************/
2
3 /*
4  *      linux/arch/m68knommu/platform/523x/config.c
5  *
6  *      Sub-architcture dependant initialization code for the Freescale
7  *      523x CPUs.
8  *
9  *      Copyright (C) 1999-2005, Greg Ungerer (gerg@snapgear.com)
10  *      Copyright (C) 2001-2003, SnapGear Inc. (www.snapgear.com)
11  */
12
13 /***************************************************************************/
14
15 #include <linux/kernel.h>
16 #include <linux/sched.h>
17 #include <linux/param.h>
18 #include <linux/init.h>
19 #include <linux/interrupt.h>
20 #include <asm/dma.h>
21 #include <asm/traps.h>
22 #include <asm/machdep.h>
23 #include <asm/coldfire.h>
24 #include <asm/mcfsim.h>
25 #include <asm/mcfdma.h>
26
27 /***************************************************************************/
28
29 void coldfire_pit_tick(void);
30 void coldfire_pit_init(irqreturn_t (*handler)(int, void *, struct pt_regs *));
31 unsigned long coldfire_pit_offset(void);
32 void coldfire_trap_init(void);
33 void coldfire_reset(void);
34
35 /***************************************************************************/
36
37 /*
38  *      DMA channel base address table.
39  */
40 unsigned int   dma_base_addr[MAX_M68K_DMA_CHANNELS] = {
41         MCF_MBAR + MCFDMA_BASE0,
42 };
43
44 unsigned int dma_device_address[MAX_M68K_DMA_CHANNELS];
45
46 /***************************************************************************/
47
48 void mcf_disableall(void)
49 {
50         *((volatile unsigned long *) (MCF_IPSBAR + MCFICM_INTC0 + MCFINTC_IMRH)) = 0xffffffff;
51         *((volatile unsigned long *) (MCF_IPSBAR + MCFICM_INTC0 + MCFINTC_IMRL)) = 0xffffffff;
52 }
53
54 /***************************************************************************/
55
56 void mcf_autovector(unsigned int vec)
57 {
58         /* Everything is auto-vectored on the 5272 */
59 }
60
61 /***************************************************************************/
62
63 void config_BSP(char *commandp, int size)
64 {
65         mcf_disableall();
66
67 #ifdef CONFIG_BOOTPARAM
68         strncpy(commandp, CONFIG_BOOTPARAM_STRING, size);
69         commandp[size-1] = 0;
70 #else
71         memset(commandp, 0, size);
72 #endif
73
74         mach_sched_init = coldfire_pit_init;
75         mach_tick = coldfire_pit_tick;
76         mach_gettimeoffset = coldfire_pit_offset;
77         mach_trap_init = coldfire_trap_init;
78         mach_reset = coldfire_reset;
79 }
80
81 /***************************************************************************/