0001 // SPDX-License-Identifier: GPL-2.0
0002 /*
0003 * Device Tree file for the Storm Semiconductor SL93512R_BRD
0004 * Gemini reference design, also initially called
0005 * "Gemini324 EV-Board" before Storm acquired Storlink Semiconductor.
0006 * The series were later acquired by Cortina Systems.
0007 */
0008
0009 /dts-v1/;
0010
0011 #include "gemini.dtsi"
0012 #include <dt-bindings/input/input.h>
0013
0014 / {
0015 model = "Storlink Semiconductor Gemini324 EV-Board / Storm Semiconductor SL93512R_BRD";
0016 compatible = "storlink,gemini324", "storm,sl93512r", "cortina,gemini";
0017 #address-cells = <1>;
0018 #size-cells = <1>;
0019
0020 memory@0 {
0021 /* 64 MB Samsung K4H511638B */
0022 device_type = "memory";
0023 reg = <0x00000000 0x4000000>;
0024 };
0025
0026 chosen {
0027 bootargs = "console=ttyS0,19200n8 root=/dev/mtdblock3 rw rootfstype=squashfs,jffs2 rootwait";
0028 stdout-path = &uart0;
0029 };
0030
0031 gpio_keys {
0032 compatible = "gpio-keys";
0033
0034 button-wps {
0035 debounce-interval = <50>;
0036 wakeup-source;
0037 linux,code = <KEY_WPS_BUTTON>;
0038 label = "WPS";
0039 /* Conflicts with TVC and extended flash */
0040 gpios = <&gpio0 0 GPIO_ACTIVE_LOW>;
0041 };
0042
0043 button-setup {
0044 debounce-interval = <50>;
0045 wakeup-source;
0046 linux,code = <KEY_SETUP>;
0047 label = "factory reset";
0048 /* Conflict with NAND flash */
0049 gpios = <&gpio0 18 GPIO_ACTIVE_LOW>;
0050 };
0051 };
0052
0053 leds {
0054 compatible = "gpio-leds";
0055 led-green-harddisk {
0056 label = "sq201:green:harddisk";
0057 /* Conflict with LCD (no problem) */
0058 gpios = <&gpio0 16 GPIO_ACTIVE_LOW>;
0059 default-state = "off";
0060 linux,default-trigger = "disk-activity";
0061 };
0062 led-green-wireless {
0063 label = "sq201:green:wireless";
0064 /* Conflict with NAND flash CE0 (no problem) */
0065 gpios = <&gpio0 17 GPIO_ACTIVE_LOW>;
0066 default-state = "on";
0067 linux,default-trigger = "heartbeat";
0068 };
0069 };
0070
0071 mdio0: mdio {
0072 compatible = "virtual,mdio-gpio";
0073 /* Uses MDC and MDIO */
0074 gpios = <&gpio0 22 GPIO_ACTIVE_HIGH>, /* MDC */
0075 <&gpio0 21 GPIO_ACTIVE_HIGH>; /* MDIO */
0076 #address-cells = <1>;
0077 #size-cells = <0>;
0078
0079 /* This is a Marvell 88E1111 ethernet transciever */
0080 phy0: ethernet-phy@1 {
0081 reg = <1>;
0082 };
0083 };
0084
0085 spi {
0086 compatible = "spi-gpio";
0087 #address-cells = <1>;
0088 #size-cells = <0>;
0089 /* Check pin collisions */
0090 sck-gpios = <&gpio1 28 GPIO_ACTIVE_HIGH>;
0091 miso-gpios = <&gpio1 30 GPIO_ACTIVE_HIGH>;
0092 mosi-gpios = <&gpio1 29 GPIO_ACTIVE_HIGH>;
0093 cs-gpios = <&gpio1 31 GPIO_ACTIVE_HIGH>;
0094 num-chipselects = <1>;
0095
0096 switch@0 {
0097 compatible = "vitesse,vsc7385";
0098 reg = <0>;
0099 /* Specified for 2.5 MHz or below */
0100 spi-max-frequency = <2500000>;
0101 gpio-controller;
0102 #gpio-cells = <2>;
0103
0104 ports {
0105 #address-cells = <1>;
0106 #size-cells = <0>;
0107
0108 port@0 {
0109 reg = <0>;
0110 label = "lan1";
0111 };
0112 port@1 {
0113 reg = <1>;
0114 label = "lan2";
0115 };
0116 port@2 {
0117 reg = <2>;
0118 label = "lan3";
0119 };
0120 port@3 {
0121 reg = <3>;
0122 label = "lan4";
0123 };
0124 vsc: port@6 {
0125 reg = <6>;
0126 label = "cpu";
0127 ethernet = <&gmac1>;
0128 phy-mode = "rgmii";
0129 fixed-link {
0130 speed = <1000>;
0131 full-duplex;
0132 pause;
0133 };
0134 };
0135 };
0136 };
0137 };
0138
0139
0140 soc {
0141 flash@30000000 {
0142 status = "okay";
0143 /* 16MB of flash */
0144 reg = <0x30000000 0x01000000>;
0145
0146 partitions {
0147 compatible = "redboot-fis";
0148 /* Eraseblock at 0xfe0000 */
0149 fis-index-block = <0x1fc>;
0150 };
0151 };
0152
0153 syscon: syscon@40000000 {
0154 pinctrl {
0155 /*
0156 * gpio0agrp cover line 0, used by WPS button
0157 * gpio0fgrp cover line 16 used by HD LED
0158 * gpio0ggrp cover line 17, 18 used by wireless LAN LED and
0159 * reset button OR USB ID select on 17 and USB VBUS select
0160 * on 18. (Confusing.)
0161 * gpio0igrp cover line 21, 22 used by MDIO for Marvell PHY
0162 */
0163 gpio0_default_pins: pinctrl-gpio0 {
0164 mux {
0165 function = "gpio0";
0166 groups = "gpio0agrp",
0167 "gpio0fgrp",
0168 "gpio0ggrp",
0169 "gpio0igrp";
0170 };
0171 };
0172 /*
0173 * gpio1dgrp cover lines used by SPI for
0174 * the Vitesse chip (28-31)
0175 */
0176 gpio1_default_pins: pinctrl-gpio1 {
0177 mux {
0178 function = "gpio1";
0179 groups = "gpio1dgrp";
0180 };
0181 };
0182 pinctrl-gmii {
0183 mux {
0184 function = "gmii";
0185 groups = "gmii_gmac0_grp", "gmii_gmac1_grp";
0186 };
0187 /* Control pad skew comes from sl_switch.c in the vendor code */
0188 conf0 {
0189 pins = "P10 GMAC1 TXC";
0190 skew-delay = <5>;
0191 };
0192 conf1 {
0193 pins = "V11 GMAC1 TXEN";
0194 skew-delay = <7>;
0195 };
0196 conf2 {
0197 pins = "T11 GMAC1 RXC";
0198 skew-delay = <8>;
0199 };
0200 conf3 {
0201 pins = "U11 GMAC1 RXDV";
0202 skew-delay = <7>;
0203 };
0204 conf4 {
0205 pins = "V7 GMAC0 TXC";
0206 skew-delay = <10>;
0207 };
0208 conf5 {
0209 pins = "P8 GMAC0 TXEN";
0210 skew-delay = <7>; /* 5 at another place? */
0211 };
0212 conf6 {
0213 pins = "T8 GMAC0 RXC";
0214 skew-delay = <15>;
0215 };
0216 conf7 {
0217 pins = "R8 GMAC0 RXDV";
0218 skew-delay = <0>;
0219 };
0220 conf8 {
0221 /* The data lines all have default skew */
0222 pins = "U8 GMAC0 RXD0", "V8 GMAC0 RXD1",
0223 "P9 GMAC0 RXD2", "R9 GMAC0 RXD3",
0224 "R11 GMAC1 RXD0", "P11 GMAC1 RXD1",
0225 "V12 GMAC1 RXD2", "U12 GMAC1 RXD3",
0226 "R10 GMAC1 TXD0", "T10 GMAC1 TXD1",
0227 "U10 GMAC1 TXD2", "V10 GMAC1 TXD3";
0228 skew-delay = <7>;
0229 };
0230 /* Appears in sl351x_gmac.c in the vendor code */
0231 conf9 {
0232 pins = "U7 GMAC0 TXD0", "T7 GMAC0 TXD1",
0233 "R7 GMAC0 TXD2", "P7 GMAC0 TXD3";
0234 skew-delay = <5>;
0235 };
0236 };
0237 };
0238 };
0239
0240 /* Both interfaces brought out on SATA connectors */
0241 sata: sata@46000000 {
0242 cortina,gemini-ata-muxmode = <0>;
0243 cortina,gemini-enable-sata-bridge;
0244 status = "okay";
0245 };
0246
0247 gpio0: gpio@4d000000 {
0248 pinctrl-names = "default";
0249 pinctrl-0 = <&gpio0_default_pins>;
0250 };
0251
0252 gpio1: gpio@4e000000 {
0253 pinctrl-names = "default";
0254 pinctrl-0 = <&gpio1_default_pins>;
0255 };
0256
0257 pci@50000000 {
0258 status = "okay";
0259 };
0260
0261 ethernet@60000000 {
0262 status = "okay";
0263
0264 ethernet-port@0 {
0265 phy-mode = "rgmii";
0266 phy-handle = <&phy0>;
0267 };
0268 ethernet-port@1 {
0269 phy-mode = "rgmii";
0270 fixed-link {
0271 speed = <1000>;
0272 full-duplex;
0273 pause;
0274 };
0275 };
0276 };
0277
0278 ide@63000000 {
0279 status = "okay";
0280 };
0281
0282 ide@63400000 {
0283 status = "okay";
0284 };
0285
0286 usb@68000000 {
0287 status = "okay";
0288 };
0289
0290 usb@69000000 {
0291 status = "okay";
0292 };
0293 };
0294 };