Merge tag 'mvebu_fixes_for_v3.8-rc3' of git://git.infradead.org/users/jcooper/linux...
[profile/ivi/kernel-adaptation-intel-automotive.git] / arch / arm / mach-kirkwood / board-openblocks_a6.c
1 /*
2  * Copyright 2012 Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
3  *
4  * arch/arm/mach-kirkwood/board-openblocks_a6.c
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/mv643xx_eth.h>
14 #include <linux/clk.h>
15 #include <linux/clk-private.h>
16 #include "common.h"
17 #include "mpp.h"
18
19 static struct mv643xx_eth_platform_data openblocks_ge00_data = {
20         .phy_addr       = MV643XX_ETH_PHY_ADDR(0),
21 };
22
23 static unsigned int openblocks_a6_mpp_config[] __initdata = {
24         MPP0_NF_IO2,
25         MPP1_NF_IO3,
26         MPP2_NF_IO4,
27         MPP3_NF_IO5,
28         MPP4_NF_IO6,
29         MPP5_NF_IO7,
30         MPP6_SYSRST_OUTn,
31         MPP8_UART1_RTS,
32         MPP9_UART1_CTS,
33         MPP10_UART0_TXD,
34         MPP11_UART0_RXD,
35         MPP13_UART1_TXD,
36         MPP14_UART1_RXD,
37         MPP15_UART0_RTS,
38         MPP16_UART0_CTS,
39         MPP18_NF_IO0,
40         MPP19_NF_IO1,
41         MPP20_GPIO, /* DIP SW0 */
42         MPP21_GPIO, /* DIP SW1 */
43         MPP22_GPIO, /* DIP SW2 */
44         MPP23_GPIO, /* DIP SW3 */
45         MPP24_GPIO, /* GPIO 0 */
46         MPP25_GPIO, /* GPIO 1 */
47         MPP26_GPIO, /* GPIO 2 */
48         MPP27_GPIO, /* GPIO 3 */
49         MPP28_GPIO, /* GPIO 4 */
50         MPP29_GPIO, /* GPIO 5 */
51         MPP30_GPIO, /* GPIO 6 */
52         MPP31_GPIO, /* GPIO 7 */
53         MPP36_TW1_SDA,
54         MPP37_TW1_SCK,
55         MPP38_GPIO, /* INIT */
56         MPP39_GPIO, /* USB OC */
57         MPP41_GPIO, /* LED: Red */
58         MPP42_GPIO, /* LED: Green */
59         MPP43_GPIO, /* LED: Yellow */
60         0,
61 };
62
63 void __init openblocks_a6_init(void)
64 {
65         /*
66          * Basic setup. Needs to be called early.
67          */
68         kirkwood_mpp_conf(openblocks_a6_mpp_config);
69         kirkwood_ge00_init(&openblocks_ge00_data);
70 }