1ec7e5a56SThomas Petazzoni/* 2ec7e5a56SThomas Petazzoni * Copyright (C) 2016 Marvell Technology Group Ltd. 3ec7e5a56SThomas Petazzoni * 4ec7e5a56SThomas Petazzoni * This file is dual-licensed: you can use it either under the terms 5ec7e5a56SThomas Petazzoni * of the GPLv2 or the X11 license, at your option. Note that this dual 6ec7e5a56SThomas Petazzoni * licensing only applies to this file, and not this project as a 7ec7e5a56SThomas Petazzoni * whole. 8ec7e5a56SThomas Petazzoni * 9ec7e5a56SThomas Petazzoni * a) This library is free software; you can redistribute it and/or 10ec7e5a56SThomas Petazzoni * modify it under the terms of the GNU General Public License as 11ec7e5a56SThomas Petazzoni * published by the Free Software Foundation; either version 2 of the 12ec7e5a56SThomas Petazzoni * License, or (at your option) any later version. 13ec7e5a56SThomas Petazzoni * 14ec7e5a56SThomas Petazzoni * This library is distributed in the hope that it will be useful, 15ec7e5a56SThomas Petazzoni * but WITHOUT ANY WARRANTY; without even the implied warranty of 16ec7e5a56SThomas Petazzoni * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17ec7e5a56SThomas Petazzoni * GNU General Public License for more details. 18ec7e5a56SThomas Petazzoni * 19ec7e5a56SThomas Petazzoni * Or, alternatively, 20ec7e5a56SThomas Petazzoni * 21ec7e5a56SThomas Petazzoni * b) Permission is hereby granted, free of charge, to any person 22ec7e5a56SThomas Petazzoni * obtaining a copy of this software and associated documentation 23ec7e5a56SThomas Petazzoni * files (the "Software"), to deal in the Software without 24ec7e5a56SThomas Petazzoni * restriction, including without limitation the rights to use, 25ec7e5a56SThomas Petazzoni * copy, modify, merge, publish, distribute, sublicense, and/or 26ec7e5a56SThomas Petazzoni * sell copies of the Software, and to permit persons to whom the 27ec7e5a56SThomas Petazzoni * Software is furnished to do so, subject to the following 28ec7e5a56SThomas Petazzoni * conditions: 29ec7e5a56SThomas Petazzoni * 30ec7e5a56SThomas Petazzoni * The above copyright notice and this permission notice shall be 31ec7e5a56SThomas Petazzoni * included in all copies or substantial portions of the Software. 32ec7e5a56SThomas Petazzoni * 33ec7e5a56SThomas Petazzoni * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 34ec7e5a56SThomas Petazzoni * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 35ec7e5a56SThomas Petazzoni * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 36ec7e5a56SThomas Petazzoni * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 37ec7e5a56SThomas Petazzoni * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 38ec7e5a56SThomas Petazzoni * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 39ec7e5a56SThomas Petazzoni * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 40ec7e5a56SThomas Petazzoni * OTHER DEALINGS IN THE SOFTWARE. 41ec7e5a56SThomas Petazzoni */ 42ec7e5a56SThomas Petazzoni 43ec7e5a56SThomas Petazzoni/* 44ec7e5a56SThomas Petazzoni * Device Tree file for Marvell Armada 7040 Development board platform 45ec7e5a56SThomas Petazzoni */ 46ec7e5a56SThomas Petazzoni 47915c71daSHanna Hawa#include <dt-bindings/gpio/gpio.h> 48ec7e5a56SThomas Petazzoni#include "armada-7040.dtsi" 49ec7e5a56SThomas Petazzoni 50ec7e5a56SThomas Petazzoni/ { 51ec7e5a56SThomas Petazzoni model = "Marvell Armada 7040 DB board"; 52ec7e5a56SThomas Petazzoni compatible = "marvell,armada7040-db", "marvell,armada7040", 53ec7e5a56SThomas Petazzoni "marvell,armada-ap806-quad", "marvell,armada-ap806"; 54ec7e5a56SThomas Petazzoni 55bf151162SThomas Petazzoni chosen { 56bf151162SThomas Petazzoni stdout-path = "serial0:115200n8"; 57bf151162SThomas Petazzoni }; 58bf151162SThomas Petazzoni 59d8bcaabeSRob Herring memory@0 { 60ec7e5a56SThomas Petazzoni device_type = "memory"; 61ec7e5a56SThomas Petazzoni reg = <0x0 0x0 0x0 0x80000000>; 62ec7e5a56SThomas Petazzoni }; 63915c71daSHanna Hawa 64474c5885SYan Markman aliases { 65474c5885SYan Markman ethernet0 = &cp0_eth0; 66474c5885SYan Markman ethernet1 = &cp0_eth1; 67474c5885SYan Markman ethernet2 = &cp0_eth2; 68474c5885SYan Markman }; 69474c5885SYan Markman 7091f1be92SThomas Petazzoni cp0_reg_usb3_0_vbus: cp0-usb3-0-vbus { 71915c71daSHanna Hawa compatible = "regulator-fixed"; 72915c71daSHanna Hawa regulator-name = "usb3h0-vbus"; 73915c71daSHanna Hawa regulator-min-microvolt = <5000000>; 74915c71daSHanna Hawa regulator-max-microvolt = <5000000>; 75915c71daSHanna Hawa enable-active-high; 76915c71daSHanna Hawa gpio = <&expander0 0 GPIO_ACTIVE_HIGH>; 77915c71daSHanna Hawa }; 78915c71daSHanna Hawa 7991f1be92SThomas Petazzoni cp0_reg_usb3_1_vbus: cp0-usb3-1-vbus { 80915c71daSHanna Hawa compatible = "regulator-fixed"; 81915c71daSHanna Hawa regulator-name = "usb3h1-vbus"; 82915c71daSHanna Hawa regulator-min-microvolt = <5000000>; 83915c71daSHanna Hawa regulator-max-microvolt = <5000000>; 84915c71daSHanna Hawa enable-active-high; 85915c71daSHanna Hawa gpio = <&expander0 1 GPIO_ACTIVE_HIGH>; 86915c71daSHanna Hawa }; 87915c71daSHanna Hawa 8891f1be92SThomas Petazzoni cp0_usb3_0_phy: cp0-usb3-0-phy { 89915c71daSHanna Hawa compatible = "usb-nop-xceiv"; 9091f1be92SThomas Petazzoni vcc-supply = <&cp0_reg_usb3_0_vbus>; 91915c71daSHanna Hawa }; 92915c71daSHanna Hawa 9391f1be92SThomas Petazzoni cp0_usb3_1_phy: cp0-usb3-1-phy { 94915c71daSHanna Hawa compatible = "usb-nop-xceiv"; 9591f1be92SThomas Petazzoni vcc-supply = <&cp0_reg_usb3_1_vbus>; 96915c71daSHanna Hawa }; 97037ad463SAndreas Färber}; 98ec7e5a56SThomas Petazzoni 99037ad463SAndreas Färber&i2c0 { 100037ad463SAndreas Färber status = "okay"; 101037ad463SAndreas Färber clock-frequency = <100000>; 102037ad463SAndreas Färber}; 103037ad463SAndreas Färber 104037ad463SAndreas Färber&spi0 { 105ec7e5a56SThomas Petazzoni status = "okay"; 106ec7e5a56SThomas Petazzoni 107ec7e5a56SThomas Petazzoni spi-flash@0 { 108ec7e5a56SThomas Petazzoni #address-cells = <1>; 109ec7e5a56SThomas Petazzoni #size-cells = <1>; 110fe85e20eSThomas Petazzoni compatible = "jedec,spi-nor"; 111fe85e20eSThomas Petazzoni reg = <0>; 112ec7e5a56SThomas Petazzoni spi-max-frequency = <10000000>; 113ec7e5a56SThomas Petazzoni 114fe85e20eSThomas Petazzoni partitions { 115fe85e20eSThomas Petazzoni compatible = "fixed-partitions"; 116fe85e20eSThomas Petazzoni #address-cells = <1>; 117fe85e20eSThomas Petazzoni #size-cells = <1>; 118fe85e20eSThomas Petazzoni 119ec7e5a56SThomas Petazzoni partition@0 { 120ec7e5a56SThomas Petazzoni label = "U-Boot"; 121ec7e5a56SThomas Petazzoni reg = <0 0x200000>; 122ec7e5a56SThomas Petazzoni }; 123ec7e5a56SThomas Petazzoni partition@400000 { 124ec7e5a56SThomas Petazzoni label = "Filesystem"; 125ec7e5a56SThomas Petazzoni reg = <0x200000 0xce0000>; 126ec7e5a56SThomas Petazzoni }; 127ec7e5a56SThomas Petazzoni }; 128ec7e5a56SThomas Petazzoni }; 129fe85e20eSThomas Petazzoni}; 130ec7e5a56SThomas Petazzoni 131037ad463SAndreas Färber&uart0 { 132ec7e5a56SThomas Petazzoni status = "okay"; 1339e83bbdbSThomas Petazzoni pinctrl-0 = <&uart0_pins>; 1349e83bbdbSThomas Petazzoni pinctrl-names = "default"; 135ec7e5a56SThomas Petazzoni}; 136fea14498SThomas Petazzoni 137fea14498SThomas Petazzoni 13891f1be92SThomas Petazzoni&cp0_pcie2 { 139fea14498SThomas Petazzoni status = "okay"; 140fea14498SThomas Petazzoni}; 141fea14498SThomas Petazzoni 14291f1be92SThomas Petazzoni&cp0_i2c0 { 143fea14498SThomas Petazzoni status = "okay"; 144fea14498SThomas Petazzoni clock-frequency = <100000>; 145915c71daSHanna Hawa 146915c71daSHanna Hawa expander0: pca9555@21 { 147915c71daSHanna Hawa compatible = "nxp,pca9555"; 148915c71daSHanna Hawa pinctrl-names = "default"; 149915c71daSHanna Hawa gpio-controller; 150915c71daSHanna Hawa #gpio-cells = <2>; 151915c71daSHanna Hawa reg = <0x21>; 152a5f5c5bbSGregory CLEMENT /* 153a5f5c5bbSGregory CLEMENT * IO0_0: USB3_PWR_EN0 IO1_0: USB_3_1_Dev_Detect 154a5f5c5bbSGregory CLEMENT * IO0_1: USB3_PWR_EN1 IO1_1: USB2_1_current_limit 155a5f5c5bbSGregory CLEMENT * IO0_2: DDR3_4_Detect IO1_2: Hcon_IO_RstN 156a5f5c5bbSGregory CLEMENT * IO0_3: USB2_DEVICE_DETECT 157a5f5c5bbSGregory CLEMENT * IO0_4: GPIO_0 IO1_4: SD_Status 158a5f5c5bbSGregory CLEMENT * IO0_5: GPIO_1 IO1_5: LDO_5V_Enable 159a5f5c5bbSGregory CLEMENT * IO0_6: IHB_5V_Enable IO1_6: PWR_EN_eMMC 160a5f5c5bbSGregory CLEMENT * IO0_7: IO1_7: SDIO_Vcntrl 161a5f5c5bbSGregory CLEMENT */ 162915c71daSHanna Hawa }; 163fea14498SThomas Petazzoni}; 164fea14498SThomas Petazzoni 16591f1be92SThomas Petazzoni&cp0_nand { 16673ae5fe8SGregory CLEMENT /* 16773ae5fe8SGregory CLEMENT * SPI on CPM and NAND have common pins on this board. We can 16873ae5fe8SGregory CLEMENT * use only one at a time. To enable the NAND (whihch will 16973ae5fe8SGregory CLEMENT * disable the SPI), the "status = "okay";" line have to be 17073ae5fe8SGregory CLEMENT * added here. 17173ae5fe8SGregory CLEMENT */ 17273ae5fe8SGregory CLEMENT num-cs = <1>; 17373ae5fe8SGregory CLEMENT pinctrl-0 = <&nand_pins>, <&nand_rb>; 17473ae5fe8SGregory CLEMENT pinctrl-names = "default"; 17573ae5fe8SGregory CLEMENT nand-ecc-strength = <4>; 17673ae5fe8SGregory CLEMENT nand-ecc-step-size = <512>; 17773ae5fe8SGregory CLEMENT marvell,nand-enable-arbiter; 17873ae5fe8SGregory CLEMENT nand-on-flash-bbt; 17973ae5fe8SGregory CLEMENT 18073ae5fe8SGregory CLEMENT partition@0 { 18173ae5fe8SGregory CLEMENT label = "U-Boot"; 18273ae5fe8SGregory CLEMENT reg = <0 0x200000>; 18373ae5fe8SGregory CLEMENT }; 18473ae5fe8SGregory CLEMENT partition@200000 { 18573ae5fe8SGregory CLEMENT label = "Linux"; 18673ae5fe8SGregory CLEMENT reg = <0x200000 0xe00000>; 18773ae5fe8SGregory CLEMENT }; 18873ae5fe8SGregory CLEMENT partition@1000000 { 18973ae5fe8SGregory CLEMENT label = "Filesystem"; 19073ae5fe8SGregory CLEMENT reg = <0x1000000 0x3f000000>; 19173ae5fe8SGregory CLEMENT }; 19273ae5fe8SGregory CLEMENT}; 19373ae5fe8SGregory CLEMENT 19473ae5fe8SGregory CLEMENT 19591f1be92SThomas Petazzoni&cp0_spi1 { 196fea14498SThomas Petazzoni status = "okay"; 197fea14498SThomas Petazzoni 198fea14498SThomas Petazzoni spi-flash@0 { 199fea14498SThomas Petazzoni #address-cells = <0x1>; 200fea14498SThomas Petazzoni #size-cells = <0x1>; 201fea14498SThomas Petazzoni compatible = "jedec,spi-nor"; 202fea14498SThomas Petazzoni reg = <0x0>; 203fea14498SThomas Petazzoni spi-max-frequency = <20000000>; 204fea14498SThomas Petazzoni 205fea14498SThomas Petazzoni partitions { 206fea14498SThomas Petazzoni compatible = "fixed-partitions"; 207fea14498SThomas Petazzoni #address-cells = <1>; 208fea14498SThomas Petazzoni #size-cells = <1>; 209fea14498SThomas Petazzoni 210fea14498SThomas Petazzoni partition@0 { 211fea14498SThomas Petazzoni label = "U-Boot"; 212fea14498SThomas Petazzoni reg = <0x0 0x200000>; 213fea14498SThomas Petazzoni }; 214fea14498SThomas Petazzoni 215fea14498SThomas Petazzoni partition@400000 { 216fea14498SThomas Petazzoni label = "Filesystem"; 217fea14498SThomas Petazzoni reg = <0x200000 0xe00000>; 218fea14498SThomas Petazzoni }; 219fea14498SThomas Petazzoni }; 220fea14498SThomas Petazzoni }; 221fea14498SThomas Petazzoni}; 222fea14498SThomas Petazzoni 22391f1be92SThomas Petazzoni&cp0_sata0 { 224fea14498SThomas Petazzoni status = "okay"; 225fea14498SThomas Petazzoni}; 226fea14498SThomas Petazzoni 22791f1be92SThomas Petazzoni&cp0_usb3_0 { 22891f1be92SThomas Petazzoni usb-phy = <&cp0_usb3_0_phy>; 229fea14498SThomas Petazzoni status = "okay"; 230fea14498SThomas Petazzoni}; 231fea14498SThomas Petazzoni 23291f1be92SThomas Petazzoni&cp0_usb3_1 { 23391f1be92SThomas Petazzoni usb-phy = <&cp0_usb3_1_phy>; 234fea14498SThomas Petazzoni status = "okay"; 235fea14498SThomas Petazzoni}; 23660894719SThomas Petazzoni 237910b4c5cSGregory CLEMENT&ap_sdhci0 { 238910b4c5cSGregory CLEMENT status = "okay"; 239910b4c5cSGregory CLEMENT bus-width = <4>; 240910b4c5cSGregory CLEMENT no-1-8-v; 241910b4c5cSGregory CLEMENT non-removable; 242910b4c5cSGregory CLEMENT}; 243910b4c5cSGregory CLEMENT 24491f1be92SThomas Petazzoni&cp0_sdhci0 { 245910b4c5cSGregory CLEMENT status = "okay"; 246910b4c5cSGregory CLEMENT bus-width = <4>; 247910b4c5cSGregory CLEMENT no-1-8-v; 248c4e3bf29SGregory CLEMENT cd-gpios = <&expander0 12 GPIO_ACTIVE_LOW>; 249910b4c5cSGregory CLEMENT}; 250910b4c5cSGregory CLEMENT 25191f1be92SThomas Petazzoni&cp0_mdio { 2523c6912cdSAntoine Tenart status = "okay"; 2533c6912cdSAntoine Tenart 25460894719SThomas Petazzoni phy0: ethernet-phy@0 { 25560894719SThomas Petazzoni reg = <0>; 25660894719SThomas Petazzoni }; 25760894719SThomas Petazzoni phy1: ethernet-phy@1 { 25860894719SThomas Petazzoni reg = <1>; 25960894719SThomas Petazzoni }; 26060894719SThomas Petazzoni}; 26160894719SThomas Petazzoni 26291f1be92SThomas Petazzoni&cp0_ethernet { 26360894719SThomas Petazzoni status = "okay"; 26460894719SThomas Petazzoni}; 26560894719SThomas Petazzoni 26691f1be92SThomas Petazzoni&cp0_eth0 { 26730967cfeSAntoine Tenart status = "okay"; 26830967cfeSAntoine Tenart /* Network PHY */ 26930967cfeSAntoine Tenart phy-mode = "10gbase-kr"; 27030967cfeSAntoine Tenart /* Generic PHY, providing serdes lanes */ 27191f1be92SThomas Petazzoni phys = <&cp0_comphy2 0>; 27230967cfeSAntoine Tenart}; 27330967cfeSAntoine Tenart 27491f1be92SThomas Petazzoni&cp0_eth1 { 27560894719SThomas Petazzoni status = "okay"; 276723abeedSAntoine Tenart /* Network PHY */ 27760894719SThomas Petazzoni phy = <&phy0>; 27860894719SThomas Petazzoni phy-mode = "sgmii"; 279723abeedSAntoine Tenart /* Generic PHY, providing serdes lanes */ 28091f1be92SThomas Petazzoni phys = <&cp0_comphy0 1>; 28160894719SThomas Petazzoni}; 28260894719SThomas Petazzoni 28391f1be92SThomas Petazzoni&cp0_eth2 { 28460894719SThomas Petazzoni status = "okay"; 28560894719SThomas Petazzoni phy = <&phy1>; 28660894719SThomas Petazzoni phy-mode = "rgmii-id"; 28760894719SThomas Petazzoni}; 288