Gemini device tree updates:

- Add two new devices: the Verbatim Gigabit NAS and the
   Raidsonic IB-4210-B, including ACKed binding updates.
 
 - Fix up boot device for the SQ201.
 
 - Use the right LED trigger for disk activity.
 
 - Add the SSP/SPI block to the SoC.
 
 - Fix up the RUT1xx device tree.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEElDRnuGcz/wPCXQWMQRCzN7AZXXMFAmoX/8IACgkQQRCzN7AZ
 XXNyVA//fT/5wTE6Nh6bg4klm6XXPYYUf4GG/QBKXyMomYuCatlh265AzK/W5TAV
 hhQr8qh8vixgReV9LYz4kH6tyC4CY4vdexOOU4TMrcTrVYOeV/W4GisJEDTdN0T0
 qtwPst4SkQeQycPMJ08hs5jLz9kXXonxNHFOU6pOmiICqSMUhSFNvtpklUvEFa6z
 f0srUd9Zy311U5olj8kzED0JepeHArezbcREpFovOnB8VB9oMX4GAEPwUbV/WlxO
 2lmvof0qfGLiXQjx+A7zTdVhoDsL47jgQdsmkTa0XaVSipxIJrBeyKf6H0NzoQGv
 efmtl8VsgtZFeNR+7dDCOiokNizSTUsLI/AKAqHVu9JtPd3cs1fF0KDOldCl3ha5
 SiHZsZaoZkisQjPPK3EzHlUCDxSEvIqRxD0CF1fx6bKVAvFVScMH+V//9OklInGA
 u3pdCvc/4Wil3FMLR91DACux8Bp79arLMW8MzvdnGAi4wuYsoqIhQOaBmi9D2hbo
 c0qW3JtFFvmCm32hIrVrxt9WAi9bleRmQOJ09wZrmTobRJpCCa+JcyyTdWqaBmP0
 CI5u68jvUoVwRdrOsxv8bac13dpdSF+fPa0qZK6dtYnQqVc5fWgRGbFASbjnMOjD
 MJsJT9ajSKXgP0BAvaieXwlmB9eeZVXsjlC/CJul7MrNlnA8K44=
 =RQ6n
 -----END PGP SIGNATURE-----

Merge tag 'gemini-for-v7.2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-integrator into soc/dt

Gemini device tree updates:

- Add two new devices: the Verbatim Gigabit NAS and the
  Raidsonic IB-4210-B, including ACKed binding updates.

- Fix up boot device for the SQ201.

- Use the right LED trigger for disk activity.

- Add the SSP/SPI block to the SoC.

- Fix up the RUT1xx device tree.

* tag 'gemini-for-v7.2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-integrator:
  ARM: dts: gemini: Correct the RUT1xx
  ARM: dts: Add a Raidsonic IB-4210-B DTS
  ARM: dts: Add a Verbatim Gigabit NAS DTS
  dt-bindings: arm: Add two missing Gemini devices
  dt-bindings: vendor-prefixes: Add Verbatim Corporation
  ARM: dts: gemini: Add SSP/SPI block
  ARM: dts: gemini: Tag disk led for disk-activity
  ARM: dts: gemini: iTian SQ201 need to boot from mtdblock3

Signed-off-by: Linus Walleij <linusw@kernel.org>
This commit is contained in:
Linus Walleij 2026-06-03 14:03:31 +02:00
commit f8160c84dd
9 changed files with 470 additions and 12 deletions

View File

@ -55,6 +55,11 @@ properties:
- const: itian,sq201
- const: cortina,gemini
- description: Raidsonic NAS IB-4210-B
items:
- const: raidsonic,ib-4210-b
- const: cortina,gemini
- description: Raidsonic NAS IB-4220-B
items:
- const: raidsonic,ib-4220-b
@ -70,6 +75,11 @@ properties:
- const: teltonika,rut1xx
- const: cortina,gemini
- description: Verbatim S08V1901-D1 NAS
items:
- const: verbatim,s08v1901-d1
- const: cortina,gemini
- description: Wiligear Wiliboard WBD-111
items:
- const: wiligear,wiliboard-wbd111

View File

@ -1783,6 +1783,8 @@ patternProperties:
description: Variscite Ltd.
"^vdl,.*":
description: Van der Laan b.v.
"^verbatim,.*":
description: Verbatim Corporation
"^verisilicon,.*":
description: VeriSilicon Microelectronics (Shanghai) Co., Ltd.
"^vertexcom,.*":

View File

@ -2,11 +2,13 @@
dtb-$(CONFIG_ARCH_GEMINI) += \
gemini-dlink-dir-685.dtb \
gemini-dlink-dns-313.dtb \
gemini-nas4210b.dtb \
gemini-nas4220b.dtb \
gemini-ns2502.dtb \
gemini-rut1xx.dtb \
gemini-sl93512r.dtb \
gemini-sq201.dtb \
gemini-ssi1328.dtb \
gemini-verbatim-s08v1901-d1.dtb \
gemini-wbd111.dtb \
gemini-wbd222.dtb

View File

