Commit | Line | Data |
---|---|---|
651c74c7 SB |
1 | /* |
2 | * arch/arm/mach-kirkwood/common.h | |
3 | * | |
4 | * Core functions for Marvell Kirkwood SoCs | |
5 | * | |
6 | * This file is licensed under the terms of the GNU General Public | |
7 | * License version 2. This program is licensed "as is" without any | |
8 | * warranty of any kind, whether express or implied. | |
9 | */ | |
10 | ||
11 | #ifndef __ARCH_KIRKWOOD_COMMON_H | |
12 | #define __ARCH_KIRKWOOD_COMMON_H | |
13 | ||
7b6d864b RH |
14 | #include <linux/reboot.h> |
15 | ||
dcf1cece | 16 | struct dsa_platform_data; |
651c74c7 SB |
17 | struct mv643xx_eth_platform_data; |
18 | struct mv_sata_platform_data; | |
8235ee00 | 19 | struct mvsdio_platform_data; |
fb7b2d3f | 20 | struct mtd_partition; |
010937ec | 21 | struct mtd_info; |
49106c72 | 22 | struct kirkwood_asoc_platform_data; |
651c74c7 | 23 | |
ffd58bd2 SB |
24 | #define KW_PCIE0 (1 << 0) |
25 | #define KW_PCIE1 (1 << 1) | |
26 | ||
651c74c7 SB |
27 | /* |
28 | * Basic Kirkwood init functions used early by machine-setup. | |
29 | */ | |
30 | void kirkwood_map_io(void); | |
31 | void kirkwood_init(void); | |
4ee1f6b5 | 32 | void kirkwood_init_early(void); |
651c74c7 SB |
33 | void kirkwood_init_irq(void); |
34 | ||
5cc0673a | 35 | void kirkwood_setup_wins(void); |
651c74c7 | 36 | |
0e0cdd37 | 37 | void kirkwood_enable_pcie(void); |
b2b3dc2f RS |
38 | void kirkwood_pcie_id(u32 *dev, u32 *rev); |
39 | ||
651c74c7 SB |
40 | void kirkwood_ehci_init(void); |
41 | void kirkwood_ge00_init(struct mv643xx_eth_platform_data *eth_data); | |
d15fb9ef | 42 | void kirkwood_ge01_init(struct mv643xx_eth_platform_data *eth_data); |
dcf1cece | 43 | void kirkwood_ge00_switch_init(struct dsa_platform_data *d, int irq); |
ffd58bd2 | 44 | void kirkwood_pcie_init(unsigned int portmask); |
651c74c7 | 45 | void kirkwood_sata_init(struct mv_sata_platform_data *sata_data); |
8235ee00 | 46 | void kirkwood_sdio_init(struct mvsdio_platform_data *mvsdio_data); |
18365d18 | 47 | void kirkwood_spi_init(void); |
6574e001 | 48 | void kirkwood_i2c_init(void); |
651c74c7 SB |
49 | void kirkwood_uart0_init(void); |
50 | void kirkwood_uart1_init(void); | |
fb7b2d3f | 51 | void kirkwood_nand_init(struct mtd_partition *parts, int nr_parts, int delay); |
98adf932 AL |
52 | void kirkwood_nand_init_rnb(struct mtd_partition *parts, int nr_parts, |
53 | int (*dev_ready)(struct mtd_info *)); | |
49106c72 | 54 | void kirkwood_audio_init(void); |
9cfc94eb | 55 | void kirkwood_cpuidle_init(void); |
0e2ee0c0 AL |
56 | void kirkwood_cpufreq_init(void); |
57 | ||
7b6d864b | 58 | void kirkwood_restart(enum reboot_mode, const char *); |
2f129bf4 | 59 | void kirkwood_clk_init(void); |
651c74c7 | 60 | |
6fa6b878 JC |
61 | /* board init functions for boards not fully converted to fdt */ |
62 | #ifdef CONFIG_MACH_DREAMPLUG_DT | |
63 | void dreamplug_init(void); | |
64 | #else | |
65 | static inline void dreamplug_init(void) {}; | |
66 | #endif | |
9b47a4fb WT |
67 | #ifdef CONFIG_MACH_GURUPLUG_DT |
68 | void guruplug_dt_init(void); | |
69 | #else | |
70 | static inline void guruplug_dt_init(void) {}; | |
71 | #endif | |
193da78b SB |
72 | #ifdef CONFIG_MACH_SHEEVAPLUG_DT |
73 | void sheevaplug_dt_init(void); | |
74 | #else | |
75 | static inline void sheevaplug_dt_init(void) {}; | |
76 | #endif | |
9eb61f47 AL |
77 | #ifdef CONFIG_MACH_TS219_DT |
78 | void qnap_dt_ts219_init(void); | |
79 | #else | |
80 | static inline void qnap_dt_ts219_init(void) {}; | |
81 | #endif | |
6fa6b878 | 82 | |
9007d100 JL |
83 | #ifdef CONFIG_MACH_DLINK_KIRKWOOD_DT |
84 | void dnskw_init(void); | |
85 | #else | |
86 | static inline void dnskw_init(void) {}; | |
87 | #endif | |
88 | ||
c06cd9bf APR |
89 | #ifdef CONFIG_MACH_ICONNECT_DT |
90 | void iconnect_init(void); | |
91 | #else | |
92 | static inline void iconnect_init(void) {}; | |
93 | #endif | |
94 | ||
f5520363 SB |
95 | #ifdef CONFIG_MACH_IB62X0_DT |
96 | void ib62x0_init(void); | |
97 | #else | |
98 | static inline void ib62x0_init(void) {}; | |
99 | #endif | |
100 | ||
dd88db78 SH |
101 | #ifdef CONFIG_MACH_DOCKSTAR_DT |
102 | void dockstar_dt_init(void); | |
103 | #else | |
104 | static inline void dockstar_dt_init(void) {}; | |
105 | #endif | |
106 | ||
5136b2aa JC |
107 | #ifdef CONFIG_MACH_GOFLEXNET_DT |
108 | void goflexnet_init(void); | |
109 | #else | |
110 | static inline void goflexnet_init(void) {}; | |
111 | #endif | |
112 | ||
4aff38a3 MW |
113 | #ifdef CONFIG_MACH_LSXL_DT |
114 | void lsxl_init(void); | |
115 | #else | |
116 | static inline void lsxl_init(void) {}; | |
117 | #endif | |
118 | ||
4f48b7fc AB |
119 | #ifdef CONFIG_MACH_IOMEGA_IX2_200_DT |
120 | void iomega_ix2_200_init(void); | |
121 | #else | |
122 | static inline void iomega_ix2_200_init(void) {}; | |
123 | #endif | |
124 | ||
0510c8a0 VL |
125 | #ifdef CONFIG_MACH_KM_KIRKWOOD_DT |
126 | void km_kirkwood_init(void); | |
127 | #else | |
128 | static inline void km_kirkwood_init(void) {}; | |
129 | #endif | |
130 | ||
0d0632f5 TP |
131 | #ifdef CONFIG_MACH_DB88F628X_BP_DT |
132 | void db88f628x_init(void); | |
133 | #else | |
134 | static inline void db88f628x_init(void) {}; | |
135 | #endif | |
136 | ||
5492a110 SP |
137 | #ifdef CONFIG_MACH_MPLCEC4_DT |
138 | void mplcec4_init(void); | |
139 | #else | |
140 | static inline void mplcec4_init(void) {}; | |
141 | #endif | |
142 | ||
ecee1e47 SG |
143 | #if defined(CONFIG_MACH_INETSPACE_V2_DT) || \ |
144 | defined(CONFIG_MACH_NETSPACE_V2_DT) || \ | |
ca7d9452 | 145 | defined(CONFIG_MACH_NETSPACE_MAX_V2_DT) || \ |
7f9871d9 SG |
146 | defined(CONFIG_MACH_NETSPACE_LITE_V2_DT) || \ |
147 | defined(CONFIG_MACH_NETSPACE_MINI_V2_DT) | |
ecee1e47 SG |
148 | void ns2_init(void); |
149 | #else | |
150 | static inline void ns2_init(void) {}; | |
151 | #endif | |
152 | ||
f17073a3 NI |
153 | #ifdef CONFIG_MACH_OPENBLOCKS_A6_DT |
154 | void openblocks_a6_init(void); | |
155 | #else | |
156 | static inline void openblocks_a6_init(void) {}; | |
157 | #endif | |
158 | ||
f236f5aa AE |
159 | #ifdef CONFIG_MACH_READYNAS_DT |
160 | void netgear_readynas_init(void); | |
161 | #else | |
162 | static inline void netgear_readynas_init(void) {}; | |
163 | #endif | |
164 | ||
767fc1ea JC |
165 | #ifdef CONFIG_MACH_TOPKICK_DT |
166 | void usi_topkick_init(void); | |
167 | #else | |
168 | static inline void usi_topkick_init(void) {}; | |
169 | #endif | |
170 | ||
98d4f2ac SG |
171 | #ifdef CONFIG_MACH_CLOUDBOX_DT |
172 | void cloudbox_init(void); | |
173 | #else | |
174 | static inline void cloudbox_init(void) {}; | |
175 | #endif | |
176 | ||
6fa6b878 | 177 | /* early init functions not converted to fdt yet */ |
2b45e05f JC |
178 | char *kirkwood_id(void); |
179 | void kirkwood_l2_init(void); | |
2b45e05f JC |
180 | void kirkwood_wdt_init(void); |
181 | void kirkwood_xor0_init(void); | |
182 | void kirkwood_xor1_init(void); | |
183 | void kirkwood_crypto_init(void); | |
184 | ||
586dcf27 | 185 | extern int kirkwood_tclk; |
6bb27d73 | 186 | extern void kirkwood_timer_init(void); |
651c74c7 | 187 | |
fb7b2d3f | 188 | #define ARRAY_AND_SIZE(x) (x), ARRAY_SIZE(x) |
651c74c7 SB |
189 | |
190 | #endif |