1fe5e610fSGrzegorz Jaszczyk// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2fe5e610fSGrzegorz Jaszczyk/*
3fe5e610fSGrzegorz Jaszczyk * Copyright (C) 2019 Marvell International Ltd.
4fe5e610fSGrzegorz Jaszczyk *
5fe5e610fSGrzegorz Jaszczyk * Device tree for the CN9131-DB board.
6fe5e610fSGrzegorz Jaszczyk */
7fe5e610fSGrzegorz Jaszczyk
8fe5e610fSGrzegorz Jaszczyk#include "cn9130-db.dts"
9fe5e610fSGrzegorz Jaszczyk
10fe5e610fSGrzegorz Jaszczyk/ {
11fe5e610fSGrzegorz Jaszczyk	model = "Marvell Armada CN9131-DB";
12fe5e610fSGrzegorz Jaszczyk	compatible = "marvell,cn9131", "marvell,cn9130",
13fe5e610fSGrzegorz Jaszczyk		     "marvell,armada-ap807-quad", "marvell,armada-ap807";
14fe5e610fSGrzegorz Jaszczyk
15fe5e610fSGrzegorz Jaszczyk	aliases {
16fe5e610fSGrzegorz Jaszczyk		gpio3 = &cp1_gpio1;
17fe5e610fSGrzegorz Jaszczyk		gpio4 = &cp1_gpio2;
18fe5e610fSGrzegorz Jaszczyk		ethernet3 = &cp1_eth0;
19fe5e610fSGrzegorz Jaszczyk		ethernet4 = &cp1_eth1;
20fe5e610fSGrzegorz Jaszczyk	};
21fe5e610fSGrzegorz Jaszczyk
22fe5e610fSGrzegorz Jaszczyk	cp1_reg_usb3_vbus0: cp1_usb3_vbus@0 {
23fe5e610fSGrzegorz Jaszczyk		compatible = "regulator-fixed";
24fe5e610fSGrzegorz Jaszczyk		pinctrl-names = "default";
25fe5e610fSGrzegorz Jaszczyk		pinctrl-0 = <&cp1_xhci0_vbus_pins>;
26fe5e610fSGrzegorz Jaszczyk		regulator-name = "cp1-xhci0-vbus";
27fe5e610fSGrzegorz Jaszczyk		regulator-min-microvolt = <5000000>;
28fe5e610fSGrzegorz Jaszczyk		regulator-max-microvolt = <5000000>;
29fe5e610fSGrzegorz Jaszczyk		enable-active-high;
30fe5e610fSGrzegorz Jaszczyk		gpio = <&cp1_gpio1 3 GPIO_ACTIVE_HIGH>;
31fe5e610fSGrzegorz Jaszczyk	};
32fe5e610fSGrzegorz Jaszczyk
33fe5e610fSGrzegorz Jaszczyk	cp1_usb3_0_phy0: cp1_usb3_phy0 {
34fe5e610fSGrzegorz Jaszczyk		compatible = "usb-nop-xceiv";
35fe5e610fSGrzegorz Jaszczyk		vcc-supply = <&cp1_reg_usb3_vbus0>;
36fe5e610fSGrzegorz Jaszczyk	};
37fe5e610fSGrzegorz Jaszczyk
38fe5e610fSGrzegorz Jaszczyk	cp1_sfp_eth1: sfp-eth1 {
39fe5e610fSGrzegorz Jaszczyk		compatible = "sff,sfp";
40fe5e610fSGrzegorz Jaszczyk		i2c-bus = <&cp1_i2c0>;
41fe5e610fSGrzegorz Jaszczyk		los-gpio = <&cp1_gpio1 11 GPIO_ACTIVE_HIGH>;
42fe5e610fSGrzegorz Jaszczyk		mod-def0-gpio = <&cp1_gpio1 10 GPIO_ACTIVE_LOW>;
43fe5e610fSGrzegorz Jaszczyk		tx-disable-gpio = <&cp1_gpio1 9 GPIO_ACTIVE_HIGH>;
44fe5e610fSGrzegorz Jaszczyk		tx-fault-gpio = <&cp1_gpio1 8 GPIO_ACTIVE_HIGH>;
45fe5e610fSGrzegorz Jaszczyk		pinctrl-names = "default";
46fe5e610fSGrzegorz Jaszczyk		pinctrl-0 = <&cp1_sfp_pins>;
47fe5e610fSGrzegorz Jaszczyk		/*
48fe5e610fSGrzegorz Jaszczyk		 * SFP cages are unconnected on early PCBs because of an the I2C
49fe5e610fSGrzegorz Jaszczyk		 * lanes not being connected. Prevent the port for being
50fe5e610fSGrzegorz Jaszczyk		 * unusable by disabling the SFP node.
51fe5e610fSGrzegorz Jaszczyk		 */
52fe5e610fSGrzegorz Jaszczyk		status = "disabled";
53fe5e610fSGrzegorz Jaszczyk	};
54fe5e610fSGrzegorz Jaszczyk};
55fe5e610fSGrzegorz Jaszczyk
56fe5e610fSGrzegorz Jaszczyk/*
57fe5e610fSGrzegorz Jaszczyk * Instantiate the first slave CP115
58fe5e610fSGrzegorz Jaszczyk */
59fe5e610fSGrzegorz Jaszczyk
60fe5e610fSGrzegorz Jaszczyk#define CP11X_NAME		cp1
61fe5e610fSGrzegorz Jaszczyk#define CP11X_BASE		f4000000
62fe5e610fSGrzegorz Jaszczyk#define CP11X_PCIEx_MEM_BASE(iface) (0xe2000000 + (iface * 0x1000000))
63fe5e610fSGrzegorz Jaszczyk#define CP11X_PCIEx_MEM_SIZE(iface) 0xf00000
64fe5e610fSGrzegorz Jaszczyk#define CP11X_PCIE0_BASE	f4600000
65fe5e610fSGrzegorz Jaszczyk#define CP11X_PCIE1_BASE	f4620000
66fe5e610fSGrzegorz Jaszczyk#define CP11X_PCIE2_BASE	f4640000
67fe5e610fSGrzegorz Jaszczyk
68fe5e610fSGrzegorz Jaszczyk#include "armada-cp115.dtsi"
69fe5e610fSGrzegorz Jaszczyk
70fe5e610fSGrzegorz Jaszczyk#undef CP11X_NAME
71fe5e610fSGrzegorz Jaszczyk#undef CP11X_BASE
72fe5e610fSGrzegorz Jaszczyk#undef CP11X_PCIEx_MEM_BASE
73fe5e610fSGrzegorz Jaszczyk#undef CP11X_PCIEx_MEM_SIZE
74fe5e610fSGrzegorz Jaszczyk#undef CP11X_PCIE0_BASE
75fe5e610fSGrzegorz Jaszczyk#undef CP11X_PCIE1_BASE
76fe5e610fSGrzegorz Jaszczyk#undef CP11X_PCIE2_BASE
77fe5e610fSGrzegorz Jaszczyk
78fe5e610fSGrzegorz Jaszczyk&cp1_crypto {
79fe5e610fSGrzegorz Jaszczyk	status = "disabled";
80fe5e610fSGrzegorz Jaszczyk};
81fe5e610fSGrzegorz Jaszczyk
82fe5e610fSGrzegorz Jaszczyk&cp1_ethernet {
83fe5e610fSGrzegorz Jaszczyk	status = "okay";
84fe5e610fSGrzegorz Jaszczyk};
85fe5e610fSGrzegorz Jaszczyk
86fe5e610fSGrzegorz Jaszczyk/* CON50 */
87fe5e610fSGrzegorz Jaszczyk&cp1_eth0 {
88fe5e610fSGrzegorz Jaszczyk	status = "disabled";
89fe5e610fSGrzegorz Jaszczyk	phy-mode = "10gbase-kr";
90fe5e610fSGrzegorz Jaszczyk	/* Generic PHY, providing serdes lanes */
91fe5e610fSGrzegorz Jaszczyk	phys = <&cp1_comphy4 0>;
92fe5e610fSGrzegorz Jaszczyk	managed = "in-band-status";
93fe5e610fSGrzegorz Jaszczyk	sfp = <&cp1_sfp_eth1>;
94fe5e610fSGrzegorz Jaszczyk};
95fe5e610fSGrzegorz Jaszczyk
96fe5e610fSGrzegorz Jaszczyk&cp1_gpio1 {
97fe5e610fSGrzegorz Jaszczyk	status = "okay";
98fe5e610fSGrzegorz Jaszczyk};
99fe5e610fSGrzegorz Jaszczyk
100fe5e610fSGrzegorz Jaszczyk&cp1_gpio2 {
101fe5e610fSGrzegorz Jaszczyk	status = "okay";
102fe5e610fSGrzegorz Jaszczyk};
103fe5e610fSGrzegorz Jaszczyk
104fe5e610fSGrzegorz Jaszczyk&cp1_i2c0 {
105fe5e610fSGrzegorz Jaszczyk	status = "okay";
106fe5e610fSGrzegorz Jaszczyk	pinctrl-names = "default";
107fe5e610fSGrzegorz Jaszczyk	pinctrl-0 = <&cp1_i2c0_pins>;
108fe5e610fSGrzegorz Jaszczyk	clock-frequency = <100000>;
109fe5e610fSGrzegorz Jaszczyk};
110fe5e610fSGrzegorz Jaszczyk
111fe5e610fSGrzegorz Jaszczyk/* CON40 */
112fe5e610fSGrzegorz Jaszczyk&cp1_pcie0 {
113fe5e610fSGrzegorz Jaszczyk	pinctrl-names = "default";
114fe5e610fSGrzegorz Jaszczyk	pinctrl-0 = <&cp1_pcie_reset_pins>;
115fe5e610fSGrzegorz Jaszczyk	num-lanes = <2>;
116fe5e610fSGrzegorz Jaszczyk	num-viewport = <8>;
117fe5e610fSGrzegorz Jaszczyk	marvell,reset-gpio = <&cp1_gpio1 0 GPIO_ACTIVE_HIGH>;
118fe5e610fSGrzegorz Jaszczyk	status = "okay";
119fe5e610fSGrzegorz Jaszczyk	/* Generic PHY, providing serdes lanes */
120fe5e610fSGrzegorz Jaszczyk	phys = <&cp1_comphy0 0
121fe5e610fSGrzegorz Jaszczyk		&cp1_comphy1 0>;
122fe5e610fSGrzegorz Jaszczyk};
123fe5e610fSGrzegorz Jaszczyk
124fe5e610fSGrzegorz Jaszczyk&cp1_sata0 {
125fe5e610fSGrzegorz Jaszczyk	status = "okay";
126fe5e610fSGrzegorz Jaszczyk
127fe5e610fSGrzegorz Jaszczyk	/* CON32 */
128fe5e610fSGrzegorz Jaszczyk	sata-port@1 {
129fe5e610fSGrzegorz Jaszczyk		/* Generic PHY, providing serdes lanes */
130fe5e610fSGrzegorz Jaszczyk		phys = <&cp1_comphy5 1>;
131fe5e610fSGrzegorz Jaszczyk	};
132fe5e610fSGrzegorz Jaszczyk};
133fe5e610fSGrzegorz Jaszczyk
134fe5e610fSGrzegorz Jaszczyk/* U24 */
135fe5e610fSGrzegorz Jaszczyk&cp1_spi1 {
136fe5e610fSGrzegorz Jaszczyk	status = "okay";
137fe5e610fSGrzegorz Jaszczyk	pinctrl-names = "default";
138fe5e610fSGrzegorz Jaszczyk	pinctrl-0 = <&cp1_spi0_pins>;
139fe5e610fSGrzegorz Jaszczyk	reg = <0x700680 0x50>;
140fe5e610fSGrzegorz Jaszczyk
141fe5e610fSGrzegorz Jaszczyk	spi-flash@0 {
142fe5e610fSGrzegorz Jaszczyk		#address-cells = <0x1>;
143fe5e610fSGrzegorz Jaszczyk		#size-cells = <0x1>;
144fe5e610fSGrzegorz Jaszczyk		compatible = "jedec,spi-nor";
145fe5e610fSGrzegorz Jaszczyk		reg = <0x0>;
146fe5e610fSGrzegorz Jaszczyk		/* On-board MUX does not allow higher frequencies */
147fe5e610fSGrzegorz Jaszczyk		spi-max-frequency = <40000000>;
148fe5e610fSGrzegorz Jaszczyk
149fe5e610fSGrzegorz Jaszczyk		partitions {
150fe5e610fSGrzegorz Jaszczyk			compatible = "fixed-partitions";
151fe5e610fSGrzegorz Jaszczyk			#address-cells = <1>;
152fe5e610fSGrzegorz Jaszczyk			#size-cells = <1>;
153fe5e610fSGrzegorz Jaszczyk
154fe5e610fSGrzegorz Jaszczyk			partition@0 {
155fe5e610fSGrzegorz Jaszczyk				label = "U-Boot-1";
156fe5e610fSGrzegorz Jaszczyk				reg = <0x0 0x200000>;
157fe5e610fSGrzegorz Jaszczyk			};
158fe5e610fSGrzegorz Jaszczyk
159fe5e610fSGrzegorz Jaszczyk			partition@400000 {
160fe5e610fSGrzegorz Jaszczyk				label = "Filesystem-1";
161fe5e610fSGrzegorz Jaszczyk				reg = <0x200000 0xe00000>;
162fe5e610fSGrzegorz Jaszczyk			};
163fe5e610fSGrzegorz Jaszczyk		};
164fe5e610fSGrzegorz Jaszczyk	};
165fe5e610fSGrzegorz Jaszczyk
166fe5e610fSGrzegorz Jaszczyk};
167fe5e610fSGrzegorz Jaszczyk
168fe5e610fSGrzegorz Jaszczyk&cp1_syscon0 {
169fe5e610fSGrzegorz Jaszczyk	cp1_pinctrl: pinctrl {
170fe5e610fSGrzegorz Jaszczyk		compatible = "marvell,cp115-standalone-pinctrl";
171fe5e610fSGrzegorz Jaszczyk
172fe5e610fSGrzegorz Jaszczyk		cp1_i2c0_pins: cp1-i2c-pins-0 {
173fe5e610fSGrzegorz Jaszczyk			marvell,pins = "mpp37", "mpp38";
174fe5e610fSGrzegorz Jaszczyk			marvell,function = "i2c0";
175fe5e610fSGrzegorz Jaszczyk		};
176fe5e610fSGrzegorz Jaszczyk		cp1_spi0_pins: cp1-spi-pins-0 {
177fe5e610fSGrzegorz Jaszczyk			marvell,pins = "mpp13", "mpp14", "mpp15", "mpp16";
178fe5e610fSGrzegorz Jaszczyk			marvell,function = "spi1";
179fe5e610fSGrzegorz Jaszczyk		};
180fe5e610fSGrzegorz Jaszczyk		cp1_xhci0_vbus_pins: cp1-xhci0-vbus-pins {
181fe5e610fSGrzegorz Jaszczyk			marvell,pins = "mpp3";
182fe5e610fSGrzegorz Jaszczyk			marvell,function = "gpio";
183fe5e610fSGrzegorz Jaszczyk		};
184fe5e610fSGrzegorz Jaszczyk		cp1_sfp_pins: sfp-pins {
185fe5e610fSGrzegorz Jaszczyk			marvell,pins = "mpp8", "mpp9", "mpp10", "mpp11";
186fe5e610fSGrzegorz Jaszczyk			marvell,function = "gpio";
187fe5e610fSGrzegorz Jaszczyk		};
188fe5e610fSGrzegorz Jaszczyk		cp1_pcie_reset_pins: cp1-pcie-reset-pins {
189fe5e610fSGrzegorz Jaszczyk			marvell,pins = "mpp0";
190fe5e610fSGrzegorz Jaszczyk			marvell,function = "gpio";
191fe5e610fSGrzegorz Jaszczyk		};
192fe5e610fSGrzegorz Jaszczyk	};
193fe5e610fSGrzegorz Jaszczyk};
194fe5e610fSGrzegorz Jaszczyk
195fe5e610fSGrzegorz Jaszczyk/* CON58 */
196fe5e610fSGrzegorz Jaszczyk&cp1_usb3_1 {
197fe5e610fSGrzegorz Jaszczyk	status = "okay";
198fe5e610fSGrzegorz Jaszczyk	usb-phy = <&cp1_usb3_0_phy0>;
199fe5e610fSGrzegorz Jaszczyk	/* Generic PHY, providing serdes lanes */
200fe5e610fSGrzegorz Jaszczyk	phys = <&cp1_comphy3 1>;
201fe5e610fSGrzegorz Jaszczyk	phy-names = "usb";
202fe5e610fSGrzegorz Jaszczyk};
203