Skip to content

Commit f2603e2

Browse files
committed
FROMLIST: arm64: dts: qcom: lemans-evk: Add IFP Mezzanine
The Interface Plus [IFP] Mezzanine is an hardware expansion add-on board designed to be stacked on top of Lemans EVK. It has following peripherals : - 4x Type A USB ports in host mode. - TC9563 PCIe switch, which has following three downstream ports (DSP) : - 1st DSP is routed to an M.2 E-key connector, intended for WLAN modules. - 2nd DSP is routed to an M.2 B-key connector, intended for cellular modems. - 3rd DSP with support for Dual Ethernet ports. - eMMC. - Additional 2.5GbE Ethernet PHY connected to native EMAC with support for MAC Address configuration via NVMEM. - EEPROM. - LVDS Display. - 2*mini DP. Add support for following peripherals : - TC9563 PCIe Switch. - Additional 2.5GbE Ethernet Port. - EEPROM. Enable support for USB hub, LVDS display and mini-DP later once dependent changes are available in lemans-evk core-kit. Written with inputs from : Mohd Ayaan Anwar <mohd.anwar@oss.qualcomm.com> - Ethernet. Krishna Chaitanya Chundru <krishna.chundru@oss.qualcomm.com> - PCIe Monish Chunara <monish.chunara@oss.qualcomm.com> - EEPROM. Signed-off-by: Umang Chheda <umang.chheda@oss.qualcomm.com> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> Link: https://lore.kernel.org/lkml/20260304165925.1535938-1-umang.chheda@oss.qualcomm.com/
1 parent 300390c commit f2603e2

2 files changed

Lines changed: 266 additions & 0 deletions

File tree

arch/arm64/boot/dts/qcom/Makefile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,9 @@ lemans-evk-el2-dtbs := lemans-evk.dtb lemans-el2.dtbo
4040
dtb-$(CONFIG_ARCH_QCOM) += lemans-evk-camera-csi1-imx577.dtb
4141
dtb-$(CONFIG_ARCH_QCOM) += lemans-evk-el2.dtb
4242

43+
lemans-evk-ifp-mezzanine-dtbs := lemans-evk.dtb lemans-evk-ifp-mezzanine.dtbo
44+
45+
dtb-$(CONFIG_ARCH_QCOM) += lemans-evk-ifp-mezzanine.dtb
4346
dtb-$(CONFIG_ARCH_QCOM) += monaco-evk.dtb
4447

