diff options
Diffstat (limited to 'include/asm-ppc/ppc_sys.h')
-rw-r--r-- | include/asm-ppc/ppc_sys.h | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/include/asm-ppc/ppc_sys.h b/include/asm-ppc/ppc_sys.h new file mode 100644 index 000000000000..24b991c42769 --- /dev/null +++ b/include/asm-ppc/ppc_sys.h | |||
@@ -0,0 +1,69 @@ | |||
1 | /* | ||
2 | * include/asm-ppc/ppc_sys.h | ||
3 | * | ||
4 | * PPC system definitions and library functions | ||
5 | * | ||
6 | * Maintainer: Kumar Gala <kumar.gala@freescale.com> | ||
7 | * | ||
8 | * Copyright 2005 Freescale Semiconductor, Inc | ||
9 | * | ||
10 | * This program is free software; you can redistribute it and/or modify it | ||
11 | * under the terms of the GNU General Public License as published by the | ||
12 | * Free Software Foundation; either version 2 of the License, or (at your | ||
13 | * option) any later version. | ||
14 | */ | ||
15 | |||
16 | #ifdef __KERNEL__ | ||
17 | #ifndef __ASM_PPC_SYS_H | ||
18 | #define __ASM_PPC_SYS_H | ||
19 | |||
20 | #include <linux/init.h> | ||
21 | #include <linux/device.h> | ||
22 | #include <linux/types.h> | ||
23 | |||
24 | #if defined(CONFIG_83xx) | ||
25 | #include <asm/mpc83xx.h> | ||
26 | #elif defined(CONFIG_85xx) | ||
27 | #include <asm/mpc85xx.h> | ||
28 | #elif defined(CONFIG_PPC_MPC52xx) | ||
29 | #include <asm/mpc52xx.h> | ||
30 | #else | ||
31 | #error "need definition of ppc_sys_devices" | ||
32 | #endif | ||
33 | |||
34 | struct ppc_sys_spec { | ||
35 | /* PPC sys is matched via (ID & mask) == value, id could be | ||
36 | * PVR, SVR, IMMR, * etc. */ | ||
37 | u32 mask; | ||
38 | u32 value; | ||
39 | u32 num_devices; | ||
40 | char *ppc_sys_name; | ||
41 | enum ppc_sys_devices *device_list; | ||
42 | }; | ||
43 | |||
44 | /* describes all specific chips and which devices they have on them */ | ||
45 | extern struct ppc_sys_spec ppc_sys_specs[]; | ||
46 | extern struct ppc_sys_spec *cur_ppc_sys_spec; | ||
47 | |||
48 | /* determine which specific SOC we are */ | ||
49 | extern void identify_ppc_sys_by_id(u32 id) __init; | ||
50 | extern void identify_ppc_sys_by_name(char *name) __init; | ||
51 | |||
52 | /* describes all devices that may exist in a given family of processors */ | ||
53 | extern struct platform_device ppc_sys_platform_devices[]; | ||
54 | |||
55 | /* allow any platform_device fixup to occur before device is registered */ | ||
56 | extern int (*ppc_sys_device_fixup) (struct platform_device * pdev); | ||
57 | |||
58 | /* Update all memory resources by paddr, call before platform_device_register */ | ||
59 | extern void ppc_sys_fixup_mem_resource(struct platform_device *pdev, | ||
60 | phys_addr_t paddr) __init; | ||
61 | |||
62 | /* Get platform_data pointer out of platform device, call before platform_device_register */ | ||
63 | extern void *ppc_sys_get_pdata(enum ppc_sys_devices dev) __init; | ||
64 | |||
65 | /* remove a device from the system */ | ||
66 | extern void ppc_sys_device_remove(enum ppc_sys_devices dev); | ||
67 | |||
68 | #endif /* __ASM_PPC_SYS_H */ | ||
69 | #endif /* __KERNEL__ */ | ||