1*50eacd8eSKonstantin Porotchkin/* 2*50eacd8eSKonstantin Porotchkin * Copyright (C) 2017 Marvell Technology Group Ltd. 3*50eacd8eSKonstantin Porotchkin * 4*50eacd8eSKonstantin Porotchkin * This file is dual-licensed: you can use it either under the terms 5*50eacd8eSKonstantin Porotchkin * of the GPLv2 or the X11 license, at your option. Note that this dual 6*50eacd8eSKonstantin Porotchkin * licensing only applies to this file, and not this project as a 7*50eacd8eSKonstantin Porotchkin * whole. 8*50eacd8eSKonstantin Porotchkin * 9*50eacd8eSKonstantin Porotchkin * a) This library is free software; you can redistribute it and/or 10*50eacd8eSKonstantin Porotchkin * modify it under the terms of the GNU General Public License as 11*50eacd8eSKonstantin Porotchkin * published by the Free Software Foundation; either version 2 of the 12*50eacd8eSKonstantin Porotchkin * License, or (at your option) any later version. 13*50eacd8eSKonstantin Porotchkin * 14*50eacd8eSKonstantin Porotchkin * This library is distributed in the hope that it will be useful, 15*50eacd8eSKonstantin Porotchkin * but WITHOUT ANY WARRANTY; without even the implied warranty of 16*50eacd8eSKonstantin Porotchkin * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17*50eacd8eSKonstantin Porotchkin * GNU General Public License for more details. 18*50eacd8eSKonstantin Porotchkin * 19*50eacd8eSKonstantin Porotchkin * Or, alternatively, 20*50eacd8eSKonstantin Porotchkin * 21*50eacd8eSKonstantin Porotchkin * b) Permission is hereby granted, free of charge, to any person 22*50eacd8eSKonstantin Porotchkin * obtaining a copy of this software and associated documentation 23*50eacd8eSKonstantin Porotchkin * files (the "Software"), to deal in the Software without 24*50eacd8eSKonstantin Porotchkin * restriction, including without limitation the rights to use, 25*50eacd8eSKonstantin Porotchkin * copy, modify, merge, publish, distribute, sublicense, and/or 26*50eacd8eSKonstantin Porotchkin * sell copies of the Software, and to permit persons to whom the 27*50eacd8eSKonstantin Porotchkin * Software is furnished to do so, subject to the following 28*50eacd8eSKonstantin Porotchkin * conditions: 29*50eacd8eSKonstantin Porotchkin * 30*50eacd8eSKonstantin Porotchkin * The above copyright notice and this permission notice shall be 31*50eacd8eSKonstantin Porotchkin * included in all copies or substantial portions of the Software. 32*50eacd8eSKonstantin Porotchkin * 33*50eacd8eSKonstantin Porotchkin * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 34*50eacd8eSKonstantin Porotchkin * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 35*50eacd8eSKonstantin Porotchkin * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 36*50eacd8eSKonstantin Porotchkin * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 37*50eacd8eSKonstantin Porotchkin * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 38*50eacd8eSKonstantin Porotchkin * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 39*50eacd8eSKonstantin Porotchkin * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 40*50eacd8eSKonstantin Porotchkin * OTHER DEALINGS IN THE SOFTWARE. 41*50eacd8eSKonstantin Porotchkin */ 42*50eacd8eSKonstantin Porotchkin 43*50eacd8eSKonstantin Porotchkin/* 44*50eacd8eSKonstantin Porotchkin * Device Tree file for Marvell Armada 7040 Development board platform 45*50eacd8eSKonstantin Porotchkin * Boot device: NAND, 0xE (SW3) 46*50eacd8eSKonstantin Porotchkin */ 47*50eacd8eSKonstantin Porotchkin 48*50eacd8eSKonstantin Porotchkin#include "armada-7040.dtsi" 49*50eacd8eSKonstantin Porotchkin 50*50eacd8eSKonstantin Porotchkin/ { 51*50eacd8eSKonstantin Porotchkin model = "Marvell Armada 7040 DB board with NAND"; 52*50eacd8eSKonstantin Porotchkin compatible = "marvell,armada7040-db-nand", "marvell,armada7040-db", 53*50eacd8eSKonstantin Porotchkin "marvell,armada7040", "marvell,armada-ap806-quad", 54*50eacd8eSKonstantin Porotchkin "marvell,armada-ap806"; 55*50eacd8eSKonstantin Porotchkin 56*50eacd8eSKonstantin Porotchkin chosen { 57*50eacd8eSKonstantin Porotchkin stdout-path = "serial0:115200n8"; 58*50eacd8eSKonstantin Porotchkin }; 59*50eacd8eSKonstantin Porotchkin 60*50eacd8eSKonstantin Porotchkin aliases { 61*50eacd8eSKonstantin Porotchkin i2c0 = &cpm_i2c0; 62*50eacd8eSKonstantin Porotchkin spi0 = &cpm_spi1; 63*50eacd8eSKonstantin Porotchkin }; 64*50eacd8eSKonstantin Porotchkin 65*50eacd8eSKonstantin Porotchkin memory@00000000 { 66*50eacd8eSKonstantin Porotchkin device_type = "memory"; 67*50eacd8eSKonstantin Porotchkin reg = <0x0 0x0 0x0 0x80000000>; 68*50eacd8eSKonstantin Porotchkin }; 69*50eacd8eSKonstantin Porotchkin}; 70*50eacd8eSKonstantin Porotchkin 71*50eacd8eSKonstantin Porotchkin&ap_pinctl { 72*50eacd8eSKonstantin Porotchkin /* MPP Bus: 73*50eacd8eSKonstantin Porotchkin * SDIO [0-5] 74*50eacd8eSKonstantin Porotchkin * UART0 [11,19] 75*50eacd8eSKonstantin Porotchkin */ 76*50eacd8eSKonstantin Porotchkin /* 0 1 2 3 4 5 6 7 8 9 */ 77*50eacd8eSKonstantin Porotchkin pin-func = < 0x1 0x1 0x1 0x1 0x1 0x1 0x0 0x0 0x0 0x0 78*50eacd8eSKonstantin Porotchkin 0x0 0x3 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x3 >; 79*50eacd8eSKonstantin Porotchkin}; 80*50eacd8eSKonstantin Porotchkin 81*50eacd8eSKonstantin Porotchkin&uart0 { 82*50eacd8eSKonstantin Porotchkin status = "okay"; 83*50eacd8eSKonstantin Porotchkin}; 84*50eacd8eSKonstantin Porotchkin 85*50eacd8eSKonstantin Porotchkin 86*50eacd8eSKonstantin Porotchkin&cpm_pcie2 { 87*50eacd8eSKonstantin Porotchkin status = "okay"; 88*50eacd8eSKonstantin Porotchkin}; 89*50eacd8eSKonstantin Porotchkin 90*50eacd8eSKonstantin Porotchkin&cpm_i2c0 { 91*50eacd8eSKonstantin Porotchkin pinctrl-names = "default"; 92*50eacd8eSKonstantin Porotchkin pinctrl-0 = <&cpm_i2c0_pins>; 93*50eacd8eSKonstantin Porotchkin status = "okay"; 94*50eacd8eSKonstantin Porotchkin clock-frequency = <100000>; 95*50eacd8eSKonstantin Porotchkin}; 96*50eacd8eSKonstantin Porotchkin 97*50eacd8eSKonstantin Porotchkin&cpm_pinctl { 98*50eacd8eSKonstantin Porotchkin /* MPP Bus: 99*50eacd8eSKonstantin Porotchkin * AUDIO [0-5] 100*50eacd8eSKonstantin Porotchkin * GBE [6-11] 101*50eacd8eSKonstantin Porotchkin * SS_PWDN [12] 102*50eacd8eSKonstantin Porotchkin * NF_RBn [13] 103*50eacd8eSKonstantin Porotchkin * GPIO [14] 104*50eacd8eSKonstantin Porotchkin * DEV_BUS [15-27] 105*50eacd8eSKonstantin Porotchkin * SATA1 [28] 106*50eacd8eSKonstantin Porotchkin * UART0 [29-30] 107*50eacd8eSKonstantin Porotchkin * MSS_VTT_EN [31] 108*50eacd8eSKonstantin Porotchkin * SMI [32,34] 109*50eacd8eSKonstantin Porotchkin * XSMI [35-36] 110*50eacd8eSKonstantin Porotchkin * I2C [37-38] 111*50eacd8eSKonstantin Porotchkin * RGMII1 [44-55] 112*50eacd8eSKonstantin Porotchkin * SD [56-61] 113*50eacd8eSKonstantin Porotchkin * GPIO [62] 114*50eacd8eSKonstantin Porotchkin */ 115*50eacd8eSKonstantin Porotchkin /* 0 1 2 3 4 5 6 7 8 9 */ 116*50eacd8eSKonstantin Porotchkin pin-func = < 0x2 0x2 0x2 0x2 0x2 0x2 0x3 0x3 0x3 0x3 117*50eacd8eSKonstantin Porotchkin 0x3 0x3 0x0 0x2 0x0 0x1 0x1 0x1 0x1 0x1 118*50eacd8eSKonstantin Porotchkin 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x9 0xa 119*50eacd8eSKonstantin Porotchkin 0xa 0x0 0x7 0x0 0x7 0x7 0x7 0x2 0x2 0x0 120*50eacd8eSKonstantin Porotchkin 0x0 0x0 0x0 0x0 0x1 0x1 0x1 0x1 0x1 0x1 121*50eacd8eSKonstantin Porotchkin 0x1 0x1 0x1 0x1 0x1 0x1 0xe 0xe 0xe 0xe 122*50eacd8eSKonstantin Porotchkin 0xe 0xe 0x0>; 123*50eacd8eSKonstantin Porotchkin}; 124*50eacd8eSKonstantin Porotchkin 125*50eacd8eSKonstantin Porotchkin&cpm_spi1 { 126*50eacd8eSKonstantin Porotchkin pinctrl-names = "default"; 127*50eacd8eSKonstantin Porotchkin pinctrl-0 = <&cpm_spi0_pins>; 128*50eacd8eSKonstantin Porotchkin status = "disabled"; 129*50eacd8eSKonstantin Porotchkin 130*50eacd8eSKonstantin Porotchkin spi-flash@0 { 131*50eacd8eSKonstantin Porotchkin #address-cells = <0x1>; 132*50eacd8eSKonstantin Porotchkin #size-cells = <0x1>; 133*50eacd8eSKonstantin Porotchkin compatible = "jedec,spi-nor"; 134*50eacd8eSKonstantin Porotchkin reg = <0x0>; 135*50eacd8eSKonstantin Porotchkin spi-max-frequency = <20000000>; 136*50eacd8eSKonstantin Porotchkin 137*50eacd8eSKonstantin Porotchkin partitions { 138*50eacd8eSKonstantin Porotchkin compatible = "fixed-partitions"; 139*50eacd8eSKonstantin Porotchkin #address-cells = <1>; 140*50eacd8eSKonstantin Porotchkin #size-cells = <1>; 141*50eacd8eSKonstantin Porotchkin 142*50eacd8eSKonstantin Porotchkin partition@0 { 143*50eacd8eSKonstantin Porotchkin label = "U-Boot"; 144*50eacd8eSKonstantin Porotchkin reg = <0x0 0x200000>; 145*50eacd8eSKonstantin Porotchkin }; 146*50eacd8eSKonstantin Porotchkin 147*50eacd8eSKonstantin Porotchkin partition@400000 { 148*50eacd8eSKonstantin Porotchkin label = "Filesystem"; 149*50eacd8eSKonstantin Porotchkin reg = <0x200000 0xe00000>; 150*50eacd8eSKonstantin Porotchkin }; 151*50eacd8eSKonstantin Porotchkin }; 152*50eacd8eSKonstantin Porotchkin }; 153*50eacd8eSKonstantin Porotchkin}; 154*50eacd8eSKonstantin Porotchkin 155*50eacd8eSKonstantin Porotchkin&cpm_sata0 { 156*50eacd8eSKonstantin Porotchkin status = "okay"; 157*50eacd8eSKonstantin Porotchkin}; 158*50eacd8eSKonstantin Porotchkin 159*50eacd8eSKonstantin Porotchkin&cpm_usb3_0 { 160*50eacd8eSKonstantin Porotchkin status = "okay"; 161*50eacd8eSKonstantin Porotchkin}; 162*50eacd8eSKonstantin Porotchkin 163*50eacd8eSKonstantin Porotchkin&cpm_usb3_1 { 164*50eacd8eSKonstantin Porotchkin status = "okay"; 165*50eacd8eSKonstantin Porotchkin}; 166*50eacd8eSKonstantin Porotchkin 167*50eacd8eSKonstantin Porotchkin&cpm_comphy { 168*50eacd8eSKonstantin Porotchkin phy0 { 169*50eacd8eSKonstantin Porotchkin phy-type = <PHY_TYPE_SGMII2>; 170*50eacd8eSKonstantin Porotchkin phy-speed = <PHY_SPEED_3_125G>; 171*50eacd8eSKonstantin Porotchkin }; 172*50eacd8eSKonstantin Porotchkin 173*50eacd8eSKonstantin Porotchkin phy1 { 174*50eacd8eSKonstantin Porotchkin phy-type = <PHY_TYPE_USB3_HOST0>; 175*50eacd8eSKonstantin Porotchkin phy-speed = <PHY_SPEED_5G>; 176*50eacd8eSKonstantin Porotchkin }; 177*50eacd8eSKonstantin Porotchkin 178*50eacd8eSKonstantin Porotchkin phy2 { 179*50eacd8eSKonstantin Porotchkin phy-type = <PHY_TYPE_SGMII0>; 180*50eacd8eSKonstantin Porotchkin phy-speed = <PHY_SPEED_1_25G>; 181*50eacd8eSKonstantin Porotchkin }; 182*50eacd8eSKonstantin Porotchkin 183*50eacd8eSKonstantin Porotchkin phy3 { 184*50eacd8eSKonstantin Porotchkin phy-type = <PHY_TYPE_SATA1>; 185*50eacd8eSKonstantin Porotchkin phy-speed = <PHY_SPEED_5G>; 186*50eacd8eSKonstantin Porotchkin }; 187*50eacd8eSKonstantin Porotchkin 188*50eacd8eSKonstantin Porotchkin phy4 { 189*50eacd8eSKonstantin Porotchkin phy-type = <PHY_TYPE_USB3_HOST1>; 190*50eacd8eSKonstantin Porotchkin phy-speed = <PHY_SPEED_5G>; 191*50eacd8eSKonstantin Porotchkin }; 192*50eacd8eSKonstantin Porotchkin 193*50eacd8eSKonstantin Porotchkin phy5 { 194*50eacd8eSKonstantin Porotchkin phy-type = <PHY_TYPE_PEX2>; 195*50eacd8eSKonstantin Porotchkin phy-speed = <PHY_SPEED_5G>; 196*50eacd8eSKonstantin Porotchkin }; 197*50eacd8eSKonstantin Porotchkin}; 198*50eacd8eSKonstantin Porotchkin 199*50eacd8eSKonstantin Porotchkin&cpm_nand { 200*50eacd8eSKonstantin Porotchkin status = "okay"; 201*50eacd8eSKonstantin Porotchkin}; 202*50eacd8eSKonstantin Porotchkin 203*50eacd8eSKonstantin Porotchkin&cpm_utmi0 { 204*50eacd8eSKonstantin Porotchkin status = "okay"; 205*50eacd8eSKonstantin Porotchkin}; 206*50eacd8eSKonstantin Porotchkin 207*50eacd8eSKonstantin Porotchkin&cpm_utmi1 { 208*50eacd8eSKonstantin Porotchkin status = "okay"; 209*50eacd8eSKonstantin Porotchkin}; 210*50eacd8eSKonstantin Porotchkin 211*50eacd8eSKonstantin Porotchkin&ap_sdhci0 { 212*50eacd8eSKonstantin Porotchkin status = "okay"; 213*50eacd8eSKonstantin Porotchkin bus-width = <4>; 214*50eacd8eSKonstantin Porotchkin no-1-8-v; 215*50eacd8eSKonstantin Porotchkin non-removable; 216*50eacd8eSKonstantin Porotchkin}; 217*50eacd8eSKonstantin Porotchkin 218*50eacd8eSKonstantin Porotchkin&cpm_sdhci0 { 219*50eacd8eSKonstantin Porotchkin status = "okay"; 220*50eacd8eSKonstantin Porotchkin bus-width = <4>; 221*50eacd8eSKonstantin Porotchkin no-1-8-v; 222*50eacd8eSKonstantin Porotchkin non-removable; 223*50eacd8eSKonstantin Porotchkin}; 224