| // 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>; |
| }; |
| }; |
| }; |