Commit 9b47a4fb authored by Willy Tarreau's avatar Willy Tarreau Committed by Arnd Bergmann

ARM: kirkwood: convert Guruplug Server Plus to use the device tree

Add a device tree entry for the Guruplug Server Plus board. This port
was based both on the work done on the dreamplug and the dockstar.

It builds, boots and works on my Guruplug Server Plus.
Signed-off-by: default avatarWilly Tarreau <w@1wt.eu>
Signed-off-by: default avatarJason Cooper <jason@lakedaemon.net>
parent 49122145
...@@ -56,6 +56,7 @@ dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-dns320.dtb \ ...@@ -56,6 +56,7 @@ dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-dns320.dtb \
kirkwood-dockstar.dtb \ kirkwood-dockstar.dtb \
kirkwood-dreamplug.dtb \ kirkwood-dreamplug.dtb \
kirkwood-goflexnet.dtb \ kirkwood-goflexnet.dtb \
kirkwood-guruplug-server-plus.dtb \
kirkwood-ib62x0.dtb \ kirkwood-ib62x0.dtb \
kirkwood-iconnect.dtb \ kirkwood-iconnect.dtb \
kirkwood-iomega_ix2_200.dtb \ kirkwood-iomega_ix2_200.dtb \
......
/dts-v1/;
/include/ "kirkwood.dtsi"
/include/ "kirkwood-6281.dtsi"
/ {
model = "Globalscale Technologies Guruplug Server Plus";
compatible = "globalscale,guruplug-server-plus", "globalscale,guruplug", "marvell,kirkwood-88f6281", "marvell,kirkwood";
memory {
device_type = "memory";
reg = <0x00000000 0x20000000>;
};
chosen {
bootargs = "console=ttyS0,115200n8 earlyprintk";
};
ocp@f1000000 {
pinctrl: pinctrl@10000 {
pinctrl-0 = < &pmx_led_health_r &pmx_led_health_g
&pmx_led_wmode_r &pmx_led_wmode_g >;
pinctrl-names = "default";
pmx_led_health_r: pmx-led-health-r {
marvell,pins = "mpp46";
marvell,function = "gpio";
};
pmx_led_health_g: pmx-led-health-g {
marvell,pins = "mpp47";
marvell,function = "gpio";
};
pmx_led_wmode_r: pmx-led-wmode-r {
marvell,pins = "mpp48";
marvell,function = "gpio";
};
pmx_led_wmode_g: pmx-led-wmode-g {
marvell,pins = "mpp49";
marvell,function = "gpio";
};
};
serial@12000 {
clock-frequency = <200000000>;
status = "ok";
};
nand@3000000 {
status = "okay";
partition@0 {
label = "u-boot";
reg = <0x00000000 0x00100000>;
read-only;
};
partition@100000 {
label = "uImage";
reg = <0x00100000 0x00400000>;
};
partition@500000 {
label = "data";
reg = <0x00500000 0x1fb00000>;
};
};
sata@80000 {
status = "okay";
nr-ports = <1>;
};
};
gpio-leds {
compatible = "gpio-leds";
health-r {
label = "guruplug:red:health";
gpios = <&gpio1 14 1>;
};
health-g {
label = "guruplug:green:health";
gpios = <&gpio1 15 1>;
};
wmode-r {
label = "guruplug:red:wmode";
gpios = <&gpio1 16 1>;
};
wmode-g {
label = "guruplug:green:wmode";
gpios = <&gpio1 17 1>;
};
};
};
...@@ -58,6 +58,13 @@ config ARCH_KIRKWOOD_DT ...@@ -58,6 +58,13 @@ config ARCH_KIRKWOOD_DT
Say 'Y' here if you want your kernel to support the Say 'Y' here if you want your kernel to support the
Marvell Kirkwood using flattened device tree. Marvell Kirkwood using flattened device tree.
config MACH_GURUPLUG_DT
bool "Marvell GuruPlug Reference Board (Flattened Device Tree)"
select ARCH_KIRKWOOD_DT
help
Say 'Y' here if you want your kernel to support the
Marvell GuruPlug Reference Board (Flattened Device Tree).
config MACH_DREAMPLUG_DT config MACH_DREAMPLUG_DT
bool "Marvell DreamPlug (Flattened Device Tree)" bool "Marvell DreamPlug (Flattened Device Tree)"
select ARCH_KIRKWOOD_DT select ARCH_KIRKWOOD_DT
......
...@@ -21,6 +21,7 @@ obj-$(CONFIG_MACH_T5325) += t5325-setup.o ...@@ -21,6 +21,7 @@ obj-$(CONFIG_MACH_T5325) += t5325-setup.o
obj-$(CONFIG_ARCH_KIRKWOOD_DT) += board-dt.o obj-$(CONFIG_ARCH_KIRKWOOD_DT) += board-dt.o
obj-$(CONFIG_MACH_DREAMPLUG_DT) += board-dreamplug.o obj-$(CONFIG_MACH_DREAMPLUG_DT) += board-dreamplug.o
obj-$(CONFIG_MACH_GURUPLUG_DT) += board-guruplug.o
obj-$(CONFIG_MACH_ICONNECT_DT) += board-iconnect.o obj-$(CONFIG_MACH_ICONNECT_DT) += board-iconnect.o
obj-$(CONFIG_MACH_DLINK_KIRKWOOD_DT) += board-dnskw.o obj-$(CONFIG_MACH_DLINK_KIRKWOOD_DT) += board-dnskw.o
obj-$(CONFIG_MACH_IB62X0_DT) += board-ib62x0.o obj-$(CONFIG_MACH_IB62X0_DT) += board-ib62x0.o
......
...@@ -98,6 +98,9 @@ static void __init kirkwood_dt_init(void) ...@@ -98,6 +98,9 @@ static void __init kirkwood_dt_init(void)
if (of_machine_is_compatible("globalscale,dreamplug")) if (of_machine_is_compatible("globalscale,dreamplug"))
dreamplug_init(); dreamplug_init();
if (of_machine_is_compatible("globalscale,guruplug"))
guruplug_dt_init();
if (of_machine_is_compatible("dlink,dns-kirkwood")) if (of_machine_is_compatible("dlink,dns-kirkwood"))
dnskw_init(); dnskw_init();
...@@ -149,6 +152,7 @@ static void __init kirkwood_dt_init(void) ...@@ -149,6 +152,7 @@ static void __init kirkwood_dt_init(void)
static const char * const kirkwood_dt_board_compat[] = { static const char * const kirkwood_dt_board_compat[] = {
"globalscale,dreamplug", "globalscale,dreamplug",
"globalscale,guruplug",
"dlink,dns-320", "dlink,dns-320",
"dlink,dns-325", "dlink,dns-325",
"iom,iconnect", "iom,iconnect",
......
/*
* arch/arm/mach-kirkwood/board-guruplug.c
*
* Marvell Guruplug Reference 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.
*/
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/mv643xx_eth.h>
#include <linux/gpio.h>
#include <linux/platform_data/mmc-mvsdio.h>
#include "common.h"
static struct mv643xx_eth_platform_data guruplug_ge00_data = {
.phy_addr = MV643XX_ETH_PHY_ADDR(0),
};
static struct mv643xx_eth_platform_data guruplug_ge01_data = {
.phy_addr = MV643XX_ETH_PHY_ADDR(1),
};
static struct mvsdio_platform_data guruplug_mvsdio_data = {
/* unfortunately the CD signal has not been connected */
};
void __init guruplug_dt_init(void)
{
/*
* Basic setup. Needs to be called early.
*/
kirkwood_ge00_init(&guruplug_ge00_data);
kirkwood_ge01_init(&guruplug_ge01_data);
kirkwood_sdio_init(&guruplug_mvsdio_data);
}
...@@ -60,6 +60,11 @@ void dreamplug_init(void); ...@@ -60,6 +60,11 @@ void dreamplug_init(void);
#else #else
static inline void dreamplug_init(void) {}; static inline void dreamplug_init(void) {};
#endif #endif
#ifdef CONFIG_MACH_GURUPLUG_DT
void guruplug_dt_init(void);
#else
static inline void guruplug_dt_init(void) {};
#endif
#ifdef CONFIG_MACH_TS219_DT #ifdef CONFIG_MACH_TS219_DT
void qnap_dt_ts219_init(void); void qnap_dt_ts219_init(void);
#else #else
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment