1f126890aSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0 OR MIT) 2f126890aSEmmanuel Vadot/* 3f126890aSEmmanuel Vadot * Device Tree file for the Turris Omnia 4f126890aSEmmanuel Vadot * 5f126890aSEmmanuel Vadot * Copyright (C) 2016 Uwe Kleine-König <uwe@kleine-koenig.org> 6f126890aSEmmanuel Vadot * Copyright (C) 2016 Tomas Hlavacek <tmshlvkc@gmail.com> 7f126890aSEmmanuel Vadot * 8f126890aSEmmanuel Vadot * Schematic available at https://www.turris.cz/doc/_media/rtrom01-schema.pdf 9f126890aSEmmanuel Vadot */ 10f126890aSEmmanuel Vadot 11f126890aSEmmanuel Vadot/dts-v1/; 12f126890aSEmmanuel Vadot 13f126890aSEmmanuel Vadot#include <dt-bindings/gpio/gpio.h> 14f126890aSEmmanuel Vadot#include <dt-bindings/input/input.h> 15f126890aSEmmanuel Vadot#include <dt-bindings/leds/common.h> 16f126890aSEmmanuel Vadot#include "armada-385.dtsi" 17f126890aSEmmanuel Vadot 18f126890aSEmmanuel Vadot/ { 19f126890aSEmmanuel Vadot model = "Turris Omnia"; 20f126890aSEmmanuel Vadot compatible = "cznic,turris-omnia", "marvell,armada385", "marvell,armada380"; 21f126890aSEmmanuel Vadot 22f126890aSEmmanuel Vadot chosen { 23f126890aSEmmanuel Vadot stdout-path = &uart0; 24f126890aSEmmanuel Vadot }; 25f126890aSEmmanuel Vadot 26f126890aSEmmanuel Vadot aliases { 27f126890aSEmmanuel Vadot ethernet0 = ð0; 28f126890aSEmmanuel Vadot ethernet1 = ð1; 29f126890aSEmmanuel Vadot ethernet2 = ð2; 30f126890aSEmmanuel Vadot }; 31f126890aSEmmanuel Vadot 32f126890aSEmmanuel Vadot memory { 33f126890aSEmmanuel Vadot device_type = "memory"; 34f126890aSEmmanuel Vadot reg = <0x00000000 0x40000000>; /* 1024 MB */ 35f126890aSEmmanuel Vadot }; 36f126890aSEmmanuel Vadot 37f126890aSEmmanuel Vadot soc { 38f126890aSEmmanuel Vadot ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000 39f126890aSEmmanuel Vadot MBUS_ID(0x01, 0x1d) 0 0xfff00000 0x100000 40f126890aSEmmanuel Vadot MBUS_ID(0x09, 0x19) 0 0xf1100000 0x10000 41f126890aSEmmanuel Vadot MBUS_ID(0x09, 0x15) 0 0xf1110000 0x10000 42f126890aSEmmanuel Vadot MBUS_ID(0x0c, 0x04) 0 0xf1200000 0x100000>; 43f126890aSEmmanuel Vadot 44f126890aSEmmanuel Vadot internal-regs { 45f126890aSEmmanuel Vadot 46f126890aSEmmanuel Vadot /* USB part of the PCIe2/USB 2.0 port */ 47f126890aSEmmanuel Vadot usb@58000 { 48f126890aSEmmanuel Vadot status = "okay"; 49f126890aSEmmanuel Vadot }; 50f126890aSEmmanuel Vadot 51f126890aSEmmanuel Vadot sata@a8000 { 52f126890aSEmmanuel Vadot status = "okay"; 53f126890aSEmmanuel Vadot }; 54f126890aSEmmanuel Vadot 55f126890aSEmmanuel Vadot sdhci@d8000 { 56f126890aSEmmanuel Vadot pinctrl-names = "default"; 57f126890aSEmmanuel Vadot pinctrl-0 = <&sdhci_pins>; 58f126890aSEmmanuel Vadot status = "okay"; 59f126890aSEmmanuel Vadot 60f126890aSEmmanuel Vadot bus-width = <8>; 61f126890aSEmmanuel Vadot no-1-8-v; 62f126890aSEmmanuel Vadot non-removable; 63f126890aSEmmanuel Vadot }; 64f126890aSEmmanuel Vadot 65f126890aSEmmanuel Vadot usb3@f0000 { 66f126890aSEmmanuel Vadot status = "okay"; 67f126890aSEmmanuel Vadot }; 68f126890aSEmmanuel Vadot 69f126890aSEmmanuel Vadot usb3@f8000 { 70f126890aSEmmanuel Vadot status = "okay"; 71f126890aSEmmanuel Vadot }; 72f126890aSEmmanuel Vadot }; 73f126890aSEmmanuel Vadot 74f126890aSEmmanuel Vadot pcie { 75f126890aSEmmanuel Vadot status = "okay"; 76f126890aSEmmanuel Vadot 77f126890aSEmmanuel Vadot pcie@1,0 { 78f126890aSEmmanuel Vadot /* Port 0, Lane 0 */ 79f126890aSEmmanuel Vadot status = "okay"; 80f126890aSEmmanuel Vadot slot-power-limit-milliwatt = <10000>; 81f126890aSEmmanuel Vadot }; 82f126890aSEmmanuel Vadot 83f126890aSEmmanuel Vadot pcie@2,0 { 84f126890aSEmmanuel Vadot /* Port 1, Lane 0 */ 85f126890aSEmmanuel Vadot status = "okay"; 86f126890aSEmmanuel Vadot slot-power-limit-milliwatt = <10000>; 87f126890aSEmmanuel Vadot }; 88f126890aSEmmanuel Vadot 89f126890aSEmmanuel Vadot pcie@3,0 { 90f126890aSEmmanuel Vadot /* Port 2, Lane 0 */ 91f126890aSEmmanuel Vadot status = "okay"; 92f126890aSEmmanuel Vadot slot-power-limit-milliwatt = <10000>; 93f126890aSEmmanuel Vadot }; 94f126890aSEmmanuel Vadot }; 95f126890aSEmmanuel Vadot }; 96f126890aSEmmanuel Vadot 97f126890aSEmmanuel Vadot sfp: sfp { 98f126890aSEmmanuel Vadot compatible = "sff,sfp"; 99f126890aSEmmanuel Vadot i2c-bus = <&sfp_i2c>; 100f126890aSEmmanuel Vadot tx-fault-gpios = <&pcawan 0 GPIO_ACTIVE_HIGH>; 101f126890aSEmmanuel Vadot tx-disable-gpios = <&pcawan 1 GPIO_ACTIVE_HIGH>; 102f126890aSEmmanuel Vadot rate-select0-gpios = <&pcawan 2 GPIO_ACTIVE_HIGH>; 103f126890aSEmmanuel Vadot los-gpios = <&pcawan 3 GPIO_ACTIVE_HIGH>; 104f126890aSEmmanuel Vadot mod-def0-gpios = <&pcawan 4 GPIO_ACTIVE_LOW>; 105f126890aSEmmanuel Vadot maximum-power-milliwatt = <3000>; 106f126890aSEmmanuel Vadot 107f126890aSEmmanuel Vadot /* 108f126890aSEmmanuel Vadot * For now this has to be enabled at boot time by U-Boot when 109f126890aSEmmanuel Vadot * a SFP module is present. Read more in the comment in the 110f126890aSEmmanuel Vadot * eth2 node below. 111f126890aSEmmanuel Vadot */ 112f126890aSEmmanuel Vadot status = "disabled"; 113f126890aSEmmanuel Vadot }; 114f126890aSEmmanuel Vadot 115*0e8011faSEmmanuel Vadot gpio-keys { 116*0e8011faSEmmanuel Vadot compatible = "gpio-keys"; 117*0e8011faSEmmanuel Vadot 118*0e8011faSEmmanuel Vadot front-button { 119*0e8011faSEmmanuel Vadot label = "Front Button"; 120*0e8011faSEmmanuel Vadot linux,code = <KEY_VENDOR>; 121*0e8011faSEmmanuel Vadot linux,can-disable; 122*0e8011faSEmmanuel Vadot gpios = <&mcu 0 12 GPIO_ACTIVE_HIGH>; 123*0e8011faSEmmanuel Vadot /* debouncing is done by the microcontroller */ 124*0e8011faSEmmanuel Vadot debounce-interval = <0>; 125*0e8011faSEmmanuel Vadot }; 126*0e8011faSEmmanuel Vadot }; 127*0e8011faSEmmanuel Vadot 128f126890aSEmmanuel Vadot sound { 129f126890aSEmmanuel Vadot compatible = "simple-audio-card"; 130f126890aSEmmanuel Vadot simple-audio-card,name = "SPDIF"; 131f126890aSEmmanuel Vadot simple-audio-card,format = "i2s"; 132f126890aSEmmanuel Vadot 133f126890aSEmmanuel Vadot simple-audio-card,cpu { 134f126890aSEmmanuel Vadot sound-dai = <&audio_controller 1>; 135f126890aSEmmanuel Vadot }; 136f126890aSEmmanuel Vadot 137f126890aSEmmanuel Vadot simple-audio-card,codec { 138f126890aSEmmanuel Vadot sound-dai = <&spdif_out>; 139f126890aSEmmanuel Vadot }; 140f126890aSEmmanuel Vadot }; 141f126890aSEmmanuel Vadot 142f126890aSEmmanuel Vadot spdif_out: spdif-out { 143f126890aSEmmanuel Vadot #sound-dai-cells = <0>; 144f126890aSEmmanuel Vadot compatible = "linux,spdif-dit"; 145f126890aSEmmanuel Vadot }; 146f126890aSEmmanuel Vadot}; 147f126890aSEmmanuel Vadot 148f126890aSEmmanuel Vadot&audio_controller { 149f126890aSEmmanuel Vadot /* Pin header U16, GPIO51 in SPDIFO mode */ 150f126890aSEmmanuel Vadot pinctrl-0 = <&spdif_pins>; 151f126890aSEmmanuel Vadot pinctrl-names = "default"; 152f126890aSEmmanuel Vadot spdif-mode; 153f126890aSEmmanuel Vadot status = "okay"; 154f126890aSEmmanuel Vadot}; 155f126890aSEmmanuel Vadot 156f126890aSEmmanuel Vadot&bm { 157f126890aSEmmanuel Vadot status = "okay"; 158f126890aSEmmanuel Vadot}; 159f126890aSEmmanuel Vadot 160f126890aSEmmanuel Vadot&bm_bppi { 161f126890aSEmmanuel Vadot status = "okay"; 162f126890aSEmmanuel Vadot}; 163f126890aSEmmanuel Vadot 164f126890aSEmmanuel Vadot/* Connected to 88E6176 switch, port 6 */ 165f126890aSEmmanuel Vadotð0 { 166f126890aSEmmanuel Vadot pinctrl-names = "default"; 167f126890aSEmmanuel Vadot pinctrl-0 = <&ge0_rgmii_pins>; 168f126890aSEmmanuel Vadot status = "okay"; 169f126890aSEmmanuel Vadot phy-mode = "rgmii"; 170f126890aSEmmanuel Vadot buffer-manager = <&bm>; 171f126890aSEmmanuel Vadot bm,pool-long = <0>; 172f126890aSEmmanuel Vadot bm,pool-short = <3>; 173f126890aSEmmanuel Vadot 174f126890aSEmmanuel Vadot fixed-link { 175f126890aSEmmanuel Vadot speed = <1000>; 176f126890aSEmmanuel Vadot full-duplex; 177f126890aSEmmanuel Vadot }; 178f126890aSEmmanuel Vadot}; 179f126890aSEmmanuel Vadot 180f126890aSEmmanuel Vadot/* Connected to 88E6176 switch, port 5 */ 181f126890aSEmmanuel Vadotð1 { 182f126890aSEmmanuel Vadot pinctrl-names = "default"; 183f126890aSEmmanuel Vadot pinctrl-0 = <&ge1_rgmii_pins>; 184f126890aSEmmanuel Vadot status = "okay"; 185f126890aSEmmanuel Vadot phy-mode = "rgmii"; 186f126890aSEmmanuel Vadot buffer-manager = <&bm>; 187f126890aSEmmanuel Vadot bm,pool-long = <1>; 188f126890aSEmmanuel Vadot bm,pool-short = <3>; 189f126890aSEmmanuel Vadot 190f126890aSEmmanuel Vadot fixed-link { 191f126890aSEmmanuel Vadot speed = <1000>; 192f126890aSEmmanuel Vadot full-duplex; 193f126890aSEmmanuel Vadot }; 194f126890aSEmmanuel Vadot}; 195f126890aSEmmanuel Vadot 196f126890aSEmmanuel Vadot/* WAN port */ 197f126890aSEmmanuel Vadotð2 { 198f126890aSEmmanuel Vadot /* 199f126890aSEmmanuel Vadot * eth2 is connected via a multiplexor to both the SFP cage and to 200f126890aSEmmanuel Vadot * ethernet-phy@1. The multiplexor switches the signal to SFP cage when 201f126890aSEmmanuel Vadot * a SFP module is present, as determined by the mode-def0 GPIO. 202f126890aSEmmanuel Vadot * 203f126890aSEmmanuel Vadot * Until kernel supports this configuration properly, in case SFP module 204f126890aSEmmanuel Vadot * is present, U-Boot has to enable the sfp node above, remove phy 205f126890aSEmmanuel Vadot * handle and add managed = "in-band-status" property. 206f126890aSEmmanuel Vadot */ 207f126890aSEmmanuel Vadot status = "okay"; 208f126890aSEmmanuel Vadot phy-mode = "sgmii"; 209f126890aSEmmanuel Vadot phy-handle = <&phy1>; 210f126890aSEmmanuel Vadot phys = <&comphy5 2>; 211f126890aSEmmanuel Vadot sfp = <&sfp>; 212f126890aSEmmanuel Vadot buffer-manager = <&bm>; 213f126890aSEmmanuel Vadot bm,pool-long = <2>; 214f126890aSEmmanuel Vadot bm,pool-short = <3>; 215f126890aSEmmanuel Vadot label = "wan"; 216f126890aSEmmanuel Vadot}; 217f126890aSEmmanuel Vadot 218f126890aSEmmanuel Vadot&i2c0 { 219f126890aSEmmanuel Vadot pinctrl-names = "default"; 220f126890aSEmmanuel Vadot pinctrl-0 = <&i2c0_pins>; 221f126890aSEmmanuel Vadot status = "okay"; 222f126890aSEmmanuel Vadot 223f126890aSEmmanuel Vadot i2cmux@70 { 224f126890aSEmmanuel Vadot compatible = "nxp,pca9547"; 225f126890aSEmmanuel Vadot #address-cells = <1>; 226f126890aSEmmanuel Vadot #size-cells = <0>; 227f126890aSEmmanuel Vadot reg = <0x70>; 228f126890aSEmmanuel Vadot 229f126890aSEmmanuel Vadot i2c@0 { 230f126890aSEmmanuel Vadot #address-cells = <1>; 231f126890aSEmmanuel Vadot #size-cells = <0>; 232f126890aSEmmanuel Vadot reg = <0>; 233f126890aSEmmanuel Vadot 234*0e8011faSEmmanuel Vadot mcu: system-controller@2a { 235*0e8011faSEmmanuel Vadot compatible = "cznic,turris-omnia-mcu"; 236*0e8011faSEmmanuel Vadot reg = <0x2a>; 237*0e8011faSEmmanuel Vadot 238*0e8011faSEmmanuel Vadot pinctrl-names = "default"; 239*0e8011faSEmmanuel Vadot pinctrl-0 = <&mcu_pins>; 240*0e8011faSEmmanuel Vadot 241*0e8011faSEmmanuel Vadot interrupt-parent = <&gpio1>; 242*0e8011faSEmmanuel Vadot interrupts = <11 IRQ_TYPE_NONE>; 243*0e8011faSEmmanuel Vadot 244*0e8011faSEmmanuel Vadot gpio-controller; 245*0e8011faSEmmanuel Vadot #gpio-cells = <3>; 246*0e8011faSEmmanuel Vadot 247*0e8011faSEmmanuel Vadot interrupt-controller; 248*0e8011faSEmmanuel Vadot #interrupt-cells = <2>; 249*0e8011faSEmmanuel Vadot }; 250f126890aSEmmanuel Vadot 251f126890aSEmmanuel Vadot led-controller@2b { 252f126890aSEmmanuel Vadot compatible = "cznic,turris-omnia-leds"; 253f126890aSEmmanuel Vadot reg = <0x2b>; 254f126890aSEmmanuel Vadot #address-cells = <1>; 255f126890aSEmmanuel Vadot #size-cells = <0>; 256f126890aSEmmanuel Vadot status = "okay"; 257f126890aSEmmanuel Vadot 258f126890aSEmmanuel Vadot /* 259f126890aSEmmanuel Vadot * LEDs are controlled by MCU (STM32F0) at 260f126890aSEmmanuel Vadot * address 0x2b. 261f126890aSEmmanuel Vadot * 262f126890aSEmmanuel Vadot * LED functions are not stable yet: 263f126890aSEmmanuel Vadot * - there are 3 LEDs connected via MCU to PCIe 264f126890aSEmmanuel Vadot * ports. One of these ports supports mSATA. 265f126890aSEmmanuel Vadot * There is no mSATA nor PCIe function. 266f126890aSEmmanuel Vadot * For now we use LED_FUNCTION_WLAN, since 267f126890aSEmmanuel Vadot * in most cases users have wifi cards in 268f126890aSEmmanuel Vadot * these slots 269f126890aSEmmanuel Vadot * - there are 2 LEDs dedicated for user: A and 270f126890aSEmmanuel Vadot * B. Again there is no such function defined. 271f126890aSEmmanuel Vadot * For now we use LED_FUNCTION_INDICATOR 272f126890aSEmmanuel Vadot */ 273f126890aSEmmanuel Vadot 274f126890aSEmmanuel Vadot multi-led@0 { 275f126890aSEmmanuel Vadot reg = <0x0>; 276f126890aSEmmanuel Vadot color = <LED_COLOR_ID_RGB>; 277f126890aSEmmanuel Vadot function = LED_FUNCTION_INDICATOR; 278f126890aSEmmanuel Vadot function-enumerator = <2>; 279f126890aSEmmanuel Vadot }; 280f126890aSEmmanuel Vadot 281f126890aSEmmanuel Vadot multi-led@1 { 282f126890aSEmmanuel Vadot reg = <0x1>; 283f126890aSEmmanuel Vadot color = <LED_COLOR_ID_RGB>; 284f126890aSEmmanuel Vadot function = LED_FUNCTION_INDICATOR; 285f126890aSEmmanuel Vadot function-enumerator = <1>; 286f126890aSEmmanuel Vadot }; 287f126890aSEmmanuel Vadot 288f126890aSEmmanuel Vadot multi-led@2 { 289f126890aSEmmanuel Vadot reg = <0x2>; 290f126890aSEmmanuel Vadot color = <LED_COLOR_ID_RGB>; 291f126890aSEmmanuel Vadot function = LED_FUNCTION_WLAN; 292f126890aSEmmanuel Vadot function-enumerator = <3>; 293f126890aSEmmanuel Vadot }; 294f126890aSEmmanuel Vadot 295f126890aSEmmanuel Vadot multi-led@3 { 296f126890aSEmmanuel Vadot reg = <0x3>; 297f126890aSEmmanuel Vadot color = <LED_COLOR_ID_RGB>; 298f126890aSEmmanuel Vadot function = LED_FUNCTION_WLAN; 299f126890aSEmmanuel Vadot function-enumerator = <2>; 300f126890aSEmmanuel Vadot }; 301f126890aSEmmanuel Vadot 302f126890aSEmmanuel Vadot multi-led@4 { 303f126890aSEmmanuel Vadot reg = <0x4>; 304f126890aSEmmanuel Vadot color = <LED_COLOR_ID_RGB>; 305f126890aSEmmanuel Vadot function = LED_FUNCTION_WLAN; 306f126890aSEmmanuel Vadot function-enumerator = <1>; 307f126890aSEmmanuel Vadot }; 308f126890aSEmmanuel Vadot 309f126890aSEmmanuel Vadot multi-led@5 { 310f126890aSEmmanuel Vadot reg = <0x5>; 311f126890aSEmmanuel Vadot color = <LED_COLOR_ID_RGB>; 312f126890aSEmmanuel Vadot function = LED_FUNCTION_WAN; 313f126890aSEmmanuel Vadot }; 314f126890aSEmmanuel Vadot 315f126890aSEmmanuel Vadot multi-led@6 { 316f126890aSEmmanuel Vadot reg = <0x6>; 317f126890aSEmmanuel Vadot color = <LED_COLOR_ID_RGB>; 318f126890aSEmmanuel Vadot function = LED_FUNCTION_LAN; 319f126890aSEmmanuel Vadot function-enumerator = <4>; 320f126890aSEmmanuel Vadot }; 321f126890aSEmmanuel Vadot 322f126890aSEmmanuel Vadot multi-led@7 { 323f126890aSEmmanuel Vadot reg = <0x7>; 324f126890aSEmmanuel Vadot color = <LED_COLOR_ID_RGB>; 325f126890aSEmmanuel Vadot function = LED_FUNCTION_LAN; 326f126890aSEmmanuel Vadot function-enumerator = <3>; 327f126890aSEmmanuel Vadot }; 328f126890aSEmmanuel Vadot 329f126890aSEmmanuel Vadot multi-led@8 { 330f126890aSEmmanuel Vadot reg = <0x8>; 331f126890aSEmmanuel Vadot color = <LED_COLOR_ID_RGB>; 332f126890aSEmmanuel Vadot function = LED_FUNCTION_LAN; 333f126890aSEmmanuel Vadot function-enumerator = <2>; 334f126890aSEmmanuel Vadot }; 335f126890aSEmmanuel Vadot 336f126890aSEmmanuel Vadot multi-led@9 { 337f126890aSEmmanuel Vadot reg = <0x9>; 338f126890aSEmmanuel Vadot color = <LED_COLOR_ID_RGB>; 339f126890aSEmmanuel Vadot function = LED_FUNCTION_LAN; 340f126890aSEmmanuel Vadot function-enumerator = <1>; 341f126890aSEmmanuel Vadot }; 342f126890aSEmmanuel Vadot 343f126890aSEmmanuel Vadot multi-led@a { 344f126890aSEmmanuel Vadot reg = <0xa>; 345f126890aSEmmanuel Vadot color = <LED_COLOR_ID_RGB>; 346f126890aSEmmanuel Vadot function = LED_FUNCTION_LAN; 347f126890aSEmmanuel Vadot function-enumerator = <0>; 348f126890aSEmmanuel Vadot }; 349f126890aSEmmanuel Vadot 350f126890aSEmmanuel Vadot multi-led@b { 351f126890aSEmmanuel Vadot reg = <0xb>; 352f126890aSEmmanuel Vadot color = <LED_COLOR_ID_RGB>; 353f126890aSEmmanuel Vadot function = LED_FUNCTION_POWER; 354f126890aSEmmanuel Vadot }; 355f126890aSEmmanuel Vadot }; 356f126890aSEmmanuel Vadot 357f126890aSEmmanuel Vadot eeprom@54 { 358f126890aSEmmanuel Vadot compatible = "atmel,24c64"; 359f126890aSEmmanuel Vadot reg = <0x54>; 360f126890aSEmmanuel Vadot 361f126890aSEmmanuel Vadot /* The EEPROM contains data for bootloader. 362f126890aSEmmanuel Vadot * Contents: 363f126890aSEmmanuel Vadot * struct omnia_eeprom { 364f126890aSEmmanuel Vadot * u32 magic; (=0x0341a034 in LE) 365f126890aSEmmanuel Vadot * u32 ramsize; (in GiB) 366f126890aSEmmanuel Vadot * char regdomain[4]; 367f126890aSEmmanuel Vadot * u32 crc32; 368f126890aSEmmanuel Vadot * }; 369f126890aSEmmanuel Vadot */ 370f126890aSEmmanuel Vadot }; 371f126890aSEmmanuel Vadot }; 372f126890aSEmmanuel Vadot 373f126890aSEmmanuel Vadot i2c@1 { 374f126890aSEmmanuel Vadot #address-cells = <1>; 375f126890aSEmmanuel Vadot #size-cells = <0>; 376f126890aSEmmanuel Vadot reg = <1>; 377f126890aSEmmanuel Vadot 378f126890aSEmmanuel Vadot /* routed to PCIe0/mSATA connector (CN7A) */ 379f126890aSEmmanuel Vadot }; 380f126890aSEmmanuel Vadot 381f126890aSEmmanuel Vadot i2c@2 { 382f126890aSEmmanuel Vadot #address-cells = <1>; 383f126890aSEmmanuel Vadot #size-cells = <0>; 384f126890aSEmmanuel Vadot reg = <2>; 385f126890aSEmmanuel Vadot 386f126890aSEmmanuel Vadot /* routed to PCIe1/USB2 connector (CN61A) */ 387f126890aSEmmanuel Vadot }; 388f126890aSEmmanuel Vadot 389f126890aSEmmanuel Vadot i2c@3 { 390f126890aSEmmanuel Vadot #address-cells = <1>; 391f126890aSEmmanuel Vadot #size-cells = <0>; 392f126890aSEmmanuel Vadot reg = <3>; 393f126890aSEmmanuel Vadot 394f126890aSEmmanuel Vadot /* routed to PCIe2 connector (CN62A) */ 395f126890aSEmmanuel Vadot }; 396f126890aSEmmanuel Vadot 397f126890aSEmmanuel Vadot sfp_i2c: i2c@4 { 398f126890aSEmmanuel Vadot #address-cells = <1>; 399f126890aSEmmanuel Vadot #size-cells = <0>; 400f126890aSEmmanuel Vadot reg = <4>; 401f126890aSEmmanuel Vadot 402f126890aSEmmanuel Vadot /* routed to SFP+ */ 403f126890aSEmmanuel Vadot }; 404f126890aSEmmanuel Vadot 405f126890aSEmmanuel Vadot i2c@5 { 406f126890aSEmmanuel Vadot #address-cells = <1>; 407f126890aSEmmanuel Vadot #size-cells = <0>; 408f126890aSEmmanuel Vadot reg = <5>; 409f126890aSEmmanuel Vadot 410f126890aSEmmanuel Vadot /* ATSHA204A-MAHDA-T crypto module */ 411f126890aSEmmanuel Vadot crypto@64 { 412f126890aSEmmanuel Vadot compatible = "atmel,atsha204a"; 413f126890aSEmmanuel Vadot reg = <0x64>; 414f126890aSEmmanuel Vadot }; 415f126890aSEmmanuel Vadot }; 416f126890aSEmmanuel Vadot 417f126890aSEmmanuel Vadot i2c@6 { 418f126890aSEmmanuel Vadot #address-cells = <1>; 419f126890aSEmmanuel Vadot #size-cells = <0>; 420f126890aSEmmanuel Vadot reg = <6>; 421f126890aSEmmanuel Vadot 422f126890aSEmmanuel Vadot /* exposed on pin header */ 423f126890aSEmmanuel Vadot }; 424f126890aSEmmanuel Vadot 425f126890aSEmmanuel Vadot i2c@7 { 426f126890aSEmmanuel Vadot #address-cells = <1>; 427f126890aSEmmanuel Vadot #size-cells = <0>; 428f126890aSEmmanuel Vadot reg = <7>; 429f126890aSEmmanuel Vadot 430f126890aSEmmanuel Vadot pcawan: gpio@71 { 431f126890aSEmmanuel Vadot /* 432f126890aSEmmanuel Vadot * GPIO expander for SFP+ signals and 433f126890aSEmmanuel Vadot * and phy irq 434f126890aSEmmanuel Vadot */ 435f126890aSEmmanuel Vadot compatible = "nxp,pca9538"; 436f126890aSEmmanuel Vadot reg = <0x71>; 437f126890aSEmmanuel Vadot 438f126890aSEmmanuel Vadot pinctrl-names = "default"; 439f126890aSEmmanuel Vadot pinctrl-0 = <&pcawan_pins>; 440f126890aSEmmanuel Vadot 441f126890aSEmmanuel Vadot interrupt-parent = <&gpio1>; 442f126890aSEmmanuel Vadot interrupts = <14 IRQ_TYPE_LEVEL_LOW>; 443f126890aSEmmanuel Vadot 444f126890aSEmmanuel Vadot gpio-controller; 445f126890aSEmmanuel Vadot #gpio-cells = <2>; 446f126890aSEmmanuel Vadot }; 447f126890aSEmmanuel Vadot }; 448f126890aSEmmanuel Vadot }; 449f126890aSEmmanuel Vadot}; 450f126890aSEmmanuel Vadot 451f126890aSEmmanuel Vadot&mdio { 452f126890aSEmmanuel Vadot pinctrl-names = "default"; 453f126890aSEmmanuel Vadot pinctrl-0 = <&mdio_pins>; 454f126890aSEmmanuel Vadot status = "okay"; 455f126890aSEmmanuel Vadot 456f126890aSEmmanuel Vadot phy1: ethernet-phy@1 { 457f126890aSEmmanuel Vadot compatible = "ethernet-phy-ieee802.3-c22"; 458f126890aSEmmanuel Vadot reg = <1>; 459f126890aSEmmanuel Vadot marvell,reg-init = <3 18 0 0x4985>, 460f126890aSEmmanuel Vadot <3 16 0xfff0 0x0001>; 461f126890aSEmmanuel Vadot 462f126890aSEmmanuel Vadot /* irq is connected to &pcawan pin 7 */ 463f126890aSEmmanuel Vadot }; 464f126890aSEmmanuel Vadot 465f126890aSEmmanuel Vadot /* Switch MV88E6176 at address 0x10 */ 4668d13bc63SEmmanuel Vadot ethernet-switch@10 { 467f126890aSEmmanuel Vadot pinctrl-names = "default"; 468f126890aSEmmanuel Vadot pinctrl-0 = <&swint_pins>; 469f126890aSEmmanuel Vadot compatible = "marvell,mv88e6085"; 470f126890aSEmmanuel Vadot 471f126890aSEmmanuel Vadot dsa,member = <0 0>; 472f126890aSEmmanuel Vadot reg = <0x10>; 473f126890aSEmmanuel Vadot 474f126890aSEmmanuel Vadot interrupt-parent = <&gpio1>; 475f126890aSEmmanuel Vadot interrupts = <13 IRQ_TYPE_LEVEL_LOW>; 476f126890aSEmmanuel Vadot 4778d13bc63SEmmanuel Vadot ethernet-ports { 478f126890aSEmmanuel Vadot #address-cells = <1>; 479f126890aSEmmanuel Vadot #size-cells = <0>; 480f126890aSEmmanuel Vadot 4818d13bc63SEmmanuel Vadot ethernet-port@0 { 482f126890aSEmmanuel Vadot reg = <0>; 483f126890aSEmmanuel Vadot label = "lan0"; 484f126890aSEmmanuel Vadot }; 485f126890aSEmmanuel Vadot 4868d13bc63SEmmanuel Vadot ethernet-port@1 { 487f126890aSEmmanuel Vadot reg = <1>; 488f126890aSEmmanuel Vadot label = "lan1"; 489f126890aSEmmanuel Vadot }; 490f126890aSEmmanuel Vadot 4918d13bc63SEmmanuel Vadot ethernet-port@2 { 492f126890aSEmmanuel Vadot reg = <2>; 493f126890aSEmmanuel Vadot label = "lan2"; 494f126890aSEmmanuel Vadot }; 495f126890aSEmmanuel Vadot 4968d13bc63SEmmanuel Vadot ethernet-port@3 { 497f126890aSEmmanuel Vadot reg = <3>; 498f126890aSEmmanuel Vadot label = "lan3"; 499f126890aSEmmanuel Vadot }; 500f126890aSEmmanuel Vadot 5018d13bc63SEmmanuel Vadot ethernet-port@4 { 502f126890aSEmmanuel Vadot reg = <4>; 503f126890aSEmmanuel Vadot label = "lan4"; 504f126890aSEmmanuel Vadot }; 505f126890aSEmmanuel Vadot 5068d13bc63SEmmanuel Vadot ethernet-port@5 { 507f126890aSEmmanuel Vadot reg = <5>; 508f126890aSEmmanuel Vadot ethernet = <ð1>; 509f126890aSEmmanuel Vadot phy-mode = "rgmii-id"; 510f126890aSEmmanuel Vadot 511f126890aSEmmanuel Vadot fixed-link { 512f126890aSEmmanuel Vadot speed = <1000>; 513f126890aSEmmanuel Vadot full-duplex; 514f126890aSEmmanuel Vadot }; 515f126890aSEmmanuel Vadot }; 516f126890aSEmmanuel Vadot 5178d13bc63SEmmanuel Vadot ethernet-port@6 { 518f126890aSEmmanuel Vadot reg = <6>; 519f126890aSEmmanuel Vadot ethernet = <ð0>; 520f126890aSEmmanuel Vadot phy-mode = "rgmii-id"; 521f126890aSEmmanuel Vadot 522f126890aSEmmanuel Vadot fixed-link { 523f126890aSEmmanuel Vadot speed = <1000>; 524f126890aSEmmanuel Vadot full-duplex; 525f126890aSEmmanuel Vadot }; 526f126890aSEmmanuel Vadot }; 527f126890aSEmmanuel Vadot }; 528f126890aSEmmanuel Vadot }; 529f126890aSEmmanuel Vadot}; 530f126890aSEmmanuel Vadot 531f126890aSEmmanuel Vadot&pinctrl { 532*0e8011faSEmmanuel Vadot mcu_pins: mcu-pins { 533*0e8011faSEmmanuel Vadot marvell,pins = "mpp43"; 534*0e8011faSEmmanuel Vadot marvell,function = "gpio"; 535*0e8011faSEmmanuel Vadot }; 536*0e8011faSEmmanuel Vadot 537f126890aSEmmanuel Vadot pcawan_pins: pcawan-pins { 538f126890aSEmmanuel Vadot marvell,pins = "mpp46"; 539f126890aSEmmanuel Vadot marvell,function = "gpio"; 540f126890aSEmmanuel Vadot }; 541f126890aSEmmanuel Vadot 542f126890aSEmmanuel Vadot swint_pins: swint-pins { 543f126890aSEmmanuel Vadot marvell,pins = "mpp45"; 544f126890aSEmmanuel Vadot marvell,function = "gpio"; 545f126890aSEmmanuel Vadot }; 546f126890aSEmmanuel Vadot 547f126890aSEmmanuel Vadot spi0cs0_pins: spi0cs0-pins { 548f126890aSEmmanuel Vadot marvell,pins = "mpp25"; 549f126890aSEmmanuel Vadot marvell,function = "spi0"; 550f126890aSEmmanuel Vadot }; 551f126890aSEmmanuel Vadot 552f126890aSEmmanuel Vadot spi0cs2_pins: spi0cs2-pins { 553f126890aSEmmanuel Vadot marvell,pins = "mpp26"; 554f126890aSEmmanuel Vadot marvell,function = "spi0"; 555f126890aSEmmanuel Vadot }; 556f126890aSEmmanuel Vadot}; 557f126890aSEmmanuel Vadot 558f126890aSEmmanuel Vadot&spi0 { 559f126890aSEmmanuel Vadot pinctrl-names = "default"; 560f126890aSEmmanuel Vadot pinctrl-0 = <&spi0_pins &spi0cs0_pins>; 561f126890aSEmmanuel Vadot status = "okay"; 562f126890aSEmmanuel Vadot 563f126890aSEmmanuel Vadot flash@0 { 564f126890aSEmmanuel Vadot compatible = "spansion,s25fl164k", "jedec,spi-nor"; 565f126890aSEmmanuel Vadot #address-cells = <1>; 566f126890aSEmmanuel Vadot #size-cells = <1>; 567f126890aSEmmanuel Vadot reg = <0>; 568f126890aSEmmanuel Vadot spi-max-frequency = <40000000>; 569f126890aSEmmanuel Vadot 570f126890aSEmmanuel Vadot partitions { 571f126890aSEmmanuel Vadot compatible = "fixed-partitions"; 572f126890aSEmmanuel Vadot #address-cells = <1>; 573f126890aSEmmanuel Vadot #size-cells = <1>; 574f126890aSEmmanuel Vadot 575f126890aSEmmanuel Vadot partition@0 { 576f126890aSEmmanuel Vadot reg = <0x0 0x00100000>; 577f126890aSEmmanuel Vadot label = "U-Boot"; 578f126890aSEmmanuel Vadot }; 579f126890aSEmmanuel Vadot 580f126890aSEmmanuel Vadot partition@100000 { 581f126890aSEmmanuel Vadot reg = <0x00100000 0x00700000>; 582f126890aSEmmanuel Vadot label = "Rescue system"; 583f126890aSEmmanuel Vadot }; 584f126890aSEmmanuel Vadot }; 585f126890aSEmmanuel Vadot }; 586f126890aSEmmanuel Vadot 587f126890aSEmmanuel Vadot /* MISO, MOSI, SCLK and CS2 are routed to pin header CN11 */ 588f126890aSEmmanuel Vadot}; 589f126890aSEmmanuel Vadot 590f126890aSEmmanuel Vadot&uart0 { 591f126890aSEmmanuel Vadot /* Pin header CN10 */ 592f126890aSEmmanuel Vadot pinctrl-names = "default"; 593f126890aSEmmanuel Vadot pinctrl-0 = <&uart0_pins>; 594f126890aSEmmanuel Vadot status = "okay"; 595f126890aSEmmanuel Vadot}; 596f126890aSEmmanuel Vadot 597f126890aSEmmanuel Vadot&uart1 { 598f126890aSEmmanuel Vadot /* Pin header CN11 */ 599f126890aSEmmanuel Vadot pinctrl-names = "default"; 600f126890aSEmmanuel Vadot pinctrl-0 = <&uart1_pins>; 601f126890aSEmmanuel Vadot status = "okay"; 602f126890aSEmmanuel Vadot}; 603