Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions target/linux/kirkwood/base-files/etc/board.d/01_leds
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,9 @@ case "$board" in
"guruplug-server-plus")
ucidef_set_led_timer "health" "health" "guruplug:red:health" "200" "800"
;;
"nsa310b")
ucidef_set_led_default "health" "health" "nsa310:green:sys" "1"
;;
"sheevaplug" | \
"sheevaplug-esata")
ucidef_set_led_timer "health" "health" "sheevaplug:blue:health" "200" "800"
Expand Down
8 changes: 6 additions & 2 deletions target/linux/kirkwood/base-files/etc/board.d/02_network
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,17 @@ case "$board" in
"sheevaplug-esata")
ucidef_set_interface_lan "eth0" "dhcp"
;;
"guruplug-server-plus")
ucidef_set_interface_lan "eth0 eth1" "dhcp"
;;
"linksys-audi"|\
"linksys-viper")
ucidef_add_switch "switch0" \
"0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "5@eth0" "6@eth1"
;;
"guruplug-server-plus")
ucidef_set_interface_lan "eth0 eth1" "dhcp"
"nsa310b")
ucidef_set_interface_lan "eth0" "dhcp"
ucidef_set_interface_macaddr "lan" $( fw_printenv ethaddr | awk -F"=" '{print $2}' )
;;
*)
ucidef_set_interface_lan "eth0"
Expand Down
3 changes: 3 additions & 0 deletions target/linux/kirkwood/base-files/etc/diag.sh
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,9 @@ get_status_led() {
linksys-viper)
status_led="viper:white:health"
;;
nsa310b)
status_led="nsa310:green:sys"
;;
esac
}

Expand Down
21 changes: 21 additions & 0 deletions target/linux/kirkwood/base-files/etc/init.d/nsa310_fancontrol
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#!/bin/sh /etc/rc.common

START=98
boot() {
. /lib/functions.sh
. /lib/kirkwood.sh

#configuring lm85 onboard temp/fan controller to run the fan on its own
#for more information, please read https://www.kernel.org/doc/Documentation/hwmon/sysfs-interface

path_to_hwmon='/sys/devices/platform/ocp@f1000000/f1011000.i2c/i2c-0/0-002e/hwmon/hwmon0'

case $(kirkwood_board_name) in
nsa310b)
echo 2 > "$path_to_hwmon/pwm1_enable" # fan is on pwm1
echo 1 > "$path_to_hwmon/pwm1_auto_channels" # temp1 is the only one that changes
echo 23000 > "$path_to_hwmon/temp1_auto_temp_min"
echo 43000 > "$path_to_hwmon/temp1_auto_temp_max" # next step is 49600 millicelsius, or 50 celsius, 43 celsius is better
;;
esac
}
4 changes: 4 additions & 0 deletions target/linux/kirkwood/base-files/lib/kirkwood.sh
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,10 @@ kirkwood_board_detect() {
name="sheevaplug-esata"
;;

"ZyXEL NSA310b")
name="nsa310b"
;;

"ZyXEL NSA310S")
name="nsa310s"
;;
Expand Down
9 changes: 8 additions & 1 deletion target/linux/kirkwood/image/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/image.mk

KERNEL_LOADADDR:=0x8000
TARGET_DEVICES = linksys-audi linksys-viper dockstar goflexnet goflexhome iconnect pogo_e02 ib62x0
TARGET_DEVICES = linksys-audi linksys-viper dockstar goflexnet goflexhome iconnect pogo_e02 ib62x0 nsa310b

UBI_OPTS := -m 2048 -p 128KiB -s 512
UBIFS_OPTS := -m 2048 -e 126KiB -c 4096
Expand Down Expand Up @@ -80,6 +80,13 @@ $(Device/dockstar)
DEVICE_DTS := kirkwood-iconnect
endef

