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