kirkwood: add support for the Seagate GoflexHome
authorLuka Perkov <luka@openwrt.org>
Fri, 8 May 2015 20:12:39 +0000 (20:12 +0000)
committerLuka Perkov <luka@openwrt.org>
Fri, 8 May 2015 20:12:39 +0000 (20:12 +0000)
Add Support for the Seagate GoflexHome <http://wiki.openwrt.org/toh/seagate/goflexhome>

Signed-off-by: L. D. Pinney <ldpinney@gmail.com>
SVN-Revision: 45647

target/linux/kirkwood/base-files/etc/diag.sh
target/linux/kirkwood/base-files/etc/uci-defaults/01_leds
target/linux/kirkwood/base-files/etc/uci-defaults/02_network
target/linux/kirkwood/base-files/lib/kirkwood.sh
target/linux/kirkwood/image/Makefile
target/linux/kirkwood/patches-3.18/180-goflexhome.patch [new file with mode: 0644]
target/linux/kirkwood/profiles/110-nas.mk

index 29445d5d0db69635271f37ac5a14ec1b029de059..716e6c9fbf994b48b401bb2de3478dc885103f7a 100755 (executable)
@@ -7,6 +7,7 @@
 get_status_led() {
        case $(kirkwood_board_name) in
        dockstar|\
+       goflexhome|\
        goflexnet|\
        pogo_e02)
                status_led="status:orange:fault"
index 0f7a906b0988516c82435de3608e340f83b64917..a8ba1f6c3db5b9bb15337e5a4426f14f6be51b85 100644 (file)
@@ -20,6 +20,7 @@ case "$board" in
        ucidef_set_led_default "health" "health" "ea4500:white:health" "1"
        ucidef_set_led_default "pulse" "pulse" "ea4500:white:pulse" "1"
        ;;
+"goflexhome" | \
 "goflexnet")
         ucidef_set_led_default "health" "health" "status:green:health" "1"
         ucidef_set_led_default "fault" "fault" "status:orange:fault" "0"
index 4ed0ab497a9e16f34857a8a7565900f505073dc0..f0628cd618b55ee966f286da096d1095b1988d1f 100644 (file)
@@ -29,6 +29,7 @@ ucidef_set_interface_loopback
 
 case "$board" in
 "dockstar"|\
+"goflexhome"|\
 "goflexnet"|\
 "iconnect"|\
 "ib62x0"|\
index c088581215e952b28aeba1621d88b409fc60fe2d..aa16daf4c048f42796fe33fa5087ffda013ebace 100755 (executable)
@@ -17,6 +17,10 @@ kirkwood_board_detect() {
                name="dockstar"
                ;;
 
+        "Seagate GoFlex Home")
+                name="goflexhome"
+                ;;
+
        "Seagate GoFlex Net")
                name="goflexnet"
                ;;
index ede7cb30aa22a7c1ac85545dc25d98b0b9c9bad2..8413a41ba39234e2f6cb7e8d10df75d5aabb4252 100644 (file)
@@ -123,6 +123,9 @@ Image/InstallKernel/Template/EA3500=$(call Image/InstallKernel/Template,ea3500)
 Image/BuildKernel/Template/EA4500=$(call Image/BuildKernel/Template,ea4500)
 Image/InstallKernel/Template/EA4500=$(call Image/InstallKernel/Template,ea4500)
 
+Image/BuildKernel/Template/GOFLEXHOME=$(call Image/BuildKernel/Template,goflexhome)
+Image/InstallKernel/Template/GOFLEXHOME=$(call Image/InstallKernel/Template,goflexhome)
+
 Image/BuildKernel/Template/GOFLEXNET=$(call Image/BuildKernel/Template,goflexnet)
 Image/InstallKernel/Template/GOFLEXNET=$(call Image/InstallKernel/Template,goflexnet)
 
