| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | /* arch/arm/mach-s3c2410/cpu.h | 
 | 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. | 
 | 11 |  * | 
 | 12 |  * Modifications: | 
 | 13 |  *     24-Aug-2004 BJD  Start of generic S3C24XX support | 
 | 14 |  *     18-Oct-2004 BJD  Moved board struct into this file | 
 | 15 |  *     04-Jan-2005 BJD  New uart initialisation | 
 | 16 |  *     10-Jan-2005 BJD  Moved generic init here, specific to cpu headers | 
 | 17 |  *     14-Jan-2005 BJD  Added s3c24xx_init_clocks() call | 
 | 18 |  *     10-Mar-2005 LCVR Changed S3C2410_{VA,SZ} to S3C24XX_{VA,SZ} & IODESC_ENT | 
 | 19 |  *     14-Mar-2005 BJD  Updated for __iomem | 
| Lucas Correia Villa Real | 0367a8d | 2006-01-26 15:20:50 +0000 | [diff] [blame] | 20 |  *     15-Jan-2006 LCVR Updated S3C2410_PA_##x to new S3C24XX_PA_##x macro | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 21 | */ | 
 | 22 |  | 
 | 23 | /* todo - fix when rmk changes iodescs to use `void __iomem *` */ | 
 | 24 |  | 
| Lucas Correia Villa Real | 0367a8d | 2006-01-26 15:20:50 +0000 | [diff] [blame] | 25 | #define IODESC_ENT(x) { (unsigned long)S3C24XX_VA_##x, __phys_to_pfn(S3C24XX_PA_##x), S3C24XX_SZ_##x, MT_DEVICE } | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 26 |  | 
 | 27 | #ifndef MHZ | 
 | 28 | #define MHZ (1000*1000) | 
 | 29 | #endif | 
 | 30 |  | 
 | 31 | #define print_mhz(m) ((m) / MHZ), ((m / 1000) % 1000) | 
 | 32 |  | 
 | 33 | /* forward declaration */ | 
 | 34 | struct s3c2410_uartcfg; | 
 | 35 | struct map_desc; | 
 | 36 |  | 
 | 37 | /* core initialisation functions */ | 
 | 38 |  | 
 | 39 | extern void s3c24xx_init_irq(void); | 
 | 40 |  | 
 | 41 | extern void s3c24xx_init_io(struct map_desc *mach_desc, int size); | 
 | 42 |  | 
 | 43 | extern void s3c24xx_init_uarts(struct s3c2410_uartcfg *cfg, int no); | 
 | 44 |  | 
 | 45 | extern void s3c24xx_init_clocks(int xtal); | 
 | 46 |  | 
 | 47 | /* the board structure is used at first initialsation time | 
 | 48 |  * to get info such as the devices to register for this | 
 | 49 |  * board. This is done because platfrom_add_devices() cannot | 
 | 50 |  * be called from the map_io entry. | 
 | 51 | */ | 
 | 52 |  | 
 | 53 | struct s3c24xx_board { | 
 | 54 | 	struct platform_device  **devices; | 
 | 55 | 	unsigned int              devices_count; | 
 | 56 |  | 
 | 57 | 	struct clk		**clocks; | 
 | 58 | 	unsigned int		  clocks_count; | 
 | 59 | }; | 
 | 60 |  | 
 | 61 | extern void s3c24xx_set_board(struct s3c24xx_board *board); | 
 | 62 |  | 
 | 63 | /* timer for 2410/2440 */ | 
 | 64 |  | 
 | 65 | struct sys_timer; | 
 | 66 | extern struct sys_timer s3c24xx_timer; | 
 | 67 |  | 
 | 68 | /* system device classes */ | 
 | 69 |  | 
 | 70 | extern struct sysdev_class s3c2440_sysclass; |