[ARM] S3C64XX: Add VIC0 and VIC1 sourced interripts
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / arch / arm / plat-s3c / include / plat / cpu.h
CommitLineData
a503059c 1/* linux/arch/arm/plat-s3c/include/plat/cpu.h
1da177e4
LT
2 *
3 * Copyright (c) 2004-2005 Simtec Electronics
4 * Ben Dooks <ben@simtec.co.uk>
5 *
6 * Header file for S3C24XX CPU support
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License version 2 as
10 * published by the Free Software Foundation.
1da177e4
LT
11*/
12
13/* todo - fix when rmk changes iodescs to use `void __iomem *` */
14
0367a8d3 15#define IODESC_ENT(x) { (unsigned long)S3C24XX_VA_##x, __phys_to_pfn(S3C24XX_PA_##x), S3C24XX_SZ_##x, MT_DEVICE }
1da177e4
LT
16
17#ifndef MHZ
18#define MHZ (1000*1000)
19#endif
20
a503059c 21#define print_mhz(m) ((m) / MHZ), (((m) / 1000) % 1000)
1da177e4
LT
22
23/* forward declaration */
66a9b49a
BD
24struct s3c24xx_uart_resources;
25struct platform_device;
1da177e4
LT
26struct s3c2410_uartcfg;
27struct map_desc;
28
74b265d4
BD
29/* per-cpu initialisation function table. */
30
31struct cpu_table {
32 unsigned long idcode;
33 unsigned long idmask;
34 void (*map_io)(void);
35 void (*init_uarts)(struct s3c2410_uartcfg *cfg, int no);
36 void (*init_clocks)(int xtal);
37 int (*init)(void);
38 const char *name;
39};
40
41extern void s3c_init_cpu(unsigned long idcode,
42 struct cpu_table *cpus, unsigned int cputab_size);
43
1da177e4
LT
44/* core initialisation functions */
45
46extern void s3c24xx_init_irq(void);
d9b79fb5 47extern void s3c64xx_init_irq(u32 vic0, u32 vic1);
1da177e4
LT
48
49extern void s3c24xx_init_io(struct map_desc *mach_desc, int size);
50
51extern void s3c24xx_init_uarts(struct s3c2410_uartcfg *cfg, int no);
52
53extern void s3c24xx_init_clocks(int xtal);
54
66a9b49a
BD
55extern void s3c24xx_init_uartdevs(char *name,
56 struct s3c24xx_uart_resources *res,
57 struct s3c2410_uartcfg *cfg, int no);
58
1da177e4
LT
59/* timer for 2410/2440 */
60
61struct sys_timer;
62extern struct sys_timer s3c24xx_timer;
63
64/* system device classes */
65
a341305e 66extern struct sysdev_class s3c2410_sysclass;
68d9ab39 67extern struct sysdev_class s3c2412_sysclass;
1da177e4 68extern struct sysdev_class s3c2440_sysclass;
96ce2385 69extern struct sysdev_class s3c2442_sysclass;
e4d06e39 70extern struct sysdev_class s3c2443_sysclass;