ARM: kirkwood: DT board setup for Network Space Lite v2
authorSimon Guinot <simon.guinot@sequanux.org>
Wed, 17 Oct 2012 10:09:05 +0000 (12:09 +0200)
committerJason Cooper <jason@lakedaemon.net>
Wed, 21 Nov 2012 20:58:43 +0000 (20:58 +0000)
This patch adds DT board setup for the LaCie NAS Network Space Lite v2.
This board is derived from the Network Space v2 and a lot of hardware
characteristics are shared.

- CPU: Marvell 88F6192 800Mhz
- SDRAM memory: 128MB DDR2 200Mhz
- 1 SATA port: internal
- Gigabit ethernet: PHY Marvell 88E1318
- Flash memory: SPI NOR 512KB (Macronix MX25L4005A)
- i2c EEPROM: 512 bytes (24C04 type)
- 2 USB2 ports: host and host/device
- 1 push button
- 1 SATA LED (bi-color, blue and red)

Note that the SATA LED is not compatible with the driver leds-ns2. The
LED behaviour ("on", "off" or "SATA activity blink") is controlled via
a single MPP (21).

Signed-off-by: Simon Guinot <simon.guinot@sequanux.org>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
arch/arm/boot/dts/Makefile
arch/arm/boot/dts/kirkwood-ns2lite.dts [new file with mode: 0644]
arch/arm/mach-kirkwood/Kconfig
arch/arm/mach-kirkwood/Makefile
arch/arm/mach-kirkwood/board-dt.c
arch/arm/mach-kirkwood/board-ns2.c
arch/arm/mach-kirkwood/common.h

index e566943cc5d87f2c24447686be06bac26880a551..74fca59370c3f5b95056e086bc859c8b0af96682 100644 (file)
@@ -41,6 +41,7 @@ dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-dns320.dtb \
        kirkwood-lschlv2.dtb \
        kirkwood-lsxhl.dtb \
        kirkwood-ns2.dtb \
        kirkwood-lschlv2.dtb \
        kirkwood-lsxhl.dtb \
        kirkwood-ns2.dtb \
+       kirkwood-ns2lite.dtb \
        kirkwood-ns2max.dtb \
        kirkwood-ts219-6281.dtb \
        kirkwood-ts219-6282.dtb
        kirkwood-ns2max.dtb \
        kirkwood-ts219-6281.dtb \
        kirkwood-ts219-6282.dtb
diff --git a/arch/arm/boot/dts/kirkwood-ns2lite.dts b/arch/arm/boot/dts/kirkwood-ns2lite.dts
new file mode 100644 (file)
index 0000000..b02eb4e
--- /dev/null
@@ -0,0 +1,30 @@
+/dts-v1/;
+
+/include/ "kirkwood-ns2-common.dtsi"
+
+/ {
+       model = "LaCie Network Space Lite v2";
+       compatible = "lacie,netspace_lite_v2", "marvell,kirkwood-88f6192", "marvell,kirkwood";
+
+       memory {
+               device_type = "memory";
+               reg = <0x00000000 0x8000000>;
+       };
+
+       ocp@f1000000 {
+               sata@80000 {
+                       status = "okay";
+                       nr-ports = <1>;
+               };
+       };
+
+       gpio-leds {
+               compatible = "gpio-leds";
+
+               blue-sata {
+                       label = "ns2:blue:sata";
+                       gpios = <&gpio0 30 1>;
+                       linux,default-trigger = "default-on";
+               };
+       };
+};
index 847e0c2bf672063690d86565a3db8fc37ce74c6c..83df331fce285f06967864b24d647247a1e42435 100644 (file)
@@ -151,6 +151,13 @@ config MACH_NETSPACE_MAX_V2_DT
          Say 'Y' here if you want your kernel to support the LaCie
          Network Space Max v2 NAS, using Flattened Device Tree.
 
          Say 'Y' here if you want your kernel to support the LaCie
          Network Space Max v2 NAS, using Flattened Device Tree.
 
+config MACH_NETSPACE_LITE_V2_DT
+       bool "LaCie Network Space Lite v2 NAS (Flattened Device Tree)"
+       select ARCH_KIRKWOOD_DT
+       help
+         Say 'Y' here if you want your kernel to support the LaCie
+         Network Space Lite v2 NAS, using Flattened Device Tree.
+
 config MACH_TS219
        bool "QNAP TS-110, TS-119, TS-119P+, TS-210, TS-219, TS-219P and TS-219P+ Turbo NAS"
        help
 config MACH_TS219
        bool "QNAP TS-110, TS-119, TS-119P+, TS-210, TS-219, TS-219P and TS-219P+ Turbo NAS"
        help
