blob: 43c45f7e1e0a347e5b1ae6e716a89ce76f936309 [file] [log] [blame]
Greg Kroah-Hartmanb2441312017-11-01 15:07:57 +01001// SPDX-License-Identifier: GPL-2.0
Linus Walleijfe7bf9d2017-01-21 13:26:58 +01002/*
3 * Device Tree file for the Gemini-based Raidsonic NAS IB-4220-B
4 */
5
6/dts-v1/;
7
8#include "gemini.dtsi"
9#include <dt-bindings/input/input.h>
10
11/ {
12 model = "Raidsonic NAS IB-4220-B";
13 compatible = "raidsonic,ib-4220-b", "cortina,gemini";
14 #address-cells = <1>;
15 #size-cells = <1>;
16
Linus Walleije7c88152018-05-06 15:39:00 +020017 memory@0 { /* 128 MB */
Linus Walleijfe7bf9d2017-01-21 13:26:58 +010018 device_type = "memory";
19 reg = <0x00000000 0x8000000>;
20 };
21
22 chosen {
Linus Walleije8547e12019-07-12 22:59:39 +020023 bootargs = "console=ttyS0,19200n8 root=/dev/mtdblock3 rw rootfstype=squashfs,jffs2 rootwait";
Linus Walleijfe7bf9d2017-01-21 13:26:58 +010024 stdout-path = &uart0;
25 };
26
27 gpio_keys {
28 compatible = "gpio-keys";
Linus Walleijfe7bf9d2017-01-21 13:26:58 +010029
Linus Walleije7c88152018-05-06 15:39:00 +020030 button-setup {
Linus Walleijf18fd0f2018-08-26 12:45:05 +020031 debounce-interval = <100>;
Linus Walleijfe7bf9d2017-01-21 13:26:58 +010032 wakeup-source;
33 linux,code = <KEY_SETUP>;
34 label = "Backup button";
Linus Walleijf328c2e2017-07-05 16:59:33 +020035 /* Conflict with TVC */
Linus Walleijfe7bf9d2017-01-21 13:26:58 +010036 gpios = <&gpio1 29 GPIO_ACTIVE_LOW>;
37 };
Linus Walleije7c88152018-05-06 15:39:00 +020038 button-restart {
Linus Walleijf18fd0f2018-08-26 12:45:05 +020039 debounce-interval = <100>;
Linus Walleijfe7bf9d2017-01-21 13:26:58 +010040 wakeup-source;
41 linux,code = <KEY_RESTART>;
42 label = "Softreset button";
Linus Walleijf328c2e2017-07-05 16:59:33 +020043 /* Conflict with TVC */
Linus Walleijfe7bf9d2017-01-21 13:26:58 +010044 gpios = <&gpio1 31 GPIO_ACTIVE_LOW>;
45 };
46 };
47
48 leds {
49 compatible = "gpio-leds";
Linus Walleije7c88152018-05-06 15:39:00 +020050 led-orange-hdd {
Linus Walleijfe7bf9d2017-01-21 13:26:58 +010051 label = "nas4220b:orange:hdd";
Linus Walleijf328c2e2017-07-05 16:59:33 +020052 /* Conflict with TVC */
Linus Walleijfe7bf9d2017-01-21 13:26:58 +010053 gpios = <&gpio1 28 GPIO_ACTIVE_HIGH>;
54 default-state = "on";
55 };
Linus Walleije7c88152018-05-06 15:39:00 +020056 led-green-os {
Linus Walleijfe7bf9d2017-01-21 13:26:58 +010057 label = "nas4220b:green:os";
Linus Walleijf328c2e2017-07-05 16:59:33 +020058 /* Conflict with TVC */
Linus Walleijfe7bf9d2017-01-21 13:26:58 +010059 gpios = <&gpio1 30 GPIO_ACTIVE_HIGH>;
60 default-state = "on";
61 linux,default-trigger = "heartbeat";
62 };
63 };
64
Linus Walleij66b22382017-11-19 10:46:16 +010065 mdio0: ethernet-phy {
66 compatible = "virtual,mdio-gpio";
67 gpios = <&gpio0 22 GPIO_ACTIVE_HIGH>, /* MDC */
68 <&gpio0 21 GPIO_ACTIVE_HIGH>; /* MDIO */
69 #address-cells = <1>;
70 #size-cells = <0>;
71
72 phy0: ethernet-phy@1 {
73 reg = <1>;
74 device_type = "ethernet-phy";
75 };
76 };
77
Linus Walleijfe7bf9d2017-01-21 13:26:58 +010078 soc {
79 flash@30000000 {
80 status = "okay";
81 /* 16MB of flash */
82 reg = <0x30000000 0x01000000>;
83
Linus Walleijb5a923f2019-07-12 22:57:11 +020084 partitions {
85 compatible = "redboot-fis";
86 /* Eraseblock at 0xfe0000 */
87 fis-index-block = <0x1fc>;
Linus Walleijfe7bf9d2017-01-21 13:26:58 +010088 };
89 };
Linus Walleij0d7a2c32017-03-20 23:39:26 +010090
Linus Walleijf328c2e2017-07-05 16:59:33 +020091 syscon: syscon@40000000 {
92 pinctrl {
93 /*
94 * gpio1dgrp cover line 28-31 otherwise used
95 * by TVC.
96 */
97 gpio1_default_pins: pinctrl-gpio1 {
98 mux {
99 function = "gpio1";
100 groups = "gpio1dgrp";
101 };
102 };
Linus Walleij95220042017-11-19 11:04:23 +0100103 pinctrl-gmii {
104 mux {
105 function = "gmii";
106 groups = "gmii_gmac0_grp";
107 };
Linus Walleij1c3bc8f2018-04-17 10:53:11 +0200108 /* Settings come from OpenWRT, pins on SL3516 */
Linus Walleij95220042017-11-19 11:04:23 +0100109 conf0 {
Linus Walleij1c3bc8f2018-04-17 10:53:11 +0200110 pins = "V8 GMAC0 RXDV", "T10 GMAC1 RXDV";
Linus Walleij95220042017-11-19 11:04:23 +0100111 skew-delay = <0>;
112 };
113 conf1 {
Linus Walleij1c3bc8f2018-04-17 10:53:11 +0200114 pins = "Y7 GMAC0 RXC", "Y11 GMAC1 RXC";
Linus Walleij95220042017-11-19 11:04:23 +0100115 skew-delay = <15>;
116 };
117 conf2 {
Linus Walleij1c3bc8f2018-04-17 10:53:11 +0200118 pins = "T8 GMAC0 TXEN", "W11 GMAC1 TXEN";
Linus Walleij95220042017-11-19 11:04:23 +0100119 skew-delay = <7>;
120 };
121 conf3 {
Linus Walleij1c3bc8f2018-04-17 10:53:11 +0200122 pins = "U8 GMAC0 TXC";
Linus Walleij95220042017-11-19 11:04:23 +0100123 skew-delay = <11>;
124 };
125 conf4 {
Linus Walleij1c3bc8f2018-04-17 10:53:11 +0200126 pins = "V11 GMAC1 TXC";
Linus Walleij95220042017-11-19 11:04:23 +0100127 skew-delay = <10>;
128 };
129 conf5 {
130 /* The data lines all have default skew */
Linus Walleij1c3bc8f2018-04-17 10:53:11 +0200131 pins = "W8 GMAC0 RXD0", "V9 GMAC0 RXD1",
132 "Y8 GMAC0 RXD2", "U9 GMAC0 RXD3",
133 "T7 GMAC0 TXD0", "U6 GMAC0 TXD1",
134 "V7 GMAC0 TXD2", "U7 GMAC0 TXD3",
135 "Y12 GMAC1 RXD0", "V12 GMAC1 RXD1",
136 "T11 GMAC1 RXD2", "W12 GMAC1 RXD3",
137 "U10 GMAC1 TXD0", "Y10 GMAC1 TXD1",
138 "W10 GMAC1 TXD2", "T9 GMAC1 TXD3";
Linus Walleij95220042017-11-19 11:04:23 +0100139 skew-delay = <7>;
140 };
141 /* Set up drive strength on GMAC0 to 16 mA */
142 conf6 {
143 groups = "gmii_gmac0_grp";
144 drive-strength = <16>;
145 };
146 };
Linus Walleijf328c2e2017-07-05 16:59:33 +0200147 };
148 };
149
Linus Walleij0d7a2c32017-03-20 23:39:26 +0100150 sata: sata@46000000 {
151 cortina,gemini-ata-muxmode = <0>;
152 cortina,gemini-enable-sata-bridge;
153 status = "okay";
154 };
155
Linus Walleijf328c2e2017-07-05 16:59:33 +0200156 gpio1: gpio@4e000000 {
157 pinctrl-names = "default";
158 pinctrl-0 = <&gpio1_default_pins>;
159 };
160
Linus Walleij95220042017-11-19 11:04:23 +0100161 ethernet@60000000 {
162 status = "okay";
163
164 ethernet-port@0 {
165 phy-mode = "rgmii";
166 phy-handle = <&phy0>;
167 };
168 ethernet-port@1 {
169 /* Not used in this platform */
170 };
171 };
172
Linus Walleij67ac6542019-12-31 18:14:28 +0100173 ide@63000000 {
Linus Walleij0d7a2c32017-03-20 23:39:26 +0100174 status = "okay";
175 };
Linus Walleij56cb2d82018-05-05 16:38:52 +0200176
Linus Walleij67ac6542019-12-31 18:14:28 +0100177 ide@63400000 {
Linus Walleij56cb2d82018-05-05 16:38:52 +0200178 status = "okay";
179 };
Linus Walleijd6d0cef2017-04-21 20:50:22 +0200180
181 usb@68000000 {
182 status = "okay";
183 };
184
185 usb@69000000 {
186 status = "okay";
187 };
Linus Walleijfe7bf9d2017-01-21 13:26:58 +0100188 };
189};