Merge tag 'for-linus-20121212' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowe...
[firefly-linux-kernel-4.4.55.git] / arch / arm / mach-kirkwood / board-mplcec4.c
1 /*
2  * Copyright (C) 2012 MPL AG, Switzerland
3  * Stefan Peter <s.peter@mpl.ch>
4  *
5  * arch/arm/mach-kirkwood/board-mplcec4.c
6  *
7  * This file is licensed under the terms of the GNU General Public
8  * License version 2.  This program is licensed "as is" without any
9  * warranty of any kind, whether express or implied.
10  */
11
12 #include <linux/kernel.h>
13 #include <linux/init.h>
14 #include <linux/mv643xx_eth.h>
15 #include <linux/platform_data/mmc-mvsdio.h>
16 #include "common.h"
17 #include "mpp.h"
18
19 static struct mv643xx_eth_platform_data mplcec4_ge00_data = {
20         .phy_addr       = MV643XX_ETH_PHY_ADDR(1),
21 };
22
23 static struct mv643xx_eth_platform_data mplcec4_ge01_data = {
24         .phy_addr       = MV643XX_ETH_PHY_ADDR(2),
25 };
26
27 static unsigned int mplcec4_mpp_config[] __initdata = {
28         MPP0_NF_IO2,
29         MPP1_NF_IO3,
30         MPP2_NF_IO4,
31         MPP3_NF_IO5,
32         MPP4_NF_IO6,
33         MPP5_NF_IO7,
34         MPP6_SYSRST_OUTn,
35         MPP7_GPO,       /* Status LED Green High Active */
36         MPP10_UART0_TXD,
37         MPP11_UART0_RXD,
38         MPP12_SD_CLK,
39         MPP13_SD_CMD,   /* Alt UART1_TXD */
40         MPP14_SD_D0,    /* Alt UART1_RXD */
41         MPP15_SD_D1,
42         MPP16_SD_D2,
43         MPP17_SD_D3,
44         MPP18_NF_IO0,
45         MPP19_NF_IO1,
46         MPP28_GPIO,     /* Input SYS_POR_DET (active High) */
47         MPP29_GPIO,     /* Input SYS_RTC_INT (active High) */
48         MPP34_SATA1_ACTn,
49         MPP35_SATA0_ACTn,
50         MPP40_GPIO,     /* LED User1 orange */
51         MPP41_GPIO,     /* LED User1 green */
52         MPP44_GPIO,     /* LED User0 orange */
53         MPP45_GPIO,     /* LED User0 green */
54         MPP46_GPIO,     /* Status LED Yellow High Active */
55         MPP47_GPIO,     /* SD_CD# (in/IRQ)*/
56         0
57 };
58
59
60 static struct mvsdio_platform_data mplcec4_mvsdio_data = {
61         .gpio_card_detect = 47, /* MPP47 used as SD card detect */
62 };
63
64
65
66 void __init mplcec4_init(void)
67 {
68         /*
69          * Basic setup. Needs to be called early.
70          */
71         kirkwood_mpp_conf(mplcec4_mpp_config);
72         kirkwood_ehci_init();
73         kirkwood_ge00_init(&mplcec4_ge00_data);
74         kirkwood_ge01_init(&mplcec4_ge01_data);
75         kirkwood_sdio_init(&mplcec4_mvsdio_data);
76         kirkwood_pcie_init(KW_PCIE0);
77 }
78
79
80