1bf2150b9SStefan Roese/* 2bf2150b9SStefan Roese * Copyright (C) 2016 Marvell Technology Group Ltd. 3bf2150b9SStefan Roese * 4bf2150b9SStefan Roese * This file is dual-licensed: you can use it either under the terms 5bf2150b9SStefan Roese * of the GPLv2 or the X11 license, at your option. Note that this dual 6bf2150b9SStefan Roese * licensing only applies to this file, and not this project as a 7bf2150b9SStefan Roese * whole. 8bf2150b9SStefan Roese * 9bf2150b9SStefan Roese * a) This library is free software; you can redistribute it and/or 10bf2150b9SStefan Roese * modify it under the terms of the GNU General Public License as 11bf2150b9SStefan Roese * published by the Free Software Foundation; either version 2 of the 12bf2150b9SStefan Roese * License, or (at your option) any later version. 13bf2150b9SStefan Roese * 14bf2150b9SStefan Roese * This library is distributed in the hope that it will be useful, 15bf2150b9SStefan Roese * but WITHOUT ANY WARRANTY; without even the implied warranty of 16bf2150b9SStefan Roese * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17bf2150b9SStefan Roese * GNU General Public License for more details. 18bf2150b9SStefan Roese * 19bf2150b9SStefan Roese * Or, alternatively, 20bf2150b9SStefan Roese * 21bf2150b9SStefan Roese * b) Permission is hereby granted, free of charge, to any person 22bf2150b9SStefan Roese * obtaining a copy of this software and associated documentation 23bf2150b9SStefan Roese * files (the "Software"), to deal in the Software without 24bf2150b9SStefan Roese * restriction, including without limitation the rights to use, 25bf2150b9SStefan Roese * copy, modify, merge, publish, distribute, sublicense, and/or 26bf2150b9SStefan Roese * sell copies of the Software, and to permit persons to whom the 27bf2150b9SStefan Roese * Software is furnished to do so, subject to the following 28bf2150b9SStefan Roese * conditions: 29bf2150b9SStefan Roese * 30bf2150b9SStefan Roese * The above copyright notice and this permission notice shall be 31bf2150b9SStefan Roese * included in all copies or substantial portions of the Software. 32bf2150b9SStefan Roese * 33bf2150b9SStefan Roese * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 34bf2150b9SStefan Roese * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 35bf2150b9SStefan Roese * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 36bf2150b9SStefan Roese * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 37bf2150b9SStefan Roese * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 38bf2150b9SStefan Roese * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 39bf2150b9SStefan Roese * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 40bf2150b9SStefan Roese * OTHER DEALINGS IN THE SOFTWARE. 41bf2150b9SStefan Roese */ 42bf2150b9SStefan Roese 43bf2150b9SStefan Roese/* 44bf2150b9SStefan Roese * Device Tree file for Marvell Armada 8040 Development board platform 45bf2150b9SStefan Roese */ 46bf2150b9SStefan Roese 47bf2150b9SStefan Roese#include "armada-8040.dtsi" 48bf2150b9SStefan Roese 49bf2150b9SStefan Roese/ { 50bf2150b9SStefan Roese model = "Marvell Armada 8040 DB board"; 51bf2150b9SStefan Roese compatible = "marvell,armada8040-db", "marvell,armada8040", 52bf2150b9SStefan Roese "marvell,armada-ap806-quad", "marvell,armada-ap806"; 53bf2150b9SStefan Roese 54bf2150b9SStefan Roese chosen { 55bf2150b9SStefan Roese stdout-path = "serial0:115200n8"; 56bf2150b9SStefan Roese }; 57bf2150b9SStefan Roese 58af4c271cSStefan Roese aliases { 59af4c271cSStefan Roese i2c0 = &cpm_i2c0; 605b613d38SKonstantin Porotchkin spi0 = &cps_spi1; 61af4c271cSStefan Roese }; 62af4c271cSStefan Roese 63bf2150b9SStefan Roese memory@00000000 { 64bf2150b9SStefan Roese device_type = "memory"; 65bf2150b9SStefan Roese reg = <0x0 0x0 0x0 0x80000000>; 66bf2150b9SStefan Roese }; 67bf2150b9SStefan Roese}; 68bf2150b9SStefan Roese 69bf2150b9SStefan Roese/* Accessible over the mini-USB CON9 connector on the main board */ 70bf2150b9SStefan Roese&uart0 { 71bf2150b9SStefan Roese status = "okay"; 72bf2150b9SStefan Roese}; 73bf2150b9SStefan Roese 74f99386c5SKonstantin Porotchkin&ap_pinctl { 75f99386c5SKonstantin Porotchkin /* MPP Bus: 76f99386c5SKonstantin Porotchkin * SDIO [0-10] 77f99386c5SKonstantin Porotchkin * UART0 [11,19] 78f99386c5SKonstantin Porotchkin */ 79f99386c5SKonstantin Porotchkin /* 0 1 2 3 4 5 6 7 8 9 */ 80f99386c5SKonstantin Porotchkin pin-func = < 1 1 1 1 1 1 1 1 1 1 81f99386c5SKonstantin Porotchkin 1 3 0 0 0 0 0 0 0 3 >; 82f99386c5SKonstantin Porotchkin}; 83f99386c5SKonstantin Porotchkin 84f99386c5SKonstantin Porotchkin&cpm_pinctl { 85f99386c5SKonstantin Porotchkin /* MPP Bus: 860f712f2cSKonstantin Porotchkin * [0-31] = 0xff: Keep default CP0_shared_pins 87f99386c5SKonstantin Porotchkin * [11] CLKOUT_MPP_11 (out) 88f99386c5SKonstantin Porotchkin * [23] LINK_RD_IN_CP2CP (in) 89f99386c5SKonstantin Porotchkin * [25] CLKOUT_MPP_25 (out) 90f99386c5SKonstantin Porotchkin * [29] AVS_FB_IN_CP2CP (in) 910f712f2cSKonstantin Porotchkin * [32,34] GE_MDIO/MDC 920f712f2cSKonstantin Porotchkin * [33] GPIO: GE_INT#/push button/Wake 930f712f2cSKonstantin Porotchkin * [35] MSS_GPIO[3]: MSS_PWDN 940f712f2cSKonstantin Porotchkin * [36] MSS_GPIO[5]: MSS_VTT_EN 950f712f2cSKonstantin Porotchkin * [37-38] I2C0 960f712f2cSKonstantin Porotchkin * [39] PTP_CLK 97f99386c5SKonstantin Porotchkin * [40-41] SATA[0/1]_PRESENT_ACTIVEn 980f712f2cSKonstantin Porotchkin * [42-43] XG_MDC/XG_MDIO (XSMI) 99f99386c5SKonstantin Porotchkin * [44-55] RGMII1 100f99386c5SKonstantin Porotchkin * [56-62] SD 101f99386c5SKonstantin Porotchkin */ 102f99386c5SKonstantin Porotchkin /* 0 1 2 3 4 5 6 7 8 9 */ 103f99386c5SKonstantin Porotchkin pin-func = < 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 104f99386c5SKonstantin Porotchkin 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 105f99386c5SKonstantin Porotchkin 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 1060f712f2cSKonstantin Porotchkin 0xff 0xff 0x7 0x0 0x7 0xa 0xa 0x2 0x2 0x5 1070f712f2cSKonstantin Porotchkin 0x9 0x9 0x8 0x8 0x1 0x1 0x1 0x1 0x1 0x1 1080f712f2cSKonstantin Porotchkin 0x1 0x1 0x1 0x1 0x1 0x1 0xe 0xe 0xe 0xe 109f99386c5SKonstantin Porotchkin 0xe 0xe 0xe>; 110f99386c5SKonstantin Porotchkin}; 111bf2150b9SStefan Roese 1120f712f2cSKonstantin Porotchkin&cpm_comphy { 1130f712f2cSKonstantin Porotchkin /* Serdes Configuration: 1140f712f2cSKonstantin Porotchkin * Lane 0: PCIe0 (x1) 1150f712f2cSKonstantin Porotchkin * Lane 1: SATA0 116*cb686454SStefan Roese * Lane 2: SFI (10G) 1170f712f2cSKonstantin Porotchkin * Lane 3: SATA1 1180f712f2cSKonstantin Porotchkin * Lane 4: USB3_HOST1 1190f712f2cSKonstantin Porotchkin * Lane 5: PCIe2 (x1) 1200f712f2cSKonstantin Porotchkin */ 1210f712f2cSKonstantin Porotchkin phy0 { 1220f712f2cSKonstantin Porotchkin phy-type = <PHY_TYPE_PEX0>; 1230f712f2cSKonstantin Porotchkin }; 1240f712f2cSKonstantin Porotchkin phy1 { 1250f712f2cSKonstantin Porotchkin phy-type = <PHY_TYPE_SATA0>; 1260f712f2cSKonstantin Porotchkin }; 1270f712f2cSKonstantin Porotchkin phy2 { 128*cb686454SStefan Roese phy-type = <PHY_TYPE_SFI>; 1290f712f2cSKonstantin Porotchkin }; 1300f712f2cSKonstantin Porotchkin phy3 { 1310f712f2cSKonstantin Porotchkin phy-type = <PHY_TYPE_SATA1>; 1320f712f2cSKonstantin Porotchkin }; 1330f712f2cSKonstantin Porotchkin phy4 { 1340f712f2cSKonstantin Porotchkin phy-type = <PHY_TYPE_USB3_HOST1>; 1350f712f2cSKonstantin Porotchkin }; 1360f712f2cSKonstantin Porotchkin phy5 { 1370f712f2cSKonstantin Porotchkin phy-type = <PHY_TYPE_PEX2>; 1380f712f2cSKonstantin Porotchkin }; 1390f712f2cSKonstantin Porotchkin}; 1400f712f2cSKonstantin Porotchkin 1410f712f2cSKonstantin Porotchkin/* CON6 on CP0 expansion */ 1420f712f2cSKonstantin Porotchkin&cpm_pcie0 { 1430f712f2cSKonstantin Porotchkin status = "okay"; 1440f712f2cSKonstantin Porotchkin}; 1450f712f2cSKonstantin Porotchkin 1460f712f2cSKonstantin Porotchkin&cpm_pcie1 { 1470f712f2cSKonstantin Porotchkin status = "disabled"; 1480f712f2cSKonstantin Porotchkin}; 1490f712f2cSKonstantin Porotchkin 150bf2150b9SStefan Roese/* CON5 on CP0 expansion */ 151bf2150b9SStefan Roese&cpm_pcie2 { 152bf2150b9SStefan Roese status = "okay"; 153bf2150b9SStefan Roese}; 154bf2150b9SStefan Roese 155bf2150b9SStefan Roese&cpm_i2c0 { 156f99386c5SKonstantin Porotchkin pinctrl-names = "default"; 157f99386c5SKonstantin Porotchkin pinctrl-0 = <&cpm_i2c0_pins>; 158bf2150b9SStefan Roese status = "okay"; 159bf2150b9SStefan Roese clock-frequency = <100000>; 160bf2150b9SStefan Roese}; 161bf2150b9SStefan Roese 162bf2150b9SStefan Roese/* CON4 on CP0 expansion */ 163bf2150b9SStefan Roese&cpm_sata0 { 164bf2150b9SStefan Roese status = "okay"; 165bf2150b9SStefan Roese}; 166bf2150b9SStefan Roese 167bf2150b9SStefan Roese/* CON9 on CP0 expansion */ 168bf2150b9SStefan Roese&cpm_usb3_0 { 169bf2150b9SStefan Roese status = "okay"; 170bf2150b9SStefan Roese}; 171bf2150b9SStefan Roese 172bf2150b9SStefan Roese/* CON10 on CP0 expansion */ 173bf2150b9SStefan Roese&cpm_usb3_1 { 174bf2150b9SStefan Roese status = "okay"; 175bf2150b9SStefan Roese}; 176bf2150b9SStefan Roese 1770f712f2cSKonstantin Porotchkin&cpm_utmi0 { 1780f712f2cSKonstantin Porotchkin status = "okay"; 1790f712f2cSKonstantin Porotchkin}; 1800f712f2cSKonstantin Porotchkin 1810f712f2cSKonstantin Porotchkin&cpm_utmi1 { 1820f712f2cSKonstantin Porotchkin status = "okay"; 1830f712f2cSKonstantin Porotchkin}; 1840f712f2cSKonstantin Porotchkin 185f99386c5SKonstantin Porotchkin&cps_pinctl { 186f99386c5SKonstantin Porotchkin /* MPP Bus: 187f99386c5SKonstantin Porotchkin * [0-11] RGMII0 188f99386c5SKonstantin Porotchkin * [13-16] SPI1 189f99386c5SKonstantin Porotchkin * [27,31] GE_MDIO/MDC 1900f712f2cSKonstantin Porotchkin * [28] SATA1_PRESENT_ACTIVEn 1910f712f2cSKonstantin Porotchkin * [29-30] UART0 1920f712f2cSKonstantin Porotchkin * [32-62] = 0xff: Keep default CP1_shared_pins 193f99386c5SKonstantin Porotchkin */ 194f99386c5SKonstantin Porotchkin /* 0 1 2 3 4 5 6 7 8 9 */ 195f99386c5SKonstantin Porotchkin pin-func = < 0x3 0x3 0x3 0x3 0x3 0x3 0x3 0x3 0x3 0x3 1960f712f2cSKonstantin Porotchkin 0x3 0x3 0x3 0x3 0x3 0x3 0x3 0xff 0xff 0xff 1970f712f2cSKonstantin Porotchkin 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0x8 0x9 0xa 1980f712f2cSKonstantin Porotchkin 0xA 0x8 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 199f99386c5SKonstantin Porotchkin 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 200f99386c5SKonstantin Porotchkin 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 201f99386c5SKonstantin Porotchkin 0xff 0xff 0xff>; 202f99386c5SKonstantin Porotchkin}; 203f99386c5SKonstantin Porotchkin 2040f712f2cSKonstantin Porotchkin&cps_comphy { 2050f712f2cSKonstantin Porotchkin /* Serdes Configuration: 2060f712f2cSKonstantin Porotchkin * Lane 0: PCIe0 (x1) 2070f712f2cSKonstantin Porotchkin * Lane 1: SATA0 208*cb686454SStefan Roese * Lane 2: SFI (10G) 2090f712f2cSKonstantin Porotchkin * Lane 3: SATA1 2100f712f2cSKonstantin Porotchkin * Lane 4: PCIe1 (x1) 2110f712f2cSKonstantin Porotchkin * Lane 5: PCIe2 (x1) 2120f712f2cSKonstantin Porotchkin */ 2130f712f2cSKonstantin Porotchkin phy0 { 2140f712f2cSKonstantin Porotchkin phy-type = <PHY_TYPE_PEX0>; 2150f712f2cSKonstantin Porotchkin }; 2160f712f2cSKonstantin Porotchkin phy1 { 2170f712f2cSKonstantin Porotchkin phy-type = <PHY_TYPE_SATA0>; 2180f712f2cSKonstantin Porotchkin }; 2190f712f2cSKonstantin Porotchkin phy2 { 220*cb686454SStefan Roese phy-type = <PHY_TYPE_SFI>; 2210f712f2cSKonstantin Porotchkin }; 2220f712f2cSKonstantin Porotchkin phy3 { 2230f712f2cSKonstantin Porotchkin phy-type = <PHY_TYPE_SATA1>; 2240f712f2cSKonstantin Porotchkin }; 2250f712f2cSKonstantin Porotchkin phy4 { 2260f712f2cSKonstantin Porotchkin phy-type = <PHY_TYPE_PEX1>; 2270f712f2cSKonstantin Porotchkin }; 2280f712f2cSKonstantin Porotchkin phy5 { 2290f712f2cSKonstantin Porotchkin phy-type = <PHY_TYPE_PEX2>; 2300f712f2cSKonstantin Porotchkin }; 2310f712f2cSKonstantin Porotchkin}; 2320f712f2cSKonstantin Porotchkin 2330f712f2cSKonstantin Porotchkin/* CON6 on CP1 expansion */ 2340f712f2cSKonstantin Porotchkin&cps_pcie0 { 2350f712f2cSKonstantin Porotchkin status = "okay"; 2360f712f2cSKonstantin Porotchkin}; 2370f712f2cSKonstantin Porotchkin 2380f712f2cSKonstantin Porotchkin&cps_pcie1 { 2390f712f2cSKonstantin Porotchkin status = "okay"; 2400f712f2cSKonstantin Porotchkin}; 2410f712f2cSKonstantin Porotchkin 242bf2150b9SStefan Roese/* CON5 on CP1 expansion */ 243bf2150b9SStefan Roese&cps_pcie2 { 244bf2150b9SStefan Roese status = "okay"; 245bf2150b9SStefan Roese}; 246bf2150b9SStefan Roese 2475b613d38SKonstantin Porotchkin&cps_spi1 { 248f99386c5SKonstantin Porotchkin pinctrl-names = "default"; 249f99386c5SKonstantin Porotchkin pinctrl-0 = <&cps_spi1_pins>; 250bf2150b9SStefan Roese status = "okay"; 2515b613d38SKonstantin Porotchkin 2525b613d38SKonstantin Porotchkin spi-flash@0 { 2535b613d38SKonstantin Porotchkin #address-cells = <1>; 2545b613d38SKonstantin Porotchkin #size-cells = <1>; 2555b613d38SKonstantin Porotchkin compatible = "jedec,spi-nor"; 2565b613d38SKonstantin Porotchkin reg = <0>; 2575b613d38SKonstantin Porotchkin spi-max-frequency = <10000000>; 2585b613d38SKonstantin Porotchkin 2595b613d38SKonstantin Porotchkin partitions { 2605b613d38SKonstantin Porotchkin compatible = "fixed-partitions"; 2615b613d38SKonstantin Porotchkin #address-cells = <1>; 2625b613d38SKonstantin Porotchkin #size-cells = <1>; 2635b613d38SKonstantin Porotchkin 2645b613d38SKonstantin Porotchkin partition@0 { 2655b613d38SKonstantin Porotchkin label = "U-Boot"; 2665b613d38SKonstantin Porotchkin reg = <0 0x200000>; 2675b613d38SKonstantin Porotchkin }; 2685b613d38SKonstantin Porotchkin partition@400000 { 2695b613d38SKonstantin Porotchkin label = "Filesystem"; 2705b613d38SKonstantin Porotchkin reg = <0x200000 0xce0000>; 2715b613d38SKonstantin Porotchkin }; 2725b613d38SKonstantin Porotchkin }; 2735b613d38SKonstantin Porotchkin }; 274bf2150b9SStefan Roese}; 275bf2150b9SStefan Roese 276bf2150b9SStefan Roese/* CON4 on CP1 expansion */ 277bf2150b9SStefan Roese&cps_sata0 { 278bf2150b9SStefan Roese status = "okay"; 279bf2150b9SStefan Roese}; 280bf2150b9SStefan Roese 281bf2150b9SStefan Roese/* CON9 on CP1 expansion */ 282bf2150b9SStefan Roese&cps_usb3_0 { 283bf2150b9SStefan Roese status = "okay"; 284bf2150b9SStefan Roese}; 285bf2150b9SStefan Roese 286bf2150b9SStefan Roese/* CON10 on CP1 expansion */ 287bf2150b9SStefan Roese&cps_usb3_1 { 288bf2150b9SStefan Roese status = "okay"; 289bf2150b9SStefan Roese}; 29092fdaf0cSStefan Roese 29192fdaf0cSStefan Roese&cps_utmi0 { 29292fdaf0cSStefan Roese status = "okay"; 29392fdaf0cSStefan Roese}; 294a6555ebeSThomas Petazzoni 295a6555ebeSThomas Petazzoni&cpm_mdio { 296a6555ebeSThomas Petazzoni phy1: ethernet-phy@1 { 297a6555ebeSThomas Petazzoni reg = <1>; 298a6555ebeSThomas Petazzoni }; 299a6555ebeSThomas Petazzoni}; 300a6555ebeSThomas Petazzoni 301a6555ebeSThomas Petazzoni&cpm_ethernet { 302a6555ebeSThomas Petazzoni status = "okay"; 303a6555ebeSThomas Petazzoni}; 304a6555ebeSThomas Petazzoni 305a6555ebeSThomas Petazzoni&cpm_eth2 { 306a6555ebeSThomas Petazzoni status = "okay"; 307a6555ebeSThomas Petazzoni phy = <&phy1>; 308a6555ebeSThomas Petazzoni phy-mode = "rgmii-id"; 309a6555ebeSThomas Petazzoni}; 310