4548
monaco-evk-el2-dtbs := monaco-evk.dtb monaco-el2.dtbo
Lines changed: 263 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,263 @@
1+
// SPDX-License-Identifier: BSD-3-Clause
2+
/*
3+
* Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
4+
*/
5+
6+
/dts-v1/;
7+
/plugin/;
8+
9+
#include <dt-bindings/gpio/gpio.h>
10+
11+
&{/} {
12+
model = "Qualcomm Technologies, Inc. Lemans-evk IFP Mezzanine";
13+
14+
vreg_0p9: regulator-0v9 {
15+
compatible = "regulator-fixed";
16+
regulator-name = "VREG_0P9";
17+
18+
regulator-min-microvolt = <900000>;
19+
regulator-max-microvolt = <900000>;
20+
regulator-always-on;
21+
regulator-boot-on;
22+
};
23+
24+
vreg_1p8: regulator-1v8 {
25+
compatible = "regulator-fixed";
26+
regulator-name = "VREG_1P8";
27+
28+
regulator-min-microvolt = <1800000>;
29+
regulator-max-microvolt = <1800000>;
30+
regulator-always-on;
31+
regulator-boot-on;
32+
};
33+
};
34+
35+
&ethernet1 {
36+
phy-handle = <&hsgmii_phy1>;
37+
phy-mode = "2500base-x";
38+
39+
pinctrl-0 = <&ethernet1_default>;
40+
pinctrl-names = "default";
41+
42+
snps,mtl-rx-config = <&mtl_rx_setup1>;
43+
snps,mtl-tx-config = <&mtl_tx_setup1>;
44+
45+
nvmem-cells = <&mac_addr1>;
46+
nvmem-cell-names = "mac-address";
47+
48+
status = "okay";
49+
50+
mdio {
51+
compatible = "snps,dwmac-mdio";
52+
#address-cells = <1>;
53+
#size-cells = <0>;
54+
55+
hsgmii_phy1: ethernet-phy@18 {
56+
compatible = "ethernet-phy-id004d.d101";
57+
reg = <0x18>;
58+
reset-gpios = <&pmm8654au_2_gpios 9 GPIO_ACTIVE_LOW>;
59+
reset-assert-us = <11000>;
60+
reset-deassert-us = <70000>;
61+
};
62+
};
63+
64+
mtl_rx_setup1: rx-queues-config {
65+
snps,rx-queues-to-use = <4>;
66+
snps,rx-sched-sp;
67+
68+
queue0 {
69+
snps,dcb-algorithm;
70+
snps,map-to-dma-channel = <0x0>;
71+
snps,route-up;
72+
snps,priority = <0x1>;
73+
};
74+
75+
queue1 {
76+
snps,dcb-algorithm;
77+
snps,map-to-dma-channel = <0x1>;
78+
snps,route-ptp;
79+
};
80+
81+
queue2 {
82+
snps,avb-algorithm;
83+
snps,map-to-dma-channel = <0x2>;
84+
snps,route-avcp;
85+
};
86+
87+
queue3 {
88+
snps,avb-algorithm;
89+
snps,map-to-dma-channel = <0x3>;
90+
snps,priority = <0xc>;
91+
};
92+
};
93+
94+
mtl_tx_setup1: tx-queues-config {
95+
snps,tx-queues-to-use = <4>;
96+
97+
queue0 {
98+
snps,dcb-algorithm;
99+
};
100+
101+
queue1 {
102+
snps,dcb-algorithm;
103+
};
104+
105+
queue2 {
106+
snps,avb-algorithm;
107+
snps,send_slope = <0x1000>;
108+
snps,idle_slope = <0x1000>;
109+
snps,high_credit = <0x3e800>;
110+
snps,low_credit = <0xffc18000>;
111+
};
112+
113+
queue3 {
114+
snps,avb-algorithm;
115+
snps,send_slope = <0x1000>;
116+
snps,idle_slope = <0x1000>;
117+
snps,high_credit = <0x3e800>;
118+
snps,low_credit = <0xffc18000>;
119+
};
120+
};
121+
};
122+
123+
&i2c18 {
124+
#address-cells = <1>;
125+
#size-cells = <0>;
126+
127+
eeprom@52 {
128+
compatible = "giantec,gt24c256c", "atmel,24c256";
129+
reg = <0x52>;
130+
pagesize = <64>;
131+
132+
nvmem-layout {
133+
compatible = "fixed-layout";
134+
#address-cells = <1>;
135+
#size-cells = <1>;
136+
137+
mac_addr1: mac-addr@0 {
138+
reg = <0x0 0x6>;
139+
};
140+
};
141+
};
142+
};
143+
144+
&pcie0 {
145+
iommu-map = <0x0 &pcie_smmu 0x0 0x1>,
146+
<0x100 &pcie_smmu 0x1 0x1>,
147+
<0x208 &pcie_smmu 0x2 0x1>,
148+
<0x210 &pcie_smmu 0x3 0x1>,
149+
<0x218 &pcie_smmu 0x4 0x1>,
150+
<0x300 &pcie_smmu 0x5 0x1>,
151+
<0x400 &pcie_smmu 0x6 0x1>,
152+
<0x500 &pcie_smmu 0x7 0x1>,
153+
<0x501 &pcie_smmu 0x8 0x1>;
154+
};
155+
156+
&pcieport0 {
157+
#address-cells = <3>;
158+
#size-cells = <2>;
159+
160+
pcie@0,0 {
161+
compatible = "pci1179,0623";
162+
reg = <0x10000 0x0 0x0 0x0 0x0>;
163+
#address-cells = <3>;
164+
#size-cells = <2>;
165+
166+
device_type = "pci";
167+
ranges;
168+
bus-range = <0x2 0xff>;
169+
170+
vddc-supply = <&vreg_0p9>;
171+
vdd18-supply = <&vreg_1p8>;
172+
vdd09-supply = <&vreg_0p9>;
173+
vddio1-supply = <&vreg_1p8>;
174+
vddio2-supply = <&vreg_1p8>;
175+
vddio18-supply = <&vreg_1p8>;
176+
177+
i2c-parent = <&i2c18 0x77>;
178+
179+
resx-gpios = <&tlmm 140 GPIO_ACTIVE_LOW>;
180+
181+
pinctrl-0 = <&tc9563_resx_n>;
182+
pinctrl-names = "default";
183+
184+
pcie@1,0 {
185+
reg = <0x20800 0x0 0x0 0x0 0x0>;
186+
#address-cells = <3>;
187+
#size-cells = <2>;
188+
189+
device_type = "pci";
190+
ranges;
191+
bus-range = <0x3 0xff>;
192+
};
193+
194+
pcie@2,0 {
195+
reg = <0x21000 0x0 0x0 0x0 0x0>;
196+
#address-cells = <3>;
197+
#size-cells = <2>;
198+
199+
device_type = "pci";
200+
ranges;
201+
bus-range = <0x4 0xff>;
202+
};
203+
204+
pcie@3,0 {
205+
reg = <0x21800 0x0 0x0 0x0 0x0>;
206+
#address-cells = <3>;
207+
#size-cells = <2>;
208+
device_type = "pci";
209+
ranges;
210+
bus-range = <0x5 0xff>;
211+
212+
pci@0,0 {
213+
reg = <0x50000 0x0 0x0 0x0 0x0>;
214+
#address-cells = <3>;
215+
#size-cells = <2>;
216+
device_type = "pci";
217+
ranges;
218+
};
219+
220+
pci@0,1 {
221+
reg = <0x50100 0x0 0x0 0x0 0x0>;
222+
#address-cells = <3>;
223+
#size-cells = <2>;
224+
device_type = "pci";
225+
ranges;
226+
};
227+
};
228+
};
229+
};
230+
231+
&serdes1 {
232+
phy-supply = <&vreg_l5a>;
233+
234+
status = "okay";
235+
};
236+
237+
&tlmm {
238+
ethernet1_default: ethernet1-default-state {
239+
ethernet1-mdc-pins {
240+
pins = "gpio20";
241+
function = "emac1_mdc";
242+
drive-strength = <16>;
243+
bias-pull-up;
244+
};
245+
246+
ethernet1-mdio-pins {
247+
pins = "gpio21";
248+
function = "emac1_mdio";
249+
drive-strength = <16>;
250+
bias-pull-up;
251+
};
252+
};
253+
254+
tc9563_resx_n: tc9563-resx-state {
255+
pins = "gpio140";
256+
function = "gpio";
257+
bias-disable;
258+
/* Reset pin of tc9563 is active low hence set default
259+
* state of this pin to output-high.
260+
*/
261+
output-high;
262+
};
263+
};

0 commit comments

Comments
 (0)