]>
Commit | Line | Data |
---|---|---|
4c75a6f4 BH |
1 | /* |
2 | * (c) Copyright 2006 Benjamin Herrenschmidt, IBM Corp. | |
3 | * <[email protected]> | |
4 | * | |
5 | * This program is free software; you can redistribute it and/or modify | |
6 | * it under the terms of the GNU General Public License as published by | |
7 | * the Free Software Foundation; either version 2 of the License, or | |
8 | * (at your option) any later version. | |
9 | * | |
10 | * This program is distributed in the hope that it will be useful, | |
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See | |
13 | * the GNU General Public License for more details. | |
14 | * | |
15 | * You should have received a copy of the GNU General Public License | |
16 | * along with this program; if not, write to the Free Software | |
17 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 | */ | |
19 | ||
20 | #ifndef _ASM_POWERPC_DCR_H | |
21 | #define _ASM_POWERPC_DCR_H | |
22 | #ifdef __KERNEL__ | |
b786af11 | 23 | #ifndef __ASSEMBLY__ |
45d8e7aa | 24 | #ifdef CONFIG_PPC_DCR |
4c75a6f4 BH |
25 | |
26 | #ifdef CONFIG_PPC_DCR_NATIVE | |
27 | #include <asm/dcr-native.h> | |
b786af11 SN |
28 | #endif |
29 | ||
30 | #ifdef CONFIG_PPC_DCR_MMIO | |
4c75a6f4 BH |
31 | #include <asm/dcr-mmio.h> |
32 | #endif | |
33 | ||
b786af11 SN |
34 | |
35 | /* Indirection layer for providing both NATIVE and MMIO support. */ | |
36 | ||
37 | #if defined(CONFIG_PPC_DCR_NATIVE) && defined(CONFIG_PPC_DCR_MMIO) | |
38 | ||
39 | #include <asm/dcr-generic.h> | |
40 | ||
41 | #define DCR_MAP_OK(host) dcr_map_ok_generic(host) | |
42 | #define dcr_map(dev, dcr_n, dcr_c) dcr_map_generic(dev, dcr_n, dcr_c) | |
43 | #define dcr_unmap(host, dcr_c) dcr_unmap_generic(host, dcr_c) | |
44 | #define dcr_read(host, dcr_n) dcr_read_generic(host, dcr_n) | |
45 | #define dcr_write(host, dcr_n, value) dcr_write_generic(host, dcr_n, value) | |
46 | ||
47 | #else | |
48 | ||
49 | #ifdef CONFIG_PPC_DCR_NATIVE | |
50 | typedef dcr_host_native_t dcr_host_t; | |
51 | #define DCR_MAP_OK(host) dcr_map_ok_native(host) | |
52 | #define dcr_map(dev, dcr_n, dcr_c) dcr_map_native(dev, dcr_n, dcr_c) | |
53 | #define dcr_unmap(host, dcr_c) dcr_unmap_native(host, dcr_c) | |
54 | #define dcr_read(host, dcr_n) dcr_read_native(host, dcr_n) | |
55 | #define dcr_write(host, dcr_n, value) dcr_write_native(host, dcr_n, value) | |
56 | #else | |
57 | typedef dcr_host_mmio_t dcr_host_t; | |
58 | #define DCR_MAP_OK(host) dcr_map_ok_mmio(host) | |
59 | #define dcr_map(dev, dcr_n, dcr_c) dcr_map_mmio(dev, dcr_n, dcr_c) | |
60 | #define dcr_unmap(host, dcr_c) dcr_unmap_mmio(host, dcr_c) | |
61 | #define dcr_read(host, dcr_n) dcr_read_mmio(host, dcr_n) | |
62 | #define dcr_write(host, dcr_n, value) dcr_write_mmio(host, dcr_n, value) | |
63 | #endif | |
64 | ||
65 | #endif /* defined(CONFIG_PPC_DCR_NATIVE) && defined(CONFIG_PPC_DCR_MMIO) */ | |
66 | ||
4c75a6f4 BH |
67 | /* |
68 | * On CONFIG_PPC_MERGE, we have additional helpers to read the DCR | |
69 | * base from the device-tree | |
70 | */ | |
71 | #ifdef CONFIG_PPC_MERGE | |
a2c70211 | 72 | struct device_node; |
4c75a6f4 BH |
73 | extern unsigned int dcr_resource_start(struct device_node *np, |
74 | unsigned int index); | |
75 | extern unsigned int dcr_resource_len(struct device_node *np, | |
76 | unsigned int index); | |
77 | #endif /* CONFIG_PPC_MERGE */ | |
78 | ||
45d8e7aa | 79 | #endif /* CONFIG_PPC_DCR */ |
b786af11 | 80 | #endif /* __ASSEMBLY__ */ |
4c75a6f4 BH |
81 | #endif /* __KERNEL__ */ |
82 | #endif /* _ASM_POWERPC_DCR_H */ |