-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ARM: Kirkwood: Initial DTS support for Kirkwood GoFlex Net
This patch supplies the necessary DTS and supporting files to boot up a Seagate GoFlex Net with 3.5.0-rc3. Signed-off-by: Joshua Coombs <josh.coombs@gmail.com> Signed-off-by: Andrew Lunn <andrew@lunn.ch>
- Loading branch information
Josh Coombs
authored and
Andrew Lunn
committed
Jul 27, 2012
1 parent
9eb61f4
commit 5136b2a
Showing
7 changed files
with
224 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
/dts-v1/; | ||
|
||
/include/ "kirkwood.dtsi" | ||
|
||
/ { | ||
model = "Seagate GoFlex Net"; | ||
compatible = "seagate,goflexnet", "mrvl,kirkwood-88f6281", "mrvl,kirkwood"; | ||
|
||
memory { | ||
device_type = "memory"; | ||
reg = <0x00000000 0x8000000>; | ||
}; | ||
|
||
chosen { | ||
bootargs = "console=ttyS0,115200n8 earlyprintk root=/dev/sda1 rootdelay=10"; | ||
}; | ||
|
||
ocp@f1000000 { | ||
serial@12000 { | ||
clock-frequency = <200000000>; | ||
status = "ok"; | ||
}; | ||
|
||
nand@3000000 { | ||
status = "okay"; | ||
|
||
partition@0 { | ||
label = "u-boot"; | ||
reg = <0x0000000 0x100000>; | ||
read-only; | ||
}; | ||
|
||
partition@100000 { | ||
label = "uImage"; | ||
reg = <0x0100000 0x400000>; | ||
}; | ||
|
||
partition@500000 { | ||
label = "pogoplug"; | ||
reg = <0x0500000 0x2000000>; | ||
}; | ||
|
||
partition@2500000 { | ||
label = "root"; | ||
reg = <0x02500000 0xd800000>; | ||
}; | ||
}; | ||
}; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,155 @@ | ||
/* | ||
* Copyright 2012 (C), Jason Cooper <jason@lakedaemon.net> | ||
* | ||
* arch/arm/mach-kirkwood/board-goflexnet.c | ||
* | ||
* Seagate GoFlext Net Board Init for drivers not converted to | ||
* flattened device tree yet. | ||
* | ||
* This file is licensed under the terms of the GNU General Public | ||
* License version 2. This program is licensed "as is" without any | ||
* warranty of any kind, whether express or implied. | ||
* | ||
* Copied and modified for Seagate GoFlex Net support by | ||
* Joshua Coombs <josh.coombs@gmail.com> based on ArchLinux ARM's | ||
* GoFlex kernel patches. | ||
* | ||
*/ | ||
|
||
#include <linux/kernel.h> | ||
#include <linux/init.h> | ||
#include <linux/platform_device.h> | ||
#include <linux/ata_platform.h> | ||
#include <linux/mv643xx_eth.h> | ||
#include <linux/of.h> | ||
#include <linux/of_address.h> | ||
#include <linux/of_fdt.h> | ||
#include <linux/of_irq.h> | ||
#include <linux/of_platform.h> | ||
#include <linux/gpio.h> | ||
#include <linux/leds.h> | ||
#include <asm/mach-types.h> | ||
#include <asm/mach/arch.h> | ||
#include <asm/mach/map.h> | ||
#include <mach/kirkwood.h> | ||
#include <mach/bridge-regs.h> | ||
#include <plat/mvsdio.h> | ||
#include "common.h" | ||
#include "mpp.h" | ||
|
||
static struct mv643xx_eth_platform_data goflexnet_ge00_data = { | ||
.phy_addr = MV643XX_ETH_PHY_ADDR(0), | ||
}; | ||
|
||
static struct mv_sata_platform_data goflexnet_sata_data = { | ||
.n_ports = 2, | ||
}; | ||
|
||
static struct gpio_led goflexnet_led_pins[] = { | ||
{ | ||
.name = "status:green:health", | ||
.default_trigger = "default-on", | ||
.gpio = 46, | ||
.active_low = 1, | ||
}, | ||
{ | ||
.name = "status:orange:fault", | ||
.default_trigger = "none", | ||
.gpio = 47, | ||
.active_low = 1, | ||
}, | ||
{ | ||
.name = "status:white:left0", | ||
.default_trigger = "none", | ||
.gpio = 42, | ||
.active_low = 0, | ||
}, | ||
{ | ||
.name = "status:white:left1", | ||
.default_trigger = "none", | ||
.gpio = 43, | ||
.active_low = 0, | ||
}, | ||
{ | ||
.name = "status:white:left2", | ||
.default_trigger = "none", | ||
.gpio = 44, | ||
.active_low = 0, | ||
}, | ||
{ | ||
.name = "status:white:left3", | ||
.default_trigger = "none", | ||
.gpio = 45, | ||
.active_low = 0, | ||
}, | ||
{ | ||
.name = "status:white:right0", | ||
.default_trigger = "none", | ||
.gpio = 38, | ||
.active_low = 0, | ||
}, | ||
{ | ||
.name = "status:white:right1", | ||
.default_trigger = "none", | ||
.gpio = 39, | ||
.active_low = 0, | ||
}, | ||
{ | ||
.name = "status:white:right2", | ||
.default_trigger = "none", | ||
.gpio = 40, | ||
.active_low = 0, | ||
}, | ||
{ | ||
.name = "status:white:right3", | ||
.default_trigger = "none", | ||
.gpio = 41, | ||
.active_low = 0, | ||
}, | ||
}; | ||
|
||
static struct gpio_led_platform_data goflexnet_led_data = { | ||
.leds = goflexnet_led_pins, | ||
.num_leds = ARRAY_SIZE(goflexnet_led_pins), | ||
}; | ||
|
||
static struct platform_device goflexnet_leds = { | ||
.name = "leds-gpio", | ||
.id = -1, | ||
.dev = { | ||
.platform_data = &goflexnet_led_data, | ||
} | ||
}; | ||
|
||
static unsigned int goflexnet_mpp_config[] __initdata = { | ||
MPP29_GPIO, /* USB Power Enable */ | ||
MPP47_GPIO, /* LED Orange */ | ||
MPP46_GPIO, /* LED Green */ | ||
MPP45_GPIO, /* LED Left Capacity 3 */ | ||
MPP44_GPIO, /* LED Left Capacity 2 */ | ||
MPP43_GPIO, /* LED Left Capacity 1 */ | ||
MPP42_GPIO, /* LED Left Capacity 0 */ | ||
MPP41_GPIO, /* LED Right Capacity 3 */ | ||
MPP40_GPIO, /* LED Right Capacity 2 */ | ||
MPP39_GPIO, /* LED Right Capacity 1 */ | ||
MPP38_GPIO, /* LED Right Capacity 0 */ | ||
0 | ||
}; | ||
|
||
void __init goflexnet_init(void) | ||
{ | ||
/* | ||
* Basic setup. Needs to be called early. | ||
*/ | ||
kirkwood_mpp_conf(goflexnet_mpp_config); | ||
|
||
if (gpio_request(29, "USB Power Enable") != 0 || | ||
gpio_direction_output(29, 1) != 0) | ||
pr_err("can't setup GPIO 29 (USB Power Enable)\n"); | ||
kirkwood_ehci_init(); | ||
|
||
kirkwood_ge00_init(&goflexnet_ge00_data); | ||
kirkwood_sata_init(&goflexnet_sata_data); | ||
|
||
platform_device_register(&goflexnet_leds); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters