From: Linus Walleij Date: Sat, 28 Feb 2026 00:05:46 +0000 (+0100) Subject: ARM: dts: Add a Verbatim Gigabit NAS DTS X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ccd7118d30488d69561e4c7a7e2062a367825719;p=thirdparty%2Fkernel%2Flinux.git ARM: dts: Add a Verbatim Gigabit NAS DTS This adds a device tree for the Verbatim S08V1901-D1 NAS which also has the product names "Gigabit Network Hard Drive" "Gigabit NAS" and maybe other names. Signed-off-by: Linus Walleij --- diff --git a/arch/arm/boot/dts/gemini/Makefile b/arch/arm/boot/dts/gemini/Makefile index f9f63ce3eb496..d5d32f02e2321 100644 --- a/arch/arm/boot/dts/gemini/Makefile +++ b/arch/arm/boot/dts/gemini/Makefile @@ -8,5 +8,6 @@ dtb-$(CONFIG_ARCH_GEMINI) += \ gemini-sl93512r.dtb \ gemini-sq201.dtb \ gemini-ssi1328.dtb \ + gemini-verbatim-s08v1901-d1.dtb \ gemini-wbd111.dtb \ gemini-wbd222.dtb diff --git a/arch/arm/boot/dts/gemini/gemini-verbatim-s08v1901-d1.dts b/arch/arm/boot/dts/gemini/gemini-verbatim-s08v1901-d1.dts new file mode 100644 index 0000000000000..2a689d2768633 --- /dev/null +++ b/arch/arm/boot/dts/gemini/gemini-verbatim-s08v1901-d1.dts @@ -0,0 +1,225 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Device Tree file for the Verbatim S08V1901-D1 + * on product packaging called "Verbatim Gigabit Ethernet Hard Drive" + */ + +/dts-v1/; + +#include "gemini.dtsi" +#include +#include + +/ { + model = "Verbatim Gigabit Ethernet Hard Drive S08V1901-D1"; + compatible = "verbatim,s08v1901-d1", "cortina,gemini"; + #address-cells = <1>; + #size-cells = <1>; + + memory@0 { + /* 64MB SDRAM in 2 x Hynix HY5DU561622ETP-D43 */ + device_type = "memory"; + reg = <0x00000000 0x4000000>; + }; + + chosen { + bootargs = "console=ttyS0,19200n8 root=/dev/sda1 rw rootwait"; + stdout-path = &uart0; + }; + + gpio_keys { + compatible = "gpio-keys"; + + button-reset { + debounce-interval = <50>; + wakeup-source; + linux,code = ; + label = "reset"; + gpios = <&gpio1 31 GPIO_ACTIVE_LOW>; + }; + }; + + leds { + compatible = "gpio-leds"; + led-green-harddisk { + function = LED_FUNCTION_DISK_ACTIVITY; + color = ; + gpios = <&gpio0 1 GPIO_ACTIVE_LOW>; + default-state = "off"; + linux,default-trigger = "disk-activity"; + }; + }; + + /* + * Fan control candidates: gpio0 10, gpio1 28 + */ + + 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 RTL8211CL ethernet PHY */ + phy0: ethernet-phy@1 { + reg = <1>; + }; + }; + + /* + * I haven't found a way to control the fan, it appears to be + * always on. + */ + thermal-zones { + chassis-thermal { + /* Poll every 20 seconds */ + polling-delay = <20000>; + /* Poll every 2nd second when cooling */ + polling-delay-passive = <2000>; + /* Use the thermal sensor in the hard drive */ + thermal-sensors = <&drive0>; + + /* Tripping points from the fan.script in the rootfs */ + trips { + alert: chassis-alert { + /* At 43 degrees turn on the fan */ + temperature = <43000>; + hysteresis = <3000>; + type = "active"; + }; + crit: chassis-crit { + /* Just shut down at 60 degrees */ + temperature = <60000>; + hysteresis = <2000>; + type = "critical"; + }; + }; + }; + }; + + soc { + flash@30000000 { + /* + * This is a Spansion S29GL128P11TFI01 852FB245 A + * 128Mbit (16MB) Flash memory. + */ + status = "okay"; + reg = <0x30000000 0x01000000>; + + partitions { + compatible = "redboot-fis"; + /* Eraseblock at 0xfe0000 */ + fis-index-block = <0x7f>; + }; + }; + + syscon: syscon@40000000 { + pinctrl { + /* + * gpio0agrp cover line 0-4 as line 1 is used for the LED + * gpio0hgrp cover line 21, 22 used by MDIO for Marvell PHY + */ + gpio0_default_pins: pinctrl-gpio0 { + mux { + function = "gpio0"; + groups = "gpio0agrp", "gpio0hgrp"; + }; + }; + gpio1_default_pins: pinctrl-gpio1 { + /* + * Free up the TVC pins at GPIO1 offset 28,29,30,31 + * line 31 is used for reset key + */ + mux { + function = "gpio1"; + groups = "gpio1dgrp"; + }; + }; + pinctrl-gmii { + mux { + function = "gmii"; + groups = "gmii_gmac0_grp"; + }; + /* TODO: investigate vendor registers on boot */ + conf0 { + pins = "V8 GMAC0 RXDV"; + skew-delay = <0>; + }; + conf1 { + pins = "Y7 GMAC0 RXC"; + skew-delay = <15>; + }; + conf2 { + pins = "T8 GMAC0 TXEN"; + skew-delay = <7>; + }; + conf3 { + pins = "U8 GMAC0 TXC"; + skew-delay = <10>; + }; + conf4 { + /* The data lines all have default skew */ + pins = "W8 GMAC0 RXD0", "V9 GMAC0 RXD1", + "Y8 GMAC0 RXD2", "U9 GMAC0 RXD3", + "T7 GMAC0 TXD0", "U6 GMAC0 TXD1", + "V7 GMAC0 TXD2", "U7 GMAC0 TXD3"; + skew-delay = <7>; + }; + }; + }; + }; + + /* Both interfaces brought out on SATA connectors */ + sata: sata@46000000 { + 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>; + }; + }; + + ide@63000000 { + status = "okay"; + /* + * This drive may have a temperature sensor with a + * thermal zone we can use for thermal control of the + * chassis temperature using the fan. + */ + drive0: ide-port@0 { + reg = <0>; + #thermal-sensor-cells = <0>; + }; + }; + + ide@63400000 { + status = "okay"; + }; + + usb@68000000 { + status = "okay"; + }; + + usb@69000000 { + status = "okay"; + }; + }; +};