Skip to content

Commit

Permalink
ARM: Kirkwood: DT board setup for CloudBox
Browse files Browse the repository at this point in the history
This patch adds DT board setup for the LaCie NAS CloudBox. The CloudBox
is a low cost NAS based on the Network Space v2.

Chipset list:
- CPU MARVELL 88F6702 1Ghz
- SDRAM memory: 256MB DDR2-800 (2x128MB x8) 400Mhz
- 1 Ethernet Gigabit port (PHY MARVELL 88E1318)
- SPI flash, NOR 512KB
- 1 push button
- 2 LEDs (red and blue)

There is no EEPROM and no USB ports embedded.

Note that this board must not be confused with the Network Space Mini v2
which is embedded in a previous LaCie product also named CloudBox.

Signed-off-by: Simon Guinot <simon.guinot@sequanux.org>
Acked-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
  • Loading branch information
Simon Guinot authored and Jason Cooper committed Apr 10, 2013
1 parent a557dd1 commit 98d4f2a
Show file tree
Hide file tree
Showing 8 changed files with 116 additions and 8 deletions.
3 changes: 2 additions & 1 deletion arch/arm/boot/dts/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,8 @@ dtb-$(CONFIG_ARCH_HIGHBANK) += highbank.dtb \
dtb-$(CONFIG_ARCH_INTEGRATOR) += integratorap.dtb \
integratorcp.dtb
dtb-$(CONFIG_ARCH_LPC32XX) += ea3250.dtb phy3250.dtb
dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-dns320.dtb \
dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-cloudbox.dtb \
kirkwood-dns320.dtb \
kirkwood-dns325.dtb \
kirkwood-dockstar.dtb \
kirkwood-dreamplug.dtb \
Expand Down
89 changes: 89 additions & 0 deletions arch/arm/boot/dts/kirkwood-cloudbox.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
/dts-v1/;

/include/ "kirkwood.dtsi"
/include/ "kirkwood-6281.dtsi"

/ {
model = "LaCie CloudBox";
compatible = "lacie,cloudbox", "marvell,kirkwood-88f6702", "marvell,kirkwood";

memory {
device_type = "memory";
reg = <0x00000000 0x10000000>;
};

chosen {
bootargs = "console=ttyS0,115200n8";
};

ocp@f1000000 {
pinctrl: pinctrl@10000 {
pinctrl-0 = < &pmx_spi &pmx_uart0
&pmx_cloudbox_sata0 >;
pinctrl-names = "default";

pmx_cloudbox_sata0: pmx-cloudbox-sata0 {
marvell,pins = "mpp15";
marvell,function = "sata0";
};
};

serial@12000 {
clock-frequency = <166666667>;
status = "okay";
};

sata@80000 {
status = "okay";
nr-ports = <1>;
};

spi@10600 {
status = "okay";

flash@0 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "mx25l4005a";
reg = <0>;
spi-max-frequency = <20000000>;
mode = <0>;

partition@0 {
reg = <0x0 0x80000>;
label = "u-boot";
};
};
};
};

gpio_keys {
compatible = "gpio-keys";
#address-cells = <1>;
#size-cells = <0>;

button@1 {
label = "Power push button";
linux,code = <116>;
gpios = <&gpio0 16 1>;
};
};

gpio-leds {
compatible = "gpio-leds";

red-fail {
label = "cloudbox:red:fail";
gpios = <&gpio0 14 0>;
};
blue-sata {
label = "cloudbox:blue:sata";
gpios = <&gpio0 15 0>;
};
};

gpio_poweroff {
compatible = "gpio-poweroff";
gpios = <&gpio0 17 0>;
};
};
1 change: 1 addition & 0 deletions arch/arm/configs/kirkwood_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ CONFIG_MACH_SHEEVAPLUG=y
CONFIG_MACH_T5325=y
CONFIG_MACH_TS219=y
CONFIG_MACH_TS41X=y
CONFIG_MACH_CLOUDBOX_DT=y
CONFIG_MACH_DLINK_KIRKWOOD_DT=y
CONFIG_MACH_DOCKSTAR_DT=y
CONFIG_MACH_DREAMPLUG_DT=y
Expand Down
7 changes: 7 additions & 0 deletions arch/arm/mach-kirkwood/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,13 @@ config ARCH_KIRKWOOD_DT
Say 'Y' here if you want your kernel to support the
Marvell Kirkwood using flattened device tree.

