162306a36Sopenharmony_ci// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright (C) 2016 Marvell Technology Group Ltd. 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * Device Tree file for Marvell Armada 8040 Development board platform 662306a36Sopenharmony_ci */ 762306a36Sopenharmony_ci 862306a36Sopenharmony_ci#include <dt-bindings/gpio/gpio.h> 962306a36Sopenharmony_ci#include "armada-8040.dtsi" 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ci/ { 1262306a36Sopenharmony_ci model = "Marvell Armada 8040 DB board"; 1362306a36Sopenharmony_ci compatible = "marvell,armada8040-db", "marvell,armada8040", 1462306a36Sopenharmony_ci "marvell,armada-ap806-quad", "marvell,armada-ap806"; 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_ci chosen { 1762306a36Sopenharmony_ci stdout-path = "serial0:115200n8"; 1862306a36Sopenharmony_ci }; 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ci memory@0 { 2162306a36Sopenharmony_ci device_type = "memory"; 2262306a36Sopenharmony_ci reg = <0x0 0x0 0x0 0x80000000>; 2362306a36Sopenharmony_ci }; 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_ci aliases { 2662306a36Sopenharmony_ci ethernet0 = &cp0_eth0; 2762306a36Sopenharmony_ci ethernet1 = &cp0_eth2; 2862306a36Sopenharmony_ci ethernet2 = &cp1_eth0; 2962306a36Sopenharmony_ci ethernet3 = &cp1_eth1; 3062306a36Sopenharmony_ci i2c1 = &cp0_i2c0; 3162306a36Sopenharmony_ci i2c2 = &cp1_i2c0; 3262306a36Sopenharmony_ci }; 3362306a36Sopenharmony_ci 3462306a36Sopenharmony_ci cp0_reg_usb3_0_vbus: cp0-usb3-0-vbus { 3562306a36Sopenharmony_ci compatible = "regulator-fixed"; 3662306a36Sopenharmony_ci regulator-name = "cp0-usb3h0-vbus"; 3762306a36Sopenharmony_ci regulator-min-microvolt = <5000000>; 3862306a36Sopenharmony_ci regulator-max-microvolt = <5000000>; 3962306a36Sopenharmony_ci enable-active-high; 4062306a36Sopenharmony_ci gpio = <&expander0 0 GPIO_ACTIVE_HIGH>; 4162306a36Sopenharmony_ci }; 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_ci cp0_reg_usb3_1_vbus: cp0-usb3-1-vbus { 4462306a36Sopenharmony_ci compatible = "regulator-fixed"; 4562306a36Sopenharmony_ci regulator-name = "cp0-usb3h1-vbus"; 4662306a36Sopenharmony_ci regulator-min-microvolt = <5000000>; 4762306a36Sopenharmony_ci regulator-max-microvolt = <5000000>; 4862306a36Sopenharmony_ci enable-active-high; 4962306a36Sopenharmony_ci gpio = <&expander0 1 GPIO_ACTIVE_HIGH>; 5062306a36Sopenharmony_ci }; 5162306a36Sopenharmony_ci 5262306a36Sopenharmony_ci cp0_usb3_0_phy: cp0-usb3-0-phy { 5362306a36Sopenharmony_ci compatible = "usb-nop-xceiv"; 5462306a36Sopenharmony_ci vcc-supply = <&cp0_reg_usb3_0_vbus>; 5562306a36Sopenharmony_ci }; 5662306a36Sopenharmony_ci 5762306a36Sopenharmony_ci cp1_reg_usb3_0_vbus: cp1-usb3-0-vbus { 5862306a36Sopenharmony_ci compatible = "regulator-fixed"; 5962306a36Sopenharmony_ci regulator-name = "cp1-usb3h0-vbus"; 6062306a36Sopenharmony_ci regulator-min-microvolt = <5000000>; 6162306a36Sopenharmony_ci regulator-max-microvolt = <5000000>; 6262306a36Sopenharmony_ci enable-active-high; 6362306a36Sopenharmony_ci gpio = <&expander1 0 GPIO_ACTIVE_HIGH>; 6462306a36Sopenharmony_ci }; 6562306a36Sopenharmony_ci 6662306a36Sopenharmony_ci cp1_usb3_0_phy: cp1-usb3-0-phy { 6762306a36Sopenharmony_ci compatible = "usb-nop-xceiv"; 6862306a36Sopenharmony_ci vcc-supply = <&cp1_reg_usb3_0_vbus>; 6962306a36Sopenharmony_ci }; 7062306a36Sopenharmony_ci}; 7162306a36Sopenharmony_ci 7262306a36Sopenharmony_ci&spi0 { 7362306a36Sopenharmony_ci status = "okay"; 7462306a36Sopenharmony_ci 7562306a36Sopenharmony_ci flash@0 { 7662306a36Sopenharmony_ci compatible = "jedec,spi-nor"; 7762306a36Sopenharmony_ci reg = <0>; 7862306a36Sopenharmony_ci spi-max-frequency = <10000000>; 7962306a36Sopenharmony_ci 8062306a36Sopenharmony_ci partitions { 8162306a36Sopenharmony_ci compatible = "fixed-partitions"; 8262306a36Sopenharmony_ci #address-cells = <1>; 8362306a36Sopenharmony_ci #size-cells = <1>; 8462306a36Sopenharmony_ci 8562306a36Sopenharmony_ci partition@0 { 8662306a36Sopenharmony_ci label = "U-Boot"; 8762306a36Sopenharmony_ci reg = <0 0x200000>; 8862306a36Sopenharmony_ci }; 8962306a36Sopenharmony_ci partition@400000 { 9062306a36Sopenharmony_ci label = "Filesystem"; 9162306a36Sopenharmony_ci reg = <0x200000 0xce0000>; 9262306a36Sopenharmony_ci }; 9362306a36Sopenharmony_ci }; 9462306a36Sopenharmony_ci }; 9562306a36Sopenharmony_ci}; 9662306a36Sopenharmony_ci 9762306a36Sopenharmony_ci/* Accessible over the mini-USB CON9 connector on the main board */ 9862306a36Sopenharmony_ci&uart0 { 9962306a36Sopenharmony_ci status = "okay"; 10062306a36Sopenharmony_ci pinctrl-0 = <&uart0_pins>; 10162306a36Sopenharmony_ci pinctrl-names = "default"; 10262306a36Sopenharmony_ci}; 10362306a36Sopenharmony_ci 10462306a36Sopenharmony_ci/* CON6 on CP0 expansion */ 10562306a36Sopenharmony_ci&cp0_pcie0 { 10662306a36Sopenharmony_ci phys = <&cp0_comphy0 0>; 10762306a36Sopenharmony_ci phy-names = "cp0-pcie0-x1-phy"; 10862306a36Sopenharmony_ci status = "okay"; 10962306a36Sopenharmony_ci}; 11062306a36Sopenharmony_ci 11162306a36Sopenharmony_ci/* CON5 on CP0 expansion */ 11262306a36Sopenharmony_ci&cp0_pcie2 { 11362306a36Sopenharmony_ci phys = <&cp0_comphy5 2>; 11462306a36Sopenharmony_ci phy-names = "cp0-pcie2-x1-phy"; 11562306a36Sopenharmony_ci status = "okay"; 11662306a36Sopenharmony_ci}; 11762306a36Sopenharmony_ci 11862306a36Sopenharmony_ci&cp0_i2c0 { 11962306a36Sopenharmony_ci status = "okay"; 12062306a36Sopenharmony_ci clock-frequency = <100000>; 12162306a36Sopenharmony_ci 12262306a36Sopenharmony_ci /* U31 */ 12362306a36Sopenharmony_ci expander0: pca9555@21 { 12462306a36Sopenharmony_ci compatible = "nxp,pca9555"; 12562306a36Sopenharmony_ci pinctrl-names = "default"; 12662306a36Sopenharmony_ci gpio-controller; 12762306a36Sopenharmony_ci #gpio-cells = <2>; 12862306a36Sopenharmony_ci reg = <0x21>; 12962306a36Sopenharmony_ci }; 13062306a36Sopenharmony_ci 13162306a36Sopenharmony_ci /* U25 */ 13262306a36Sopenharmony_ci expander1: pca9555@25 { 13362306a36Sopenharmony_ci compatible = "nxp,pca9555"; 13462306a36Sopenharmony_ci pinctrl-names = "default"; 13562306a36Sopenharmony_ci gpio-controller; 13662306a36Sopenharmony_ci #gpio-cells = <2>; 13762306a36Sopenharmony_ci reg = <0x25>; 13862306a36Sopenharmony_ci }; 13962306a36Sopenharmony_ci 14062306a36Sopenharmony_ci}; 14162306a36Sopenharmony_ci 14262306a36Sopenharmony_ci/* CON4 on CP0 expansion */ 14362306a36Sopenharmony_ci&cp0_sata0 { 14462306a36Sopenharmony_ci status = "okay"; 14562306a36Sopenharmony_ci 14662306a36Sopenharmony_ci sata-port@0 { 14762306a36Sopenharmony_ci phys = <&cp0_comphy1 0>; 14862306a36Sopenharmony_ci phy-names = "cp0-sata0-0-phy"; 14962306a36Sopenharmony_ci }; 15062306a36Sopenharmony_ci sata-port@1 { 15162306a36Sopenharmony_ci phys = <&cp0_comphy3 1>; 15262306a36Sopenharmony_ci phy-names = "cp0-sata0-1-phy"; 15362306a36Sopenharmony_ci }; 15462306a36Sopenharmony_ci}; 15562306a36Sopenharmony_ci 15662306a36Sopenharmony_ci/* CON9 on CP0 expansion */ 15762306a36Sopenharmony_ci&cp0_utmi { 15862306a36Sopenharmony_ci status = "okay"; 15962306a36Sopenharmony_ci}; 16062306a36Sopenharmony_ci 16162306a36Sopenharmony_ci&cp0_usb3_0 { 16262306a36Sopenharmony_ci usb-phy = <&cp0_usb3_0_phy>; 16362306a36Sopenharmony_ci phys = <&cp0_utmi0>; 16462306a36Sopenharmony_ci phy-names = "utmi"; 16562306a36Sopenharmony_ci dr_mode = "host"; 16662306a36Sopenharmony_ci status = "okay"; 16762306a36Sopenharmony_ci}; 16862306a36Sopenharmony_ci 16962306a36Sopenharmony_ci&cp0_comphy4 { 17062306a36Sopenharmony_ci cp0_usbh1_con: connector { 17162306a36Sopenharmony_ci compatible = "usb-a-connector"; 17262306a36Sopenharmony_ci phy-supply = <&cp0_reg_usb3_1_vbus>; 17362306a36Sopenharmony_ci }; 17462306a36Sopenharmony_ci}; 17562306a36Sopenharmony_ci 17662306a36Sopenharmony_ci/* CON10 on CP0 expansion */ 17762306a36Sopenharmony_ci&cp0_usb3_1 { 17862306a36Sopenharmony_ci phys = <&cp0_comphy4 1>, <&cp0_utmi1>; 17962306a36Sopenharmony_ci phy-names = "usb", "utmi"; 18062306a36Sopenharmony_ci dr_mode = "host"; 18162306a36Sopenharmony_ci status = "okay"; 18262306a36Sopenharmony_ci}; 18362306a36Sopenharmony_ci 18462306a36Sopenharmony_ci&cp0_mdio { 18562306a36Sopenharmony_ci status = "okay"; 18662306a36Sopenharmony_ci 18762306a36Sopenharmony_ci phy1: ethernet-phy@1 { 18862306a36Sopenharmony_ci reg = <1>; 18962306a36Sopenharmony_ci }; 19062306a36Sopenharmony_ci}; 19162306a36Sopenharmony_ci 19262306a36Sopenharmony_ci&cp0_ethernet { 19362306a36Sopenharmony_ci status = "okay"; 19462306a36Sopenharmony_ci}; 19562306a36Sopenharmony_ci 19662306a36Sopenharmony_ci&cp0_eth0 { 19762306a36Sopenharmony_ci status = "okay"; 19862306a36Sopenharmony_ci phy-mode = "10gbase-r"; 19962306a36Sopenharmony_ci 20062306a36Sopenharmony_ci fixed-link { 20162306a36Sopenharmony_ci speed = <10000>; 20262306a36Sopenharmony_ci full-duplex; 20362306a36Sopenharmony_ci }; 20462306a36Sopenharmony_ci}; 20562306a36Sopenharmony_ci 20662306a36Sopenharmony_ci&cp0_eth2 { 20762306a36Sopenharmony_ci status = "okay"; 20862306a36Sopenharmony_ci phy = <&phy1>; 20962306a36Sopenharmony_ci phy-mode = "rgmii-id"; 21062306a36Sopenharmony_ci}; 21162306a36Sopenharmony_ci 21262306a36Sopenharmony_ci/* CON6 on CP1 expansion */ 21362306a36Sopenharmony_ci&cp1_pcie0 { 21462306a36Sopenharmony_ci phys = <&cp1_comphy0 0>; 21562306a36Sopenharmony_ci phy-names = "cp1-pcie0-x1-phy"; 21662306a36Sopenharmony_ci status = "okay"; 21762306a36Sopenharmony_ci}; 21862306a36Sopenharmony_ci 21962306a36Sopenharmony_ci/* CON7 on CP1 expansion */ 22062306a36Sopenharmony_ci&cp1_pcie1 { 22162306a36Sopenharmony_ci phys = <&cp1_comphy4 1>; 22262306a36Sopenharmony_ci phy-names = "cp1-pcie1-x1-phy"; 22362306a36Sopenharmony_ci status = "okay"; 22462306a36Sopenharmony_ci}; 22562306a36Sopenharmony_ci 22662306a36Sopenharmony_ci/* CON5 on CP1 expansion */ 22762306a36Sopenharmony_ci&cp1_pcie2 { 22862306a36Sopenharmony_ci phys = <&cp1_comphy5 2>; 22962306a36Sopenharmony_ci phy-names = "cp1-pcie2-x1-phy"; 23062306a36Sopenharmony_ci status = "okay"; 23162306a36Sopenharmony_ci}; 23262306a36Sopenharmony_ci 23362306a36Sopenharmony_ci&cp1_i2c0 { 23462306a36Sopenharmony_ci status = "okay"; 23562306a36Sopenharmony_ci clock-frequency = <100000>; 23662306a36Sopenharmony_ci}; 23762306a36Sopenharmony_ci 23862306a36Sopenharmony_ci&cp1_spi1 { 23962306a36Sopenharmony_ci status = "okay"; 24062306a36Sopenharmony_ci 24162306a36Sopenharmony_ci flash@0 { 24262306a36Sopenharmony_ci compatible = "jedec,spi-nor"; 24362306a36Sopenharmony_ci reg = <0x0>; 24462306a36Sopenharmony_ci spi-max-frequency = <20000000>; 24562306a36Sopenharmony_ci 24662306a36Sopenharmony_ci partitions { 24762306a36Sopenharmony_ci compatible = "fixed-partitions"; 24862306a36Sopenharmony_ci #address-cells = <1>; 24962306a36Sopenharmony_ci #size-cells = <1>; 25062306a36Sopenharmony_ci 25162306a36Sopenharmony_ci partition@0 { 25262306a36Sopenharmony_ci label = "Boot"; 25362306a36Sopenharmony_ci reg = <0x0 0x200000>; 25462306a36Sopenharmony_ci }; 25562306a36Sopenharmony_ci partition@200000 { 25662306a36Sopenharmony_ci label = "Filesystem"; 25762306a36Sopenharmony_ci reg = <0x200000 0xd00000>; 25862306a36Sopenharmony_ci }; 25962306a36Sopenharmony_ci partition@f00000 { 26062306a36Sopenharmony_ci label = "Boot_2nd"; 26162306a36Sopenharmony_ci reg = <0xf00000 0x100000>; 26262306a36Sopenharmony_ci }; 26362306a36Sopenharmony_ci }; 26462306a36Sopenharmony_ci }; 26562306a36Sopenharmony_ci}; 26662306a36Sopenharmony_ci 26762306a36Sopenharmony_ci/* 26862306a36Sopenharmony_ci * Proper NAND usage will require DPR-76 to be in position 1-2, which disables 26962306a36Sopenharmony_ci * MDIO signal of CP1. 27062306a36Sopenharmony_ci */ 27162306a36Sopenharmony_ci&cp1_nand_controller { 27262306a36Sopenharmony_ci pinctrl-0 = <&nand_pins>, <&nand_rb>; 27362306a36Sopenharmony_ci pinctrl-names = "default"; 27462306a36Sopenharmony_ci 27562306a36Sopenharmony_ci nand@0 { 27662306a36Sopenharmony_ci reg = <0>; 27762306a36Sopenharmony_ci nand-rb = <0>; 27862306a36Sopenharmony_ci nand-on-flash-bbt; 27962306a36Sopenharmony_ci nand-ecc-strength = <4>; 28062306a36Sopenharmony_ci nand-ecc-step-size = <512>; 28162306a36Sopenharmony_ci 28262306a36Sopenharmony_ci partitions { 28362306a36Sopenharmony_ci compatible = "fixed-partitions"; 28462306a36Sopenharmony_ci #address-cells = <1>; 28562306a36Sopenharmony_ci #size-cells = <1>; 28662306a36Sopenharmony_ci 28762306a36Sopenharmony_ci partition@0 { 28862306a36Sopenharmony_ci label = "U-Boot"; 28962306a36Sopenharmony_ci reg = <0 0x200000>; 29062306a36Sopenharmony_ci }; 29162306a36Sopenharmony_ci partition@200000 { 29262306a36Sopenharmony_ci label = "Linux"; 29362306a36Sopenharmony_ci reg = <0x200000 0xe00000>; 29462306a36Sopenharmony_ci }; 29562306a36Sopenharmony_ci partition@1000000 { 29662306a36Sopenharmony_ci label = "Filesystem"; 29762306a36Sopenharmony_ci reg = <0x1000000 0x3f000000>; 29862306a36Sopenharmony_ci }; 29962306a36Sopenharmony_ci }; 30062306a36Sopenharmony_ci }; 30162306a36Sopenharmony_ci}; 30262306a36Sopenharmony_ci 30362306a36Sopenharmony_ci/* CON4 on CP1 expansion */ 30462306a36Sopenharmony_ci&cp1_sata0 { 30562306a36Sopenharmony_ci status = "okay"; 30662306a36Sopenharmony_ci 30762306a36Sopenharmony_ci sata-port@0 { 30862306a36Sopenharmony_ci phys = <&cp1_comphy1 0>; 30962306a36Sopenharmony_ci phy-names = "cp1-sata0-0-phy"; 31062306a36Sopenharmony_ci }; 31162306a36Sopenharmony_ci sata-port@1 { 31262306a36Sopenharmony_ci phys = <&cp1_comphy3 1>; 31362306a36Sopenharmony_ci phy-names = "cp1-sata0-1-phy"; 31462306a36Sopenharmony_ci }; 31562306a36Sopenharmony_ci}; 31662306a36Sopenharmony_ci 31762306a36Sopenharmony_ci&cp1_utmi { 31862306a36Sopenharmony_ci status = "okay"; 31962306a36Sopenharmony_ci}; 32062306a36Sopenharmony_ci 32162306a36Sopenharmony_ci/* CON9 on CP1 expansion */ 32262306a36Sopenharmony_ci&cp1_usb3_0 { 32362306a36Sopenharmony_ci usb-phy = <&cp1_usb3_0_phy>; 32462306a36Sopenharmony_ci phys = <&cp1_utmi0>; 32562306a36Sopenharmony_ci phy-names = "utmi"; 32662306a36Sopenharmony_ci dr_mode = "host"; 32762306a36Sopenharmony_ci status = "okay"; 32862306a36Sopenharmony_ci}; 32962306a36Sopenharmony_ci 33062306a36Sopenharmony_ci/* CON10 on CP1 expansion */ 33162306a36Sopenharmony_ci&cp1_usb3_1 { 33262306a36Sopenharmony_ci phys = <&cp1_utmi1>; 33362306a36Sopenharmony_ci phy-names = "utmi"; 33462306a36Sopenharmony_ci status = "okay"; 33562306a36Sopenharmony_ci}; 33662306a36Sopenharmony_ci 33762306a36Sopenharmony_ci&cp1_mdio { 33862306a36Sopenharmony_ci status = "okay"; 33962306a36Sopenharmony_ci 34062306a36Sopenharmony_ci phy0: ethernet-phy@0 { 34162306a36Sopenharmony_ci reg = <0>; 34262306a36Sopenharmony_ci }; 34362306a36Sopenharmony_ci}; 34462306a36Sopenharmony_ci 34562306a36Sopenharmony_ci&cp1_ethernet { 34662306a36Sopenharmony_ci status = "okay"; 34762306a36Sopenharmony_ci}; 34862306a36Sopenharmony_ci 34962306a36Sopenharmony_ci&cp1_eth0 { 35062306a36Sopenharmony_ci status = "okay"; 35162306a36Sopenharmony_ci phy-mode = "10gbase-r"; 35262306a36Sopenharmony_ci 35362306a36Sopenharmony_ci fixed-link { 35462306a36Sopenharmony_ci speed = <10000>; 35562306a36Sopenharmony_ci full-duplex; 35662306a36Sopenharmony_ci }; 35762306a36Sopenharmony_ci}; 35862306a36Sopenharmony_ci 35962306a36Sopenharmony_ci&cp1_eth1 { 36062306a36Sopenharmony_ci status = "okay"; 36162306a36Sopenharmony_ci phy = <&phy0>; 36262306a36Sopenharmony_ci phy-mode = "rgmii-id"; 36362306a36Sopenharmony_ci}; 36462306a36Sopenharmony_ci 36562306a36Sopenharmony_ci&ap_sdhci0 { 36662306a36Sopenharmony_ci status = "okay"; 36762306a36Sopenharmony_ci bus-width = <4>; 36862306a36Sopenharmony_ci non-removable; 36962306a36Sopenharmony_ci}; 37062306a36Sopenharmony_ci 37162306a36Sopenharmony_ci&cp0_sdhci0 { 37262306a36Sopenharmony_ci status = "okay"; 37362306a36Sopenharmony_ci bus-width = <8>; 37462306a36Sopenharmony_ci non-removable; 37562306a36Sopenharmony_ci}; 376