define Device/nsa310b
$(Device/dockstar)
DEVICE_TITLE := ZyXEL NSA310b
DEVICE_DTS := kirkwood-nsa310b
DEVICE_PACKAGES := kmod-r8169 kmod-gpio-button-hotplug kmod-hwmon-lm85
endef

define Device/pogo_e02
$(Device/dockstar)
DEVICE_TITLE := Cloud Engines Pogoplug E02
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
--- a/arch/arm/boot/dts/kirkwood-nsa3x0-common.dtsi
+++ b/arch/arm/boot/dts/kirkwood-nsa3x0-common.dtsi
@@ -121,39 +121,15 @@

partition@0 {
label = "uboot";
- reg = <0x0000000 0x0100000>;
+ reg = <0x0000000 0x00c0000>;
read-only;
};
partition@100000 {
label = "uboot_env";
- reg = <0x0100000 0x0080000>;
+ reg = <0x00c0000 0x0080000>;
};
- partition@180000 {
- label = "key_store";
- reg = <0x0180000 0x0080000>;
- };
- partition@200000 {
- label = "info";
- reg = <0x0200000 0x0080000>;
- };
- partition@280000 {
- label = "etc";
- reg = <0x0280000 0x0a00000>;
- };
- partition@c80000 {
- label = "kernel_1";
- reg = <0x0c80000 0x0a00000>;
- };
- partition@1680000 {
- label = "rootfs1";
- reg = <0x1680000 0x2fc0000>;
- };
- partition@4640000 {
- label = "kernel_2";
- reg = <0x4640000 0x0a00000>;
- };
- partition@5040000 {
- label = "rootfs2";
- reg = <0x5040000 0x2fc0000>;
+ partition@140000 {
+ label = "ubi";
+ reg = <0x0140000 0x7ec0000>;
};
};
169 changes: 169 additions & 0 deletions target/linux/kirkwood/patches-4.4/191-nsa310b.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,169 @@
kirkwood: add nsa310b dtb, a zyxel nsa310 variant

add support to a nsa310 variant with red/green usb led
and lm85 temp/fan controller

Signed-off-by: Alberto Bursi <alberto.bursi@outlook.it>

NOTE: this patch can be upstreamed as-is, LEDE-specific
nand partitions are set in another patch

