The CLK125 output pin at the ethernet PHY is connected via capacitor to GND and nowhere else. Disable it. Also tune the LED masks. The MPP56 and MPP60 pins at the SoC are conected to the μPD720202 USB3.0 chip: - MPP56: wired to PCIe CLKREQ# (out) - MPP60: wired to PCIe RESET# (in) Configure the pcie pinmux for these pins. Signed-off-by: Daniel González Cabanelas <dgcbueu@gmail.com>
448 lines
8.6 KiB
Text
448 lines
8.6 KiB
Text
// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
|
|
/*
|
|
* Device Tree file for Buffalo LinkStation LS421DE
|
|
*
|
|
* Copyright (C) 2020 Daniel González Cabanelas <dgcbueu@gmail.com>
|
|
*/
|
|
|
|
/dts-v1/;
|
|
|
|
#include "armada-370.dtsi"
|
|
#include "mvebu-linkstation-fan.dtsi"
|
|
#include <dt-bindings/gpio/gpio.h>
|
|
#include <dt-bindings/input/input.h>
|
|
#include <dt-bindings/thermal/thermal.h>
|
|
|
|
/ {
|
|
model = "Buffalo LinkStation LS421DE";
|
|
compatible = "buffalo,ls421de", "marvell,armada370", "marvell,armada-370-xp";
|
|
|
|
aliases {
|
|
led-boot = &led_boot;
|
|
led-failsafe = &led_failsafe;
|
|
led-running = &led_power;
|
|
led-upgrade = &led_upgrade;
|
|
};
|
|
|
|
chosen {
|
|
bootargs = "earlycon";
|
|
stdout-path = "serial0:115200n8";
|
|
append-rootblock = "nullparameter="; /* override the bootloader args */
|
|
};
|
|
|
|
memory {
|
|
device_type = "memory";
|
|
reg = <0x00000000 0x20000000>; /* 512 MB */
|
|
};
|
|
|
|
soc {
|
|
ranges = <MBUS_ID(0xf0, 0x01) 0 0xd0000000 0x100000
|
|
MBUS_ID(0x01, 0xe0) 0 0xfff00000 0x100000
|
|
MBUS_ID(0x09, 0x01) 0 0xf1100000 0x10000>;
|
|
};
|
|
|
|
system_fan: gpio_fan {
|
|
gpios = <&gpio0 13 GPIO_ACTIVE_HIGH
|
|
&gpio0 14 GPIO_ACTIVE_HIGH>;
|
|
alarm-gpios = <&gpio0 10 GPIO_ACTIVE_HIGH>;
|
|
|
|
#cooling-cells = <2>;
|
|
};
|
|
|
|
thermal-zones {
|
|
hdd-thermal {
|
|
polling-delay = <20000>;
|
|
polling-delay-passive = <2000>;
|
|
|
|
thermal-sensors = <&hdd0_temp>; /* only one drivetemp sensor is supported */
|
|
|
|
trips {
|
|
hdd_alert1: trip1 {
|
|
temperature = <36000>;
|
|
hysteresis = <2000>;
|
|
type = "active";
|
|
};
|
|
hdd_alert2: trip2 {
|
|
temperature = <44000>;
|
|
hysteresis = <2000>;
|
|
type = "active";
|
|
};
|
|
hdd_alert3: trip3 {
|
|
temperature = <52000>;
|
|
hysteresis = <2000>;
|
|
type = "passive";
|
|
};
|
|
hdd_crit: trip4 {
|
|
temperature = <60000>;
|
|
hysteresis = <2000>;
|
|
type = "critical";
|
|
};
|
|
};
|
|
|
|
cooling-maps {
|
|
map1 {
|
|
trip = <&hdd_alert1>;
|
|
cooling-device = <&system_fan THERMAL_NO_LIMIT 1>;
|
|
};
|
|
map2 {
|
|
trip = <&hdd_alert2>;
|
|
cooling-device = <&system_fan 2 2>;
|
|
};
|
|
map3 {
|
|
trip = <&hdd_alert3>;
|
|
cooling-device = <&system_fan 3 THERMAL_NO_LIMIT>;
|
|
};
|
|
};
|
|
};
|
|
|
|
ethphy-thermal {
|
|
polling-delay = <20000>;
|
|
polling-delay-passive = <2000>;
|
|
|
|
thermal-sensors = <ðphy0>;
|
|
|
|
trips {
|
|
ethphy_alert1: trip1 {
|
|
temperature = <65000>;
|
|
hysteresis = <4000>;
|
|
type = "passive";
|
|
};
|
|
|
|
ethphy_crit: trip2 {
|
|
temperature = <100000>;
|
|
hysteresis = <2000>;
|
|
type = "critical";
|
|
};
|
|
};
|
|
|
|
cooling-maps {
|
|
map1 {
|
|
trip = <ðphy_alert1>;
|
|
cooling-device = <&system_fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
|
|
};
|
|
|
|
};
|
|
};
|
|
};
|
|
|
|
gpio_keys {
|
|
compatible = "gpio-keys";
|
|
pinctrl-0 = <&pmx_buttons>;
|
|
pinctrl-names = "default";
|
|
|
|
power {
|
|
label = "Power Switch";
|
|
linux,code = <KEY_POWER>;
|
|
linux,input-type = <EV_SW>;
|
|
gpios = <&gpio0 15 GPIO_ACTIVE_LOW>;
|
|
};
|
|
|
|
function {
|
|
label = "Function Button";
|
|
linux,code = <KEY_CONFIG>;
|
|
gpios = <&gpio0 16 GPIO_ACTIVE_LOW>;
|
|
};
|
|
};
|
|
|
|
gpio_leds {
|
|
compatible = "gpio-leds";
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&pmx_leds1 &pmx_leds2>;
|
|
|
|
system_red {
|
|
label = "ls421de:red:system";
|
|
gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
|
|
led_power: power_white {
|
|
label = "ls421de:white:power";
|
|
gpios = <&gpio1 22 GPIO_ACTIVE_HIGH>;
|
|
default-state = "on";
|
|
};
|
|
|
|
led_failsafe: power_red {
|
|
label = "ls421de:red:power";
|
|
gpios = <&gpio1 23 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
|
|
led_upgrade: power_orange {
|
|
label = "ls421de:orange:power";
|
|
gpios = <&gpio1 25 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
|
|
led_boot: system_white {
|
|
label = "ls421de:white:system";
|
|
gpios = <&gpio1 27 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
|
|
hdd1_red {
|
|
label = "ls421de:red:hdd1";
|
|
gpios = <&gpio1 29 GPIO_ACTIVE_HIGH>;
|
|
linux,default-trigger = "ata1";
|
|
};
|
|
|
|
hdd2_red {
|
|
label = "ls421de:red:hdd2";
|
|
gpios = <&gpio1 30 GPIO_ACTIVE_HIGH>;
|
|
linux,default-trigger = "ata2";
|
|
};
|
|
};
|
|
|
|
regulators {
|
|
compatible = "simple-bus";
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
pinctrl-0 = <&pmx_power_usb &pmx_power_hdd1 &pmx_power_hdd2>;
|
|
pinctrl-names = "default";
|
|
|
|
usb_power: regulator@0 {
|
|
compatible = "regulator-fixed";
|
|
reg = <0>;
|
|
regulator-name = "USB";
|
|
regulator-min-microvolt = <5000000>;
|
|
regulator-max-microvolt = <5000000>;
|
|
enable-active-high;
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
gpio = <&gpio0 5 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
|
|
sata1_power: regulator@1 {
|
|
compatible = "regulator-fixed";
|
|
reg = <1>;
|
|
regulator-name = "HDD1";
|
|
regulator-min-microvolt = <12000000>;
|
|
regulator-max-microvolt = <12000000>;
|
|
startup-delay-us = <2000000>;
|
|
enable-active-high;
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
gpio = <&gpio0 8 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
|
|
sata2_power: regulator@2 {
|
|
compatible = "regulator-fixed";
|
|
reg = <2>;
|
|
regulator-name = "HDD2";
|
|
regulator-min-microvolt = <12000000>;
|
|
regulator-max-microvolt = <12000000>;
|
|
startup-delay-us = <4000000>;
|
|
enable-active-high;
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
gpio = <&gpio0 9 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
};
|
|
};
|
|
|
|
&coherencyfab {
|
|
broken-idle;
|
|
};
|
|
|
|
ð1 {
|
|
pinctrl-0 = <&ge1_rgmii_pins>;
|
|
pinctrl-names = "default";
|
|
status = "okay";
|
|
phy-handle = <ðphy0>;
|
|
phy-connection-type = "rgmii-id";
|
|
};
|
|
|
|
&i2c0 {
|
|
pinctrl-0 = <&i2c0_pins>;
|
|
pinctrl-names = "default";
|
|
clock-frequency = <100000>;
|
|
status = "okay";
|
|
|
|
rs5c372a: rs5c372a@32 {
|
|
compatible = "ricoh,rs5c372a";
|
|
reg = <0x32>;
|
|
wakeup-source;
|
|
};
|
|
};
|
|
|
|
&mdio {
|
|
pinctrl-0 = <&mdio_pins>;
|
|
pinctrl-names = "default";
|
|
|
|
ethphy0: ethernet-phy@0 { /* Marvell 88E1518 */
|
|
reg = <0>;
|
|
marvell,reg-init = <0x2 0x10 0xffff 0x0006>, /* disable CLK125 */
|
|
<0x3 0x10 0x0000 0x1991>, /* LED function */
|
|
<0x3 0x11 0x0000 0x4401>, /* LED polarity */
|
|
<0x3 0x12 0x0000 0x4905>; /* LED timer */
|
|
#thermal-sensor-cells = <0>;
|
|
};
|
|
};
|
|
|
|
&pciec {
|
|
status = "okay";
|
|
pinctrl-0 = <&pmx_pcie>;
|
|
pinctrl-names = "default";
|
|
|
|
/* Connected to uPD720202 USB 3.0 Host */
|
|
pcie@1,0 {
|
|
status = "okay";
|
|
};
|
|
};
|
|
|
|
&pmsu {
|
|
pinctrl-0 = <&pmx_power_cpu>;
|
|
pinctrl-names = "default";
|
|
};
|
|
|
|
&rtc {
|
|
status = "disabled";
|
|
};
|
|
|
|
&sata {
|
|
nr-ports = <2>;
|
|
status = "okay";
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
hdd0_temp: sata-port@0 {
|
|
reg = <0>;
|
|
#thermal-sensor-cells = <0>;
|
|
};
|
|
|
|
hdd1_temp: sata-port@1 {
|
|
reg = <1>;
|
|
#thermal-sensor-cells = <0>;
|
|
};
|
|
};
|
|
|
|
&sdio {
|
|
pinctrl-0 = <&sdio_pins2>;
|
|
pinctrl-names = "default";
|
|
status = "okay";
|
|
/* No CD or WP GPIOs */
|
|
broken-cd;
|
|
};
|
|
|
|
&uart0 {
|
|
status = "okay";
|
|
};
|
|
|
|
&usb0 {
|
|
status = "okay";
|
|
};
|
|
|
|
&nand_controller {
|
|
status = "okay";
|
|
|
|
nand@0 {
|
|
reg = <0>;
|
|
label = "pxa3xx_nand-0";
|
|
nand-rb = <0>;
|
|
marvell,nand-keep-config;
|
|
nand-on-flash-bbt;
|
|
nand-ecc-strength = <4>;
|
|
nand-ecc-step-size = <512>;
|
|
|
|
partitions {
|
|
compatible = "fixed-partitions";
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
|
|
partition@0 {
|
|
label = "kernel";
|
|
reg = <0x00000000 0x02000000>; /* 32 MiB */
|
|
};
|
|
|
|
partition@2000000 {
|
|
label = "ubi";
|
|
reg = <0x02000000 0x1e000000>; /* 480 MiB */
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
&spi0 {
|
|
status = "okay";
|
|
pinctrl-0 = <&spi0_pins2>;
|
|
pinctrl-names = "default";
|
|
|
|
spi-flash@0 {
|
|
compatible = "mxicy,mx25l8005", "jedec,spi-nor";
|
|
reg = <0>; /* Chip select 0 */
|
|
spi-max-frequency = <50000000>;
|
|
|
|
partitions {
|
|
compatible = "fixed-partitions";
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
|
|
partition@0 {
|
|
reg = <0x00000 0xf0000>; /* 960 KiB*/
|
|
label = "u-boot";
|
|
read-only;
|
|
};
|
|
partition@f0000 {
|
|
reg = <0xf0000 0x10000>; /* 64 KiB */
|
|
label = "u-boot-env";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
&pinctrl {
|
|
pmx_power_cpu: pmx-power-cpu {
|
|
marvell,pins = "mpp4";
|
|
marvell,function = "vdd";
|
|
};
|
|
|
|
pmx_power_usb: pmx-power-usb {
|
|
marvell,pins = "mpp5";
|
|
marvell,function = "gpo";
|
|
};
|
|
|
|
pmx_power_hdd1: pmx-power-hdd1 {
|
|
marvell,pins = "mpp8";
|
|
marvell,function = "gpio";
|
|
};
|
|
|
|
pmx_power_hdd2: pmx-power-hdd2 {
|
|
marvell,pins = "mpp9";
|
|
marvell,function = "gpo";
|
|
};
|
|
|
|
pmx_fan_lock: pmx-fan-lock {
|
|
marvell,pins = "mpp10";
|
|
marvell,function = "gpio";
|
|
};
|
|
|
|
pmx_hdd_present: pmx-hdd-present {
|
|
marvell,pins = "mpp11", "mpp12";
|
|
marvell,function = "gpio";
|
|
};
|
|
|
|
pmx_fan_high: pmx-fan-high {
|
|
marvell,pins = "mpp13";
|
|
marvell,function = "gpio";
|
|
};
|
|
|
|
pmx_fan_low: pmx-fan-low {
|
|
marvell,pins = "mpp14";
|
|
marvell,function = "gpio";
|
|
};
|
|
|
|
pmx_buttons: pmx-buttons {
|
|
marvell,pins = "mpp15", "mpp16";
|
|
marvell,function = "gpio";
|
|
};
|
|
|
|
pmx_leds1: pmx-leds {
|
|
marvell,pins = "mpp7", "mpp54", "mpp59", "mpp61";
|
|
marvell,function = "gpo";
|
|
};
|
|
|
|
pmx_leds2: pmx-leds {
|
|
marvell,pins = "mpp55", "mpp57", "mpp62";
|
|
marvell,function = "gpio";
|
|
};
|
|
|
|
pmx_pcie: pmx-pcie {
|
|
marvell,pins = "mpp56", "mpp60";
|
|
marvell,function = "pcie";
|
|
};
|
|
};
|