Merge master.kernel.org:/pub/scm/linux/kernel/git/bart/ide-2.6
[linux-2.6] / include / asm-powerpc / fs_pd.h
1 /*
2  * Platform information definitions.
3  *
4  * 2006 (c) MontaVista Software, Inc.
5  * Vitaly Bordug <vbordug@ru.mvista.com>
6  *
7  * This file is licensed under the terms of the GNU General Public License
8  * version 2. This program is licensed "as is" without any warranty of any
9  * kind, whether express or implied.
10  */
11
12 #ifndef FS_PD_H
13 #define FS_PD_H
14 #include <sysdev/fsl_soc.h>
15 #include <asm/time.h>
16
17 #ifdef CONFIG_CPM2
18 #include <asm/cpm2.h>
19
20 #if defined(CONFIG_8260)
21 #include <asm/mpc8260.h>
22 #elif defined(CONFIG_85xx)
23 #include <asm/mpc85xx.h>
24 #endif
25
26 #define cpm2_map(member)                                                \
27 ({                                                                      \
28         u32 offset = offsetof(cpm2_map_t, member);                      \
29         void *addr = ioremap (CPM_MAP_ADDR + offset,                    \
30                               sizeof( ((cpm2_map_t*)0)->member));       \
31         addr;                                                           \
32 })
33
34 #define cpm2_map_size(member, size)                                     \
35 ({                                                                      \
36         u32 offset = offsetof(cpm2_map_t, member);                      \
37         void *addr = ioremap (CPM_MAP_ADDR + offset, size);             \
38         addr;                                                           \
39 })
40
41 #define cpm2_unmap(addr)        iounmap(addr)
42 #endif
43
44 #ifdef CONFIG_8xx
45 #include <asm/8xx_immap.h>
46 #include <asm/mpc8xx.h>
47
48 #define immr_map(member)                                                \
49 ({                                                                      \
50         u32 offset = offsetof(immap_t, member);                         \
51         void *addr = ioremap (IMAP_ADDR + offset,                       \
52                               sizeof( ((immap_t*)0)->member));          \
53         addr;                                                           \
54 })
55
56 #define immr_map_size(member, size)                                     \
57 ({                                                                      \
58         u32 offset = offsetof(immap_t, member);                         \
59         void *addr = ioremap (IMAP_ADDR + offset, size);                \
60         addr;                                                           \
61 })
62
63 #define immr_unmap(addr)                iounmap(addr)
64 #endif
65
66 static inline int uart_baudrate(void)
67 {
68         return get_baudrate();
69 }
70
71 static inline int uart_clock(void)
72 {
73         return ppc_proc_freq;
74 }
75
76 #endif