config MACH_CLOUDBOX_DT
bool "LaCie CloudBox NAS (Flattened Device Tree)"
select ARCH_KIRKWOOD_DT
help
Say 'Y' here if you want your kernel to support the LaCie
CloudBox NAS, using Flattened Device Tree.

config MACH_DLINK_KIRKWOOD_DT
bool "D-Link Kirkwood-based NAS (Flattened Device Tree)"
select ARCH_KIRKWOOD_DT
Expand Down
1 change: 1 addition & 0 deletions arch/arm/mach-kirkwood/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ obj-$(CONFIG_MACH_TS219) += ts219-setup.o tsx1x-common.o
obj-$(CONFIG_MACH_TS41X) += ts41x-setup.o tsx1x-common.o

obj-$(CONFIG_ARCH_KIRKWOOD_DT) += board-dt.o
obj-$(CONFIG_MACH_CLOUDBOX_DT) += board-ns2.o
obj-$(CONFIG_MACH_DLINK_KIRKWOOD_DT) += board-dnskw.o
obj-$(CONFIG_MACH_DOCKSTAR_DT) += board-dockstar.o
obj-$(CONFIG_MACH_DREAMPLUG_DT) += board-dreamplug.o
Expand Down
14 changes: 8 additions & 6 deletions arch/arm/mach-kirkwood/board-dt.c
Original file line number Diff line number Diff line change
Expand Up @@ -139,11 +139,12 @@ static void __init kirkwood_dt_init(void)
if (of_machine_is_compatible("keymile,km_kirkwood"))
km_kirkwood_init();

if (of_machine_is_compatible("lacie,inetspace_v2") ||
of_machine_is_compatible("lacie,netspace_v2") ||
of_machine_is_compatible("lacie,netspace_max_v2") ||
if (of_machine_is_compatible("lacie,cloudbox") ||
of_machine_is_compatible("lacie,inetspace_v2") ||
of_machine_is_compatible("lacie,netspace_lite_v2") ||
of_machine_is_compatible("lacie,netspace_mini_v2"))
of_machine_is_compatible("lacie,netspace_max_v2") ||
of_machine_is_compatible("lacie,netspace_mini_v2") ||
of_machine_is_compatible("lacie,netspace_v2"))
ns2_init();

if (of_machine_is_compatible("mpl,cec4"))
Expand Down Expand Up @@ -174,11 +175,12 @@ static const char * const kirkwood_dt_board_compat[] = {
"buffalo,lsxl",
"iom,ix2-200",
"keymile,km_kirkwood",
"lacie,cloudbox",
"lacie,inetspace_v2",
"lacie,netspace_max_v2",
"lacie,netspace_v2",
"lacie,netspace_lite_v2",
"lacie,netspace_max_v2",
"lacie,netspace_mini_v2",
"lacie,netspace_v2",
"mpl,cec4",
"netgear,readynas-duo-v2",
"plathome,openblocks-a6",
Expand Down
3 changes: 2 additions & 1 deletion arch/arm/mach-kirkwood/board-ns2.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,8 @@ void __init ns2_init(void)
/*
* Basic setup. Needs to be called early.
*/
if (of_machine_is_compatible("lacie,netspace_lite_v2") ||
if (of_machine_is_compatible("lacie,cloudbox") ||
of_machine_is_compatible("lacie,netspace_lite_v2") ||
of_machine_is_compatible("lacie,netspace_mini_v2"))
ns2_ge00_data.phy_addr = MV643XX_ETH_PHY_ADDR(0);
kirkwood_ge00_init(&ns2_ge00_data);
Expand Down
6 changes: 6 additions & 0 deletions arch/arm/mach-kirkwood/common.h
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,12 @@ void usi_topkick_init(void);
static inline void usi_topkick_init(void) {};
#endif

#ifdef CONFIG_MACH_CLOUDBOX_DT
void cloudbox_init(void);
#else
static inline void cloudbox_init(void) {};
#endif

/* early init functions not converted to fdt yet */
char *kirkwood_id(void);
void kirkwood_l2_init(void);
Expand Down

0 comments on commit 98d4f2a

Please sign in to comment.