18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * Copyright (C) 2016 Marvell Technology Group Ltd.
48c2ecf20Sopenharmony_ci *
58c2ecf20Sopenharmony_ci * Device Tree file for Marvell Armada 8040 Development board platform
68c2ecf20Sopenharmony_ci */
78c2ecf20Sopenharmony_ci
88c2ecf20Sopenharmony_ci#include <dt-bindings/gpio/gpio.h>
98c2ecf20Sopenharmony_ci#include "armada-8040.dtsi"
108c2ecf20Sopenharmony_ci
118c2ecf20Sopenharmony_ci/ {
128c2ecf20Sopenharmony_ci	model = "Marvell Armada 8040 DB board";
138c2ecf20Sopenharmony_ci	compatible = "marvell,armada8040-db", "marvell,armada8040",
148c2ecf20Sopenharmony_ci		     "marvell,armada-ap806-quad", "marvell,armada-ap806";
158c2ecf20Sopenharmony_ci
168c2ecf20Sopenharmony_ci	chosen {
178c2ecf20Sopenharmony_ci		stdout-path = "serial0:115200n8";
188c2ecf20Sopenharmony_ci	};
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_ci	memory@0 {
218c2ecf20Sopenharmony_ci		device_type = "memory";
228c2ecf20Sopenharmony_ci		reg = <0x0 0x0 0x0 0x80000000>;
238c2ecf20Sopenharmony_ci	};
248c2ecf20Sopenharmony_ci
258c2ecf20Sopenharmony_ci	aliases {
268c2ecf20Sopenharmony_ci		ethernet0 = &cp0_eth0;
278c2ecf20Sopenharmony_ci		ethernet1 = &cp0_eth2;
288c2ecf20Sopenharmony_ci		ethernet2 = &cp1_eth0;
298c2ecf20Sopenharmony_ci		ethernet3 = &cp1_eth1;
308c2ecf20Sopenharmony_ci		i2c1 = &cp0_i2c0;
318c2ecf20Sopenharmony_ci		i2c2 = &cp1_i2c0;
328c2ecf20Sopenharmony_ci	};
338c2ecf20Sopenharmony_ci
348c2ecf20Sopenharmony_ci	cp0_reg_usb3_0_vbus: cp0-usb3-0-vbus {
358c2ecf20Sopenharmony_ci		compatible = "regulator-fixed";
368c2ecf20Sopenharmony_ci		regulator-name = "cp0-usb3h0-vbus";
378c2ecf20Sopenharmony_ci		regulator-min-microvolt = <5000000>;
388c2ecf20Sopenharmony_ci		regulator-max-microvolt = <5000000>;
398c2ecf20Sopenharmony_ci		enable-active-high;
408c2ecf20Sopenharmony_ci		gpio = <&expander0 0 GPIO_ACTIVE_HIGH>;
418c2ecf20Sopenharmony_ci	};
428c2ecf20Sopenharmony_ci
438c2ecf20Sopenharmony_ci	cp0_reg_usb3_1_vbus: cp0-usb3-1-vbus {
448c2ecf20Sopenharmony_ci		compatible = "regulator-fixed";
458c2ecf20Sopenharmony_ci		regulator-name = "cp0-usb3h1-vbus";
468c2ecf20Sopenharmony_ci		regulator-min-microvolt = <5000000>;
478c2ecf20Sopenharmony_ci		regulator-max-microvolt = <5000000>;
488c2ecf20Sopenharmony_ci		enable-active-high;
498c2ecf20Sopenharmony_ci		gpio = <&expander0 1 GPIO_ACTIVE_HIGH>;
508c2ecf20Sopenharmony_ci	};
518c2ecf20Sopenharmony_ci
528c2ecf20Sopenharmony_ci	cp0_usb3_0_phy: cp0-usb3-0-phy {
538c2ecf20Sopenharmony_ci		compatible = "usb-nop-xceiv";
548c2ecf20Sopenharmony_ci		vcc-supply = <&cp0_reg_usb3_0_vbus>;
558c2ecf20Sopenharmony_ci	};
568c2ecf20Sopenharmony_ci
578c2ecf20Sopenharmony_ci	cp1_reg_usb3_0_vbus: cp1-usb3-0-vbus {
588c2ecf20Sopenharmony_ci		compatible = "regulator-fixed";
598c2ecf20Sopenharmony_ci		regulator-name = "cp1-usb3h0-vbus";
608c2ecf20Sopenharmony_ci		regulator-min-microvolt = <5000000>;
618c2ecf20Sopenharmony_ci		regulator-max-microvolt = <5000000>;
628c2ecf20Sopenharmony_ci		enable-active-high;
638c2ecf20Sopenharmony_ci		gpio = <&expander1 0 GPIO_ACTIVE_HIGH>;
648c2ecf20Sopenharmony_ci	};
658c2ecf20Sopenharmony_ci
668c2ecf20Sopenharmony_ci	cp1_usb3_0_phy: cp1-usb3-0-phy {
678c2ecf20Sopenharmony_ci		compatible = "usb-nop-xceiv";
688c2ecf20Sopenharmony_ci		vcc-supply = <&cp1_reg_usb3_0_vbus>;
698c2ecf20Sopenharmony_ci	};
708c2ecf20Sopenharmony_ci};
718c2ecf20Sopenharmony_ci
728c2ecf20Sopenharmony_ci&spi0 {
738c2ecf20Sopenharmony_ci	status = "okay";
748c2ecf20Sopenharmony_ci
758c2ecf20Sopenharmony_ci	spi-flash@0 {
768c2ecf20Sopenharmony_ci		compatible = "jedec,spi-nor";
778c2ecf20Sopenharmony_ci		reg = <0>;
788c2ecf20Sopenharmony_ci		spi-max-frequency = <10000000>;
798c2ecf20Sopenharmony_ci
808c2ecf20Sopenharmony_ci		partitions {
818c2ecf20Sopenharmony_ci			compatible = "fixed-partitions";
828c2ecf20Sopenharmony_ci			#address-cells = <1>;
838c2ecf20Sopenharmony_ci			#size-cells = <1>;
848c2ecf20Sopenharmony_ci
858c2ecf20Sopenharmony_ci			partition@0 {
868c2ecf20Sopenharmony_ci				label = "U-Boot";
878c2ecf20Sopenharmony_ci				reg = <0 0x200000>;
888c2ecf20Sopenharmony_ci			};
898c2ecf20Sopenharmony_ci			partition@400000 {
908c2ecf20Sopenharmony_ci				label = "Filesystem";
918c2ecf20Sopenharmony_ci				reg = <0x200000 0xce0000>;
928c2ecf20Sopenharmony_ci			};
938c2ecf20Sopenharmony_ci		};
948c2ecf20Sopenharmony_ci	};
958c2ecf20Sopenharmony_ci};
968c2ecf20Sopenharmony_ci
978c2ecf20Sopenharmony_ci/* Accessible over the mini-USB CON9 connector on the main board */
988c2ecf20Sopenharmony_ci&uart0 {
998c2ecf20Sopenharmony_ci	status = "okay";
1008c2ecf20Sopenharmony_ci	pinctrl-0 = <&uart0_pins>;
1018c2ecf20Sopenharmony_ci	pinctrl-names = "default";
1028c2ecf20Sopenharmony_ci};
1038c2ecf20Sopenharmony_ci
1048c2ecf20Sopenharmony_ci/* CON6 on CP0 expansion */
1058c2ecf20Sopenharmony_ci&cp0_pcie0 {
1068c2ecf20Sopenharmony_ci	phys = <&cp0_comphy0 0>;
1078c2ecf20Sopenharmony_ci	phy-names = "cp0-pcie0-x1-phy";
1088c2ecf20Sopenharmony_ci	status = "okay";
1098c2ecf20Sopenharmony_ci};
1108c2ecf20Sopenharmony_ci
1118c2ecf20Sopenharmony_ci/* CON5 on CP0 expansion */
1128c2ecf20Sopenharmony_ci&cp0_pcie2 {
1138c2ecf20Sopenharmony_ci	phys = <&cp0_comphy5 2>;
1148c2ecf20Sopenharmony_ci	phy-names = "cp0-pcie2-x1-phy";
1158c2ecf20Sopenharmony_ci	status = "okay";
1168c2ecf20Sopenharmony_ci};
1178c2ecf20Sopenharmony_ci
1188c2ecf20Sopenharmony_ci&cp0_i2c0 {
1198c2ecf20Sopenharmony_ci	status = "okay";
1208c2ecf20Sopenharmony_ci	clock-frequency = <100000>;
1218c2ecf20Sopenharmony_ci
1228c2ecf20Sopenharmony_ci	/* U31 */
1238c2ecf20Sopenharmony_ci	expander0: pca9555@21 {
1248c2ecf20Sopenharmony_ci		compatible = "nxp,pca9555";
1258c2ecf20Sopenharmony_ci		pinctrl-names = "default";
1268c2ecf20Sopenharmony_ci		gpio-controller;
1278c2ecf20Sopenharmony_ci		#gpio-cells = <2>;
1288c2ecf20Sopenharmony_ci		reg = <0x21>;
1298c2ecf20Sopenharmony_ci	};
1308c2ecf20Sopenharmony_ci
1318c2ecf20Sopenharmony_ci	/* U25 */
1328c2ecf20Sopenharmony_ci	expander1: pca9555@25 {
1338c2ecf20Sopenharmony_ci		compatible = "nxp,pca9555";
1348c2ecf20Sopenharmony_ci		pinctrl-names = "default";
1358c2ecf20Sopenharmony_ci		gpio-controller;
1368c2ecf20Sopenharmony_ci		#gpio-cells = <2>;
1378c2ecf20Sopenharmony_ci		reg = <0x25>;
1388c2ecf20Sopenharmony_ci	};
1398c2ecf20Sopenharmony_ci
1408c2ecf20Sopenharmony_ci};
1418c2ecf20Sopenharmony_ci
1428c2ecf20Sopenharmony_ci/* CON4 on CP0 expansion */
1438c2ecf20Sopenharmony_ci&cp0_sata0 {
1448c2ecf20Sopenharmony_ci	status = "okay";
1458c2ecf20Sopenharmony_ci
1468c2ecf20Sopenharmony_ci	sata-port@0 {
1478c2ecf20Sopenharmony_ci		phys = <&cp0_comphy1 0>;
1488c2ecf20Sopenharmony_ci		phy-names = "cp0-sata0-0-phy";
1498c2ecf20Sopenharmony_ci	};
1508c2ecf20Sopenharmony_ci	sata-port@1 {
1518c2ecf20Sopenharmony_ci		phys = <&cp0_comphy3 1>;
1528c2ecf20Sopenharmony_ci		phy-names = "cp0-sata0-1-phy";
1538c2ecf20Sopenharmony_ci	};
1548c2ecf20Sopenharmony_ci};
1558c2ecf20Sopenharmony_ci
1568c2ecf20Sopenharmony_ci/* CON9 on CP0 expansion */
1578c2ecf20Sopenharmony_ci&cp0_usb3_0 {
1588c2ecf20Sopenharmony_ci	usb-phy = <&cp0_usb3_0_phy>;
1598c2ecf20Sopenharmony_ci	status = "okay";
1608c2ecf20Sopenharmony_ci};
1618c2ecf20Sopenharmony_ci
1628c2ecf20Sopenharmony_ci&cp0_comphy4 {
1638c2ecf20Sopenharmony_ci	cp0_usbh1_con: connector {
1648c2ecf20Sopenharmony_ci		compatible = "usb-a-connector";
1658c2ecf20Sopenharmony_ci		phy-supply = <&cp0_reg_usb3_1_vbus>;
1668c2ecf20Sopenharmony_ci	};
1678c2ecf20Sopenharmony_ci};
1688c2ecf20Sopenharmony_ci
1698c2ecf20Sopenharmony_ci/* CON10 on CP0 expansion */
1708c2ecf20Sopenharmony_ci&cp0_usb3_1 {
1718c2ecf20Sopenharmony_ci	phys = <&cp0_comphy4 1>;
1728c2ecf20Sopenharmony_ci	phy-names = "cp0-usb3h1-comphy";
1738c2ecf20Sopenharmony_ci	status = "okay";
1748c2ecf20Sopenharmony_ci};
1758c2ecf20Sopenharmony_ci
1768c2ecf20Sopenharmony_ci&cp0_mdio {
1778c2ecf20Sopenharmony_ci	status = "okay";
1788c2ecf20Sopenharmony_ci
1798c2ecf20Sopenharmony_ci	phy1: ethernet-phy@1 {
1808c2ecf20Sopenharmony_ci		reg = <1>;
1818c2ecf20Sopenharmony_ci	};
1828c2ecf20Sopenharmony_ci};
1838c2ecf20Sopenharmony_ci
1848c2ecf20Sopenharmony_ci&cp0_ethernet {
1858c2ecf20Sopenharmony_ci	status = "okay";
1868c2ecf20Sopenharmony_ci};
1878c2ecf20Sopenharmony_ci
1888c2ecf20Sopenharmony_ci&cp0_eth0 {
1898c2ecf20Sopenharmony_ci	status = "okay";
1908c2ecf20Sopenharmony_ci	phy-mode = "10gbase-kr";
1918c2ecf20Sopenharmony_ci
1928c2ecf20Sopenharmony_ci	fixed-link {
1938c2ecf20Sopenharmony_ci		speed = <10000>;
1948c2ecf20Sopenharmony_ci		full-duplex;
1958c2ecf20Sopenharmony_ci	};
1968c2ecf20Sopenharmony_ci};
1978c2ecf20Sopenharmony_ci
1988c2ecf20Sopenharmony_ci&cp0_eth2 {
1998c2ecf20Sopenharmony_ci	status = "okay";
2008c2ecf20Sopenharmony_ci	phy = <&phy1>;
2018c2ecf20Sopenharmony_ci	phy-mode = "rgmii-id";
2028c2ecf20Sopenharmony_ci};
2038c2ecf20Sopenharmony_ci
2048c2ecf20Sopenharmony_ci/* CON6 on CP1 expansion */
2058c2ecf20Sopenharmony_ci&cp1_pcie0 {
2068c2ecf20Sopenharmony_ci	phys = <&cp1_comphy0 0>;
2078c2ecf20Sopenharmony_ci	phy-names = "cp1-pcie0-x1-phy";
2088c2ecf20Sopenharmony_ci	status = "okay";
2098c2ecf20Sopenharmony_ci};
2108c2ecf20Sopenharmony_ci
2118c2ecf20Sopenharmony_ci/* CON7 on CP1 expansion */
2128c2ecf20Sopenharmony_ci&cp1_pcie1 {
2138c2ecf20Sopenharmony_ci	phys = <&cp1_comphy4 1>;
2148c2ecf20Sopenharmony_ci	phy-names = "cp1-pcie1-x1-phy";
2158c2ecf20Sopenharmony_ci	status = "okay";
2168c2ecf20Sopenharmony_ci};
2178c2ecf20Sopenharmony_ci
2188c2ecf20Sopenharmony_ci/* CON5 on CP1 expansion */
2198c2ecf20Sopenharmony_ci&cp1_pcie2 {
2208c2ecf20Sopenharmony_ci	phys = <&cp1_comphy5 2>;
2218c2ecf20Sopenharmony_ci	phy-names = "cp1-pcie2-x1-phy";
2228c2ecf20Sopenharmony_ci	status = "okay";
2238c2ecf20Sopenharmony_ci};
2248c2ecf20Sopenharmony_ci
2258c2ecf20Sopenharmony_ci&cp1_i2c0 {
2268c2ecf20Sopenharmony_ci	status = "okay";
2278c2ecf20Sopenharmony_ci	clock-frequency = <100000>;
2288c2ecf20Sopenharmony_ci};
2298c2ecf20Sopenharmony_ci
2308c2ecf20Sopenharmony_ci&cp1_spi1 {
2318c2ecf20Sopenharmony_ci	status = "okay";
2328c2ecf20Sopenharmony_ci
2338c2ecf20Sopenharmony_ci	spi-flash@0 {
2348c2ecf20Sopenharmony_ci		compatible = "jedec,spi-nor";
2358c2ecf20Sopenharmony_ci		reg = <0x0>;
2368c2ecf20Sopenharmony_ci		spi-max-frequency = <20000000>;
2378c2ecf20Sopenharmony_ci
2388c2ecf20Sopenharmony_ci		partitions {
2398c2ecf20Sopenharmony_ci			compatible = "fixed-partitions";
2408c2ecf20Sopenharmony_ci			#address-cells = <1>;
2418c2ecf20Sopenharmony_ci			#size-cells = <1>;
2428c2ecf20Sopenharmony_ci
2438c2ecf20Sopenharmony_ci			partition@0 {
2448c2ecf20Sopenharmony_ci				label = "Boot";
2458c2ecf20Sopenharmony_ci				reg = <0x0 0x200000>;
2468c2ecf20Sopenharmony_ci			};
2478c2ecf20Sopenharmony_ci			partition@200000 {
2488c2ecf20Sopenharmony_ci				label = "Filesystem";
2498c2ecf20Sopenharmony_ci				reg = <0x200000 0xd00000>;
2508c2ecf20Sopenharmony_ci			};
2518c2ecf20Sopenharmony_ci			partition@f00000 {
2528c2ecf20Sopenharmony_ci				label = "Boot_2nd";
2538c2ecf20Sopenharmony_ci				reg = <0xf00000 0x100000>;
2548c2ecf20Sopenharmony_ci			};
2558c2ecf20Sopenharmony_ci		};
2568c2ecf20Sopenharmony_ci	};
2578c2ecf20Sopenharmony_ci};
2588c2ecf20Sopenharmony_ci
2598c2ecf20Sopenharmony_ci/*
2608c2ecf20Sopenharmony_ci * Proper NAND usage will require DPR-76 to be in position 1-2, which disables
2618c2ecf20Sopenharmony_ci * MDIO signal of CP1.
2628c2ecf20Sopenharmony_ci */
2638c2ecf20Sopenharmony_ci&cp1_nand_controller {
2648c2ecf20Sopenharmony_ci	pinctrl-0 = <&nand_pins>, <&nand_rb>;
2658c2ecf20Sopenharmony_ci	pinctrl-names = "default";
2668c2ecf20Sopenharmony_ci
2678c2ecf20Sopenharmony_ci	nand@0 {
2688c2ecf20Sopenharmony_ci		reg = <0>;
2698c2ecf20Sopenharmony_ci		nand-rb = <0>;
2708c2ecf20Sopenharmony_ci		nand-on-flash-bbt;
2718c2ecf20Sopenharmony_ci		nand-ecc-strength = <4>;
2728c2ecf20Sopenharmony_ci		nand-ecc-step-size = <512>;
2738c2ecf20Sopenharmony_ci
2748c2ecf20Sopenharmony_ci		partitions {
2758c2ecf20Sopenharmony_ci			compatible = "fixed-partitions";
2768c2ecf20Sopenharmony_ci			#address-cells = <1>;
2778c2ecf20Sopenharmony_ci			#size-cells = <1>;
2788c2ecf20Sopenharmony_ci
2798c2ecf20Sopenharmony_ci			partition@0 {
2808c2ecf20Sopenharmony_ci				label = "U-Boot";
2818c2ecf20Sopenharmony_ci				reg = <0 0x200000>;
2828c2ecf20Sopenharmony_ci			};
2838c2ecf20Sopenharmony_ci			partition@200000 {
2848c2ecf20Sopenharmony_ci				label = "Linux";
2858c2ecf20Sopenharmony_ci				reg = <0x200000 0xe00000>;
2868c2ecf20Sopenharmony_ci			};
2878c2ecf20Sopenharmony_ci			partition@1000000 {
2888c2ecf20Sopenharmony_ci				label = "Filesystem";
2898c2ecf20Sopenharmony_ci				reg = <0x1000000 0x3f000000>;
2908c2ecf20Sopenharmony_ci			};
2918c2ecf20Sopenharmony_ci		};
2928c2ecf20Sopenharmony_ci	};
2938c2ecf20Sopenharmony_ci};
2948c2ecf20Sopenharmony_ci
2958c2ecf20Sopenharmony_ci/* CON4 on CP1 expansion */
2968c2ecf20Sopenharmony_ci&cp1_sata0 {
2978c2ecf20Sopenharmony_ci	status = "okay";
2988c2ecf20Sopenharmony_ci
2998c2ecf20Sopenharmony_ci	sata-port@0 {
3008c2ecf20Sopenharmony_ci		phys = <&cp1_comphy1 0>;
3018c2ecf20Sopenharmony_ci		phy-names = "cp1-sata0-0-phy";
3028c2ecf20Sopenharmony_ci	};
3038c2ecf20Sopenharmony_ci	sata-port@1 {
3048c2ecf20Sopenharmony_ci		phys = <&cp1_comphy3 1>;
3058c2ecf20Sopenharmony_ci		phy-names = "cp1-sata0-1-phy";
3068c2ecf20Sopenharmony_ci	};
3078c2ecf20Sopenharmony_ci};
3088c2ecf20Sopenharmony_ci
3098c2ecf20Sopenharmony_ci/* CON9 on CP1 expansion */
3108c2ecf20Sopenharmony_ci&cp1_usb3_0 {
3118c2ecf20Sopenharmony_ci	usb-phy = <&cp1_usb3_0_phy>;
3128c2ecf20Sopenharmony_ci	status = "okay";
3138c2ecf20Sopenharmony_ci};
3148c2ecf20Sopenharmony_ci
3158c2ecf20Sopenharmony_ci/* CON10 on CP1 expansion */
3168c2ecf20Sopenharmony_ci&cp1_usb3_1 {
3178c2ecf20Sopenharmony_ci	status = "okay";
3188c2ecf20Sopenharmony_ci};
3198c2ecf20Sopenharmony_ci
3208c2ecf20Sopenharmony_ci&cp1_mdio {
3218c2ecf20Sopenharmony_ci	status = "okay";
3228c2ecf20Sopenharmony_ci
3238c2ecf20Sopenharmony_ci	phy0: ethernet-phy@0 {
3248c2ecf20Sopenharmony_ci		reg = <0>;
3258c2ecf20Sopenharmony_ci	};
3268c2ecf20Sopenharmony_ci};
3278c2ecf20Sopenharmony_ci
3288c2ecf20Sopenharmony_ci&cp1_ethernet {
3298c2ecf20Sopenharmony_ci	status = "okay";
3308c2ecf20Sopenharmony_ci};
3318c2ecf20Sopenharmony_ci
3328c2ecf20Sopenharmony_ci&cp1_eth0 {
3338c2ecf20Sopenharmony_ci	status = "okay";
3348c2ecf20Sopenharmony_ci	phy-mode = "10gbase-kr";
3358c2ecf20Sopenharmony_ci
3368c2ecf20Sopenharmony_ci	fixed-link {
3378c2ecf20Sopenharmony_ci		speed = <10000>;
3388c2ecf20Sopenharmony_ci		full-duplex;
3398c2ecf20Sopenharmony_ci	};
3408c2ecf20Sopenharmony_ci};
3418c2ecf20Sopenharmony_ci
3428c2ecf20Sopenharmony_ci&cp1_eth1 {
3438c2ecf20Sopenharmony_ci	status = "okay";
3448c2ecf20Sopenharmony_ci	phy = <&phy0>;
3458c2ecf20Sopenharmony_ci	phy-mode = "rgmii-id";
3468c2ecf20Sopenharmony_ci};
3478c2ecf20Sopenharmony_ci
3488c2ecf20Sopenharmony_ci&ap_sdhci0 {
3498c2ecf20Sopenharmony_ci	status = "okay";
3508c2ecf20Sopenharmony_ci	bus-width = <4>;
3518c2ecf20Sopenharmony_ci	non-removable;
3528c2ecf20Sopenharmony_ci};
3538c2ecf20Sopenharmony_ci
3548c2ecf20Sopenharmony_ci&cp0_sdhci0 {
3558c2ecf20Sopenharmony_ci	status = "okay";
3568c2ecf20Sopenharmony_ci	bus-width = <8>;
3578c2ecf20Sopenharmony_ci	non-removable;
3588c2ecf20Sopenharmony_ci};
359