// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* ZyXEL NSA310S Board Description
* Copyright 2020-2022 Pawel Dembicki <[email protected]>
* Copyright (c) 2015-2021, Tony Dinh <[email protected]>
* Copyright (c) 2014, Adam Baker <[email protected]>
* Based upon the board setup file created by Peter Schildmann
*/
/dts-v1/;
#include "kirkwood.dtsi"
#include "kirkwood-6281.dtsi"
#include <dt-bindings/leds/common.h>
/ {
model = "ZyXEL NSA310S";
compatible = "zyxel,nsa310s", "marvell,kirkwood-88f6702", "marvell,kirkwood";
memory {
device_type = "memory";
reg = <0x00000000 0x10000000>;
};
chosen {
bootargs = "console=ttyS0,115200n8 earlyprintk";
stdout-path = &uart0;
};
gpio_poweroff {
compatible = "gpio-poweroff";
pinctrl-0 = <&pmx_pwr_off>;
pinctrl-names = "default";
gpios = <&gpio0 27 GPIO_ACTIVE_HIGH>;
};
keys {
compatible = "gpio-keys";
pinctrl-0 = <&pmx_buttons>;
pinctrl-names = "default";
button-power {
label = "Power Button";
linux,code = <KEY_POWER>;
gpios = <&gpio0 26 GPIO_ACTIVE_HIGH>;
};
button-copy {
label = "Copy Button";
linux,code = <KEY_COPY>;
gpios = <&gpio0 25 GPIO_ACTIVE_LOW>;
};
button-reset {
label = "Reset Button";
linux,code = <KEY_RESTART>;
gpios = <&gpio0 24 GPIO_ACTIVE_LOW>;
};
};
leds {
compatible = "gpio-leds";
pinctrl-0 = <&pmx_leds>;
pinctrl-names = "default";
led-1 {
function = LED_FUNCTION_DISK_ERR;
color = <LED_COLOR_ID_RED>;
gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
};
led-2 {
function = LED_FUNCTION_USB;
color = <LED_COLOR_ID_GREEN>;
gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "usb-host";
};
led-3 {
function = LED_FUNCTION_DISK;
color = <LED_COLOR_ID_GREEN>;
gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "ata1";
};
led-4 {
function = LED_FUNCTION_INDICATOR;
color = <LED_COLOR_ID_GREEN>;
gpios = <&gpio0 22 GPIO_ACTIVE_HIGH>;
};
led-5 {
function = LED_FUNCTION_INDICATOR;
color = <LED_COLOR_ID_RED>;
gpios = <&gpio0 23 GPIO_ACTIVE_HIGH>;
};
led-6 {
function = LED_FUNCTION_STATUS;
color = <LED_COLOR_ID_GREEN>;
gpios = <&gpio0 28 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "default-on";
};
led-7 {
function = LED_FUNCTION_STATUS;
color = <LED_COLOR_ID_RED>;
gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>;
};
};
usb0_power: regulator@1 {
compatible = "regulator-fixed";
regulator-name = "USB Power";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
regulator-always-on;
regulator-boot-on;
gpio = <&gpio0 21 GPIO_ACTIVE_HIGH>;
};
sata1_power: regulator@2 {
compatible = "regulator-fixed";
regulator-name = "SATA1 Power";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
regulator-always-on;
regulator-boot-on;
gpio = <&gpio1 1 GPIO_ACTIVE_HIGH>;
};
thermal-zones {
disk-thermal {
polling-delay = <20000>;
polling-delay-passive = <2000>;
thermal-sensors = <&hdd_temp>;
trips {
disk_alert: disk-alert {
temperature = <40000>;
hysteresis = <5000>;
type = "active";
};
disk_crit: disk-crit {
temperature = <60000>;
hysteresis = <2000>;
type = "critical";
};
};
};
};
};
ð0 {
status = "okay";
ethernet0-port@0 {
phy-handle = <ðphy0>;
};
};
&i2c0 {
status = "okay";
rtc@68 {
compatible = "htk,ht1382";
reg = <0x68>;
};
};
&mdio {
status = "okay";
ethphy0: ethernet-phy@1 {
reg = <1>;
phy-mode = "rgmii-id";
marvell,reg-init = <0x1 0x16 0x0 0x3>,
<0x1 0x10 0x0 0x1017>,
<0x1 0x11 0x0 0x4408>,
<0x1 0x16 0x0 0x0>;
};
};
&nand {
status = "okay";
chip-delay = <35>;
partition@0 {
label = "uboot";
reg = <0x0000000 0x00c0000>;
read-only;
};
partition@c0000 {
label = "uboot_env";
reg = <0x00c0000 0x0080000>;
};
partition@140000 {
label = "ubi";
reg = <0x0140000 0x7ec0000>;
};
};
&pciec {
status = "okay";
};
&pcie0 {
status = "okay";
};
&pinctrl {
pinctrl-names = "default";
pmx_buttons: pmx-buttons {
marvell,pins = "mpp24", "mpp25", "mpp26";
marvell,function = "gpio";
};
pmx_leds: pmx-leds {
marvell,pins = "mpp13", "mpp15", "mpp16", "mpp22", "mpp23",
"mpp28", "mpp29";
marvell,function = "gpio";
};
pmx_power: pmx-power {
marvell,pins = "mpp21", "mpp33";
marvell,function = "gpio";
};
pmx_pwr_off: pmx-pwr-off {
marvell,pins = "mpp27";
marvell,function = "gpio";
};
};
&rtc {
status = "disabled";
};
&sata {
status = "okay";
nr-ports = <1>;
#address-cells = <1>;
#size-cells = <0>;
hdd_temp: sata-port@0 {
reg = <0>;
#thermal-sensor-cells = <0>;
};
};
&uart0 {
status = "okay";
};