index 1f63d804b494ddf334fab9e3fcf6475d7dd70d7d..4d4b7d4fbcf57d5e16da7596ff743eca0f5ad50d 100644 (file)
@@ -34,3 +34,4 @@ obj-$(CONFIG_MACH_KM_KIRKWOOD_DT)     += board-km_kirkwood.o
 obj-$(CONFIG_MACH_INETSPACE_V2_DT)     += board-ns2.o
 obj-$(CONFIG_MACH_NETSPACE_V2_DT)      += board-ns2.o
 obj-$(CONFIG_MACH_NETSPACE_MAX_V2_DT)  += board-ns2.o
 obj-$(CONFIG_MACH_INETSPACE_V2_DT)     += board-ns2.o
 obj-$(CONFIG_MACH_NETSPACE_V2_DT)      += board-ns2.o
 obj-$(CONFIG_MACH_NETSPACE_MAX_V2_DT)  += board-ns2.o
+obj-$(CONFIG_MACH_NETSPACE_LITE_V2_DT) += board-ns2.o
index 0270a145716f75d2d1ceaa82d0f877b9ca0f8ef8..b76ef75f533fd5c01a8dca78650147638ece70b5 100644 (file)
@@ -98,7 +98,8 @@ static void __init kirkwood_dt_init(void)
 
        if (of_machine_is_compatible("lacie,inetspace_v2") ||
            of_machine_is_compatible("lacie,netspace_v2") ||
 
        if (of_machine_is_compatible("lacie,inetspace_v2") ||
            of_machine_is_compatible("lacie,netspace_v2") ||
-           of_machine_is_compatible("lacie,netspace_max_v2"))
+           of_machine_is_compatible("lacie,netspace_max_v2") ||
+           of_machine_is_compatible("lacie,netspace_lite_v2"))
                ns2_init();
 
        of_platform_populate(NULL, kirkwood_dt_match_table,
                ns2_init();
 
        of_platform_populate(NULL, kirkwood_dt_match_table,
@@ -120,6 +121,7 @@ static const char *kirkwood_dt_board_compat[] = {
        "lacie,inetspace_v2",
        "lacie,netspace_max_v2",
        "lacie,netspace_v2",
        "lacie,inetspace_v2",
        "lacie,netspace_max_v2",
        "lacie,netspace_v2",
+       "lacie,netspace_lite_v2",
        NULL
 };
 
        NULL
 };
 
index b36c55cba78be7011faa6c6796f0850c5d3fea8c..da8c4c5bf4f629ae4f315284beecff3b6de941e0 100644 (file)
@@ -16,6 +16,7 @@
 #include <linux/platform_device.h>
 #include <linux/mv643xx_eth.h>
 #include <linux/gpio.h>
 #include <linux/platform_device.h>
 #include <linux/mv643xx_eth.h>
 #include <linux/gpio.h>
+#include <linux/of.h>
 #include "common.h"
 #include "mpp.h"
 
 #include "common.h"
 #include "mpp.h"
 
@@ -73,6 +74,8 @@ void __init ns2_init(void)
        kirkwood_mpp_conf(ns2_mpp_config);
 
        kirkwood_ehci_init();
        kirkwood_mpp_conf(ns2_mpp_config);
 
        kirkwood_ehci_init();
+       if (of_machine_is_compatible("lacie,netspace_lite_v2"))
+               ns2_ge00_data.phy_addr = MV643XX_ETH_PHY_ADDR(0);
        kirkwood_ge00_init(&ns2_ge00_data);
 
        if (gpio_request(NS2_GPIO_POWER_OFF, "power-off") == 0 &&
        kirkwood_ge00_init(&ns2_ge00_data);
 
        if (gpio_request(NS2_GPIO_POWER_OFF, "power-off") == 0 &&
index 2f75f3f7c858f0e8472a0eed86b6f31082de4b99..6949d8198de13c9864d7b2bd8646d48e1c8ccba8 100644 (file)
@@ -114,7 +114,8 @@ static inline void km_kirkwood_init(void) {};
 
 #if defined(CONFIG_MACH_INETSPACE_V2_DT) || \
        defined(CONFIG_MACH_NETSPACE_V2_DT) || \
 
 #if defined(CONFIG_MACH_INETSPACE_V2_DT) || \
        defined(CONFIG_MACH_NETSPACE_V2_DT) || \
-       defined(CONFIG_MACH_NETSPACE_MAX_V2_DT)
+       defined(CONFIG_MACH_NETSPACE_MAX_V2_DT) || \
+       defined(CONFIG_MACH_NETSPACE_LITE_V2_DT)
 void ns2_init(void);
 #else
 static inline void ns2_init(void) {};
 void ns2_init(void);
 #else
 static inline void ns2_init(void) {};