1c66ec88fSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2c66ec88fSEmmanuel Vadot/* 3c66ec88fSEmmanuel Vadot * Device Tree Include file for Marvell Armada 37xx family of SoCs. 4c66ec88fSEmmanuel Vadot * 5c66ec88fSEmmanuel Vadot * Copyright (C) 2016 Marvell 6c66ec88fSEmmanuel Vadot * 7c66ec88fSEmmanuel Vadot * Gregory CLEMENT <gregory.clement@free-electrons.com> 8c66ec88fSEmmanuel Vadot * 9c66ec88fSEmmanuel Vadot */ 10c66ec88fSEmmanuel Vadot 11c66ec88fSEmmanuel Vadot#include <dt-bindings/interrupt-controller/arm-gic.h> 12c66ec88fSEmmanuel Vadot 13c66ec88fSEmmanuel Vadot/ { 14c66ec88fSEmmanuel Vadot model = "Marvell Armada 37xx SoC"; 15c66ec88fSEmmanuel Vadot compatible = "marvell,armada3700"; 16c66ec88fSEmmanuel Vadot interrupt-parent = <&gic>; 17c66ec88fSEmmanuel Vadot #address-cells = <2>; 18c66ec88fSEmmanuel Vadot #size-cells = <2>; 19c66ec88fSEmmanuel Vadot 20c66ec88fSEmmanuel Vadot aliases { 21c66ec88fSEmmanuel Vadot serial0 = &uart0; 22c66ec88fSEmmanuel Vadot serial1 = &uart1; 23c66ec88fSEmmanuel Vadot }; 24c66ec88fSEmmanuel Vadot 25c66ec88fSEmmanuel Vadot reserved-memory { 26c66ec88fSEmmanuel Vadot #address-cells = <2>; 27c66ec88fSEmmanuel Vadot #size-cells = <2>; 28c66ec88fSEmmanuel Vadot ranges; 29c66ec88fSEmmanuel Vadot 30c66ec88fSEmmanuel Vadot /* 31c66ec88fSEmmanuel Vadot * The PSCI firmware region depicted below is the default one 32c66ec88fSEmmanuel Vadot * and should be updated by the bootloader. 33c66ec88fSEmmanuel Vadot */ 34c66ec88fSEmmanuel Vadot psci-area@4000000 { 35c66ec88fSEmmanuel Vadot reg = <0 0x4000000 0 0x200000>; 36c66ec88fSEmmanuel Vadot no-map; 37c66ec88fSEmmanuel Vadot }; 38*8bab661aSEmmanuel Vadot 39*8bab661aSEmmanuel Vadot tee@4400000 { 40*8bab661aSEmmanuel Vadot reg = <0 0x4400000 0 0x1000000>; 41*8bab661aSEmmanuel Vadot no-map; 42*8bab661aSEmmanuel Vadot }; 43c66ec88fSEmmanuel Vadot }; 44c66ec88fSEmmanuel Vadot 45c66ec88fSEmmanuel Vadot cpus { 46c66ec88fSEmmanuel Vadot #address-cells = <1>; 47c66ec88fSEmmanuel Vadot #size-cells = <0>; 48c66ec88fSEmmanuel Vadot cpu0: cpu@0 { 49c66ec88fSEmmanuel Vadot device_type = "cpu"; 50c66ec88fSEmmanuel Vadot compatible = "arm,cortex-a53"; 51c66ec88fSEmmanuel Vadot reg = <0>; 52c66ec88fSEmmanuel Vadot clocks = <&nb_periph_clk 16>; 53c66ec88fSEmmanuel Vadot enable-method = "psci"; 54c66ec88fSEmmanuel Vadot }; 55c66ec88fSEmmanuel Vadot }; 56c66ec88fSEmmanuel Vadot 57c66ec88fSEmmanuel Vadot psci { 58c66ec88fSEmmanuel Vadot compatible = "arm,psci-0.2"; 59c66ec88fSEmmanuel Vadot method = "smc"; 60c66ec88fSEmmanuel Vadot }; 61c66ec88fSEmmanuel Vadot 62c66ec88fSEmmanuel Vadot timer { 63c66ec88fSEmmanuel Vadot compatible = "arm,armv8-timer"; 64c66ec88fSEmmanuel Vadot interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH>, 65c66ec88fSEmmanuel Vadot <GIC_PPI 14 IRQ_TYPE_LEVEL_HIGH>, 66c66ec88fSEmmanuel Vadot <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>, 67c66ec88fSEmmanuel Vadot <GIC_PPI 10 IRQ_TYPE_LEVEL_HIGH>; 68c66ec88fSEmmanuel Vadot }; 69c66ec88fSEmmanuel Vadot 70c66ec88fSEmmanuel Vadot pmu { 71c66ec88fSEmmanuel Vadot compatible = "arm,armv8-pmuv3"; 72c66ec88fSEmmanuel Vadot interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>; 73c66ec88fSEmmanuel Vadot }; 74c66ec88fSEmmanuel Vadot 75c66ec88fSEmmanuel Vadot soc { 76c66ec88fSEmmanuel Vadot compatible = "simple-bus"; 77c66ec88fSEmmanuel Vadot #address-cells = <2>; 78c66ec88fSEmmanuel Vadot #size-cells = <2>; 79c66ec88fSEmmanuel Vadot ranges; 80c66ec88fSEmmanuel Vadot 81c66ec88fSEmmanuel Vadot internal-regs@d0000000 { 82c66ec88fSEmmanuel Vadot #address-cells = <1>; 83c66ec88fSEmmanuel Vadot #size-cells = <1>; 84c66ec88fSEmmanuel Vadot compatible = "simple-bus"; 85c66ec88fSEmmanuel Vadot /* 32M internal register @ 0xd000_0000 */ 86c66ec88fSEmmanuel Vadot ranges = <0x0 0x0 0xd0000000 0x2000000>; 87c66ec88fSEmmanuel Vadot 88c66ec88fSEmmanuel Vadot wdt: watchdog@8300 { 89c66ec88fSEmmanuel Vadot compatible = "marvell,armada-3700-wdt"; 90c66ec88fSEmmanuel Vadot reg = <0x8300 0x40>; 91c66ec88fSEmmanuel Vadot marvell,system-controller = <&cpu_misc>; 92c66ec88fSEmmanuel Vadot clocks = <&xtalclk>; 93c66ec88fSEmmanuel Vadot }; 94c66ec88fSEmmanuel Vadot 95c66ec88fSEmmanuel Vadot cpu_misc: system-controller@d000 { 96c66ec88fSEmmanuel Vadot compatible = "marvell,armada-3700-cpu-misc", 97c66ec88fSEmmanuel Vadot "syscon"; 98c66ec88fSEmmanuel Vadot reg = <0xd000 0x1000>; 99c66ec88fSEmmanuel Vadot }; 100c66ec88fSEmmanuel Vadot 101c66ec88fSEmmanuel Vadot spi0: spi@10600 { 102c66ec88fSEmmanuel Vadot compatible = "marvell,armada-3700-spi"; 103c66ec88fSEmmanuel Vadot #address-cells = <1>; 104c66ec88fSEmmanuel Vadot #size-cells = <0>; 105c66ec88fSEmmanuel Vadot reg = <0x10600 0xA00>; 106c66ec88fSEmmanuel Vadot clocks = <&nb_periph_clk 7>; 107c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>; 108c66ec88fSEmmanuel Vadot num-cs = <4>; 109c66ec88fSEmmanuel Vadot status = "disabled"; 110c66ec88fSEmmanuel Vadot }; 111c66ec88fSEmmanuel Vadot 112c66ec88fSEmmanuel Vadot i2c0: i2c@11000 { 113c66ec88fSEmmanuel Vadot compatible = "marvell,armada-3700-i2c"; 114c66ec88fSEmmanuel Vadot reg = <0x11000 0x24>; 115c66ec88fSEmmanuel Vadot #address-cells = <1>; 116c66ec88fSEmmanuel Vadot #size-cells = <0>; 117c66ec88fSEmmanuel Vadot clocks = <&nb_periph_clk 10>; 118c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>; 119c66ec88fSEmmanuel Vadot mrvl,i2c-fast-mode; 120c66ec88fSEmmanuel Vadot status = "disabled"; 121c66ec88fSEmmanuel Vadot }; 122c66ec88fSEmmanuel Vadot 123c66ec88fSEmmanuel Vadot i2c1: i2c@11080 { 124c66ec88fSEmmanuel Vadot compatible = "marvell,armada-3700-i2c"; 125c66ec88fSEmmanuel Vadot reg = <0x11080 0x24>; 126c66ec88fSEmmanuel Vadot #address-cells = <1>; 127c66ec88fSEmmanuel Vadot #size-cells = <0>; 128c66ec88fSEmmanuel Vadot clocks = <&nb_periph_clk 9>; 129c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; 130c66ec88fSEmmanuel Vadot mrvl,i2c-fast-mode; 131c66ec88fSEmmanuel Vadot status = "disabled"; 132c66ec88fSEmmanuel Vadot }; 133c66ec88fSEmmanuel Vadot 134c66ec88fSEmmanuel Vadot avs: avs@11500 { 135c66ec88fSEmmanuel Vadot compatible = "marvell,armada-3700-avs", 136c66ec88fSEmmanuel Vadot "syscon"; 137c66ec88fSEmmanuel Vadot reg = <0x11500 0x40>; 138c66ec88fSEmmanuel Vadot }; 139c66ec88fSEmmanuel Vadot 140c9ccf3a3SEmmanuel Vadot uartclk: clock-controller@12010 { 141c9ccf3a3SEmmanuel Vadot compatible = "marvell,armada-3700-uart-clock"; 142c9ccf3a3SEmmanuel Vadot reg = <0x12010 0x4>, <0x12210 0x4>; 143c9ccf3a3SEmmanuel Vadot clocks = <&tbg 0>, <&tbg 1>, <&tbg 2>, 144c9ccf3a3SEmmanuel Vadot <&tbg 3>, <&xtalclk>; 145c9ccf3a3SEmmanuel Vadot clock-names = "TBG-A-P", "TBG-B-P", "TBG-A-S", 146c9ccf3a3SEmmanuel Vadot "TBG-B-S", "xtal"; 147c9ccf3a3SEmmanuel Vadot #clock-cells = <1>; 148c9ccf3a3SEmmanuel Vadot }; 149c9ccf3a3SEmmanuel Vadot 150c66ec88fSEmmanuel Vadot uart0: serial@12000 { 151c66ec88fSEmmanuel Vadot compatible = "marvell,armada-3700-uart"; 1525956d97fSEmmanuel Vadot reg = <0x12000 0x18>; 153c9ccf3a3SEmmanuel Vadot clocks = <&uartclk 0>; 154c66ec88fSEmmanuel Vadot interrupts = 155c66ec88fSEmmanuel Vadot <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>, 156c66ec88fSEmmanuel Vadot <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>, 157c66ec88fSEmmanuel Vadot <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>; 158c66ec88fSEmmanuel Vadot interrupt-names = "uart-sum", "uart-tx", "uart-rx"; 159c66ec88fSEmmanuel Vadot status = "disabled"; 160c66ec88fSEmmanuel Vadot }; 161c66ec88fSEmmanuel Vadot 162c66ec88fSEmmanuel Vadot uart1: serial@12200 { 163c66ec88fSEmmanuel Vadot compatible = "marvell,armada-3700-uart-ext"; 164c66ec88fSEmmanuel Vadot reg = <0x12200 0x30>; 165c9ccf3a3SEmmanuel Vadot clocks = <&uartclk 1>; 166c66ec88fSEmmanuel Vadot interrupts = 167c66ec88fSEmmanuel Vadot <GIC_SPI 30 IRQ_TYPE_EDGE_RISING>, 168c66ec88fSEmmanuel Vadot <GIC_SPI 31 IRQ_TYPE_EDGE_RISING>; 169c66ec88fSEmmanuel Vadot interrupt-names = "uart-tx", "uart-rx"; 170c66ec88fSEmmanuel Vadot status = "disabled"; 171c66ec88fSEmmanuel Vadot }; 172c66ec88fSEmmanuel Vadot 173c66ec88fSEmmanuel Vadot nb_periph_clk: nb-periph-clk@13000 { 1742eb4d8dcSEmmanuel Vadot compatible = "marvell,armada-3700-periph-clock-nb", 1752eb4d8dcSEmmanuel Vadot "syscon"; 176c66ec88fSEmmanuel Vadot reg = <0x13000 0x100>; 177c66ec88fSEmmanuel Vadot clocks = <&tbg 0>, <&tbg 1>, <&tbg 2>, 178c66ec88fSEmmanuel Vadot <&tbg 3>, <&xtalclk>; 179c66ec88fSEmmanuel Vadot #clock-cells = <1>; 180c66ec88fSEmmanuel Vadot }; 181c66ec88fSEmmanuel Vadot 182c66ec88fSEmmanuel Vadot sb_periph_clk: sb-periph-clk@18000 { 183c66ec88fSEmmanuel Vadot compatible = "marvell,armada-3700-periph-clock-sb"; 184c66ec88fSEmmanuel Vadot reg = <0x18000 0x100>; 185c66ec88fSEmmanuel Vadot clocks = <&tbg 0>, <&tbg 1>, <&tbg 2>, 186c66ec88fSEmmanuel Vadot <&tbg 3>, <&xtalclk>; 187c66ec88fSEmmanuel Vadot #clock-cells = <1>; 188c66ec88fSEmmanuel Vadot }; 189c66ec88fSEmmanuel Vadot 190c66ec88fSEmmanuel Vadot tbg: tbg@13200 { 191c66ec88fSEmmanuel Vadot compatible = "marvell,armada-3700-tbg-clock"; 192c66ec88fSEmmanuel Vadot reg = <0x13200 0x100>; 193c66ec88fSEmmanuel Vadot clocks = <&xtalclk>; 194c66ec88fSEmmanuel Vadot #clock-cells = <1>; 195c66ec88fSEmmanuel Vadot }; 196c66ec88fSEmmanuel Vadot 197c66ec88fSEmmanuel Vadot pinctrl_nb: pinctrl@13800 { 198c66ec88fSEmmanuel Vadot compatible = "marvell,armada3710-nb-pinctrl", 199c66ec88fSEmmanuel Vadot "syscon", "simple-mfd"; 200c66ec88fSEmmanuel Vadot reg = <0x13800 0x100>, <0x13C00 0x20>; 201c66ec88fSEmmanuel Vadot /* MPP1[19:0] */ 202c66ec88fSEmmanuel Vadot gpionb: gpio { 203c66ec88fSEmmanuel Vadot #gpio-cells = <2>; 204c66ec88fSEmmanuel Vadot gpio-ranges = <&pinctrl_nb 0 0 36>; 205c66ec88fSEmmanuel Vadot gpio-controller; 206c66ec88fSEmmanuel Vadot interrupt-controller; 207c66ec88fSEmmanuel Vadot #interrupt-cells = <2>; 208c66ec88fSEmmanuel Vadot interrupts = 209c66ec88fSEmmanuel Vadot <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>, 210c66ec88fSEmmanuel Vadot <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>, 211c66ec88fSEmmanuel Vadot <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>, 212c66ec88fSEmmanuel Vadot <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>, 213c66ec88fSEmmanuel Vadot <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>, 214c66ec88fSEmmanuel Vadot <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>, 215c66ec88fSEmmanuel Vadot <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>, 216c66ec88fSEmmanuel Vadot <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>, 217c66ec88fSEmmanuel Vadot <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>, 218c66ec88fSEmmanuel Vadot <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>, 219c66ec88fSEmmanuel Vadot <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>, 220c66ec88fSEmmanuel Vadot <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>; 221c66ec88fSEmmanuel Vadot }; 222c66ec88fSEmmanuel Vadot 223c66ec88fSEmmanuel Vadot xtalclk: xtal-clk { 224c66ec88fSEmmanuel Vadot compatible = "marvell,armada-3700-xtal-clock"; 225c66ec88fSEmmanuel Vadot clock-output-names = "xtal"; 226c66ec88fSEmmanuel Vadot #clock-cells = <0>; 227c66ec88fSEmmanuel Vadot }; 228c66ec88fSEmmanuel Vadot 229c66ec88fSEmmanuel Vadot spi_quad_pins: spi-quad-pins { 230c66ec88fSEmmanuel Vadot groups = "spi_quad"; 231c66ec88fSEmmanuel Vadot function = "spi"; 232c66ec88fSEmmanuel Vadot }; 233c66ec88fSEmmanuel Vadot 234c66ec88fSEmmanuel Vadot spi_cs1_pins: spi-cs1-pins { 235c66ec88fSEmmanuel Vadot groups = "spi_cs1"; 236c66ec88fSEmmanuel Vadot function = "spi"; 237c66ec88fSEmmanuel Vadot }; 238c66ec88fSEmmanuel Vadot 239c66ec88fSEmmanuel Vadot i2c1_pins: i2c1-pins { 240c66ec88fSEmmanuel Vadot groups = "i2c1"; 241c66ec88fSEmmanuel Vadot function = "i2c"; 242c66ec88fSEmmanuel Vadot }; 243c66ec88fSEmmanuel Vadot 244c66ec88fSEmmanuel Vadot i2c2_pins: i2c2-pins { 245c66ec88fSEmmanuel Vadot groups = "i2c2"; 246c66ec88fSEmmanuel Vadot function = "i2c"; 247c66ec88fSEmmanuel Vadot }; 248c66ec88fSEmmanuel Vadot 249c66ec88fSEmmanuel Vadot uart1_pins: uart1-pins { 250c66ec88fSEmmanuel Vadot groups = "uart1"; 251c66ec88fSEmmanuel Vadot function = "uart"; 252c66ec88fSEmmanuel Vadot }; 253c66ec88fSEmmanuel Vadot 254c66ec88fSEmmanuel Vadot uart2_pins: uart2-pins { 255c66ec88fSEmmanuel Vadot groups = "uart2"; 256c66ec88fSEmmanuel Vadot function = "uart"; 257c66ec88fSEmmanuel Vadot }; 258c66ec88fSEmmanuel Vadot 259c66ec88fSEmmanuel Vadot mmc_pins: mmc-pins { 260c66ec88fSEmmanuel Vadot groups = "emmc_nb"; 261c66ec88fSEmmanuel Vadot function = "emmc"; 262c66ec88fSEmmanuel Vadot }; 263c66ec88fSEmmanuel Vadot }; 264c66ec88fSEmmanuel Vadot 265c66ec88fSEmmanuel Vadot nb_pm: syscon@14000 { 266c66ec88fSEmmanuel Vadot compatible = "marvell,armada-3700-nb-pm", 267c66ec88fSEmmanuel Vadot "syscon"; 268c66ec88fSEmmanuel Vadot reg = <0x14000 0x60>; 269c66ec88fSEmmanuel Vadot }; 270c66ec88fSEmmanuel Vadot 271c66ec88fSEmmanuel Vadot comphy: phy@18300 { 272c66ec88fSEmmanuel Vadot compatible = "marvell,comphy-a3700"; 273c66ec88fSEmmanuel Vadot reg = <0x18300 0x300>, 274c66ec88fSEmmanuel Vadot <0x1F000 0x400>, 275c66ec88fSEmmanuel Vadot <0x5C000 0x400>, 276c66ec88fSEmmanuel Vadot <0xe0178 0x8>; 277c66ec88fSEmmanuel Vadot reg-names = "comphy", 278c66ec88fSEmmanuel Vadot "lane1_pcie_gbe", 279c66ec88fSEmmanuel Vadot "lane0_usb3_gbe", 280c66ec88fSEmmanuel Vadot "lane2_sata_usb3"; 281c66ec88fSEmmanuel Vadot #address-cells = <1>; 282c66ec88fSEmmanuel Vadot #size-cells = <0>; 283e67e8565SEmmanuel Vadot clocks = <&xtalclk>; 284e67e8565SEmmanuel Vadot clock-names = "xtal"; 285c66ec88fSEmmanuel Vadot 286c66ec88fSEmmanuel Vadot comphy0: phy@0 { 287c66ec88fSEmmanuel Vadot reg = <0>; 288c66ec88fSEmmanuel Vadot #phy-cells = <1>; 289c66ec88fSEmmanuel Vadot }; 290c66ec88fSEmmanuel Vadot 291c66ec88fSEmmanuel Vadot comphy1: phy@1 { 292c66ec88fSEmmanuel Vadot reg = <1>; 293c66ec88fSEmmanuel Vadot #phy-cells = <1>; 294c66ec88fSEmmanuel Vadot }; 295c66ec88fSEmmanuel Vadot 296c66ec88fSEmmanuel Vadot comphy2: phy@2 { 297c66ec88fSEmmanuel Vadot reg = <2>; 298c66ec88fSEmmanuel Vadot #phy-cells = <1>; 299c66ec88fSEmmanuel Vadot }; 300c66ec88fSEmmanuel Vadot }; 301c66ec88fSEmmanuel Vadot 302c66ec88fSEmmanuel Vadot pinctrl_sb: pinctrl@18800 { 303c66ec88fSEmmanuel Vadot compatible = "marvell,armada3710-sb-pinctrl", 304c66ec88fSEmmanuel Vadot "syscon", "simple-mfd"; 305c66ec88fSEmmanuel Vadot reg = <0x18800 0x100>, <0x18C00 0x20>; 306c66ec88fSEmmanuel Vadot /* MPP2[23:0] */ 307c66ec88fSEmmanuel Vadot gpiosb: gpio { 308c66ec88fSEmmanuel Vadot #gpio-cells = <2>; 309c66ec88fSEmmanuel Vadot gpio-ranges = <&pinctrl_sb 0 0 30>; 310c66ec88fSEmmanuel Vadot gpio-controller; 311c66ec88fSEmmanuel Vadot interrupt-controller; 312c66ec88fSEmmanuel Vadot #interrupt-cells = <2>; 313c66ec88fSEmmanuel Vadot interrupts = 314c66ec88fSEmmanuel Vadot <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>, 315c66ec88fSEmmanuel Vadot <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>, 316c66ec88fSEmmanuel Vadot <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>, 317c66ec88fSEmmanuel Vadot <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>, 318c66ec88fSEmmanuel Vadot <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>; 319c66ec88fSEmmanuel Vadot }; 320c66ec88fSEmmanuel Vadot 321c66ec88fSEmmanuel Vadot rgmii_pins: mii-pins { 322c66ec88fSEmmanuel Vadot groups = "rgmii"; 323c66ec88fSEmmanuel Vadot function = "mii"; 324c66ec88fSEmmanuel Vadot }; 325c66ec88fSEmmanuel Vadot 326c66ec88fSEmmanuel Vadot smi_pins: smi-pins { 327c66ec88fSEmmanuel Vadot groups = "smi"; 328c66ec88fSEmmanuel Vadot function = "smi"; 329c66ec88fSEmmanuel Vadot }; 330c66ec88fSEmmanuel Vadot 331c66ec88fSEmmanuel Vadot sdio_pins: sdio-pins { 332c66ec88fSEmmanuel Vadot groups = "sdio_sb"; 333c66ec88fSEmmanuel Vadot function = "sdio"; 334c66ec88fSEmmanuel Vadot }; 335c66ec88fSEmmanuel Vadot 336c66ec88fSEmmanuel Vadot pcie_reset_pins: pcie-reset-pins { 3376be33864SEmmanuel Vadot groups = "pcie1"; /* this actually controls "pcie1_reset" */ 338c66ec88fSEmmanuel Vadot function = "gpio"; 339c66ec88fSEmmanuel Vadot }; 340c66ec88fSEmmanuel Vadot 341c66ec88fSEmmanuel Vadot pcie_clkreq_pins: pcie-clkreq-pins { 342c66ec88fSEmmanuel Vadot groups = "pcie1_clkreq"; 343c66ec88fSEmmanuel Vadot function = "pcie"; 344c66ec88fSEmmanuel Vadot }; 345c66ec88fSEmmanuel Vadot }; 346c66ec88fSEmmanuel Vadot 347c66ec88fSEmmanuel Vadot eth0: ethernet@30000 { 348c66ec88fSEmmanuel Vadot compatible = "marvell,armada-3700-neta"; 349c66ec88fSEmmanuel Vadot reg = <0x30000 0x4000>; 350c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>; 351c66ec88fSEmmanuel Vadot clocks = <&sb_periph_clk 8>; 352c66ec88fSEmmanuel Vadot status = "disabled"; 353c66ec88fSEmmanuel Vadot }; 354c66ec88fSEmmanuel Vadot 355c66ec88fSEmmanuel Vadot mdio: mdio@32004 { 356c66ec88fSEmmanuel Vadot #address-cells = <1>; 357c66ec88fSEmmanuel Vadot #size-cells = <0>; 358c66ec88fSEmmanuel Vadot compatible = "marvell,orion-mdio"; 359c66ec88fSEmmanuel Vadot reg = <0x32004 0x4>; 360c66ec88fSEmmanuel Vadot }; 361c66ec88fSEmmanuel Vadot 362c66ec88fSEmmanuel Vadot eth1: ethernet@40000 { 363c66ec88fSEmmanuel Vadot compatible = "marvell,armada-3700-neta"; 364c66ec88fSEmmanuel Vadot reg = <0x40000 0x4000>; 365c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>; 366c66ec88fSEmmanuel Vadot clocks = <&sb_periph_clk 7>; 367c66ec88fSEmmanuel Vadot status = "disabled"; 368c66ec88fSEmmanuel Vadot }; 369c66ec88fSEmmanuel Vadot 370c66ec88fSEmmanuel Vadot usb3: usb@58000 { 371c66ec88fSEmmanuel Vadot compatible = "marvell,armada3700-xhci", 372c66ec88fSEmmanuel Vadot "generic-xhci"; 373c66ec88fSEmmanuel Vadot reg = <0x58000 0x4000>; 374c66ec88fSEmmanuel Vadot marvell,usb-misc-reg = <&usb32_syscon>; 375c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>; 376c66ec88fSEmmanuel Vadot clocks = <&sb_periph_clk 12>; 377c66ec88fSEmmanuel Vadot phys = <&comphy0 0>, <&usb2_utmi_otg_phy>; 378c66ec88fSEmmanuel Vadot phy-names = "usb3-phy", "usb2-utmi-otg-phy"; 379c66ec88fSEmmanuel Vadot status = "disabled"; 380c66ec88fSEmmanuel Vadot }; 381c66ec88fSEmmanuel Vadot 382c66ec88fSEmmanuel Vadot usb2_utmi_otg_phy: phy@5d000 { 383c66ec88fSEmmanuel Vadot compatible = "marvell,a3700-utmi-otg-phy"; 384c66ec88fSEmmanuel Vadot reg = <0x5d000 0x800>; 385c66ec88fSEmmanuel Vadot marvell,usb-misc-reg = <&usb32_syscon>; 386c66ec88fSEmmanuel Vadot #phy-cells = <0>; 387c66ec88fSEmmanuel Vadot }; 388c66ec88fSEmmanuel Vadot 389c66ec88fSEmmanuel Vadot usb32_syscon: system-controller@5d800 { 390c66ec88fSEmmanuel Vadot compatible = "marvell,armada-3700-usb2-host-device-misc", 391c66ec88fSEmmanuel Vadot "syscon"; 392c66ec88fSEmmanuel Vadot reg = <0x5d800 0x800>; 393c66ec88fSEmmanuel Vadot }; 394c66ec88fSEmmanuel Vadot 395c66ec88fSEmmanuel Vadot usb2: usb@5e000 { 396c66ec88fSEmmanuel Vadot compatible = "marvell,armada-3700-ehci"; 397c66ec88fSEmmanuel Vadot reg = <0x5e000 0x1000>; 398c66ec88fSEmmanuel Vadot marvell,usb-misc-reg = <&usb2_syscon>; 399c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; 400c66ec88fSEmmanuel Vadot phys = <&usb2_utmi_host_phy>; 401c66ec88fSEmmanuel Vadot phy-names = "usb2-utmi-host-phy"; 402c66ec88fSEmmanuel Vadot status = "disabled"; 403c66ec88fSEmmanuel Vadot }; 404c66ec88fSEmmanuel Vadot 405c66ec88fSEmmanuel Vadot usb2_utmi_host_phy: phy@5f000 { 406c66ec88fSEmmanuel Vadot compatible = "marvell,a3700-utmi-host-phy"; 407c66ec88fSEmmanuel Vadot reg = <0x5f000 0x800>; 408c66ec88fSEmmanuel Vadot marvell,usb-misc-reg = <&usb2_syscon>; 409c66ec88fSEmmanuel Vadot #phy-cells = <0>; 410c66ec88fSEmmanuel Vadot }; 411c66ec88fSEmmanuel Vadot 412c66ec88fSEmmanuel Vadot usb2_syscon: system-controller@5f800 { 413c66ec88fSEmmanuel Vadot compatible = "marvell,armada-3700-usb2-host-misc", 414c66ec88fSEmmanuel Vadot "syscon"; 415c66ec88fSEmmanuel Vadot reg = <0x5f800 0x800>; 416c66ec88fSEmmanuel Vadot }; 417c66ec88fSEmmanuel Vadot 418c66ec88fSEmmanuel Vadot xor@60900 { 419c66ec88fSEmmanuel Vadot compatible = "marvell,armada-3700-xor"; 420c66ec88fSEmmanuel Vadot reg = <0x60900 0x100>, 421c66ec88fSEmmanuel Vadot <0x60b00 0x100>; 422c66ec88fSEmmanuel Vadot 423c66ec88fSEmmanuel Vadot xor10 { 424c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>; 425c66ec88fSEmmanuel Vadot }; 426c66ec88fSEmmanuel Vadot xor11 { 427c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>; 428c66ec88fSEmmanuel Vadot }; 429c66ec88fSEmmanuel Vadot }; 430c66ec88fSEmmanuel Vadot 431c66ec88fSEmmanuel Vadot crypto: crypto@90000 { 432c66ec88fSEmmanuel Vadot compatible = "inside-secure,safexcel-eip97ies"; 433c66ec88fSEmmanuel Vadot reg = <0x90000 0x20000>; 434c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>, 435c66ec88fSEmmanuel Vadot <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>, 436c66ec88fSEmmanuel Vadot <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>, 437c66ec88fSEmmanuel Vadot <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>, 438c66ec88fSEmmanuel Vadot <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>, 439c66ec88fSEmmanuel Vadot <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>; 440c66ec88fSEmmanuel Vadot interrupt-names = "mem", "ring0", "ring1", 441c66ec88fSEmmanuel Vadot "ring2", "ring3", "eip"; 442c66ec88fSEmmanuel Vadot clocks = <&nb_periph_clk 15>; 443c66ec88fSEmmanuel Vadot }; 444c66ec88fSEmmanuel Vadot 445c66ec88fSEmmanuel Vadot rwtm: mailbox@b0000 { 446c66ec88fSEmmanuel Vadot compatible = "marvell,armada-3700-rwtm-mailbox"; 447c66ec88fSEmmanuel Vadot reg = <0xb0000 0x100>; 448c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>; 449c66ec88fSEmmanuel Vadot #mbox-cells = <1>; 450c66ec88fSEmmanuel Vadot }; 451c66ec88fSEmmanuel Vadot 452d5b0e70fSEmmanuel Vadot sdhci1: mmc@d0000 { 453c66ec88fSEmmanuel Vadot compatible = "marvell,armada-3700-sdhci", 454c66ec88fSEmmanuel Vadot "marvell,sdhci-xenon"; 455c66ec88fSEmmanuel Vadot reg = <0xd0000 0x300>, 456c66ec88fSEmmanuel Vadot <0x1e808 0x4>; 457c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>; 458c66ec88fSEmmanuel Vadot clocks = <&nb_periph_clk 0>; 459c66ec88fSEmmanuel Vadot clock-names = "core"; 460c66ec88fSEmmanuel Vadot status = "disabled"; 461c66ec88fSEmmanuel Vadot }; 462c66ec88fSEmmanuel Vadot 463d5b0e70fSEmmanuel Vadot sdhci0: mmc@d8000 { 464c66ec88fSEmmanuel Vadot compatible = "marvell,armada-3700-sdhci", 465c66ec88fSEmmanuel Vadot "marvell,sdhci-xenon"; 466c66ec88fSEmmanuel Vadot reg = <0xd8000 0x300>, 467c66ec88fSEmmanuel Vadot <0x17808 0x4>; 468c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>; 469c66ec88fSEmmanuel Vadot clocks = <&nb_periph_clk 0>; 470c66ec88fSEmmanuel Vadot clock-names = "core"; 471c66ec88fSEmmanuel Vadot status = "disabled"; 472c66ec88fSEmmanuel Vadot }; 473c66ec88fSEmmanuel Vadot 474c66ec88fSEmmanuel Vadot sata: sata@e0000 { 475c66ec88fSEmmanuel Vadot compatible = "marvell,armada-3700-ahci"; 476c66ec88fSEmmanuel Vadot reg = <0xe0000 0x178>; 477c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>; 478c66ec88fSEmmanuel Vadot clocks = <&nb_periph_clk 1>; 4795def4c47SEmmanuel Vadot phys = <&comphy2 0>; 4805def4c47SEmmanuel Vadot phy-names = "sata-phy"; 481c66ec88fSEmmanuel Vadot status = "disabled"; 482c66ec88fSEmmanuel Vadot }; 483c66ec88fSEmmanuel Vadot 484c66ec88fSEmmanuel Vadot gic: interrupt-controller@1d00000 { 485c66ec88fSEmmanuel Vadot compatible = "arm,gic-v3"; 486c66ec88fSEmmanuel Vadot #interrupt-cells = <3>; 487c66ec88fSEmmanuel Vadot interrupt-controller; 488c66ec88fSEmmanuel Vadot reg = <0x1d00000 0x10000>, /* GICD */ 489c66ec88fSEmmanuel Vadot <0x1d40000 0x40000>, /* GICR */ 490c66ec88fSEmmanuel Vadot <0x1d80000 0x2000>, /* GICC */ 491c66ec88fSEmmanuel Vadot <0x1d90000 0x2000>, /* GICH */ 492c66ec88fSEmmanuel Vadot <0x1da0000 0x20000>; /* GICV */ 493c66ec88fSEmmanuel Vadot interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>; 494c66ec88fSEmmanuel Vadot }; 495c66ec88fSEmmanuel Vadot }; 496c66ec88fSEmmanuel Vadot 497c66ec88fSEmmanuel Vadot pcie0: pcie@d0070000 { 498c66ec88fSEmmanuel Vadot compatible = "marvell,armada-3700-pcie"; 499c66ec88fSEmmanuel Vadot device_type = "pci"; 500c66ec88fSEmmanuel Vadot status = "disabled"; 501c66ec88fSEmmanuel Vadot reg = <0 0xd0070000 0 0x20000>; 502c66ec88fSEmmanuel Vadot #address-cells = <3>; 503c66ec88fSEmmanuel Vadot #size-cells = <2>; 504c66ec88fSEmmanuel Vadot bus-range = <0x00 0xff>; 505c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>; 506c66ec88fSEmmanuel Vadot #interrupt-cells = <1>; 507c9ccf3a3SEmmanuel Vadot clocks = <&sb_periph_clk 13>; 508c66ec88fSEmmanuel Vadot msi-parent = <&pcie0>; 509c66ec88fSEmmanuel Vadot msi-controller; 510354d7675SEmmanuel Vadot /* 511354d7675SEmmanuel Vadot * The 128 MiB address range [0xe8000000-0xf0000000] is 512354d7675SEmmanuel Vadot * dedicated for PCIe and can be assigned to 8 windows 513354d7675SEmmanuel Vadot * with size a power of two. Use one 64 KiB window for 514354d7675SEmmanuel Vadot * IO at the end and the remaining seven windows 515354d7675SEmmanuel Vadot * (totaling 127 MiB) for MEM. 516354d7675SEmmanuel Vadot */ 517354d7675SEmmanuel Vadot ranges = <0x82000000 0 0xe8000000 0 0xe8000000 0 0x07f00000 /* Port 0 MEM */ 518e67e8565SEmmanuel Vadot 0x81000000 0 0x00000000 0 0xefff0000 0 0x00010000>; /* Port 0 IO */ 519c66ec88fSEmmanuel Vadot interrupt-map-mask = <0 0 0 7>; 520c66ec88fSEmmanuel Vadot interrupt-map = <0 0 0 1 &pcie_intc 0>, 521c66ec88fSEmmanuel Vadot <0 0 0 2 &pcie_intc 1>, 522c66ec88fSEmmanuel Vadot <0 0 0 3 &pcie_intc 2>, 523c66ec88fSEmmanuel Vadot <0 0 0 4 &pcie_intc 3>; 524c66ec88fSEmmanuel Vadot max-link-speed = <2>; 525c66ec88fSEmmanuel Vadot phys = <&comphy1 0>; 526c66ec88fSEmmanuel Vadot pcie_intc: interrupt-controller { 527c66ec88fSEmmanuel Vadot interrupt-controller; 528c66ec88fSEmmanuel Vadot #interrupt-cells = <1>; 529c66ec88fSEmmanuel Vadot }; 530c66ec88fSEmmanuel Vadot }; 531c66ec88fSEmmanuel Vadot }; 5325956d97fSEmmanuel Vadot 5335956d97fSEmmanuel Vadot firmware { 5345956d97fSEmmanuel Vadot armada-3700-rwtm { 5355956d97fSEmmanuel Vadot compatible = "marvell,armada-3700-rwtm-firmware"; 5365956d97fSEmmanuel Vadot mboxes = <&rwtm 0>; 5375956d97fSEmmanuel Vadot status = "okay"; 5385956d97fSEmmanuel Vadot }; 5395956d97fSEmmanuel Vadot }; 540c66ec88fSEmmanuel Vadot}; 541