--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -203,6 +203,7 @@ dtb-$(CONFIG_MACH_KIRKWOOD) += \
kirkwood-ns2mini.dtb \
kirkwood-nsa310.dtb \
kirkwood-nsa310a.dtb \
+ kirkwood-nsa310b.dtb \
kirkwood-openblocks_a6.dtb \
kirkwood-openblocks_a7.dtb \
kirkwood-openrd-base.dtb \
--- /dev/null
+++ b/arch/arm/boot/dts/kirkwood-nsa310b.dts
@@ -0,0 +1,146 @@
+/dts-v1/;
+
+#include "kirkwood-nsa3x0-common.dtsi"
+
+/*
+ * There are at least two different NSA310 designs. This variant has
+ * a red/green USB Led (same as nsa310) and a lm85 temp/fan controller.
+ */
+
+/ {
+ model = "ZyXEL NSA310b";
+ compatible = "zyxel,nsa310a", "zyxel,nsa310", "marvell,kirkwood-88f6281", "marvell,kirkwood";
+
+ memory {
+ device_type = "memory";
+ reg = <0x00000000 0x10000000>;
+ };
+
+ chosen {
+ bootargs = "console=ttyS0,115200";
+ stdout-path = "&uart0";
+ };
+
+ mbus {
+ pcie-controller {
+ status = "okay";
+
+ pcie@1,0 {
+ status = "okay";
+ };
+ };
+ };
+
+ ocp@f1000000 {
+ pinctrl: pin-controller@10000 {
+ pinctrl-0 = <&pmx_unknown>;
+ pinctrl-names = "default";
+
+ pmx_led_esata_green: pmx-led-esata-green {
+ marvell,pins = "mpp12";
+ marvell,function = "gpio";
+ };
+
+ pmx_led_esata_red: pmx-led-esata-red {
+ marvell,pins = "mpp13";
+ marvell,function = "gpio";
+ };
+
+ pmx_led_usb_green: pmx-led-usb-green {
+ marvell,pins = "mpp15";
+ marvell,function = "gpio";
+ };
+
+ pmx_led_usb_red: pmx-led-usb-red {
+ marvell,pins = "mpp16";
+ marvell,function = "gpio";
+ };
+
+ pmx_led_sys_green: pmx-led-sys-green {
+ marvell,pins = "mpp28";
+ marvell,function = "gpio";
+ };
+
+ pmx_led_sys_red: pmx-led-sys-red {
+ marvell,pins = "mpp29";
+ marvell,function = "gpio";
+ };
+
+ pmx_led_hdd_green: pmx-led-hdd-green {
+ marvell,pins = "mpp41";
+ marvell,function = "gpio";
+ };
+
+ pmx_led_hdd_red: pmx-led-hdd-red {
+ marvell,pins = "mpp42";
+ marvell,function = "gpio";
+ };
+
+ pmx_unknown: pmx-unknown {
+ marvell,pins = "mpp44";
+ marvell,function = "gpio";
+ };
+
+ };
+
+ i2c@11000 {
+ status = "okay";
+
+ lm85@2e {
+ compatible = "national,lm85";
+ reg = <0x2e>;
+ };
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+ pinctrl-0 = <&pmx_led_esata_green &pmx_led_esata_red
+ &pmx_led_usb_green &pmx_led_usb_red
+ &pmx_led_sys_green &pmx_led_sys_red
+ &pmx_led_copy_green &pmx_led_copy_red
+ &pmx_led_hdd_green &pmx_led_hdd_red>;
+ pinctrl-names = "default";
+
+ green-sys {
+ label = "nsa310:green:sys";
+ gpios = <&gpio0 28 GPIO_ACTIVE_HIGH>;
+ };
+ red-sys {
+ label = "nsa310:red:sys";
+ gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>;
+ };
+ green-hdd {
+ label = "nsa310:green:hdd";
+ gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
+ };
+ red-hdd {
+ label = "nsa310:red:hdd";
+ gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
+ };
+ green-esata {
+ label = "nsa310:green:esata";
+ gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
+ };
+ red-esata {
+ label = "nsa310:red:esata";
+ gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
+ };
+ green-usb {
+ label = "nsa310:green:usb";
+ gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>;
+ };
+ red-usb {
+ label = "nsa310:red:usb";
+ gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>;
+ };
+ green-copy {
+ label = "nsa310:green:copy";
+ gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
+ };
+ red-copy {
+ label = "nsa310:red:copy";
+ gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
+ };
+ };
+};
Original file line number Diff line number Diff line change
@@ -1,3 +1,13 @@
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -204,6 +204,7 @@ dtb-$(CONFIG_MACH_KIRKWOOD) += \
kirkwood-nsa310.dtb \
kirkwood-nsa310a.dtb \
kirkwood-nsa310b.dtb \
+ kirkwood-nsa310s.dtb \
kirkwood-openblocks_a6.dtb \
kirkwood-openblocks_a7.dtb \
kirkwood-openrd-base.dtb \
--- /dev/null
+++ b/arch/arm/boot/dts/kirkwood-nsa310s.dts
@@ -0,0 +1,287 @@
Expand Down Expand Up @@ -288,13 +298,3 @@
+ phy-handle = <&ethphy0>;
+ };
+};
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -203,6 +203,7 @@ dtb-$(CONFIG_MACH_KIRKWOOD) += \
kirkwood-ns2mini.dtb \
kirkwood-nsa310.dtb \
kirkwood-nsa310a.dtb \
+ kirkwood-nsa310s.dtb \
kirkwood-openblocks_a6.dtb \
kirkwood-openblocks_a7.dtb \
kirkwood-openrd-base.dtb \