175dba886SGregory CLEMENT// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2ec7e5a56SThomas Petazzoni/* 3ec7e5a56SThomas Petazzoni * Copyright (C) 2016 Marvell Technology Group Ltd. 4ec7e5a56SThomas Petazzoni * 5ec7e5a56SThomas Petazzoni * Device Tree file for Marvell Armada 7040 Development board platform 6ec7e5a56SThomas Petazzoni */ 7ec7e5a56SThomas Petazzoni 8915c71daSHanna Hawa#include <dt-bindings/gpio/gpio.h> 9ec7e5a56SThomas Petazzoni#include "armada-7040.dtsi" 10ec7e5a56SThomas Petazzoni 11ec7e5a56SThomas Petazzoni/ { 12ec7e5a56SThomas Petazzoni model = "Marvell Armada 7040 DB board"; 13ec7e5a56SThomas Petazzoni compatible = "marvell,armada7040-db", "marvell,armada7040", 14ec7e5a56SThomas Petazzoni "marvell,armada-ap806-quad", "marvell,armada-ap806"; 15ec7e5a56SThomas Petazzoni 16bf151162SThomas Petazzoni chosen { 17bf151162SThomas Petazzoni stdout-path = "serial0:115200n8"; 18bf151162SThomas Petazzoni }; 19bf151162SThomas Petazzoni 20d8bcaabeSRob Herring memory@0 { 21ec7e5a56SThomas Petazzoni device_type = "memory"; 22ec7e5a56SThomas Petazzoni reg = <0x0 0x0 0x0 0x80000000>; 23ec7e5a56SThomas Petazzoni }; 24915c71daSHanna Hawa 25474c5885SYan Markman aliases { 26474c5885SYan Markman ethernet0 = &cp0_eth0; 27474c5885SYan Markman ethernet1 = &cp0_eth1; 28474c5885SYan Markman ethernet2 = &cp0_eth2; 29474c5885SYan Markman }; 30474c5885SYan Markman 3185e27ed7SMiquel Raynal cp0_exp_usb3_0_current_regulator: gpio-regulator { 3285e27ed7SMiquel Raynal compatible = "regulator-gpio"; 3385e27ed7SMiquel Raynal regulator-name = "cp0-usb3-0-current-regulator"; 3485e27ed7SMiquel Raynal regulator-type = "current"; 3585e27ed7SMiquel Raynal regulator-min-microamp = <500000>; 3685e27ed7SMiquel Raynal regulator-max-microamp = <900000>; 3785e27ed7SMiquel Raynal gpios = <&expander0 4 GPIO_ACTIVE_HIGH>; 3885e27ed7SMiquel Raynal states = <500000 0x0 3985e27ed7SMiquel Raynal 900000 0x1>; 4085e27ed7SMiquel Raynal enable-active-high; 4185e27ed7SMiquel Raynal gpios-states = <0>; 4285e27ed7SMiquel Raynal }; 4385e27ed7SMiquel Raynal 4485e27ed7SMiquel Raynal cp0_exp_usb3_1_current_regulator: gpio-regulator { 4585e27ed7SMiquel Raynal compatible = "regulator-gpio"; 4685e27ed7SMiquel Raynal regulator-name = "cp0-usb3-1-current-regulator"; 4785e27ed7SMiquel Raynal regulator-type = "current"; 4885e27ed7SMiquel Raynal regulator-min-microamp = <500000>; 4985e27ed7SMiquel Raynal regulator-max-microamp = <900000>; 5085e27ed7SMiquel Raynal gpios = <&expander0 5 GPIO_ACTIVE_HIGH>; 5185e27ed7SMiquel Raynal states = <500000 0x0 5285e27ed7SMiquel Raynal 900000 0x1>; 5385e27ed7SMiquel Raynal enable-active-high; 5485e27ed7SMiquel Raynal gpios-states = <0>; 5585e27ed7SMiquel Raynal }; 5685e27ed7SMiquel Raynal 5791f1be92SThomas Petazzoni cp0_reg_usb3_0_vbus: cp0-usb3-0-vbus { 58915c71daSHanna Hawa compatible = "regulator-fixed"; 59915c71daSHanna Hawa regulator-name = "usb3h0-vbus"; 60915c71daSHanna Hawa regulator-min-microvolt = <5000000>; 61915c71daSHanna Hawa regulator-max-microvolt = <5000000>; 62915c71daSHanna Hawa enable-active-high; 63915c71daSHanna Hawa gpio = <&expander0 0 GPIO_ACTIVE_HIGH>; 6485e27ed7SMiquel Raynal vin-supply = <&cp0_exp_usb3_0_current_regulator>; 65915c71daSHanna Hawa }; 66915c71daSHanna Hawa 6791f1be92SThomas Petazzoni cp0_reg_usb3_1_vbus: cp0-usb3-1-vbus { 68915c71daSHanna Hawa compatible = "regulator-fixed"; 69915c71daSHanna Hawa regulator-name = "usb3h1-vbus"; 70915c71daSHanna Hawa regulator-min-microvolt = <5000000>; 71915c71daSHanna Hawa regulator-max-microvolt = <5000000>; 72915c71daSHanna Hawa enable-active-high; 73915c71daSHanna Hawa gpio = <&expander0 1 GPIO_ACTIVE_HIGH>; 7485e27ed7SMiquel Raynal vin-supply = <&cp0_exp_usb3_1_current_regulator>; 75915c71daSHanna Hawa }; 76037ad463SAndreas Färber}; 77ec7e5a56SThomas Petazzoni 78037ad463SAndreas Färber&i2c0 { 79037ad463SAndreas Färber status = "okay"; 80037ad463SAndreas Färber clock-frequency = <100000>; 81037ad463SAndreas Färber}; 82037ad463SAndreas Färber 83037ad463SAndreas Färber&spi0 { 84ec7e5a56SThomas Petazzoni status = "okay"; 85ec7e5a56SThomas Petazzoni 86*2f00bb4aSKrzysztof Kozlowski flash@0 { 87fe85e20eSThomas Petazzoni compatible = "jedec,spi-nor"; 88fe85e20eSThomas Petazzoni reg = <0>; 89ec7e5a56SThomas Petazzoni spi-max-frequency = <10000000>; 90ec7e5a56SThomas Petazzoni 91fe85e20eSThomas Petazzoni partitions { 92fe85e20eSThomas Petazzoni compatible = "fixed-partitions"; 93fe85e20eSThomas Petazzoni #address-cells = <1>; 94fe85e20eSThomas Petazzoni #size-cells = <1>; 95fe85e20eSThomas Petazzoni 96ec7e5a56SThomas Petazzoni partition@0 { 97ec7e5a56SThomas Petazzoni label = "U-Boot"; 98ec7e5a56SThomas Petazzoni reg = <0 0x200000>; 99ec7e5a56SThomas Petazzoni }; 100ec7e5a56SThomas Petazzoni partition@400000 { 101ec7e5a56SThomas Petazzoni label = "Filesystem"; 102ec7e5a56SThomas Petazzoni reg = <0x200000 0xce0000>; 103ec7e5a56SThomas Petazzoni }; 104ec7e5a56SThomas Petazzoni }; 105ec7e5a56SThomas Petazzoni }; 106fe85e20eSThomas Petazzoni}; 107ec7e5a56SThomas Petazzoni 108037ad463SAndreas Färber&uart0 { 109ec7e5a56SThomas Petazzoni status = "okay"; 1109e83bbdbSThomas Petazzoni pinctrl-0 = <&uart0_pins>; 1119e83bbdbSThomas Petazzoni pinctrl-names = "default"; 112ec7e5a56SThomas Petazzoni}; 113fea14498SThomas Petazzoni 114fea14498SThomas Petazzoni 11591f1be92SThomas Petazzoni&cp0_pcie2 { 116fea14498SThomas Petazzoni status = "okay"; 117ce55522cSMiquel Raynal phys = <&cp0_comphy5 2>; 118ce55522cSMiquel Raynal phy-names = "cp0-pcie2-x1-phy"; 119fea14498SThomas Petazzoni}; 120fea14498SThomas Petazzoni 12191f1be92SThomas Petazzoni&cp0_i2c0 { 122fea14498SThomas Petazzoni status = "okay"; 123fea14498SThomas Petazzoni clock-frequency = <100000>; 124915c71daSHanna Hawa 125915c71daSHanna Hawa expander0: pca9555@21 { 126915c71daSHanna Hawa compatible = "nxp,pca9555"; 127915c71daSHanna Hawa pinctrl-names = "default"; 128915c71daSHanna Hawa gpio-controller; 129915c71daSHanna Hawa #gpio-cells = <2>; 130915c71daSHanna Hawa reg = <0x21>; 131a5f5c5bbSGregory CLEMENT /* 132a5f5c5bbSGregory CLEMENT * IO0_0: USB3_PWR_EN0 IO1_0: USB_3_1_Dev_Detect 133a5f5c5bbSGregory CLEMENT * IO0_1: USB3_PWR_EN1 IO1_1: USB2_1_current_limit 134a5f5c5bbSGregory CLEMENT * IO0_2: DDR3_4_Detect IO1_2: Hcon_IO_RstN 135a5f5c5bbSGregory CLEMENT * IO0_3: USB2_DEVICE_DETECT 136a5f5c5bbSGregory CLEMENT * IO0_4: GPIO_0 IO1_4: SD_Status 137a5f5c5bbSGregory CLEMENT * IO0_5: GPIO_1 IO1_5: LDO_5V_Enable 138a5f5c5bbSGregory CLEMENT * IO0_6: IHB_5V_Enable IO1_6: PWR_EN_eMMC 139a5f5c5bbSGregory CLEMENT * IO0_7: IO1_7: SDIO_Vcntrl 140a5f5c5bbSGregory CLEMENT */ 141915c71daSHanna Hawa }; 142fea14498SThomas Petazzoni}; 143fea14498SThomas Petazzoni 1441e09a73fSMiquel Raynal&cp0_nand_controller { 14573ae5fe8SGregory CLEMENT /* 14673ae5fe8SGregory CLEMENT * SPI on CPM and NAND have common pins on this board. We can 1471e09a73fSMiquel Raynal * use only one at a time. To enable the NAND (which will 14873ae5fe8SGregory CLEMENT * disable the SPI), the "status = "okay";" line have to be 14973ae5fe8SGregory CLEMENT * added here. 15073ae5fe8SGregory CLEMENT */ 15173ae5fe8SGregory CLEMENT pinctrl-0 = <&nand_pins>, <&nand_rb>; 15273ae5fe8SGregory CLEMENT pinctrl-names = "default"; 1531e09a73fSMiquel Raynal 1541e09a73fSMiquel Raynal nand@0 { 1551e09a73fSMiquel Raynal reg = <0>; 1561e09a73fSMiquel Raynal label = "pxa3xx_nand-0"; 1571e09a73fSMiquel Raynal nand-rb = <0>; 1581e09a73fSMiquel Raynal nand-on-flash-bbt; 15973ae5fe8SGregory CLEMENT nand-ecc-strength = <4>; 16073ae5fe8SGregory CLEMENT nand-ecc-step-size = <512>; 1611e09a73fSMiquel Raynal 1621e09a73fSMiquel Raynal partitions { 1631e09a73fSMiquel Raynal compatible = "fixed-partitions"; 1641e09a73fSMiquel Raynal #address-cells = <1>; 1651e09a73fSMiquel Raynal #size-cells = <1>; 16673ae5fe8SGregory CLEMENT 16773ae5fe8SGregory CLEMENT partition@0 { 16873ae5fe8SGregory CLEMENT label = "U-Boot"; 16973ae5fe8SGregory CLEMENT reg = <0 0x200000>; 17073ae5fe8SGregory CLEMENT }; 1711e09a73fSMiquel Raynal 17273ae5fe8SGregory CLEMENT partition@200000 { 17373ae5fe8SGregory CLEMENT label = "Linux"; 17473ae5fe8SGregory CLEMENT reg = <0x200000 0xe00000>; 17573ae5fe8SGregory CLEMENT }; 1761e09a73fSMiquel Raynal 17773ae5fe8SGregory CLEMENT partition@1000000 { 17873ae5fe8SGregory CLEMENT label = "Filesystem"; 17973ae5fe8SGregory CLEMENT reg = <0x1000000 0x3f000000>; 18073ae5fe8SGregory CLEMENT }; 18173ae5fe8SGregory CLEMENT 1821e09a73fSMiquel Raynal }; 1831e09a73fSMiquel Raynal }; 1841e09a73fSMiquel Raynal}; 18573ae5fe8SGregory CLEMENT 18691f1be92SThomas Petazzoni&cp0_spi1 { 187fea14498SThomas Petazzoni status = "okay"; 188fea14498SThomas Petazzoni 189*2f00bb4aSKrzysztof Kozlowski flash@0 { 190fea14498SThomas Petazzoni compatible = "jedec,spi-nor"; 191fea14498SThomas Petazzoni reg = <0x0>; 192fea14498SThomas Petazzoni spi-max-frequency = <20000000>; 193fea14498SThomas Petazzoni 194fea14498SThomas Petazzoni partitions { 195fea14498SThomas Petazzoni compatible = "fixed-partitions"; 196fea14498SThomas Petazzoni #address-cells = <1>; 197fea14498SThomas Petazzoni #size-cells = <1>; 198fea14498SThomas Petazzoni 199fea14498SThomas Petazzoni partition@0 { 200fea14498SThomas Petazzoni label = "U-Boot"; 201fea14498SThomas Petazzoni reg = <0x0 0x200000>; 202fea14498SThomas Petazzoni }; 203fea14498SThomas Petazzoni 204fea14498SThomas Petazzoni partition@400000 { 205fea14498SThomas Petazzoni label = "Filesystem"; 206fea14498SThomas Petazzoni reg = <0x200000 0xe00000>; 207fea14498SThomas Petazzoni }; 208fea14498SThomas Petazzoni }; 209fea14498SThomas Petazzoni }; 210fea14498SThomas Petazzoni}; 211fea14498SThomas Petazzoni 21291f1be92SThomas Petazzoni&cp0_sata0 { 213fea14498SThomas Petazzoni status = "okay"; 214d04abe99SMiquel Raynal 215d04abe99SMiquel Raynal sata-port@1 { 216d04abe99SMiquel Raynal phys = <&cp0_comphy3 1>; 217d04abe99SMiquel Raynal phy-names = "cp0-sata0-1-phy"; 218d04abe99SMiquel Raynal }; 219fea14498SThomas Petazzoni}; 220fea14498SThomas Petazzoni 22199fa8ac5SKonstantin Porotchkin&cp0_utmi { 22299fa8ac5SKonstantin Porotchkin status = "okay"; 22399fa8ac5SKonstantin Porotchkin}; 22499fa8ac5SKonstantin Porotchkin 22596018a6fSMiquel Raynal&cp0_comphy1 { 22696018a6fSMiquel Raynal cp0_usbh0_con: connector { 22796018a6fSMiquel Raynal compatible = "usb-a-connector"; 22896018a6fSMiquel Raynal phy-supply = <&cp0_reg_usb3_0_vbus>; 22996018a6fSMiquel Raynal }; 23096018a6fSMiquel Raynal}; 23196018a6fSMiquel Raynal 23291f1be92SThomas Petazzoni&cp0_usb3_0 { 23399fa8ac5SKonstantin Porotchkin phys = <&cp0_comphy1 0>, <&cp0_utmi0>; 23499fa8ac5SKonstantin Porotchkin phy-names = "cp0-usb3h0-comphy", "utmi"; 23599fa8ac5SKonstantin Porotchkin dr_mode = "host"; 236fea14498SThomas Petazzoni status = "okay"; 237fea14498SThomas Petazzoni}; 238fea14498SThomas Petazzoni 23996018a6fSMiquel Raynal&cp0_comphy4 { 24096018a6fSMiquel Raynal cp0_usbh1_con: connector { 24196018a6fSMiquel Raynal compatible = "usb-a-connector"; 24296018a6fSMiquel Raynal phy-supply = <&cp0_reg_usb3_1_vbus>; 24396018a6fSMiquel Raynal }; 24496018a6fSMiquel Raynal}; 24596018a6fSMiquel Raynal 24691f1be92SThomas Petazzoni&cp0_usb3_1 { 24799fa8ac5SKonstantin Porotchkin phys = <&cp0_comphy4 1>, <&cp0_utmi1>; 24899fa8ac5SKonstantin Porotchkin phy-names = "cp0-usb3h1-comphy", "utmi"; 24999fa8ac5SKonstantin Porotchkin dr_mode = "host"; 250fea14498SThomas Petazzoni status = "okay"; 251fea14498SThomas Petazzoni}; 25260894719SThomas Petazzoni 253910b4c5cSGregory CLEMENT&ap_sdhci0 { 254910b4c5cSGregory CLEMENT status = "okay"; 255910b4c5cSGregory CLEMENT bus-width = <4>; 256910b4c5cSGregory CLEMENT no-1-8-v; 257910b4c5cSGregory CLEMENT non-removable; 258910b4c5cSGregory CLEMENT}; 259910b4c5cSGregory CLEMENT 26091f1be92SThomas Petazzoni&cp0_sdhci0 { 261910b4c5cSGregory CLEMENT status = "okay"; 262910b4c5cSGregory CLEMENT bus-width = <4>; 263910b4c5cSGregory CLEMENT no-1-8-v; 264c4e3bf29SGregory CLEMENT cd-gpios = <&expander0 12 GPIO_ACTIVE_LOW>; 265910b4c5cSGregory CLEMENT}; 266910b4c5cSGregory CLEMENT 26791f1be92SThomas Petazzoni&cp0_mdio { 2683c6912cdSAntoine Tenart status = "okay"; 2693c6912cdSAntoine Tenart 27060894719SThomas Petazzoni phy0: ethernet-phy@0 { 27160894719SThomas Petazzoni reg = <0>; 27260894719SThomas Petazzoni }; 27360894719SThomas Petazzoni phy1: ethernet-phy@1 { 27460894719SThomas Petazzoni reg = <1>; 27560894719SThomas Petazzoni }; 27660894719SThomas Petazzoni}; 27760894719SThomas Petazzoni 27891f1be92SThomas Petazzoni&cp0_ethernet { 27960894719SThomas Petazzoni status = "okay"; 28060894719SThomas Petazzoni}; 28160894719SThomas Petazzoni 28291f1be92SThomas Petazzoni&cp0_eth0 { 28330967cfeSAntoine Tenart status = "okay"; 28430967cfeSAntoine Tenart /* Network PHY */ 28545b25653SKonstantin Porotchkin phy-mode = "10gbase-r"; 28630967cfeSAntoine Tenart /* Generic PHY, providing serdes lanes */ 28791f1be92SThomas Petazzoni phys = <&cp0_comphy2 0>; 2884640efc0SAntoine Tenart 2894640efc0SAntoine Tenart fixed-link { 2904640efc0SAntoine Tenart speed = <10000>; 2914640efc0SAntoine Tenart full-duplex; 2924640efc0SAntoine Tenart }; 29330967cfeSAntoine Tenart}; 29430967cfeSAntoine Tenart 29591f1be92SThomas Petazzoni&cp0_eth1 { 29660894719SThomas Petazzoni status = "okay"; 297723abeedSAntoine Tenart /* Network PHY */ 29860894719SThomas Petazzoni phy = <&phy0>; 29960894719SThomas Petazzoni phy-mode = "sgmii"; 300723abeedSAntoine Tenart /* Generic PHY, providing serdes lanes */ 30191f1be92SThomas Petazzoni phys = <&cp0_comphy0 1>; 30260894719SThomas Petazzoni}; 30360894719SThomas Petazzoni 30491f1be92SThomas Petazzoni&cp0_eth2 { 30560894719SThomas Petazzoni status = "okay"; 30660894719SThomas Petazzoni phy = <&phy1>; 30760894719SThomas Petazzoni phy-mode = "rgmii-id"; 30860894719SThomas Petazzoni}; 309