* [PATCH v2 0/3] arm64: dts: qcom: Describe the PCIe M.2 Key E connector for Monaco EVK
@ 2026-07-29 2:40 Wei Deng
2026-07-29 2:40 ` [PATCH v2 1/3] arm64: dts: qcom: monaco: Add compatible to the PCIe Root Port Wei Deng
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Wei Deng @ 2026-07-29 2:40 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley
Cc: quic_chezhou, cheng.jiang, shuai.zhang, jinwang.li, xiuzhuo.shang,
mengshi.wu, linux-arm-msm, devicetree, linux-kernel,
Konrad Dybcio, Wei Deng
Add DT support for the PCIe M.2 Mechanical Key E connector on the
Monaco EVK, following the same pattern as the lemans-evk series
(already in linux-next, commits 67f06acf/a6d4bb0a).
Patch 1/3 adds 'compatible = "pciclass,0604"' to the pcieport0 node in
monaco.dtsi, required for downstream DT nodes to be matched to PCI
devices.
Patch 2/3 adds empty labeled endpoints (pcieport0_ep, uart2_ep) to
pcieport0 and uart2 in monaco.dtsi as graph anchors.
Patch 3/3 describes the connector-3 node in monaco-evk.dts, wires the
endpoints via remote-endpoint overrides, adds the vreg_wcn_3p3/
vreg_dcin_12v regulators, and adds the serial1 = &uart2 alias for BT
serdev enumeration.
This series is based on next-20260726.
Changes in v2:
- Move PCIe Root Port and UART2 graph port/endpoint declarations from
monaco-evk.dts into monaco.dtsi, per Konrad's suggestion. The SoC
DTSI now defines empty labeled endpoints (pcieport0_ep, uart2_ep) as
graph anchors, and monaco-evk.dts wires them via remote-endpoint
overrides. Splits the old patch 2/2 into two patches (new patch 2/3
for the anchors, patch 3/3 for the EVK board wiring).
- Patch 1/3 unchanged, carries Konrad's Reviewed-by from v1.
- Dropped Dmitry's Reviewed-by on the EVK patch since the port/endpoint
structure changed; open to re-review.
- Link to v1: https://lore.kernel.org/all/20260727-b4-monaco-evk-m2-v1-v1-0-5429cce68599@oss.qualcomm.com/
---
Wei Deng (3):
arm64: dts: qcom: monaco: Add compatible to the PCIe Root Port
arm64: dts: qcom: monaco: Add graph port/endpoint anchors to pcieport0 and uart2
arm64: dts: qcom: monaco-evk: Describe the PCIe M.2 Key E connector
arch/arm64/boot/dts/qcom/monaco-evk.dts | 69 +++++++++++++++++++++++++++++++++
arch/arm64/boot/dts/qcom/monaco.dtsi | 9 +++++
2 files changed, 78 insertions(+)
---
base-commit: c5e32e86ca02b003f86e095d379b38148999293d
change-id: 20260727-b4-monaco-evk-m2-v1-dd56eb997378
Best regards,
--
Wei Deng <wei.deng@oss.qualcomm.com>
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v2 1/3] arm64: dts: qcom: monaco: Add compatible to the PCIe Root Port
2026-07-29 2:40 [PATCH v2 0/3] arm64: dts: qcom: Describe the PCIe M.2 Key E connector for Monaco EVK Wei Deng
@ 2026-07-29 2:40 ` Wei Deng
2026-07-29 2:40 ` [PATCH v2 2/3] arm64: dts: qcom: monaco: Add graph port/endpoint anchors to pcieport0 and uart2 Wei Deng
2026-07-29 2:40 ` [PATCH v2 3/3] arm64: dts: qcom: monaco-evk: Describe the PCIe M.2 Key E connector Wei Deng
2 siblings, 0 replies; 6+ messages in thread
From: Wei Deng @ 2026-07-29 2:40 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley
Cc: quic_chezhou, cheng.jiang, shuai.zhang, jinwang.li, xiuzhuo.shang,
mengshi.wu, linux-arm-msm, devicetree, linux-kernel,
Konrad Dybcio, Wei Deng
Add 'compatible = "pciclass,0604"' to the pcieport0 node in monaco.dtsi
to allow the PCI subsystem to associate the DT node with the PCI-to-PCI
bridge device. This is required for downstream DT nodes (such as M.2
connectors described as graph endpoints of the Root Port) to be matched
to PCI devices.
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Wei Deng <wei.deng@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/monaco.dtsi | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/arm64/boot/dts/qcom/monaco.dtsi b/arch/arm64/boot/dts/qcom/monaco.dtsi
index 64fc0d592282..438ccf6eba64 100644
--- a/arch/arm64/boot/dts/qcom/monaco.dtsi
+++ b/arch/arm64/boot/dts/qcom/monaco.dtsi
@@ -2393,6 +2393,7 @@ opp-32000000 {
};
pcieport0: pcie@0 {
+ compatible = "pciclass,0604";
device_type = "pci";
reg = <0x0 0x0 0x0 0x0 0x0>;
bus-range = <0x01 0xff>;
--
2.34.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v2 2/3] arm64: dts: qcom: monaco: Add graph port/endpoint anchors to pcieport0 and uart2
2026-07-29 2:40 [PATCH v2 0/3] arm64: dts: qcom: Describe the PCIe M.2 Key E connector for Monaco EVK Wei Deng
2026-07-29 2:40 ` [PATCH v2 1/3] arm64: dts: qcom: monaco: Add compatible to the PCIe Root Port Wei Deng
@ 2026-07-29 2:40 ` Wei Deng
2026-07-30 17:27 ` Konrad Dybcio
2026-07-29 2:40 ` [PATCH v2 3/3] arm64: dts: qcom: monaco-evk: Describe the PCIe M.2 Key E connector Wei Deng
2 siblings, 1 reply; 6+ messages in thread
From: Wei Deng @ 2026-07-29 2:40 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley
Cc: quic_chezhou, cheng.jiang, shuai.zhang, jinwang.li, xiuzhuo.shang,
mengshi.wu, linux-arm-msm, devicetree, linux-kernel,
Konrad Dybcio, Wei Deng
Add empty graph port/endpoint nodes to pcieport0 and uart2 in monaco.dtsi
so that board files can reference the endpoint labels (pcieport0_ep,
uart2_ep) to describe connections to M.2 Key E connectors via
remote-endpoint overrides.
Suggested-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Wei Deng <wei.deng@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/monaco.dtsi | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/monaco.dtsi b/arch/arm64/boot/dts/qcom/monaco.dtsi
index 438ccf6eba64..b17d41059e7c 100644
--- a/arch/arm64/boot/dts/qcom/monaco.dtsi
+++ b/arch/arm64/boot/dts/qcom/monaco.dtsi
@@ -1184,6 +1184,10 @@ &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
power-domains = <&rpmhpd RPMHPD_CX>;
operating-points-v2 = <&qup_opp_table>;
status = "disabled";
+
+ port {
+ uart2_ep: endpoint {};
+ };
};
i2c3: i2c@98c000 {
@@ -2402,6 +2406,10 @@ pcieport0: pcie@0 {
#size-cells = <2>;
ranges;
phys = <&pcie0_phy>;
+
+ port {
+ pcieport0_ep: endpoint {};
+ };
};
};
--
2.34.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v2 3/3] arm64: dts: qcom: monaco-evk: Describe the PCIe M.2 Key E connector
2026-07-29 2:40 [PATCH v2 0/3] arm64: dts: qcom: Describe the PCIe M.2 Key E connector for Monaco EVK Wei Deng
2026-07-29 2:40 ` [PATCH v2 1/3] arm64: dts: qcom: monaco: Add compatible to the PCIe Root Port Wei Deng
2026-07-29 2:40 ` [PATCH v2 2/3] arm64: dts: qcom: monaco: Add graph port/endpoint anchors to pcieport0 and uart2 Wei Deng
@ 2026-07-29 2:40 ` Wei Deng
2026-07-30 17:27 ` Konrad Dybcio
2 siblings, 1 reply; 6+ messages in thread
From: Wei Deng @ 2026-07-29 2:40 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley
Cc: quic_chezhou, cheng.jiang, shuai.zhang, jinwang.li, xiuzhuo.shang,
mengshi.wu, linux-arm-msm, devicetree, linux-kernel, Wei Deng
The monaco EVK has a PCIe M.2 Mechanical Key E connector to connect
wireless connectivity cards over PCIe and UART interfaces. Hence,
describe the connector node and link it with the PCIe 0 Root Port and
UART2 nodes through graph port/endpoint.
The M.2 Key E connector is powered by a 3.3V fixed regulator
(vreg_wcn_3p3) which is sourced from the board's 12V DC input rail
(vreg_dcin_12v). Both regulators are always-on and are required by the
pcie-m2-e-connector binding.
Also add the serial1 = &uart2 alias, which is required for the
Bluetooth serdev device to be enumerated on the UART2 interface.
The graph endpoint anchors (pcieport0_ep, uart2_ep) referenced here are
defined in monaco.dtsi (see "arm64: dts: qcom: monaco: Add graph
port/endpoint anchors to pcieport0 and uart2").
Signed-off-by: Wei Deng <wei.deng@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/monaco-evk.dts | 69 +++++++++++++++++++++++++++++++++
1 file changed, 69 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/monaco-evk.dts b/arch/arm64/boot/dts/qcom/monaco-evk.dts
index 9d17ef7d2caf..006290c2356d 100644
--- a/arch/arm64/boot/dts/qcom/monaco-evk.dts
+++ b/arch/arm64/boot/dts/qcom/monaco-evk.dts
@@ -21,6 +21,7 @@ aliases {
ethernet0 = ðernet0;
i2c1 = &i2c1;
serial0 = &uart7;
+ serial1 = &uart2;
serial2 = &uart6;
};
@@ -47,6 +48,38 @@ usb2_con_hs_ep: endpoint {
};
};
+ connector-3 {
+ compatible = "pcie-m2-e-connector";
+ vpcie3v3-supply = <&vreg_wcn_3p3>;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ m2_e_pcie_ep: endpoint@0 {
+ reg = <0>;
+ remote-endpoint = <&pcieport0_ep>;
+ };
+ };
+
+ port@3 {
+ reg = <3>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ m2_e_uart_ep: endpoint@0 {
+ reg = <0>;
+ remote-endpoint = <&uart2_ep>;
+ };
+ };
+ };
+ };
+
dmic: audio-codec-0 {
compatible = "dmic-codec";
#sound-dai-cells = <0>;
@@ -91,6 +124,30 @@ usb2_vbus: regulator-usb2-vbus {
enable-active-high;
};
+ vreg_dcin_12v: regulator-dcin-12v {
+ compatible = "regulator-fixed";
+
+ regulator-name = "VREG_DCIN_12V";
+ regulator-min-microvolt = <12000000>;
+ regulator-max-microvolt = <12000000>;
+
+ regulator-always-on;
+ regulator-boot-on;
+ };
+
+ vreg_wcn_3p3: regulator-wcn-3p3 {
+ compatible = "regulator-fixed";
+
+ regulator-name = "VREG_WCN_3P3";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+
+ vin-supply = <&vreg_dcin_12v>;
+
+ regulator-always-on;
+ regulator-boot-on;
+ };
+
sound {
compatible = "qcom,qcs8275-sndcard";
model = "MONACO-EVK";
@@ -646,6 +703,10 @@ &pcieport0 {
wake-gpios = <&tlmm 0 GPIO_ACTIVE_HIGH>;
};
+&pcieport0_ep {
+ remote-endpoint = <&m2_e_pcie_ep>;
+};
+
&pcieport1 {
reset-gpios = <&tlmm 23 GPIO_ACTIVE_LOW>;
wake-gpios = <&tlmm 21 GPIO_ACTIVE_HIGH>;
@@ -923,3 +984,11 @@ &usb_2_hsphy {
status = "okay";
};
+
+&uart2 {
+ status = "okay";
+};
+
+&uart2_ep {
+ remote-endpoint = <&m2_e_uart_ep>;
+};
--
2.34.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v2 2/3] arm64: dts: qcom: monaco: Add graph port/endpoint anchors to pcieport0 and uart2
2026-07-29 2:40 ` [PATCH v2 2/3] arm64: dts: qcom: monaco: Add graph port/endpoint anchors to pcieport0 and uart2 Wei Deng
@ 2026-07-30 17:27 ` Konrad Dybcio
0 siblings, 0 replies; 6+ messages in thread
From: Konrad Dybcio @ 2026-07-30 17:27 UTC (permalink / raw)
To: Wei Deng, Bjorn Andersson, Konrad Dybcio, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: quic_chezhou, cheng.jiang, shuai.zhang, jinwang.li, xiuzhuo.shang,
mengshi.wu, linux-arm-msm, devicetree, linux-kernel
On 7/29/26 4:40 AM, Wei Deng wrote:
> Add empty graph port/endpoint nodes to pcieport0 and uart2 in monaco.dtsi
> so that board files can reference the endpoint labels (pcieport0_ep,
> uart2_ep) to describe connections to M.2 Key E connectors via
> remote-endpoint overrides.
>
> Suggested-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
> Signed-off-by: Wei Deng <wei.deng@oss.qualcomm.com>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2 3/3] arm64: dts: qcom: monaco-evk: Describe the PCIe M.2 Key E connector
2026-07-29 2:40 ` [PATCH v2 3/3] arm64: dts: qcom: monaco-evk: Describe the PCIe M.2 Key E connector Wei Deng
@ 2026-07-30 17:27 ` Konrad Dybcio
0 siblings, 0 replies; 6+ messages in thread
From: Konrad Dybcio @ 2026-07-30 17:27 UTC (permalink / raw)
To: Wei Deng, Bjorn Andersson, Konrad Dybcio, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: quic_chezhou, cheng.jiang, shuai.zhang, jinwang.li, xiuzhuo.shang,
mengshi.wu, linux-arm-msm, devicetree, linux-kernel
On 7/29/26 4:40 AM, Wei Deng wrote:
> The monaco EVK has a PCIe M.2 Mechanical Key E connector to connect
> wireless connectivity cards over PCIe and UART interfaces. Hence,
> describe the connector node and link it with the PCIe 0 Root Port and
> UART2 nodes through graph port/endpoint.
>
> The M.2 Key E connector is powered by a 3.3V fixed regulator
> (vreg_wcn_3p3) which is sourced from the board's 12V DC input rail
> (vreg_dcin_12v). Both regulators are always-on and are required by the
> pcie-m2-e-connector binding.
>
> Also add the serial1 = &uart2 alias, which is required for the
> Bluetooth serdev device to be enumerated on the UART2 interface.
>
> The graph endpoint anchors (pcieport0_ep, uart2_ep) referenced here are
> defined in monaco.dtsi (see "arm64: dts: qcom: monaco: Add graph
> port/endpoint anchors to pcieport0 and uart2").
>
> Signed-off-by: Wei Deng <wei.deng@oss.qualcomm.com>
> ---
[...]
> + vreg_dcin_12v: regulator-dcin-12v {
> + compatible = "regulator-fixed";
> +
> + regulator-name = "VREG_DCIN_12V";
> + regulator-min-microvolt = <12000000>;
> + regulator-max-microvolt = <12000000>;
> +
> + regulator-always-on;
> + regulator-boot-on;
> + };
> +
> + vreg_wcn_3p3: regulator-wcn-3p3 {
> + compatible = "regulator-fixed";
> +
> + regulator-name = "VREG_WCN_3P3";
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> +
> + vin-supply = <&vreg_dcin_12v>;
The 12v supply is not controllable, so we may drop it
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2026-07-30 17:28 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-29 2:40 [PATCH v2 0/3] arm64: dts: qcom: Describe the PCIe M.2 Key E connector for Monaco EVK Wei Deng
2026-07-29 2:40 ` [PATCH v2 1/3] arm64: dts: qcom: monaco: Add compatible to the PCIe Root Port Wei Deng
2026-07-29 2:40 ` [PATCH v2 2/3] arm64: dts: qcom: monaco: Add graph port/endpoint anchors to pcieport0 and uart2 Wei Deng
2026-07-30 17:27 ` Konrad Dybcio
2026-07-29 2:40 ` [PATCH v2 3/3] arm64: dts: qcom: monaco-evk: Describe the PCIe M.2 Key E connector Wei Deng
2026-07-30 17:27 ` Konrad Dybcio
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox