1*0b6084ebSLinus Walleij// SPDX-License-Identifier: GPL-2.0 2*0b6084ebSLinus Walleij/* 3*0b6084ebSLinus Walleij * Device Tree file for the Gemini-based Raidsonic NAS IB-4210-B 4*0b6084ebSLinus Walleij * Based on the NAS Forum experiments by user "CptSpock". 5*0b6084ebSLinus Walleij */ 6*0b6084ebSLinus Walleij 7*0b6084ebSLinus Walleij/dts-v1/; 8*0b6084ebSLinus Walleij 9*0b6084ebSLinus Walleij#include "gemini.dtsi" 10*0b6084ebSLinus Walleij#include <dt-bindings/input/input.h> 11*0b6084ebSLinus Walleij 12*0b6084ebSLinus Walleij/ { 13*0b6084ebSLinus Walleij model = "Raidsonic NAS IB-4210-B"; 14*0b6084ebSLinus Walleij compatible = "raidsonic,ib-4210-b", "cortina,gemini"; 15*0b6084ebSLinus Walleij #address-cells = <1>; 16*0b6084ebSLinus Walleij #size-cells = <1>; 17*0b6084ebSLinus Walleij 18*0b6084ebSLinus Walleij memory@0 { /* 64 MB */ 19*0b6084ebSLinus Walleij device_type = "memory"; 20*0b6084ebSLinus Walleij reg = <0x00000000 0x4000000>; 21*0b6084ebSLinus Walleij }; 22*0b6084ebSLinus Walleij 23*0b6084ebSLinus Walleij chosen { 24*0b6084ebSLinus Walleij bootargs = "console=ttyS0,19200n8 root=/dev/sda1 rw rootwait"; 25*0b6084ebSLinus Walleij stdout-path = &uart0; 26*0b6084ebSLinus Walleij }; 27*0b6084ebSLinus Walleij 28*0b6084ebSLinus Walleij gpio_keys { 29*0b6084ebSLinus Walleij compatible = "gpio-keys"; 30*0b6084ebSLinus Walleij 31*0b6084ebSLinus Walleij button-setup { 32*0b6084ebSLinus Walleij debounce-interval = <100>; 33*0b6084ebSLinus Walleij wakeup-source; 34*0b6084ebSLinus Walleij linux,code = <KEY_SETUP>; 35*0b6084ebSLinus Walleij label = "Backup button"; 36*0b6084ebSLinus Walleij /* Conflict with TVC */ 37*0b6084ebSLinus Walleij gpios = <&gpio1 29 GPIO_ACTIVE_LOW>; 38*0b6084ebSLinus Walleij }; 39*0b6084ebSLinus Walleij button-restart { 40*0b6084ebSLinus Walleij debounce-interval = <100>; 41*0b6084ebSLinus Walleij wakeup-source; 42*0b6084ebSLinus Walleij linux,code = <KEY_RESTART>; 43*0b6084ebSLinus Walleij label = "Softreset button"; 44*0b6084ebSLinus Walleij /* Conflict with TVC */ 45*0b6084ebSLinus Walleij gpios = <&gpio1 31 GPIO_ACTIVE_LOW>; 46*0b6084ebSLinus Walleij }; 47*0b6084ebSLinus Walleij }; 48*0b6084ebSLinus Walleij 49*0b6084ebSLinus Walleij leds { 50*0b6084ebSLinus Walleij compatible = "gpio-leds"; 51*0b6084ebSLinus Walleij led-orange-hdd { 52*0b6084ebSLinus Walleij label = "nas4220b:orange:hdd"; 53*0b6084ebSLinus Walleij /* Conflict with TVC */ 54*0b6084ebSLinus Walleij gpios = <&gpio1 28 GPIO_ACTIVE_HIGH>; 55*0b6084ebSLinus Walleij default-state = "on"; 56*0b6084ebSLinus Walleij linux,default-trigger = "disk-activity"; 57*0b6084ebSLinus Walleij }; 58*0b6084ebSLinus Walleij led-green-os { 59*0b6084ebSLinus Walleij label = "nas4220b:green:os"; 60*0b6084ebSLinus Walleij /* Conflict with TVC */ 61*0b6084ebSLinus Walleij gpios = <&gpio1 30 GPIO_ACTIVE_HIGH>; 62*0b6084ebSLinus Walleij default-state = "on"; 63*0b6084ebSLinus Walleij linux,default-trigger = "heartbeat"; 64*0b6084ebSLinus Walleij }; 65*0b6084ebSLinus Walleij }; 66*0b6084ebSLinus Walleij 67*0b6084ebSLinus Walleij mdio0: mdio { 68*0b6084ebSLinus Walleij compatible = "virtual,mdio-gpio"; 69*0b6084ebSLinus Walleij gpios = <&gpio0 22 GPIO_ACTIVE_HIGH>, /* MDC */ 70*0b6084ebSLinus Walleij <&gpio0 21 GPIO_ACTIVE_HIGH>; /* MDIO */ 71*0b6084ebSLinus Walleij #address-cells = <1>; 72*0b6084ebSLinus Walleij #size-cells = <0>; 73*0b6084ebSLinus Walleij 74*0b6084ebSLinus Walleij /* Realtek RTL8211B */ 75*0b6084ebSLinus Walleij phy0: ethernet-phy@1 { 76*0b6084ebSLinus Walleij reg = <1>; 77*0b6084ebSLinus Walleij device_type = "ethernet-phy"; 78*0b6084ebSLinus Walleij }; 79*0b6084ebSLinus Walleij }; 80*0b6084ebSLinus Walleij 81*0b6084ebSLinus Walleij soc { 82*0b6084ebSLinus Walleij flash@30000000 { 83*0b6084ebSLinus Walleij status = "okay"; 84*0b6084ebSLinus Walleij /* 16MB of flash */ 85*0b6084ebSLinus Walleij reg = <0x30000000 0x01000000>; 86*0b6084ebSLinus Walleij 87*0b6084ebSLinus Walleij partitions { 88*0b6084ebSLinus Walleij compatible = "redboot-fis"; 89*0b6084ebSLinus Walleij /* Eraseblock at 0xfe0000 */ 90*0b6084ebSLinus Walleij fis-index-block = <0x7f>; 91*0b6084ebSLinus Walleij }; 92*0b6084ebSLinus Walleij }; 93*0b6084ebSLinus Walleij 94*0b6084ebSLinus Walleij syscon: syscon@40000000 { 95*0b6084ebSLinus Walleij pinctrl { 96*0b6084ebSLinus Walleij gpio0_default_pins: pinctrl-gpio0 { 97*0b6084ebSLinus Walleij mux { 98*0b6084ebSLinus Walleij function = "gpio0"; 99*0b6084ebSLinus Walleij groups = 100*0b6084ebSLinus Walleij "gpio0egrp", 101*0b6084ebSLinus Walleij /* Used by MDIO */ 102*0b6084ebSLinus Walleij "gpio0igrp"; 103*0b6084ebSLinus Walleij }; 104*0b6084ebSLinus Walleij }; 105*0b6084ebSLinus Walleij gpio1_default_pins: pinctrl-gpio1 { 106*0b6084ebSLinus Walleij mux { 107*0b6084ebSLinus Walleij function = "gpio1"; 108*0b6084ebSLinus Walleij /* Lines 28-31 used by LEDs and buttons */ 109*0b6084ebSLinus Walleij groups = "gpio1dgrp"; 110*0b6084ebSLinus Walleij }; 111*0b6084ebSLinus Walleij }; 112*0b6084ebSLinus Walleij pinctrl-gmii { 113*0b6084ebSLinus Walleij mux { 114*0b6084ebSLinus Walleij function = "gmii"; 115*0b6084ebSLinus Walleij groups = "gmii_gmac0_grp"; 116*0b6084ebSLinus Walleij }; 117*0b6084ebSLinus Walleij conf0 { 118*0b6084ebSLinus Walleij pins = "R8 GMAC0 RXDV", "U11 GMAC1 RXDV"; 119*0b6084ebSLinus Walleij skew-delay = <0>; 120*0b6084ebSLinus Walleij }; 121*0b6084ebSLinus Walleij conf1 { 122*0b6084ebSLinus Walleij pins = "T8 GMAC0 RXC"; 123*0b6084ebSLinus Walleij skew-delay = <10>; 124*0b6084ebSLinus Walleij }; 125*0b6084ebSLinus Walleij conf2 { 126*0b6084ebSLinus Walleij pins = "T11 GMAC1 RXC"; 127*0b6084ebSLinus Walleij skew-delay = <15>; 128*0b6084ebSLinus Walleij }; 129*0b6084ebSLinus Walleij conf3 { 130*0b6084ebSLinus Walleij pins = "P8 GMAC0 TXEN", "V11 GMAC1 TXEN"; 131*0b6084ebSLinus Walleij skew-delay = <7>; 132*0b6084ebSLinus Walleij }; 133*0b6084ebSLinus Walleij conf4 { 134*0b6084ebSLinus Walleij pins = "V7 GMAC0 TXC", "P10 GMAC1 TXC"; 135*0b6084ebSLinus Walleij skew-delay = <10>; 136*0b6084ebSLinus Walleij }; 137*0b6084ebSLinus Walleij conf5 { 138*0b6084ebSLinus Walleij /* The data lines all have default skew */ 139*0b6084ebSLinus Walleij pins = "U8 GMAC0 RXD0", "V8 GMAC0 RXD1", 140*0b6084ebSLinus Walleij "P9 GMAC0 RXD2", "R9 GMAC0 RXD3", 141*0b6084ebSLinus Walleij "R11 GMAC1 RXD0", "P11 GMAC1 RXD1", 142*0b6084ebSLinus Walleij "V12 GMAC1 RXD2", "U12 GMAC1 RXD3", 143*0b6084ebSLinus Walleij "R10 GMAC1 TXD0", "T10 GMAC1 TXD1", 144*0b6084ebSLinus Walleij "U10 GMAC1 TXD2", "V10 GMAC1 TXD3"; 145*0b6084ebSLinus Walleij skew-delay = <7>; 146*0b6084ebSLinus Walleij }; 147*0b6084ebSLinus Walleij conf6 { 148*0b6084ebSLinus Walleij pins = "U7 GMAC0 TXD0", "T7 GMAC0 TXD1", 149*0b6084ebSLinus Walleij "R7 GMAC0 TXD2", "P7 GMAC0 TXD3"; 150*0b6084ebSLinus Walleij skew-delay = <5>; 151*0b6084ebSLinus Walleij }; 152*0b6084ebSLinus Walleij /* Set up drive strength on GMAC0 to 16 mA */ 153*0b6084ebSLinus Walleij conf7 { 154*0b6084ebSLinus Walleij groups = "gmii_gmac0_grp"; 155*0b6084ebSLinus Walleij drive-strength = <16>; 156*0b6084ebSLinus Walleij }; 157*0b6084ebSLinus Walleij }; 158*0b6084ebSLinus Walleij }; 159*0b6084ebSLinus Walleij }; 160*0b6084ebSLinus Walleij 161*0b6084ebSLinus Walleij sata: sata@46000000 { 162*0b6084ebSLinus Walleij cortina,gemini-ata-muxmode = <0>; 163*0b6084ebSLinus Walleij cortina,gemini-enable-sata-bridge; 164*0b6084ebSLinus Walleij status = "okay"; 165*0b6084ebSLinus Walleij }; 166*0b6084ebSLinus Walleij 167*0b6084ebSLinus Walleij gpio0: gpio@4d000000 { 168*0b6084ebSLinus Walleij pinctrl-names = "default"; 169*0b6084ebSLinus Walleij pinctrl-0 = <&gpio0_default_pins>; 170*0b6084ebSLinus Walleij }; 171*0b6084ebSLinus Walleij 172*0b6084ebSLinus Walleij gpio1: gpio@4e000000 { 173*0b6084ebSLinus Walleij pinctrl-names = "default"; 174*0b6084ebSLinus Walleij pinctrl-0 = <&gpio1_default_pins>; 175*0b6084ebSLinus Walleij }; 176*0b6084ebSLinus Walleij 177*0b6084ebSLinus Walleij ethernet@60000000 { 178*0b6084ebSLinus Walleij status = "okay"; 179*0b6084ebSLinus Walleij 180*0b6084ebSLinus Walleij ethernet-port@0 { 181*0b6084ebSLinus Walleij phy-mode = "rgmii"; 182*0b6084ebSLinus Walleij phy-handle = <&phy0>; 183*0b6084ebSLinus Walleij }; 184*0b6084ebSLinus Walleij ethernet-port@1 { 185*0b6084ebSLinus Walleij /* Not used in this platform */ 186*0b6084ebSLinus Walleij }; 187*0b6084ebSLinus Walleij }; 188*0b6084ebSLinus Walleij 189*0b6084ebSLinus Walleij ide@63000000 { 190*0b6084ebSLinus Walleij status = "okay"; 191*0b6084ebSLinus Walleij }; 192*0b6084ebSLinus Walleij 193*0b6084ebSLinus Walleij ide@63400000 { 194*0b6084ebSLinus Walleij status = "okay"; 195*0b6084ebSLinus Walleij }; 196*0b6084ebSLinus Walleij 197*0b6084ebSLinus Walleij usb@68000000 { 198*0b6084ebSLinus Walleij status = "okay"; 199*0b6084ebSLinus Walleij }; 200*0b6084ebSLinus Walleij 201*0b6084ebSLinus Walleij usb@69000000 { 202*0b6084ebSLinus Walleij status = "okay"; 203*0b6084ebSLinus Walleij }; 204*0b6084ebSLinus Walleij }; 205*0b6084ebSLinus Walleij}; 206