]>
Commit | Line | Data |
---|---|---|
5136b2aa JC |
1 | /* |
2 | * Copyright 2012 (C), Jason Cooper <jason@lakedaemon.net> | |
3 | * | |
4 | * arch/arm/mach-kirkwood/board-goflexnet.c | |
5 | * | |
6 | * Seagate GoFlext Net Board Init for drivers not converted to | |
7 | * flattened device tree yet. | |
8 | * | |
9 | * This file is licensed under the terms of the GNU General Public | |
10 | * License version 2. This program is licensed "as is" without any | |
11 | * warranty of any kind, whether express or implied. | |
12 | * | |
13 | * Copied and modified for Seagate GoFlex Net support by | |
14 | * Joshua Coombs <josh.coombs@gmail.com> based on ArchLinux ARM's | |
15 | * GoFlex kernel patches. | |
16 | * | |
17 | */ | |
18 | ||
19 | #include <linux/kernel.h> | |
20 | #include <linux/init.h> | |
21 | #include <linux/platform_device.h> | |
22 | #include <linux/ata_platform.h> | |
23 | #include <linux/mv643xx_eth.h> | |
24 | #include <linux/of.h> | |
25 | #include <linux/of_address.h> | |
26 | #include <linux/of_fdt.h> | |
27 | #include <linux/of_irq.h> | |
28 | #include <linux/of_platform.h> | |
29 | #include <linux/gpio.h> | |
5136b2aa JC |
30 | #include <asm/mach-types.h> |
31 | #include <asm/mach/arch.h> | |
32 | #include <asm/mach/map.h> | |
33 | #include <mach/kirkwood.h> | |
34 | #include <mach/bridge-regs.h> | |
c02cecb9 | 35 | #include <linux/platform_data/mmc-mvsdio.h> |
5136b2aa JC |
36 | #include "common.h" |
37 | #include "mpp.h" | |
38 | ||
39 | static struct mv643xx_eth_platform_data goflexnet_ge00_data = { | |
40 | .phy_addr = MV643XX_ETH_PHY_ADDR(0), | |
41 | }; | |
42 | ||
5136b2aa JC |
43 | static unsigned int goflexnet_mpp_config[] __initdata = { |
44 | MPP29_GPIO, /* USB Power Enable */ | |
45 | MPP47_GPIO, /* LED Orange */ | |
46 | MPP46_GPIO, /* LED Green */ | |
47 | MPP45_GPIO, /* LED Left Capacity 3 */ | |
48 | MPP44_GPIO, /* LED Left Capacity 2 */ | |
49 | MPP43_GPIO, /* LED Left Capacity 1 */ | |
50 | MPP42_GPIO, /* LED Left Capacity 0 */ | |
51 | MPP41_GPIO, /* LED Right Capacity 3 */ | |
52 | MPP40_GPIO, /* LED Right Capacity 2 */ | |
53 | MPP39_GPIO, /* LED Right Capacity 1 */ | |
54 | MPP38_GPIO, /* LED Right Capacity 0 */ | |
55 | 0 | |
56 | }; | |
57 | ||
58 | void __init goflexnet_init(void) | |
59 | { | |
60 | /* | |
61 | * Basic setup. Needs to be called early. | |
62 | */ | |
63 | kirkwood_mpp_conf(goflexnet_mpp_config); | |
64 | ||
65 | if (gpio_request(29, "USB Power Enable") != 0 || | |
66 | gpio_direction_output(29, 1) != 0) | |
67 | pr_err("can't setup GPIO 29 (USB Power Enable)\n"); | |
68 | kirkwood_ehci_init(); | |
69 | ||
70 | kirkwood_ge00_init(&goflexnet_ge00_data); | |
5136b2aa | 71 | } |