1b20c38a9SStefan Roese/* 2b20c38a9SStefan Roese * Device Tree file for Marvell Armada XP theadorable board 3b20c38a9SStefan Roese * 4b20c38a9SStefan Roese * Copyright (C) 2013-2014 Marvell 5b20c38a9SStefan Roese * 6b20c38a9SStefan Roese * Lior Amsalem <alior@marvell.com> 7b20c38a9SStefan Roese * Gregory CLEMENT <gregory.clement@free-electrons.com> 8b20c38a9SStefan Roese * Thomas Petazzoni <thomas.petazzoni@free-electrons.com> 9b20c38a9SStefan Roese * 10b20c38a9SStefan Roese * This file is dual-licensed: you can use it either under the terms 11b20c38a9SStefan Roese * of the GPL or the X11 license, at your option. Note that this dual 12b20c38a9SStefan Roese * licensing only applies to this file, and not this project as a 13b20c38a9SStefan Roese * whole. 14b20c38a9SStefan Roese * 15b20c38a9SStefan Roese * a) This file is free software; you can redistribute it and/or 16b20c38a9SStefan Roese * modify it under the terms of the GNU General Public License as 17b20c38a9SStefan Roese * published by the Free Software Foundation; either version 2 of the 18b20c38a9SStefan Roese * License, or (at your option) any later version. 19b20c38a9SStefan Roese * 20b20c38a9SStefan Roese * This file is distributed in the hope that it will be useful 21b20c38a9SStefan Roese * but WITHOUT ANY WARRANTY; without even the implied warranty of 22b20c38a9SStefan Roese * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 23b20c38a9SStefan Roese * GNU General Public License for more details. 24b20c38a9SStefan Roese * 25b20c38a9SStefan Roese * Or, alternatively 26b20c38a9SStefan Roese * 27b20c38a9SStefan Roese * b) Permission is hereby granted, free of charge, to any person 28b20c38a9SStefan Roese * obtaining a copy of this software and associated documentation 29b20c38a9SStefan Roese * files (the "Software"), to deal in the Software without 30b20c38a9SStefan Roese * restriction, including without limitation the rights to use 31b20c38a9SStefan Roese * copy, modify, merge, publish, distribute, sublicense, and/or 32b20c38a9SStefan Roese * sell copies of the Software, and to permit persons to whom the 33b20c38a9SStefan Roese * Software is furnished to do so, subject to the following 34b20c38a9SStefan Roese * conditions: 35b20c38a9SStefan Roese * 36b20c38a9SStefan Roese * The above copyright notice and this permission notice shall be 37b20c38a9SStefan Roese * included in all copies or substantial portions of the Software. 38b20c38a9SStefan Roese * 39b20c38a9SStefan Roese * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 40b20c38a9SStefan Roese * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 41b20c38a9SStefan Roese * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 42b20c38a9SStefan Roese * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 43b20c38a9SStefan Roese * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 44b20c38a9SStefan Roese * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 45b20c38a9SStefan Roese * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 46b20c38a9SStefan Roese * OTHER DEALINGS IN THE SOFTWARE. 47b20c38a9SStefan Roese * 48b20c38a9SStefan Roese * Note: this Device Tree assumes that the bootloader has remapped the 49b20c38a9SStefan Roese * internal registers to 0xf1000000 (instead of the default 50b20c38a9SStefan Roese * 0xd0000000). The 0xf1000000 is the default used by the recent, 51b20c38a9SStefan Roese * DT-capable, U-Boot bootloaders provided by Marvell. Some earlier 52b20c38a9SStefan Roese * boards were delivered with an older version of the bootloader that 53b20c38a9SStefan Roese * left internal registers mapped at 0xd0000000. If you are in this 54b20c38a9SStefan Roese * situation, you should either update your bootloader (preferred 55b20c38a9SStefan Roese * solution) or the below Device Tree should be adjusted. 56b20c38a9SStefan Roese */ 57b20c38a9SStefan Roese 58b20c38a9SStefan Roese/dts-v1/; 59b20c38a9SStefan Roese#include <dt-bindings/gpio/gpio.h> 60b20c38a9SStefan Roese#include "armada-xp-mv78260.dtsi" 61b20c38a9SStefan Roese 62b20c38a9SStefan Roese/ { 63b20c38a9SStefan Roese model = "Marvell Armada XP theadorable"; 64b20c38a9SStefan Roese compatible = "marvell,armadaxp-mv78260", "marvell,armadaxp", "marvell,armada-370-xp"; 65b20c38a9SStefan Roese 66b20c38a9SStefan Roese chosen { 67b20c38a9SStefan Roese stdout-path = "serial0:115200n8"; 68b20c38a9SStefan Roese }; 69b20c38a9SStefan Roese 70b20c38a9SStefan Roese aliases { 71b20c38a9SStefan Roese spi0 = &spi0; 72aea02abeSStefan Roese spi1 = &spi1; 73b20c38a9SStefan Roese ethernet0 = ð0; 74b20c38a9SStefan Roese }; 75b20c38a9SStefan Roese 76b20c38a9SStefan Roese memory { 77b20c38a9SStefan Roese device_type = "memory"; 78b20c38a9SStefan Roese reg = <0x00000000 0x00000000 0x00000000 0x80000000>; 79b20c38a9SStefan Roese }; 80b20c38a9SStefan Roese 81b20c38a9SStefan Roese soc { 82b20c38a9SStefan Roese ranges = <MBUS_ID(0xf0, 0x01) 0 0 0xf1000000 0x100000 83b20c38a9SStefan Roese MBUS_ID(0x01, 0x1d) 0 0 0xfff00000 0x100000 84b20c38a9SStefan Roese MBUS_ID(0x01, 0x2f) 0 0 0xf0000000 0x1000000>; 85b20c38a9SStefan Roese 86b20c38a9SStefan Roese internal-regs { 87b20c38a9SStefan Roese serial@12000 { 88b20c38a9SStefan Roese status = "okay"; 89b20c38a9SStefan Roese u-boot,dm-pre-reloc; 90b20c38a9SStefan Roese }; 91b20c38a9SStefan Roese 92b20c38a9SStefan Roese serial@12100 { 93b20c38a9SStefan Roese status = "okay"; 94b20c38a9SStefan Roese }; 95b20c38a9SStefan Roese 96b20c38a9SStefan Roese serial@12200 { 97b20c38a9SStefan Roese status = "okay"; 98b20c38a9SStefan Roese }; 99b20c38a9SStefan Roese 100b20c38a9SStefan Roese serial@12300 { 101b20c38a9SStefan Roese status = "okay"; 102b20c38a9SStefan Roese }; 103b20c38a9SStefan Roese 104b20c38a9SStefan Roese sata@a0000 { 105b20c38a9SStefan Roese nr-ports = <2>; 106b20c38a9SStefan Roese status = "okay"; 107b20c38a9SStefan Roese }; 108b20c38a9SStefan Roese 109b20c38a9SStefan Roese mdio { 110b20c38a9SStefan Roese phy0: ethernet-phy@0 { 111b20c38a9SStefan Roese reg = <0>; 112b20c38a9SStefan Roese }; 113b20c38a9SStefan Roese }; 114b20c38a9SStefan Roese 115b20c38a9SStefan Roese ethernet@70000 { 116b20c38a9SStefan Roese status = "okay"; 117b20c38a9SStefan Roese phy = <&phy0>; 118b20c38a9SStefan Roese phy-mode = "sgmii"; 119b20c38a9SStefan Roese }; 120b20c38a9SStefan Roese 121b20c38a9SStefan Roese usb@50000 { 122b20c38a9SStefan Roese status = "okay"; 123b20c38a9SStefan Roese }; 124b20c38a9SStefan Roese 125b20c38a9SStefan Roese usb@51000 { 126b20c38a9SStefan Roese status = "okay"; 127b20c38a9SStefan Roese }; 128b20c38a9SStefan Roese 129b20c38a9SStefan Roese spi0: spi@10600 { 130b20c38a9SStefan Roese status = "okay"; 131b20c38a9SStefan Roese u-boot,dm-pre-reloc; 132b20c38a9SStefan Roese 133b20c38a9SStefan Roese spi-flash@0 { 134b20c38a9SStefan Roese u-boot,dm-pre-reloc; 135b20c38a9SStefan Roese #address-cells = <1>; 136b20c38a9SStefan Roese #size-cells = <1>; 1376843db99SStefan Roese compatible = "n25q128a13", "jedec,spi-nor", "spi-flash"; 138b20c38a9SStefan Roese reg = <0>; /* Chip select 0 */ 139b20c38a9SStefan Roese spi-max-frequency = <27777777>; 140b20c38a9SStefan Roese }; 141aea02abeSStefan Roese 142aea02abeSStefan Roese fpga@1 { 143aea02abeSStefan Roese #address-cells = <1>; 144aea02abeSStefan Roese #size-cells = <1>; 145aea02abeSStefan Roese compatible = "spi-generic-device"; 146aea02abeSStefan Roese reg = <1>; /* Chip select 1 */ 147aea02abeSStefan Roese spi-max-frequency = <27777777>; 148aea02abeSStefan Roese }; 149aea02abeSStefan Roese }; 150aea02abeSStefan Roese 151aea02abeSStefan Roese spi1: spi@10680 { 152aea02abeSStefan Roese status = "okay"; 153aea02abeSStefan Roese 154ae4c38a5SStefan Roese fpga@0 { 155aea02abeSStefan Roese #address-cells = <1>; 156aea02abeSStefan Roese #size-cells = <1>; 157aea02abeSStefan Roese compatible = "spi-generic-device"; 158ae4c38a5SStefan Roese reg = <0>; /* Chip select 0 */ 159aea02abeSStefan Roese spi-max-frequency = <27777777>; 160aea02abeSStefan Roese }; 161b20c38a9SStefan Roese }; 162b20c38a9SStefan Roese }; 163b20c38a9SStefan Roese }; 164b20c38a9SStefan Roese}; 165*9b276e90SStefan Roese 166*9b276e90SStefan Roese&pciec { 167*9b276e90SStefan Roese status = "okay"; 168*9b276e90SStefan Roese 169*9b276e90SStefan Roese pcie@1,0 { 170*9b276e90SStefan Roese /* Port 0, Lane 0 */ 171*9b276e90SStefan Roese status = "okay"; 172*9b276e90SStefan Roese }; 173*9b276e90SStefan Roese 174*9b276e90SStefan Roese pcie@9,0 { 175*9b276e90SStefan Roese /* Port 2, Lane 0 */ 176*9b276e90SStefan Roese status = "okay"; 177*9b276e90SStefan Roese }; 178*9b276e90SStefan Roese}; 179