diff --git a/target/linux/kirkwood/patches-3.18/180-goflexhome.patch b/target/linux/kirkwood/patches-3.18/180-goflexhome.patch
new file mode 100644 (file)
index 0000000..e54c853
--- /dev/null
@@ -0,0 +1,140 @@
+--- a/arch/arm/boot/dts/Makefile
++++ b/arch/arm/boot/dts/Makefile
+@@ -122,6 +122,7 @@ dtb-$(CONFIG_MACH_KIRKWOOD) += kirkwood-
+       kirkwood-ds411slim.dtb \
+       kirkwood-ea3500.dtb \
+       kirkwood-ea4500.dtb \
++      kirkwood-goflexhome.dtb \
+       kirkwood-goflexnet.dtb \
+       kirkwood-guruplug-server-plus.dtb \
+       kirkwood-ib62x0.dtb \
+--- /dev/null
++++ b/arch/arm/boot/dts/kirkwood-goflexhome.dts
+@@ -0,0 +1,127 @@
++/dts-v1/;
++
++#include "kirkwood.dtsi"
++#include "kirkwood-6281.dtsi"
++
++/ {
++      model = "Seagate GoFlex Home";
++      compatible = "seagate,goflexhome", "marvell,kirkwood-88f6281", "marvell,kirkwood";
++
++      memory {
++              device_type = "memory";
++              reg = <0x00000000 0x8000000>;
++      };
++
++      chosen {
++              bootargs = "console=ttyS0,115200n8 earlyprintk root=/dev/sda1 rootdelay=10";
++              stdout-path = &uart0;
++      };
++
++      ocp@f1000000 {
++              pinctrl: pin-controller@10000 {
++                      pmx_usb_power_enable: pmx-usb-power-enable {
++                              marvell,pins = "mpp29";
++                              marvell,function = "gpio";
++                      };
++                      pmx_led_white: pmx-led-white {
++                              marvell,pins = "mpp40";
++                              marvell,function = "gpio";
++                      };
++                      pmx_led_green: pmx-led_green {
++                              marvell,pins = "mpp46";
++                              marvell,function = "gpio";
++                      };
++                      pmx_led_orange: pmx-led-orange {
++                              marvell,pins = "mpp47";
++                              marvell,function = "gpio";
++                      };
++              };
++              serial@12000 {
++                      status = "ok";
++              };
++
++              sata@80000 {
++                      status = "okay";
++                      nr-ports = <2>;
++              };
++
++      };
++      gpio-leds {
++              compatible = "gpio-leds";
++
++              health {
++                      label = "status:green:health";
++                      gpios = <&gpio1 14 1>;
++                      linux,default-trigger = "default-on";
++              };
++              fault {
++                      label = "status:orange:fault";
++                      gpios = <&gpio1 15 1>;
++              };
++              misc {
++                      label = "status:white:misc";
++                      gpios = <&gpio1 8 1>;
++                      linux,default-trigger = "ide-disk";
++              };
++      };
++      regulators {
++              compatible = "simple-bus";
++              #address-cells = <1>;
++              #size-cells = <0>;
++              pinctrl-0 = <&pmx_usb_power_enable>;
++              pinctrl-names = "default";
++
++              usb_power: regulator@1 {
++                      compatible = "regulator-fixed";
++                      reg = <1>;
++                      regulator-name = "USB Power";
++                      regulator-min-microvolt = <5000000>;
++                      regulator-max-microvolt = <5000000>;
++                      enable-active-high;
++                      regulator-always-on;
++                      regulator-boot-on;
++                      gpio = <&gpio0 29 GPIO_ACTIVE_HIGH>;
++              };
++      };
++};
++
++&nand {
++      chip-delay = <40>;
++      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>;
++      };
++};
++
++&mdio {
++      status = "okay";
++
++      ethphy0: ethernet-phy@0 {
++              reg = <0>;
++      };
++};
++
++&eth0 {
++      status = "okay";
++      ethernet0-port@0 {
++              phy-handle = <&ethphy0>;
++      };
++};
index d87c45c2bfd044f9158383c7db3bc21ac7f868df..748efacd56d82293ca7c66c18b74e60dc1e2d258 100644 (file)
@@ -20,6 +20,23 @@ DOCKSTAR_UBI_OPTS:="-m 2048 -p 128KiB -s 512"
 
 $(eval $(call Profile,DOCKSTAR))
 
+define Profile/GOFLEXHOME
+  NAME:=Seagate GoFlexHome
+  PACKAGES:= \
+       kmod-ata-core kmod-ata-marvell-sata \
+       kmod-rtc-marvell kmod-usb2 kmod-usb-storage \
+       uboot-envtools
+endef
+
+define Profile/GOFLEXHOME/Description
+ Package set compatible with Seagate GoFlexHome
+endef
+
+GOFLEXHOME_UBIFS_OPTS:="-m 2048 -e 126KiB -c 4096"
+GOFLEXHOME_UBI_OPTS:="-m 2048 -p 128KiB -s 512"
+
+$(eval $(call Profile,GOFLEXHOME))
+
 define Profile/GOFLEXNET
   NAME:=Seagate GoFlexNet
   PACKAGES:= \