@ -0,0 +1,205 @@
// SPDX-License-Identifier: GPL-2.0
/*
* Device Tree file for the Gemini-based Raidsonic NAS IB-4210-B
* Based on the NAS Forum experiments by user "CptSpock".
*/
/dts-v1/;
#include "gemini.dtsi"
#include <dt-bindings/input/input.h>
/ {
model = "Raidsonic NAS IB-4210-B";
compatible = "raidsonic,ib-4210-b", "cortina,gemini";
#address-cells = <1>;
#size-cells = <1>;
memory@0 { /* 64 MB */
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-setup {
debounce-interval = <100>;
wakeup-source;
linux,code = <KEY_SETUP>;
label = "Backup button";
/* Conflict with TVC */
gpios = <&gpio1 29 GPIO_ACTIVE_LOW>;
};
button-restart {
debounce-interval = <100>;
wakeup-source;
linux,code = <KEY_RESTART>;
label = "Softreset button";
/* Conflict with TVC */
gpios = <&gpio1 31 GPIO_ACTIVE_LOW>;
};
};
leds {
compatible = "gpio-leds";
led-orange-hdd {
label = "nas4220b:orange:hdd";
/* Conflict with TVC */
gpios = <&gpio1 28 GPIO_ACTIVE_HIGH>;
default-state = "on";
linux,default-trigger = "disk-activity";
};
led-green-os {
label = "nas4220b:green:os";
/* Conflict with TVC */
gpios = <&gpio1 30 GPIO_ACTIVE_HIGH>;
default-state = "on";
linux,default-trigger = "heartbeat";
};
};
mdio0: mdio {
compatible = "virtual,mdio-gpio";
gpios = <&gpio0 22 GPIO_ACTIVE_HIGH>, /* MDC */
<&gpio0 21 GPIO_ACTIVE_HIGH>; /* MDIO */
#address-cells = <1>;
#size-cells = <0>;
/* Realtek RTL8211B */
phy0: ethernet-phy@1 {
reg = <1>;
device_type = "ethernet-phy";
};
};
soc {
flash@30000000 {
status = "okay";
/* 16MB of flash */
reg = <0x30000000 0x01000000>;
partitions {
compatible = "redboot-fis";
/* Eraseblock at 0xfe0000 */
fis-index-block = <0x7f>;
};
};
syscon: syscon@40000000 {
pinctrl {
gpio0_default_pins: pinctrl-gpio0 {
mux {
function = "gpio0";
groups =
"gpio0egrp",
/* Used by MDIO */
"gpio0igrp";
};
};
gpio1_default_pins: pinctrl-gpio1 {
mux {
function = "gpio1";
/* Lines 28-31 used by LEDs and buttons */
groups = "gpio1dgrp";
};
};
pinctrl-gmii {
mux {
function = "gmii";
groups = "gmii_gmac0_grp";
};
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 {
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";
};
ide@63400000 {
status = "okay";
};
usb@68000000 {
status = "okay";
};
usb@69000000 {
status = "okay";
};
};
};

View File

@ -52,6 +52,7 @@ led-orange-hdd {
/* Conflict with TVC */
gpios = <&gpio1 28 GPIO_ACTIVE_HIGH>;
default-state = "on";
linux,default-trigger = "disk-activity";
};
led-green-os {
label = "nas4220b:green:os";

View File

@ -14,13 +14,13 @@ / {
#address-cells = <1>;
#size-cells = <1>;
memory@0 { /* 128 MB */
memory@0 { /* 32 MB */
device_type = "memory";
reg = <0x00000000 0x8000000>;
reg = <0x00000000 0x2000000>;
};
chosen {
bootargs = "console=ttyS0,115200n8";
bootargs = "console=ttyS0,19200n8";
stdout-path = &uart0;
};
@ -113,6 +113,10 @@ gpio1: gpio@4e000000 {
pinctrl-0 = <&gpio1_default_pins>;
};
pci@50000000 {
status = "okay";
};
ethernet@60000000 {
status = "okay";
@ -124,13 +128,5 @@ ethernet-port@1 {
/* Not used in this platform */
};
};
usb@68000000 {
status = "okay";
};
usb@69000000 {
status = "okay";
};
};
};

View File

@ -20,7 +20,7 @@ memory@0 { /* 128 MB */
};
chosen {
bootargs = "console=ttyS0,115200n8 root=/dev/mtdblock2 rw rootfstype=squashfs,jffs2 rootwait";
bootargs = "console=ttyS0,115200n8 root=/dev/mtdblock3 rw rootfstype=squashfs,jffs2 rootwait";
stdout-path = &uart0;
};

View File

@ -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 <dt-bindings/leds/common.h>
#include <dt-bindings/input/input.h>
/ {
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 = <KEY_RESTART>;
label = "reset";
gpios = <&gpio1 31 GPIO_ACTIVE_LOW>;
};
};
leds {
compatible = "gpio-leds";
led-green-harddisk {
function = LED_FUNCTION_DISK_ACTIVITY;
color = <LED_COLOR_ID_GREEN>;
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";
};
};
};

View File

@ -61,6 +61,12 @@ mux {
groups = "rtcgrp";
};
};
ssp_default_pins: pinctrl-ssp {
mux {
function = "ssp";
groups = "sspgrp";
};
};
power_default_pins: pinctrl-power {
mux {
function = "power";
@ -228,6 +234,17 @@ intcon: interrupt-controller@48000000 {
#interrupt-cells = <2>;
};
spi@4a000000 {
compatible = "faraday,ftssp010";
#address-cells = <1>;
#size-cells = <0>;
reg = <0x4a000000 0x100>;
interrupts = <21 IRQ_TYPE_LEVEL_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&ssp_default_pins>;
status = "disabled";
};
power-controller@4b000000 {
compatible = "cortina,gemini-power-controller";
reg = <0x4b000000 0x100>;