24f5aa7f698bb182c708107013a16a2c1e73e10a
[cascardo/linux.git] / arch / arm / mach-kirkwood / board-iconnect.c
1 /*
2  * arch/arm/mach-kirkwood/board-iconnect.c
3  *
4  * Iomega i-connect Board Setup
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 #include <linux/kernel.h>
12 #include <linux/init.h>
13 #include <linux/of.h>
14 #include <linux/mv643xx_eth.h>
15 #include "common.h"
16 #include "mpp.h"
17
18 static struct mv643xx_eth_platform_data iconnect_ge00_data = {
19         .phy_addr       = MV643XX_ETH_PHY_ADDR(11),
20 };
21
22 static unsigned int iconnect_mpp_config[] __initdata = {
23         MPP12_GPIO,
24         MPP35_GPIO,
25         MPP41_GPIO,
26         MPP42_GPIO,
27         MPP43_GPIO,
28         MPP44_GPIO,
29         MPP45_GPIO,
30         MPP46_GPIO,
31         MPP47_GPIO,
32         MPP48_GPIO,
33         0
34 };
35
36 void __init iconnect_init(void)
37 {
38         kirkwood_mpp_conf(iconnect_mpp_config);
39
40         kirkwood_ehci_init();
41         kirkwood_ge00_init(&iconnect_ge00_data);
42 }
43
44 static int __init iconnect_pci_init(void)
45 {
46         if (of_machine_is_compatible("iom,iconnect"))
47                 kirkwood_pcie_init(KW_PCIE0);
48         return 0;
49 }
50 subsys_initcall(iconnect_pci_init);