1*724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0 2*724ba675SRob Herring/* 3*724ba675SRob Herring * Device Tree file for D-Link DNS-313 1-Bay Network Storage Enclosure 4*724ba675SRob Herring */ 5*724ba675SRob Herring 6*724ba675SRob Herring/dts-v1/; 7*724ba675SRob Herring 8*724ba675SRob Herring#include "gemini.dtsi" 9*724ba675SRob Herring#include <dt-bindings/input/input.h> 10*724ba675SRob Herring#include <dt-bindings/thermal/thermal.h> 11*724ba675SRob Herring 12*724ba675SRob Herring/ { 13*724ba675SRob Herring model = "D-Link DNS-313 1-Bay Network Storage Enclosure"; 14*724ba675SRob Herring compatible = "dlink,dns-313", "cortina,gemini"; 15*724ba675SRob Herring #address-cells = <1>; 16*724ba675SRob Herring #size-cells = <1>; 17*724ba675SRob Herring 18*724ba675SRob Herring memory@0 { 19*724ba675SRob Herring /* 64 MB SDRAM in a Nanya NT5DS32M16BS-6K package */ 20*724ba675SRob Herring device_type = "memory"; 21*724ba675SRob Herring reg = <0x00000000 0x4000000>; 22*724ba675SRob Herring }; 23*724ba675SRob Herring 24*724ba675SRob Herring aliases { 25*724ba675SRob Herring mdio-gpio0 = &mdio0; 26*724ba675SRob Herring }; 27*724ba675SRob Herring 28*724ba675SRob Herring chosen { 29*724ba675SRob Herring bootargs = "console=ttyS0,19200n8 root=/dev/sda4 rw rootwait"; 30*724ba675SRob Herring stdout-path = "uart0:19200n8"; 31*724ba675SRob Herring }; 32*724ba675SRob Herring 33*724ba675SRob Herring gpio_keys { 34*724ba675SRob Herring compatible = "gpio-keys"; 35*724ba675SRob Herring 36*724ba675SRob Herring button-esc { 37*724ba675SRob Herring debounce-interval = <100>; 38*724ba675SRob Herring wakeup-source; 39*724ba675SRob Herring linux,code = <KEY_ESC>; 40*724ba675SRob Herring label = "reset"; 41*724ba675SRob Herring gpios = <&gpio1 31 GPIO_ACTIVE_LOW>; 42*724ba675SRob Herring }; 43*724ba675SRob Herring }; 44*724ba675SRob Herring 45*724ba675SRob Herring leds { 46*724ba675SRob Herring compatible = "gpio-leds"; 47*724ba675SRob Herring led-power { 48*724ba675SRob Herring label = "dns313:blue:power"; 49*724ba675SRob Herring gpios = <&gpio0 1 GPIO_ACTIVE_HIGH>; 50*724ba675SRob Herring default-state = "on"; 51*724ba675SRob Herring linux,default-trigger = "heartbeat"; 52*724ba675SRob Herring }; 53*724ba675SRob Herring led-disk-blue { 54*724ba675SRob Herring label = "dns313:blue:disk"; 55*724ba675SRob Herring gpios = <&gpio0 2 GPIO_ACTIVE_HIGH>; 56*724ba675SRob Herring default-state = "off"; 57*724ba675SRob Herring }; 58*724ba675SRob Herring led-disk-green { 59*724ba675SRob Herring label = "dns313:green:disk"; 60*724ba675SRob Herring gpios = <&gpio0 3 GPIO_ACTIVE_HIGH>; 61*724ba675SRob Herring default-state = "off"; 62*724ba675SRob Herring linux,default-trigger = "disk-read"; 63*724ba675SRob Herring }; 64*724ba675SRob Herring led-disk-red { 65*724ba675SRob Herring label = "dns313:red:disk"; 66*724ba675SRob Herring gpios = <&gpio0 4 GPIO_ACTIVE_HIGH>; 67*724ba675SRob Herring default-state = "off"; 68*724ba675SRob Herring linux,default-trigger = "disk-write"; 69*724ba675SRob Herring }; 70*724ba675SRob Herring }; 71*724ba675SRob Herring 72*724ba675SRob Herring /* 73*724ba675SRob Herring * This is a ADDA AD0405GB-G73 fan @3000 and 6000 RPM. 74*724ba675SRob Herring */ 75*724ba675SRob Herring fan0: gpio-fan { 76*724ba675SRob Herring compatible = "gpio-fan"; 77*724ba675SRob Herring gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>, 78*724ba675SRob Herring <&gpio0 12 GPIO_ACTIVE_HIGH>; 79*724ba675SRob Herring gpio-fan,speed-map = <0 0>, <3000 1>, <6000 2>; 80*724ba675SRob Herring #cooling-cells = <2>; 81*724ba675SRob Herring }; 82*724ba675SRob Herring 83*724ba675SRob Herring /* 84*724ba675SRob Herring * This is the type B USB connector on the device, 85*724ba675SRob Herring * a GPIO-controlled USB VBUS detect 86*724ba675SRob Herring */ 87*724ba675SRob Herring usb1_phy: phy { 88*724ba675SRob Herring compatible = "gpio-usb-b-connector", "usb-b-connector"; 89*724ba675SRob Herring #phy-cells = <0>; 90*724ba675SRob Herring vbus-gpios = <&gpio0 18 GPIO_ACTIVE_LOW>; 91*724ba675SRob Herring }; 92*724ba675SRob Herring 93*724ba675SRob Herring /* Global Mixed-Mode Technology G751 mounted on GPIO I2C */ 94*724ba675SRob Herring i2c { 95*724ba675SRob Herring compatible = "i2c-gpio"; 96*724ba675SRob Herring sda-gpios = <&gpio0 15 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; 97*724ba675SRob Herring scl-gpios = <&gpio0 16 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; 98*724ba675SRob Herring #address-cells = <1>; 99*724ba675SRob Herring #size-cells = <0>; 100*724ba675SRob Herring 101*724ba675SRob Herring g751: temperature-sensor@48 { 102*724ba675SRob Herring compatible = "gmt,g751"; 103*724ba675SRob Herring reg = <0x48>; 104*724ba675SRob Herring #thermal-sensor-cells = <0>; 105*724ba675SRob Herring }; 106*724ba675SRob Herring }; 107*724ba675SRob Herring 108*724ba675SRob Herring thermal-zones { 109*724ba675SRob Herring chassis-thermal { 110*724ba675SRob Herring /* Poll every 20 seconds */ 111*724ba675SRob Herring polling-delay = <20000>; 112*724ba675SRob Herring /* Poll every 2nd second when cooling */ 113*724ba675SRob Herring polling-delay-passive = <2000>; 114*724ba675SRob Herring 115*724ba675SRob Herring thermal-sensors = <&g751>; 116*724ba675SRob Herring 117*724ba675SRob Herring /* Tripping points from the fan.script in the rootfs */ 118*724ba675SRob Herring trips { 119*724ba675SRob Herring chassis_alert0: chassis-alert0 { 120*724ba675SRob Herring /* At 43 degrees turn on low speed */ 121*724ba675SRob Herring temperature = <43000>; 122*724ba675SRob Herring hysteresis = <3000>; 123*724ba675SRob Herring type = "active"; 124*724ba675SRob Herring }; 125*724ba675SRob Herring chassis_alert1: chassis-alert1 { 126*724ba675SRob Herring /* At 47 degrees turn on high speed */ 127*724ba675SRob Herring temperature = <47000>; 128*724ba675SRob Herring hysteresis = <3000>; 129*724ba675SRob Herring type = "active"; 130*724ba675SRob Herring }; 131*724ba675SRob Herring chassis_crit: chassis-crit { 132*724ba675SRob Herring /* Just shut down at 60 degrees */ 133*724ba675SRob Herring temperature = <60000>; 134*724ba675SRob Herring hysteresis = <2000>; 135*724ba675SRob Herring type = "critical"; 136*724ba675SRob Herring }; 137*724ba675SRob Herring }; 138*724ba675SRob Herring 139*724ba675SRob Herring cooling-maps { 140*724ba675SRob Herring map0 { 141*724ba675SRob Herring trip = <&chassis_alert0>; 142*724ba675SRob Herring cooling-device = <&fan0 1 1>; 143*724ba675SRob Herring }; 144*724ba675SRob Herring map1 { 145*724ba675SRob Herring trip = <&chassis_alert1>; 146*724ba675SRob Herring cooling-device = <&fan0 2 2>; 147*724ba675SRob Herring }; 148*724ba675SRob Herring }; 149*724ba675SRob Herring }; 150*724ba675SRob Herring }; 151*724ba675SRob Herring 152*724ba675SRob Herring mdio0: mdio { 153*724ba675SRob Herring compatible = "virtual,mdio-gpio"; 154*724ba675SRob Herring /* Uses MDC and MDIO */ 155*724ba675SRob Herring gpios = <&gpio0 22 GPIO_ACTIVE_HIGH>, /* MDC */ 156*724ba675SRob Herring <&gpio0 21 GPIO_ACTIVE_HIGH>; /* MDIO */ 157*724ba675SRob Herring #address-cells = <1>; 158*724ba675SRob Herring #size-cells = <0>; 159*724ba675SRob Herring 160*724ba675SRob Herring /* This is a Realtek RTL8211B Gigabit ethernet transceiver */ 161*724ba675SRob Herring phy0: ethernet-phy@1 { 162*724ba675SRob Herring reg = <1>; 163*724ba675SRob Herring device_type = "ethernet-phy"; 164*724ba675SRob Herring }; 165*724ba675SRob Herring }; 166*724ba675SRob Herring 167*724ba675SRob Herring soc { 168*724ba675SRob Herring flash@30000000 { 169*724ba675SRob Herring /* 170*724ba675SRob Herring * This is a Eon EN29LV400AB 512 KiB flash with 171*724ba675SRob Herring * three partitions. 172*724ba675SRob Herring */ 173*724ba675SRob Herring compatible = "cortina,gemini-flash", "jedec-flash"; 174*724ba675SRob Herring status = "okay"; 175*724ba675SRob Herring reg = <0x30000000 0x00080000>; 176*724ba675SRob Herring #address-cells = <1>; 177*724ba675SRob Herring #size-cells = <1>; 178*724ba675SRob Herring 179*724ba675SRob Herring /* 180*724ba675SRob Herring * This "RedBoot" is the Storlink derivative. 181*724ba675SRob Herring */ 182*724ba675SRob Herring partition@0 { 183*724ba675SRob Herring label = "RedBoot"; 184*724ba675SRob Herring reg = <0x00000000 0x00040000>; 185*724ba675SRob Herring read-only; 186*724ba675SRob Herring }; 187*724ba675SRob Herring partition@40000 { 188*724ba675SRob Herring label = "MTD1"; 189*724ba675SRob Herring reg = <0x00040000 0x00020000>; 190*724ba675SRob Herring read-only; 191*724ba675SRob Herring }; 192*724ba675SRob Herring partition@60000 { 193*724ba675SRob Herring label = "MTD2"; 194*724ba675SRob Herring reg = <0x00060000 0x00020000>; 195*724ba675SRob Herring read-only; 196*724ba675SRob Herring }; 197*724ba675SRob Herring }; 198*724ba675SRob Herring 199*724ba675SRob Herring syscon: syscon@40000000 { 200*724ba675SRob Herring pinctrl { 201*724ba675SRob Herring /* 202*724ba675SRob Herring */ 203*724ba675SRob Herring gpio0_default_pins: pinctrl-gpio0 { 204*724ba675SRob Herring mux { 205*724ba675SRob Herring function = "gpio0"; 206*724ba675SRob Herring groups = 207*724ba675SRob Herring /* Used by LEDs conflicts ICE */ 208*724ba675SRob Herring "gpio0bgrp", 209*724ba675SRob Herring /* Used by ? conflicts ICE */ 210*724ba675SRob Herring "gpio0cgrp", 211*724ba675SRob Herring /* 212*724ba675SRob Herring * Used by fan & G751, conflicts LPC, 213*724ba675SRob Herring * UART modem lines, SSP 214*724ba675SRob Herring */ 215*724ba675SRob Herring "gpio0egrp", 216*724ba675SRob Herring /* Used by G751 */ 217*724ba675SRob Herring "gpio0fgrp", 218*724ba675SRob Herring /* Used by MDIO */ 219*724ba675SRob Herring "gpio0igrp"; 220*724ba675SRob Herring }; 221*724ba675SRob Herring }; 222*724ba675SRob Herring gpio1_default_pins: pinctrl-gpio1 { 223*724ba675SRob Herring mux { 224*724ba675SRob Herring function = "gpio1"; 225*724ba675SRob Herring /* Used by "reset" button */ 226*724ba675SRob Herring groups = "gpio1dgrp"; 227*724ba675SRob Herring }; 228*724ba675SRob Herring }; 229*724ba675SRob Herring pinctrl-gmii { 230*724ba675SRob Herring mux { 231*724ba675SRob Herring function = "gmii"; 232*724ba675SRob Herring groups = "gmii_gmac0_grp"; 233*724ba675SRob Herring }; 234*724ba675SRob Herring /* 235*724ba675SRob Herring * In the vendor Linux tree, these values are set for the C3 236*724ba675SRob Herring * version of the SL3512 ASIC with the comment "benson suggest" 237*724ba675SRob Herring */ 238*724ba675SRob Herring conf0 { 239*724ba675SRob Herring pins = "R8 GMAC0 RXDV", "U11 GMAC1 RXDV"; 240*724ba675SRob Herring skew-delay = <0>; 241*724ba675SRob Herring }; 242*724ba675SRob Herring conf1 { 243*724ba675SRob Herring pins = "T8 GMAC0 RXC"; 244*724ba675SRob Herring skew-delay = <10>; 245*724ba675SRob Herring }; 246*724ba675SRob Herring conf2 { 247*724ba675SRob Herring pins = "T11 GMAC1 RXC"; 248*724ba675SRob Herring skew-delay = <15>; 249*724ba675SRob Herring }; 250*724ba675SRob Herring conf3 { 251*724ba675SRob Herring pins = "P8 GMAC0 TXEN", "V11 GMAC1 TXEN"; 252*724ba675SRob Herring skew-delay = <7>; 253*724ba675SRob Herring }; 254*724ba675SRob Herring conf4 { 255*724ba675SRob Herring pins = "V7 GMAC0 TXC", "P10 GMAC1 TXC"; 256*724ba675SRob Herring skew-delay = <10>; 257*724ba675SRob Herring }; 258*724ba675SRob Herring conf5 { 259*724ba675SRob Herring /* The data lines all have default skew */ 260*724ba675SRob Herring pins = "U8 GMAC0 RXD0", "V8 GMAC0 RXD1", 261*724ba675SRob Herring "P9 GMAC0 RXD2", "R9 GMAC0 RXD3", 262*724ba675SRob Herring "R11 GMAC1 RXD0", "P11 GMAC1 RXD1", 263*724ba675SRob Herring "V12 GMAC1 RXD2", "U12 GMAC1 RXD3", 264*724ba675SRob Herring "R10 GMAC1 TXD0", "T10 GMAC1 TXD1", 265*724ba675SRob Herring "U10 GMAC1 TXD2", "V10 GMAC1 TXD3"; 266*724ba675SRob Herring skew-delay = <7>; 267*724ba675SRob Herring }; 268*724ba675SRob Herring conf6 { 269*724ba675SRob Herring pins = "U7 GMAC0 TXD0", "T7 GMAC0 TXD1", 270*724ba675SRob Herring "R7 GMAC0 TXD2", "P7 GMAC0 TXD3"; 271*724ba675SRob Herring skew-delay = <5>; 272*724ba675SRob Herring }; 273*724ba675SRob Herring /* Set up drive strength on GMAC0 to 16 mA */ 274*724ba675SRob Herring conf7 { 275*724ba675SRob Herring groups = "gmii_gmac0_grp"; 276*724ba675SRob Herring drive-strength = <16>; 277*724ba675SRob Herring }; 278*724ba675SRob Herring }; 279*724ba675SRob Herring }; 280*724ba675SRob Herring }; 281*724ba675SRob Herring 282*724ba675SRob Herring sata: sata@46000000 { 283*724ba675SRob Herring /* The ROM uses this muxmode */ 284*724ba675SRob Herring cortina,gemini-ata-muxmode = <0>; 285*724ba675SRob Herring cortina,gemini-enable-sata-bridge; 286*724ba675SRob Herring status = "okay"; 287*724ba675SRob Herring }; 288*724ba675SRob Herring 289*724ba675SRob Herring gpio0: gpio@4d000000 { 290*724ba675SRob Herring pinctrl-names = "default"; 291*724ba675SRob Herring pinctrl-0 = <&gpio0_default_pins>; 292*724ba675SRob Herring }; 293*724ba675SRob Herring 294*724ba675SRob Herring gpio1: gpio@4e000000 { 295*724ba675SRob Herring pinctrl-names = "default"; 296*724ba675SRob Herring pinctrl-0 = <&gpio1_default_pins>; 297*724ba675SRob Herring }; 298*724ba675SRob Herring 299*724ba675SRob Herring ethernet@60000000 { 300*724ba675SRob Herring status = "okay"; 301*724ba675SRob Herring 302*724ba675SRob Herring ethernet-port@0 { 303*724ba675SRob Herring phy-mode = "rgmii"; 304*724ba675SRob Herring phy-handle = <&phy0>; 305*724ba675SRob Herring }; 306*724ba675SRob Herring ethernet-port@1 { 307*724ba675SRob Herring /* Not used in this platform */ 308*724ba675SRob Herring }; 309*724ba675SRob Herring }; 310*724ba675SRob Herring 311*724ba675SRob Herring ide@63000000 { 312*724ba675SRob Herring status = "okay"; 313*724ba675SRob Herring }; 314*724ba675SRob Herring 315*724ba675SRob Herring usb@69000000 { 316*724ba675SRob Herring status = "okay"; 317*724ba675SRob Herring dr_mode = "peripheral"; 318*724ba675SRob Herring usb-phy = <&usb1_phy>; 319*724ba675SRob Herring pinctrl-names = "default"; 320*724ba675SRob Herring pinctrl-0 = <&usb_default_pins>; 321*724ba675SRob Herring }; 322*724ba675SRob Herring }; 323*724ba675SRob Herring}; 324