kirkwood: add support for the Seagate GoflexHome

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
This commit is contained in:
Luka Perkov 2015-05-08 20:12:39 +00:00
parent 7b01a650f8
commit 7437be53ba
7 changed files with 167 additions and 0 deletions

View file

@ -7,6 +7,7 @@
get_status_led() { get_status_led() {
case $(kirkwood_board_name) in case $(kirkwood_board_name) in
dockstar|\ dockstar|\
goflexhome|\
goflexnet|\ goflexnet|\
pogo_e02) pogo_e02)
status_led="status:orange:fault" status_led="status:orange:fault"

View file

@ -20,6 +20,7 @@ case "$board" in
ucidef_set_led_default "health" "health" "ea4500:white:health" "1" ucidef_set_led_default "health" "health" "ea4500:white:health" "1"
ucidef_set_led_default "pulse" "pulse" "ea4500:white:pulse" "1" ucidef_set_led_default "pulse" "pulse" "ea4500:white:pulse" "1"
;; ;;
"goflexhome" | \
"goflexnet") "goflexnet")
ucidef_set_led_default "health" "health" "status:green:health" "1" ucidef_set_led_default "health" "health" "status:green:health" "1"
ucidef_set_led_default "fault" "fault" "status:orange:fault" "0" ucidef_set_led_default "fault" "fault" "status:orange:fault" "0"

View file

@ -29,6 +29,7 @@ ucidef_set_interface_loopback
case "$board" in case "$board" in
"dockstar"|\ "dockstar"|\
"goflexhome"|\
"goflexnet"|\ "goflexnet"|\
"iconnect"|\ "iconnect"|\
"ib62x0"|\ "ib62x0"|\

View file

@ -17,6 +17,10 @@ kirkwood_board_detect() {
name="dockstar" name="dockstar"
;; ;;
"Seagate GoFlex Home")
name="goflexhome"
;;
"Seagate GoFlex Net") "Seagate GoFlex Net")
name="goflexnet" name="goflexnet"
;; ;;

View file

@ -123,6 +123,9 @@ Image/InstallKernel/Template/EA3500=$(call Image/InstallKernel/Template,ea3500)
Image/BuildKernel/Template/EA4500=$(call Image/BuildKernel/Template,ea4500) Image/BuildKernel/Template/EA4500=$(call Image/BuildKernel/Template,ea4500)
Image/InstallKernel/Template/EA4500=$(call Image/InstallKernel/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/BuildKernel/Template/GOFLEXNET=$(call Image/BuildKernel/Template,goflexnet)
Image/InstallKernel/Template/GOFLEXNET=$(call Image/InstallKernel/Template,goflexnet) Image/InstallKernel/Template/GOFLEXNET=$(call Image/InstallKernel/Template,goflexnet)

View file

@ -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>;
+ };
+};

View file

@ -20,6 +20,23 @@ DOCKSTAR_UBI_OPTS:="-m 2048 -p 128KiB -s 512"
$(eval $(call Profile,DOCKSTAR)) $(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 define Profile/GOFLEXNET
NAME:=Seagate GoFlexNet NAME:=Seagate GoFlexNet
PACKAGES:= \ PACKAGES:= \