1724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0 2724ba675SRob Herring/* 3724ba675SRob Herring * Device Tree file for the Storm Semiconductor SL93512R_BRD 4724ba675SRob Herring * Gemini reference design, also initially called 5724ba675SRob Herring * "Gemini324 EV-Board" before Storm acquired Storlink Semiconductor. 6724ba675SRob Herring * The series were later acquired by Cortina Systems. 7724ba675SRob Herring */ 8724ba675SRob Herring 9724ba675SRob Herring/dts-v1/; 10724ba675SRob Herring 11724ba675SRob Herring#include "gemini.dtsi" 12724ba675SRob Herring#include <dt-bindings/input/input.h> 13724ba675SRob Herring 14724ba675SRob Herring/ { 15724ba675SRob Herring model = "Storlink Semiconductor Gemini324 EV-Board / Storm Semiconductor SL93512R_BRD"; 16724ba675SRob Herring compatible = "storlink,gemini324", "storm,sl93512r", "cortina,gemini"; 17724ba675SRob Herring #address-cells = <1>; 18724ba675SRob Herring #size-cells = <1>; 19724ba675SRob Herring 20724ba675SRob Herring memory@0 { 21724ba675SRob Herring /* 64 MB Samsung K4H511638B */ 22724ba675SRob Herring device_type = "memory"; 23724ba675SRob Herring reg = <0x00000000 0x4000000>; 24724ba675SRob Herring }; 25724ba675SRob Herring 26724ba675SRob Herring chosen { 27724ba675SRob Herring bootargs = "console=ttyS0,19200n8 root=/dev/mtdblock3 rw rootfstype=squashfs,jffs2 rootwait"; 28724ba675SRob Herring stdout-path = &uart0; 29724ba675SRob Herring }; 30724ba675SRob Herring 31724ba675SRob Herring gpio_keys { 32724ba675SRob Herring compatible = "gpio-keys"; 33724ba675SRob Herring 34724ba675SRob Herring button-wps { 35724ba675SRob Herring debounce-interval = <50>; 36724ba675SRob Herring wakeup-source; 37724ba675SRob Herring linux,code = <KEY_WPS_BUTTON>; 38724ba675SRob Herring label = "WPS"; 39724ba675SRob Herring /* Conflicts with TVC and extended flash */ 40724ba675SRob Herring gpios = <&gpio0 0 GPIO_ACTIVE_LOW>; 41724ba675SRob Herring }; 42724ba675SRob Herring 43724ba675SRob Herring button-setup { 44724ba675SRob Herring debounce-interval = <50>; 45724ba675SRob Herring wakeup-source; 46*c4a83b1aSLinus Walleij linux,code = <KEY_RESTART>; 47724ba675SRob Herring label = "factory reset"; 48724ba675SRob Herring /* Conflict with NAND flash */ 49724ba675SRob Herring gpios = <&gpio0 18 GPIO_ACTIVE_LOW>; 50724ba675SRob Herring }; 51724ba675SRob Herring }; 52724ba675SRob Herring 53724ba675SRob Herring leds { 54724ba675SRob Herring compatible = "gpio-leds"; 55724ba675SRob Herring led-green-harddisk { 56724ba675SRob Herring label = "sq201:green:harddisk"; 57724ba675SRob Herring /* Conflict with LCD (no problem) */ 58724ba675SRob Herring gpios = <&gpio0 16 GPIO_ACTIVE_LOW>; 59724ba675SRob Herring default-state = "off"; 60724ba675SRob Herring linux,default-trigger = "disk-activity"; 61724ba675SRob Herring }; 62724ba675SRob Herring led-green-wireless { 63724ba675SRob Herring label = "sq201:green:wireless"; 64724ba675SRob Herring /* Conflict with NAND flash CE0 (no problem) */ 65724ba675SRob Herring gpios = <&gpio0 17 GPIO_ACTIVE_LOW>; 66724ba675SRob Herring default-state = "on"; 67724ba675SRob Herring linux,default-trigger = "heartbeat"; 68724ba675SRob Herring }; 69724ba675SRob Herring }; 70724ba675SRob Herring 71724ba675SRob Herring mdio0: mdio { 72724ba675SRob Herring compatible = "virtual,mdio-gpio"; 73724ba675SRob Herring /* Uses MDC and MDIO */ 74724ba675SRob Herring gpios = <&gpio0 22 GPIO_ACTIVE_HIGH>, /* MDC */ 75724ba675SRob Herring <&gpio0 21 GPIO_ACTIVE_HIGH>; /* MDIO */ 76724ba675SRob Herring #address-cells = <1>; 77724ba675SRob Herring #size-cells = <0>; 78724ba675SRob Herring 79724ba675SRob Herring /* This is a Marvell 88E1111 ethernet transciever */ 80724ba675SRob Herring phy0: ethernet-phy@1 { 81724ba675SRob Herring reg = <1>; 82724ba675SRob Herring }; 83724ba675SRob Herring }; 84724ba675SRob Herring 85724ba675SRob Herring spi { 86724ba675SRob Herring compatible = "spi-gpio"; 87724ba675SRob Herring #address-cells = <1>; 88724ba675SRob Herring #size-cells = <0>; 89724ba675SRob Herring /* Check pin collisions */ 90724ba675SRob Herring sck-gpios = <&gpio1 28 GPIO_ACTIVE_HIGH>; 91724ba675SRob Herring miso-gpios = <&gpio1 30 GPIO_ACTIVE_HIGH>; 92724ba675SRob Herring mosi-gpios = <&gpio1 29 GPIO_ACTIVE_HIGH>; 93724ba675SRob Herring cs-gpios = <&gpio1 31 GPIO_ACTIVE_HIGH>; 94724ba675SRob Herring num-chipselects = <1>; 95724ba675SRob Herring 96724ba675SRob Herring switch@0 { 97724ba675SRob Herring compatible = "vitesse,vsc7385"; 98724ba675SRob Herring reg = <0>; 99724ba675SRob Herring /* Specified for 2.5 MHz or below */ 100724ba675SRob Herring spi-max-frequency = <2500000>; 101724ba675SRob Herring gpio-controller; 102724ba675SRob Herring #gpio-cells = <2>; 103724ba675SRob Herring 104724ba675SRob Herring ports { 105724ba675SRob Herring #address-cells = <1>; 106724ba675SRob Herring #size-cells = <0>; 107724ba675SRob Herring 108724ba675SRob Herring port@0 { 109724ba675SRob Herring reg = <0>; 110724ba675SRob Herring label = "lan1"; 111724ba675SRob Herring }; 112724ba675SRob Herring port@1 { 113724ba675SRob Herring reg = <1>; 114724ba675SRob Herring label = "lan2"; 115724ba675SRob Herring }; 116724ba675SRob Herring port@2 { 117724ba675SRob Herring reg = <2>; 118724ba675SRob Herring label = "lan3"; 119724ba675SRob Herring }; 120724ba675SRob Herring port@3 { 121724ba675SRob Herring reg = <3>; 122724ba675SRob Herring label = "lan4"; 123724ba675SRob Herring }; 124724ba675SRob Herring vsc: port@6 { 125724ba675SRob Herring reg = <6>; 126724ba675SRob Herring label = "cpu"; 127724ba675SRob Herring ethernet = <&gmac1>; 128724ba675SRob Herring phy-mode = "rgmii"; 129724ba675SRob Herring fixed-link { 130724ba675SRob Herring speed = <1000>; 131724ba675SRob Herring full-duplex; 132724ba675SRob Herring pause; 133724ba675SRob Herring }; 134724ba675SRob Herring }; 135724ba675SRob Herring }; 136724ba675SRob Herring }; 137724ba675SRob Herring }; 138724ba675SRob Herring 139724ba675SRob Herring 140724ba675SRob Herring soc { 141724ba675SRob Herring flash@30000000 { 142724ba675SRob Herring status = "okay"; 143724ba675SRob Herring /* 16MB of flash */ 144724ba675SRob Herring reg = <0x30000000 0x01000000>; 145724ba675SRob Herring 146724ba675SRob Herring partitions { 147724ba675SRob Herring compatible = "redboot-fis"; 148724ba675SRob Herring /* Eraseblock at 0xfe0000 */ 149724ba675SRob Herring fis-index-block = <0x1fc>; 150724ba675SRob Herring }; 151724ba675SRob Herring }; 152724ba675SRob Herring 153724ba675SRob Herring syscon: syscon@40000000 { 154724ba675SRob Herring pinctrl { 155724ba675SRob Herring /* 156724ba675SRob Herring * gpio0agrp cover line 0, used by WPS button 157724ba675SRob Herring * gpio0fgrp cover line 16 used by HD LED 158724ba675SRob Herring * gpio0ggrp cover line 17, 18 used by wireless LAN LED and 159724ba675SRob Herring * reset button OR USB ID select on 17 and USB VBUS select 160724ba675SRob Herring * on 18. (Confusing.) 161724ba675SRob Herring * gpio0igrp cover line 21, 22 used by MDIO for Marvell PHY 162724ba675SRob Herring */ 163724ba675SRob Herring gpio0_default_pins: pinctrl-gpio0 { 164724ba675SRob Herring mux { 165724ba675SRob Herring function = "gpio0"; 166724ba675SRob Herring groups = "gpio0agrp", 167724ba675SRob Herring "gpio0fgrp", 168724ba675SRob Herring "gpio0ggrp", 169724ba675SRob Herring "gpio0igrp"; 170724ba675SRob Herring }; 171724ba675SRob Herring }; 172724ba675SRob Herring /* 173724ba675SRob Herring * gpio1dgrp cover lines used by SPI for 174724ba675SRob Herring * the Vitesse chip (28-31) 175724ba675SRob Herring */ 176724ba675SRob Herring gpio1_default_pins: pinctrl-gpio1 { 177724ba675SRob Herring mux { 178724ba675SRob Herring function = "gpio1"; 179724ba675SRob Herring groups = "gpio1dgrp"; 180724ba675SRob Herring }; 181724ba675SRob Herring }; 182724ba675SRob Herring pinctrl-gmii { 183724ba675SRob Herring mux { 184724ba675SRob Herring function = "gmii"; 185724ba675SRob Herring groups = "gmii_gmac0_grp", "gmii_gmac1_grp"; 186724ba675SRob Herring }; 187724ba675SRob Herring /* Control pad skew comes from sl_switch.c in the vendor code */ 188724ba675SRob Herring conf0 { 189724ba675SRob Herring pins = "P10 GMAC1 TXC"; 190724ba675SRob Herring skew-delay = <5>; 191724ba675SRob Herring }; 192724ba675SRob Herring conf1 { 193724ba675SRob Herring pins = "V11 GMAC1 TXEN"; 194724ba675SRob Herring skew-delay = <7>; 195724ba675SRob Herring }; 196724ba675SRob Herring conf2 { 197724ba675SRob Herring pins = "T11 GMAC1 RXC"; 198724ba675SRob Herring skew-delay = <8>; 199724ba675SRob Herring }; 200724ba675SRob Herring conf3 { 201724ba675SRob Herring pins = "U11 GMAC1 RXDV"; 202724ba675SRob Herring skew-delay = <7>; 203724ba675SRob Herring }; 204724ba675SRob Herring conf4 { 205724ba675SRob Herring pins = "V7 GMAC0 TXC"; 206724ba675SRob Herring skew-delay = <10>; 207724ba675SRob Herring }; 208724ba675SRob Herring conf5 { 209724ba675SRob Herring pins = "P8 GMAC0 TXEN"; 210724ba675SRob Herring skew-delay = <7>; /* 5 at another place? */ 211724ba675SRob Herring }; 212724ba675SRob Herring conf6 { 213724ba675SRob Herring pins = "T8 GMAC0 RXC"; 214724ba675SRob Herring skew-delay = <15>; 215724ba675SRob Herring }; 216724ba675SRob Herring conf7 { 217724ba675SRob Herring pins = "R8 GMAC0 RXDV"; 218724ba675SRob Herring skew-delay = <0>; 219724ba675SRob Herring }; 220724ba675SRob Herring conf8 { 221724ba675SRob Herring /* The data lines all have default skew */ 222724ba675SRob Herring pins = "U8 GMAC0 RXD0", "V8 GMAC0 RXD1", 223724ba675SRob Herring "P9 GMAC0 RXD2", "R9 GMAC0 RXD3", 224724ba675SRob Herring "R11 GMAC1 RXD0", "P11 GMAC1 RXD1", 225724ba675SRob Herring "V12 GMAC1 RXD2", "U12 GMAC1 RXD3", 226724ba675SRob Herring "R10 GMAC1 TXD0", "T10 GMAC1 TXD1", 227724ba675SRob Herring "U10 GMAC1 TXD2", "V10 GMAC1 TXD3"; 228724ba675SRob Herring skew-delay = <7>; 229724ba675SRob Herring }; 230724ba675SRob Herring /* Appears in sl351x_gmac.c in the vendor code */ 231724ba675SRob Herring conf9 { 232724ba675SRob Herring pins = "U7 GMAC0 TXD0", "T7 GMAC0 TXD1", 233724ba675SRob Herring "R7 GMAC0 TXD2", "P7 GMAC0 TXD3"; 234724ba675SRob Herring skew-delay = <5>; 235724ba675SRob Herring }; 236724ba675SRob Herring }; 237724ba675SRob Herring }; 238724ba675SRob Herring }; 239724ba675SRob Herring 240724ba675SRob Herring /* Both interfaces brought out on SATA connectors */ 241724ba675SRob Herring sata: sata@46000000 { 242724ba675SRob Herring cortina,gemini-ata-muxmode = <0>; 243724ba675SRob Herring cortina,gemini-enable-sata-bridge; 244724ba675SRob Herring status = "okay"; 245724ba675SRob Herring }; 246724ba675SRob Herring 247724ba675SRob Herring gpio0: gpio@4d000000 { 248724ba675SRob Herring pinctrl-names = "default"; 249724ba675SRob Herring pinctrl-0 = <&gpio0_default_pins>; 250724ba675SRob Herring }; 251724ba675SRob Herring 252724ba675SRob Herring gpio1: gpio@4e000000 { 253724ba675SRob Herring pinctrl-names = "default"; 254724ba675SRob Herring pinctrl-0 = <&gpio1_default_pins>; 255724ba675SRob Herring }; 256724ba675SRob Herring 257724ba675SRob Herring pci@50000000 { 258724ba675SRob Herring status = "okay"; 259724ba675SRob Herring }; 260724ba675SRob Herring 261724ba675SRob Herring ethernet@60000000 { 262724ba675SRob Herring status = "okay"; 263724ba675SRob Herring 264724ba675SRob Herring ethernet-port@0 { 265724ba675SRob Herring phy-mode = "rgmii"; 266724ba675SRob Herring phy-handle = <&phy0>; 267724ba675SRob Herring }; 268724ba675SRob Herring ethernet-port@1 { 269724ba675SRob Herring phy-mode = "rgmii"; 270724ba675SRob Herring fixed-link { 271724ba675SRob Herring speed = <1000>; 272724ba675SRob Herring full-duplex; 273724ba675SRob Herring pause; 274724ba675SRob Herring }; 275724ba675SRob Herring }; 276724ba675SRob Herring }; 277724ba675SRob Herring 278724ba675SRob Herring ide@63000000 { 279724ba675SRob Herring status = "okay"; 280724ba675SRob Herring }; 281724ba675SRob Herring 282724ba675SRob Herring ide@63400000 { 283724ba675SRob Herring status = "okay"; 284724ba675SRob Herring }; 285724ba675SRob Herring 286724ba675SRob Herring usb@68000000 { 287724ba675SRob Herring status = "okay"; 288724ba675SRob Herring }; 289724ba675SRob Herring 290724ba675SRob Herring usb@69000000 { 291724ba675SRob Herring status = "okay"; 292724ba675SRob Herring }; 293724ba675SRob Herring }; 294724ba675SRob Herring}; 295