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 7040 Development board platform
68c2ecf20Sopenharmony_ci */
78c2ecf20Sopenharmony_ci
88c2ecf20Sopenharmony_ci#include <dt-bindings/gpio/gpio.h>
98c2ecf20Sopenharmony_ci#include "armada-7040.dtsi"
108c2ecf20Sopenharmony_ci
118c2ecf20Sopenharmony_ci/ {
128c2ecf20Sopenharmony_ci	model = "Marvell Armada 7040 DB board";
138c2ecf20Sopenharmony_ci	compatible = "marvell,armada7040-db", "marvell,armada7040",
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_eth1;
288c2ecf20Sopenharmony_ci		ethernet2 = &cp0_eth2;
298c2ecf20Sopenharmony_ci	};
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_ci	cp0_exp_usb3_0_current_regulator: gpio-regulator {
328c2ecf20Sopenharmony_ci		compatible = "regulator-gpio";
338c2ecf20Sopenharmony_ci		regulator-name = "cp0-usb3-0-current-regulator";
348c2ecf20Sopenharmony_ci		regulator-type = "current";
358c2ecf20Sopenharmony_ci		regulator-min-microamp = <500000>;
368c2ecf20Sopenharmony_ci		regulator-max-microamp = <900000>;
378c2ecf20Sopenharmony_ci		gpios = <&expander0 4 GPIO_ACTIVE_HIGH>;
388c2ecf20Sopenharmony_ci		states = <500000 0x0
398c2ecf20Sopenharmony_ci			  900000 0x1>;
408c2ecf20Sopenharmony_ci		enable-active-high;
418c2ecf20Sopenharmony_ci		gpios-states = <0>;
428c2ecf20Sopenharmony_ci	};
438c2ecf20Sopenharmony_ci
448c2ecf20Sopenharmony_ci	cp0_exp_usb3_1_current_regulator: gpio-regulator {
458c2ecf20Sopenharmony_ci		compatible = "regulator-gpio";
468c2ecf20Sopenharmony_ci		regulator-name = "cp0-usb3-1-current-regulator";
478c2ecf20Sopenharmony_ci		regulator-type = "current";
488c2ecf20Sopenharmony_ci		regulator-min-microamp = <500000>;
498c2ecf20Sopenharmony_ci		regulator-max-microamp = <900000>;
508c2ecf20Sopenharmony_ci		gpios = <&expander0 5 GPIO_ACTIVE_HIGH>;
518c2ecf20Sopenharmony_ci		states = <500000 0x0
528c2ecf20Sopenharmony_ci			  900000 0x1>;
538c2ecf20Sopenharmony_ci		enable-active-high;
548c2ecf20Sopenharmony_ci		gpios-states = <0>;
558c2ecf20Sopenharmony_ci	};
568c2ecf20Sopenharmony_ci
578c2ecf20Sopenharmony_ci	cp0_reg_usb3_0_vbus: cp0-usb3-0-vbus {
588c2ecf20Sopenharmony_ci		compatible = "regulator-fixed";
598c2ecf20Sopenharmony_ci		regulator-name = "usb3h0-vbus";
608c2ecf20Sopenharmony_ci		regulator-min-microvolt = <5000000>;
618c2ecf20Sopenharmony_ci		regulator-max-microvolt = <5000000>;
628c2ecf20Sopenharmony_ci		enable-active-high;
638c2ecf20Sopenharmony_ci		gpio = <&expander0 0 GPIO_ACTIVE_HIGH>;
648c2ecf20Sopenharmony_ci		vin-supply = <&cp0_exp_usb3_0_current_regulator>;
658c2ecf20Sopenharmony_ci	};
668c2ecf20Sopenharmony_ci
678c2ecf20Sopenharmony_ci	cp0_reg_usb3_1_vbus: cp0-usb3-1-vbus {
688c2ecf20Sopenharmony_ci		compatible = "regulator-fixed";
698c2ecf20Sopenharmony_ci		regulator-name = "usb3h1-vbus";
708c2ecf20Sopenharmony_ci		regulator-min-microvolt = <5000000>;
718c2ecf20Sopenharmony_ci		regulator-max-microvolt = <5000000>;
728c2ecf20Sopenharmony_ci		enable-active-high;
738c2ecf20Sopenharmony_ci		gpio = <&expander0 1 GPIO_ACTIVE_HIGH>;
748c2ecf20Sopenharmony_ci		vin-supply = <&cp0_exp_usb3_1_current_regulator>;
758c2ecf20Sopenharmony_ci	};
768c2ecf20Sopenharmony_ci};
778c2ecf20Sopenharmony_ci
788c2ecf20Sopenharmony_ci&i2c0 {
798c2ecf20Sopenharmony_ci	status = "okay";
808c2ecf20Sopenharmony_ci	clock-frequency = <100000>;
818c2ecf20Sopenharmony_ci};
828c2ecf20Sopenharmony_ci
838c2ecf20Sopenharmony_ci&spi0 {
848c2ecf20Sopenharmony_ci	status = "okay";
858c2ecf20Sopenharmony_ci
868c2ecf20Sopenharmony_ci	spi-flash@0 {
878c2ecf20Sopenharmony_ci		compatible = "jedec,spi-nor";
888c2ecf20Sopenharmony_ci		reg = <0>;
898c2ecf20Sopenharmony_ci		spi-max-frequency = <10000000>;
908c2ecf20Sopenharmony_ci
918c2ecf20Sopenharmony_ci		partitions {
928c2ecf20Sopenharmony_ci			compatible = "fixed-partitions";
938c2ecf20Sopenharmony_ci			#address-cells = <1>;
948c2ecf20Sopenharmony_ci			#size-cells = <1>;
958c2ecf20Sopenharmony_ci
968c2ecf20Sopenharmony_ci			partition@0 {
978c2ecf20Sopenharmony_ci				label = "U-Boot";
988c2ecf20Sopenharmony_ci				reg = <0 0x200000>;
998c2ecf20Sopenharmony_ci			};
1008c2ecf20Sopenharmony_ci			partition@400000 {
1018c2ecf20Sopenharmony_ci				label = "Filesystem";
1028c2ecf20Sopenharmony_ci				reg = <0x200000 0xce0000>;
1038c2ecf20Sopenharmony_ci			};
1048c2ecf20Sopenharmony_ci		};
1058c2ecf20Sopenharmony_ci	};
1068c2ecf20Sopenharmony_ci};
1078c2ecf20Sopenharmony_ci
1088c2ecf20Sopenharmony_ci&uart0 {
1098c2ecf20Sopenharmony_ci	status = "okay";
1108c2ecf20Sopenharmony_ci	pinctrl-0 = <&uart0_pins>;
1118c2ecf20Sopenharmony_ci	pinctrl-names = "default";
1128c2ecf20Sopenharmony_ci};
1138c2ecf20Sopenharmony_ci
1148c2ecf20Sopenharmony_ci
1158c2ecf20Sopenharmony_ci&cp0_pcie2 {
1168c2ecf20Sopenharmony_ci	status = "okay";
1178c2ecf20Sopenharmony_ci	phys = <&cp0_comphy5 2>;
1188c2ecf20Sopenharmony_ci	phy-names = "cp0-pcie2-x1-phy";
1198c2ecf20Sopenharmony_ci};
1208c2ecf20Sopenharmony_ci
1218c2ecf20Sopenharmony_ci&cp0_i2c0 {
1228c2ecf20Sopenharmony_ci	status = "okay";
1238c2ecf20Sopenharmony_ci	clock-frequency = <100000>;
1248c2ecf20Sopenharmony_ci
1258c2ecf20Sopenharmony_ci	expander0: pca9555@21 {
1268c2ecf20Sopenharmony_ci		compatible = "nxp,pca9555";
1278c2ecf20Sopenharmony_ci		pinctrl-names = "default";
1288c2ecf20Sopenharmony_ci		gpio-controller;
1298c2ecf20Sopenharmony_ci		#gpio-cells = <2>;
1308c2ecf20Sopenharmony_ci		reg = <0x21>;
1318c2ecf20Sopenharmony_ci		/*
1328c2ecf20Sopenharmony_ci		 * IO0_0: USB3_PWR_EN0	IO1_0: USB_3_1_Dev_Detect
1338c2ecf20Sopenharmony_ci		 * IO0_1: USB3_PWR_EN1	IO1_1: USB2_1_current_limit
1348c2ecf20Sopenharmony_ci		 * IO0_2: DDR3_4_Detect	IO1_2: Hcon_IO_RstN
1358c2ecf20Sopenharmony_ci		 * IO0_3: USB2_DEVICE_DETECT
1368c2ecf20Sopenharmony_ci		 * IO0_4: GPIO_0	IO1_4: SD_Status
1378c2ecf20Sopenharmony_ci		 * IO0_5: GPIO_1	IO1_5: LDO_5V_Enable
1388c2ecf20Sopenharmony_ci		 * IO0_6: IHB_5V_Enable	IO1_6: PWR_EN_eMMC
1398c2ecf20Sopenharmony_ci		 * IO0_7:		IO1_7: SDIO_Vcntrl
1408c2ecf20Sopenharmony_ci		 */
1418c2ecf20Sopenharmony_ci	};
1428c2ecf20Sopenharmony_ci};
1438c2ecf20Sopenharmony_ci
1448c2ecf20Sopenharmony_ci&cp0_nand_controller {
1458c2ecf20Sopenharmony_ci	/*
1468c2ecf20Sopenharmony_ci	 * SPI on CPM and NAND have common pins on this board. We can
1478c2ecf20Sopenharmony_ci	 * use only one at a time. To enable the NAND (which will
1488c2ecf20Sopenharmony_ci	 * disable the SPI), the "status = "okay";" line have to be
1498c2ecf20Sopenharmony_ci	 * added here.
1508c2ecf20Sopenharmony_ci	 */
1518c2ecf20Sopenharmony_ci	pinctrl-0 = <&nand_pins>, <&nand_rb>;
1528c2ecf20Sopenharmony_ci	pinctrl-names = "default";
1538c2ecf20Sopenharmony_ci
1548c2ecf20Sopenharmony_ci	nand@0 {
1558c2ecf20Sopenharmony_ci		reg = <0>;
1568c2ecf20Sopenharmony_ci		label = "pxa3xx_nand-0";
1578c2ecf20Sopenharmony_ci		nand-rb = <0>;
1588c2ecf20Sopenharmony_ci		nand-on-flash-bbt;
1598c2ecf20Sopenharmony_ci		nand-ecc-strength = <4>;
1608c2ecf20Sopenharmony_ci		nand-ecc-step-size = <512>;
1618c2ecf20Sopenharmony_ci
1628c2ecf20Sopenharmony_ci		partitions {
1638c2ecf20Sopenharmony_ci			compatible = "fixed-partitions";
1648c2ecf20Sopenharmony_ci			#address-cells = <1>;
1658c2ecf20Sopenharmony_ci			#size-cells = <1>;
1668c2ecf20Sopenharmony_ci
1678c2ecf20Sopenharmony_ci			partition@0 {
1688c2ecf20Sopenharmony_ci				label = "U-Boot";
1698c2ecf20Sopenharmony_ci				reg = <0 0x200000>;
1708c2ecf20Sopenharmony_ci			};
1718c2ecf20Sopenharmony_ci
1728c2ecf20Sopenharmony_ci			partition@200000 {
1738c2ecf20Sopenharmony_ci				label = "Linux";
1748c2ecf20Sopenharmony_ci				reg = <0x200000 0xe00000>;
1758c2ecf20Sopenharmony_ci			};
1768c2ecf20Sopenharmony_ci
1778c2ecf20Sopenharmony_ci			partition@1000000 {
1788c2ecf20Sopenharmony_ci				label = "Filesystem";
1798c2ecf20Sopenharmony_ci				reg = <0x1000000 0x3f000000>;
1808c2ecf20Sopenharmony_ci			};
1818c2ecf20Sopenharmony_ci
1828c2ecf20Sopenharmony_ci		};
1838c2ecf20Sopenharmony_ci	};
1848c2ecf20Sopenharmony_ci};
1858c2ecf20Sopenharmony_ci
1868c2ecf20Sopenharmony_ci&cp0_spi1 {
1878c2ecf20Sopenharmony_ci	status = "okay";
1888c2ecf20Sopenharmony_ci
1898c2ecf20Sopenharmony_ci	spi-flash@0 {
1908c2ecf20Sopenharmony_ci		compatible = "jedec,spi-nor";
1918c2ecf20Sopenharmony_ci		reg = <0x0>;
1928c2ecf20Sopenharmony_ci		spi-max-frequency = <20000000>;
1938c2ecf20Sopenharmony_ci
1948c2ecf20Sopenharmony_ci		partitions {
1958c2ecf20Sopenharmony_ci			compatible = "fixed-partitions";
1968c2ecf20Sopenharmony_ci			#address-cells = <1>;
1978c2ecf20Sopenharmony_ci			#size-cells = <1>;
1988c2ecf20Sopenharmony_ci
1998c2ecf20Sopenharmony_ci			partition@0 {
2008c2ecf20Sopenharmony_ci				label = "U-Boot";
2018c2ecf20Sopenharmony_ci				reg = <0x0 0x200000>;
2028c2ecf20Sopenharmony_ci			};
2038c2ecf20Sopenharmony_ci
2048c2ecf20Sopenharmony_ci			partition@400000 {
2058c2ecf20Sopenharmony_ci				label = "Filesystem";
2068c2ecf20Sopenharmony_ci				reg = <0x200000 0xe00000>;
2078c2ecf20Sopenharmony_ci			};
2088c2ecf20Sopenharmony_ci		};
2098c2ecf20Sopenharmony_ci	};
2108c2ecf20Sopenharmony_ci};
2118c2ecf20Sopenharmony_ci
2128c2ecf20Sopenharmony_ci&cp0_sata0 {
2138c2ecf20Sopenharmony_ci	status = "okay";
2148c2ecf20Sopenharmony_ci
2158c2ecf20Sopenharmony_ci	sata-port@1 {
2168c2ecf20Sopenharmony_ci		phys = <&cp0_comphy3 1>;
2178c2ecf20Sopenharmony_ci		phy-names = "cp0-sata0-1-phy";
2188c2ecf20Sopenharmony_ci	};
2198c2ecf20Sopenharmony_ci};
2208c2ecf20Sopenharmony_ci
2218c2ecf20Sopenharmony_ci&cp0_comphy1 {
2228c2ecf20Sopenharmony_ci	cp0_usbh0_con: connector {
2238c2ecf20Sopenharmony_ci		compatible = "usb-a-connector";
2248c2ecf20Sopenharmony_ci		phy-supply = <&cp0_reg_usb3_0_vbus>;
2258c2ecf20Sopenharmony_ci	};
2268c2ecf20Sopenharmony_ci};
2278c2ecf20Sopenharmony_ci
2288c2ecf20Sopenharmony_ci&cp0_usb3_0 {
2298c2ecf20Sopenharmony_ci	phys = <&cp0_comphy1 0>;
2308c2ecf20Sopenharmony_ci	phy-names = "cp0-usb3h0-comphy";
2318c2ecf20Sopenharmony_ci	status = "okay";
2328c2ecf20Sopenharmony_ci};
2338c2ecf20Sopenharmony_ci
2348c2ecf20Sopenharmony_ci&cp0_comphy4 {
2358c2ecf20Sopenharmony_ci	cp0_usbh1_con: connector {
2368c2ecf20Sopenharmony_ci		compatible = "usb-a-connector";
2378c2ecf20Sopenharmony_ci		phy-supply = <&cp0_reg_usb3_1_vbus>;
2388c2ecf20Sopenharmony_ci	};
2398c2ecf20Sopenharmony_ci};
2408c2ecf20Sopenharmony_ci
2418c2ecf20Sopenharmony_ci&cp0_usb3_1 {
2428c2ecf20Sopenharmony_ci	phys = <&cp0_comphy4 1>;
2438c2ecf20Sopenharmony_ci	phy-names = "cp0-usb3h1-comphy";
2448c2ecf20Sopenharmony_ci	status = "okay";
2458c2ecf20Sopenharmony_ci};
2468c2ecf20Sopenharmony_ci
2478c2ecf20Sopenharmony_ci&ap_sdhci0 {
2488c2ecf20Sopenharmony_ci	status = "okay";
2498c2ecf20Sopenharmony_ci	bus-width = <4>;
2508c2ecf20Sopenharmony_ci	no-1-8-v;
2518c2ecf20Sopenharmony_ci	non-removable;
2528c2ecf20Sopenharmony_ci};
2538c2ecf20Sopenharmony_ci
2548c2ecf20Sopenharmony_ci&cp0_sdhci0 {
2558c2ecf20Sopenharmony_ci	status = "okay";
2568c2ecf20Sopenharmony_ci	bus-width = <4>;
2578c2ecf20Sopenharmony_ci	no-1-8-v;
2588c2ecf20Sopenharmony_ci	cd-gpios = <&expander0 12 GPIO_ACTIVE_LOW>;
2598c2ecf20Sopenharmony_ci};
2608c2ecf20Sopenharmony_ci
2618c2ecf20Sopenharmony_ci&cp0_mdio {
2628c2ecf20Sopenharmony_ci	status = "okay";
2638c2ecf20Sopenharmony_ci
2648c2ecf20Sopenharmony_ci	phy0: ethernet-phy@0 {
2658c2ecf20Sopenharmony_ci		reg = <0>;
2668c2ecf20Sopenharmony_ci	};
2678c2ecf20Sopenharmony_ci	phy1: ethernet-phy@1 {
2688c2ecf20Sopenharmony_ci		reg = <1>;
2698c2ecf20Sopenharmony_ci	};
2708c2ecf20Sopenharmony_ci};
2718c2ecf20Sopenharmony_ci
2728c2ecf20Sopenharmony_ci&cp0_ethernet {
2738c2ecf20Sopenharmony_ci	status = "okay";
2748c2ecf20Sopenharmony_ci};
2758c2ecf20Sopenharmony_ci
2768c2ecf20Sopenharmony_ci&cp0_eth0 {
2778c2ecf20Sopenharmony_ci	status = "okay";
2788c2ecf20Sopenharmony_ci	/* Network PHY */
2798c2ecf20Sopenharmony_ci	phy-mode = "10gbase-kr";
2808c2ecf20Sopenharmony_ci	/* Generic PHY, providing serdes lanes */
2818c2ecf20Sopenharmony_ci	phys = <&cp0_comphy2 0>;
2828c2ecf20Sopenharmony_ci
2838c2ecf20Sopenharmony_ci	fixed-link {
2848c2ecf20Sopenharmony_ci		speed = <10000>;
2858c2ecf20Sopenharmony_ci		full-duplex;
2868c2ecf20Sopenharmony_ci	};
2878c2ecf20Sopenharmony_ci};
2888c2ecf20Sopenharmony_ci
2898c2ecf20Sopenharmony_ci&cp0_eth1 {
2908c2ecf20Sopenharmony_ci	status = "okay";
2918c2ecf20Sopenharmony_ci	/* Network PHY */
2928c2ecf20Sopenharmony_ci	phy = <&phy0>;
2938c2ecf20Sopenharmony_ci	phy-mode = "sgmii";
2948c2ecf20Sopenharmony_ci	/* Generic PHY, providing serdes lanes */
2958c2ecf20Sopenharmony_ci	phys = <&cp0_comphy0 1>;
2968c2ecf20Sopenharmony_ci};
2978c2ecf20Sopenharmony_ci
2988c2ecf20Sopenharmony_ci&cp0_eth2 {
2998c2ecf20Sopenharmony_ci	status = "okay";
3008c2ecf20Sopenharmony_ci	phy = <&phy1>;
3018c2ecf20Sopenharmony_ci	phy-mode = "rgmii-id";
3028c2ecf20Sopenharmony_ci};
303