324 lines
6.9 KiB
Plaintext
324 lines
6.9 KiB
Plaintext
|
// SPDX-License-Identifier: GPL-2.0
|
||
|
/*
|
||
|
* Device Tree file for D-Link DNS-313 1-Bay Network Storage Enclosure
|
||
|
*/
|
||
|
|
||
|
/dts-v1/;
|
||
|
|
||
|
#include "gemini.dtsi"
|
||
|
#include <dt-bindings/input/input.h>
|
||
|
#include <dt-bindings/thermal/thermal.h>
|
||
|
|
||
|
/ {
|
||
|
model = "D-Link DNS-313 1-Bay Network Storage Enclosure";
|
||
|
compatible = "dlink,dns-313", "cortina,gemini";
|
||
|
#address-cells = <1>;
|
||
|
#size-cells = <1>;
|
||
|
|
||
|
memory@0 {
|
||
|
/* 64 MB SDRAM in a Nanya NT5DS32M16BS-6K package */
|
||
|
device_type = "memory";
|
||
|
reg = <0x00000000 0x4000000>;
|
||
|
};
|
||
|
|
||
|
aliases {
|
||
|
mdio-gpio0 = &mdio0;
|
||
|
};
|
||
|
|
||
|
chosen {
|
||
|
bootargs = "console=ttyS0,19200n8 root=/dev/sda4 rw rootwait";
|
||
|
stdout-path = "uart0:19200n8";
|
||
|
};
|
||
|
|
||
|
gpio_keys {
|
||
|
compatible = "gpio-keys";
|
||
|
|
||
|
button-esc {
|
||
|
debounce-interval = <100>;
|
||
|
wakeup-source;
|
||
|
linux,code = <KEY_ESC>;
|
||
|
label = "reset";
|
||
|
gpios = <&gpio1 31 GPIO_ACTIVE_LOW>;
|
||
|
};
|
||
|
};
|
||
|
|
||
|
leds {
|
||
|
compatible = "gpio-leds";
|
||
|
led-power {
|
||
|
label = "dns313:blue:power";
|
||
|
gpios = <&gpio0 1 GPIO_ACTIVE_HIGH>;
|
||
|
default-state = "on";
|
||
|
linux,default-trigger = "heartbeat";
|
||
|
};
|
||
|
led-disk-blue {
|
||
|
label = "dns313:blue:disk";
|
||
|
gpios = <&gpio0 2 GPIO_ACTIVE_HIGH>;
|
||
|
default-state = "off";
|
||
|
};
|
||
|
led-disk-green {
|
||
|
label = "dns313:green:disk";
|
||
|
gpios = <&gpio0 3 GPIO_ACTIVE_HIGH>;
|
||
|
default-state = "off";
|
||
|
linux,default-trigger = "disk-read";
|
||
|
};
|
||
|
led-disk-red {
|
||
|
label = "dns313:red:disk";
|
||
|
gpios = <&gpio0 4 GPIO_ACTIVE_HIGH>;
|
||
|
default-state = "off";
|
||
|
linux,default-trigger = "disk-write";
|
||
|
};
|
||
|
};
|
||
|
|
||
|
/*
|
||
|
* This is a ADDA AD0405GB-G73 fan @3000 and 6000 RPM.
|
||
|
*/
|
||
|
fan0: gpio-fan {
|
||
|
compatible = "gpio-fan";
|
||
|
gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>,
|
||
|
<&gpio0 12 GPIO_ACTIVE_HIGH>;
|
||
|
gpio-fan,speed-map = <0 0>, <3000 1>, <6000 2>;
|
||
|
#cooling-cells = <2>;
|
||
|
};
|
||
|
|
||
|
/*
|
||
|
* This is the type B USB connector on the device,
|
||
|
* a GPIO-controlled USB VBUS detect
|
||
|
*/
|
||
|
usb1_phy: phy {
|
||
|
compatible = "gpio-usb-b-connector", "usb-b-connector";
|
||
|
#phy-cells = <0>;
|
||
|
vbus-gpios = <&gpio0 18 GPIO_ACTIVE_LOW>;
|
||
|
};
|
||
|
|
||
|
/* Global Mixed-Mode Technology G751 mounted on GPIO I2C */
|
||
|
i2c {
|
||
|
compatible = "i2c-gpio";
|
||
|
sda-gpios = <&gpio0 15 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
|
||
|
scl-gpios = <&gpio0 16 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
|
||
|
#address-cells = <1>;
|
||
|
#size-cells = <0>;
|
||
|
|
||
|
g751: temperature-sensor@48 {
|
||
|
compatible = "gmt,g751";
|
||
|
reg = <0x48>;
|
||
|
#thermal-sensor-cells = <0>;
|
||
|
};
|
||
|
};
|
||
|
|
||
|
thermal-zones {
|
||
|
chassis-thermal {
|
||
|
/* Poll every 20 seconds */
|
||
|
polling-delay = <20000>;
|
||
|
/* Poll every 2nd second when cooling */
|
||
|
polling-delay-passive = <2000>;
|
||
|
|
||
|
thermal-sensors = <&g751>;
|
||
|
|
||
|
/* Tripping points from the fan.script in the rootfs */
|
||
|
trips {
|
||
|
chassis_alert0: chassis-alert0 {
|
||
|
/* At 43 degrees turn on low speed */
|
||
|
temperature = <43000>;
|
||
|
hysteresis = <3000>;
|
||
|
type = "active";
|
||
|
};
|
||
|
chassis_alert1: chassis-alert1 {
|
||
|
/* At 47 degrees turn on high speed */
|
||
|
temperature = <47000>;
|
||
|
hysteresis = <3000>;
|
||
|
type = "active";
|
||
|
};
|
||
|
chassis_crit: chassis-crit {
|
||
|
/* Just shut down at 60 degrees */
|
||
|
temperature = <60000>;
|
||
|
hysteresis = <2000>;
|
||
|
type = "critical";
|
||
|
};
|
||
|
};
|
||
|
|
||
|
cooling-maps {
|
||
|
map0 {
|
||
|
trip = <&chassis_alert0>;
|
||
|
cooling-device = <&fan0 1 1>;
|
||
|
};
|
||
|
map1 {
|
||
|
trip = <&chassis_alert1>;
|
||
|
cooling-device = <&fan0 2 2>;
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
|
||
|
mdio0: mdio {
|
||
|
compatible = "virtual,mdio-gpio";
|
||
|
/* Uses MDC and MDIO */
|
||
|
gpios = <&gpio0 22 GPIO_ACTIVE_HIGH>, /* MDC */
|
||
|
<&gpio0 21 GPIO_ACTIVE_HIGH>; /* MDIO */
|
||
|
#address-cells = <1>;
|
||
|
#size-cells = <0>;
|
||
|
|
||
|
/* This is a Realtek RTL8211B Gigabit ethernet transceiver */
|
||
|
phy0: ethernet-phy@1 {
|
||
|
reg = <1>;
|
||
|
device_type = "ethernet-phy";
|
||
|
};
|
||
|
};
|
||
|
|
||
|
soc {
|
||
|
flash@30000000 {
|
||
|
/*
|
||
|
* This is a Eon EN29LV400AB 512 KiB flash with
|
||
|
* three partitions.
|
||
|
*/
|
||
|
compatible = "cortina,gemini-flash", "jedec-flash";
|
||
|
status = "okay";
|
||
|
reg = <0x30000000 0x00080000>;
|
||
|
#address-cells = <1>;
|
||
|
#size-cells = <1>;
|
||
|
|
||
|
/*
|
||
|
* This "RedBoot" is the Storlink derivative.
|
||
|
*/
|
||
|
partition@0 {
|
||
|
label = "RedBoot";
|
||
|
reg = <0x00000000 0x00040000>;
|
||
|
read-only;
|
||
|
};
|
||
|
partition@40000 {
|
||
|
label = "MTD1";
|
||
|
reg = <0x00040000 0x00020000>;
|
||
|
read-only;
|
||
|
};
|
||
|
partition@60000 {
|
||
|
label = "MTD2";
|
||
|
reg = <0x00060000 0x00020000>;
|
||
|
read-only;
|
||
|
};
|
||
|
};
|
||
|
|
||
|
syscon: syscon@40000000 {
|
||
|
pinctrl {
|
||
|
/*
|
||
|
*/
|
||
|
gpio0_default_pins: pinctrl-gpio0 {
|
||
|
mux {
|
||
|
function = "gpio0";
|
||
|
groups =
|
||
|
/* Used by LEDs conflicts ICE */
|
||
|
"gpio0bgrp",
|
||
|
/* Used by ? conflicts ICE */
|
||
|
"gpio0cgrp",
|
||
|
/*
|
||
|
* Used by fan & G751, conflicts LPC,
|
||
|
* UART modem lines, SSP
|
||
|
*/
|
||
|
"gpio0egrp",
|
||
|
/* Used by G751 */
|
||
|
"gpio0fgrp",
|
||
|
/* Used by MDIO */
|
||
|
"gpio0igrp";
|
||
|
};
|
||
|
};
|
||
|
gpio1_default_pins: pinctrl-gpio1 {
|
||
|
mux {
|
||
|
function = "gpio1";
|
||
|
/* Used by "reset" button */
|
||
|
groups = "gpio1dgrp";
|
||
|
};
|
||
|
};
|
||
|
pinctrl-gmii {
|
||
|
mux {
|
||
|
function = "gmii";
|
||
|
groups = "gmii_gmac0_grp";
|
||
|
};
|
||
|
/*
|
||
|
* In the vendor Linux tree, these values are set for the C3
|
||
|
* version of the SL3512 ASIC with the comment "benson suggest"
|
||
|
*/
|
||
|
conf0 {
|
||
|
pins = "R8 GMAC0 RXDV", "U11 GMAC1 RXDV";
|
||
|
skew-delay = <0>;
|
||
|
};
|
||
|
conf1 {
|
||
|
pins = "T8 GMAC0 RXC";
|
||
|
skew-delay = <10>;
|
||
|
};
|
||
|
conf2 {
|
||
|
pins = "T11 GMAC1 RXC";
|
||
|
skew-delay = <15>;
|
||
|
};
|
||
|
conf3 {
|
||
|
pins = "P8 GMAC0 TXEN", "V11 GMAC1 TXEN";
|
||
|
skew-delay = <7>;
|
||
|
};
|
||
|
conf4 {
|
||
|
pins = "V7 GMAC0 TXC", "P10 GMAC1 TXC";
|
||
|
skew-delay = <10>;
|
||
|
};
|
||
|
conf5 {
|
||
|
/* The data lines all have default skew */
|
||
|
pins = "U8 GMAC0 RXD0", "V8 GMAC0 RXD1",
|
||
|
"P9 GMAC0 RXD2", "R9 GMAC0 RXD3",
|
||
|
"R11 GMAC1 RXD0", "P11 GMAC1 RXD1",
|
||
|
"V12 GMAC1 RXD2", "U12 GMAC1 RXD3",
|
||
|
"R10 GMAC1 TXD0", "T10 GMAC1 TXD1",
|
||
|
"U10 GMAC1 TXD2", "V10 GMAC1 TXD3";
|
||
|
skew-delay = <7>;
|
||
|
};
|
||
|
conf6 {
|
||
|
pins = "U7 GMAC0 TXD0", "T7 GMAC0 TXD1",
|
||
|
"R7 GMAC0 TXD2", "P7 GMAC0 TXD3";
|
||
|
skew-delay = <5>;
|
||
|
};
|
||
|
/* Set up drive strength on GMAC0 to 16 mA */
|
||
|
conf7 {
|
||
|
groups = "gmii_gmac0_grp";
|
||
|
drive-strength = <16>;
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
|
||
|
sata: sata@46000000 {
|
||
|
/* The ROM uses this muxmode */
|
||
|
cortina,gemini-ata-muxmode = <0>;
|
||
|
cortina,gemini-enable-sata-bridge;
|
||
|
status = "okay";
|
||
|
};
|
||
|
|
||
|
gpio0: gpio@4d000000 {
|
||
|
pinctrl-names = "default";
|
||
|
pinctrl-0 = <&gpio0_default_pins>;
|
||
|
};
|
||
|
|
||
|
gpio1: gpio@4e000000 {
|
||
|
pinctrl-names = "default";
|
||
|
pinctrl-0 = <&gpio1_default_pins>;
|
||
|
};
|
||
|
|
||
|
ethernet@60000000 {
|
||
|
status = "okay";
|
||
|
|
||
|
ethernet-port@0 {
|
||
|
phy-mode = "rgmii";
|
||
|
phy-handle = <&phy0>;
|
||
|
};
|
||
|
ethernet-port@1 {
|
||
|
/* Not used in this platform */
|
||
|
};
|
||
|
};
|
||
|
|
||
|
ide@63000000 {
|
||
|
status = "okay";
|
||
|
};
|
||
|
|
||
|
usb@69000000 {
|
||
|
status = "okay";
|
||
|
dr_mode = "peripheral";
|
||
|
usb-phy = <&usb1_phy>;
|
||
|
pinctrl-names = "default";
|
||
|
pinctrl-0 = <&usb_default_pins>;
|
||
|
};
|
||
|
};
|
||
|
};
|