[PATCH v2 7/7] arm64: dts: mediatek: mt8195-cherry-dojo: Describe M.2 M-key NVMe slot

From: Chen-Yu Tsai

Date: Thu Feb 26 2026 - 02:53:20 EST


The Dojo device has a M.2 M-key slot for an included NVMe on some
models.

Add a proper device tree description based on the new M.2 M-key binding.
Power for the slot is controlled by the embedded controller. As far as
the main SoC is concerned, it is always on.

Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@xxxxxxxxxxxxx>
Reviewed-by: Manivannan Sadhasivam <mani@xxxxxxxxxx>
Signed-off-by: Chen-Yu Tsai <wenst@xxxxxxxxxxxx>
---
.../dts/mediatek/mt8195-cherry-dojo-r1.dts | 38 +++++++++++++++++++
1 file changed, 38 insertions(+)

diff --git a/arch/arm64/boot/dts/mediatek/mt8195-cherry-dojo-r1.dts b/arch/arm64/boot/dts/mediatek/mt8195-cherry-dojo-r1.dts
index 49664de99b88..57cc329f49c4 100644
--- a/arch/arm64/boot/dts/mediatek/mt8195-cherry-dojo-r1.dts
+++ b/arch/arm64/boot/dts/mediatek/mt8195-cherry-dojo-r1.dts
@@ -11,6 +11,28 @@ / {
compatible = "google,dojo-sku7", "google,dojo-sku5",
"google,dojo-sku3", "google,dojo-sku1",
"google,dojo", "mediatek,mt8195";
+
+ nvme-connector {
+ compatible = "pcie-m2-m-connector";
+ /* power is controlled by EC */
+ vpcie3v3-supply = <&pp3300_z2>;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ nvme_ep: endpoint@0 {
+ reg = <0>;
+ remote-endpoint = <&pcie0_ep>;
+ };
+ };
+ };
+ };
};

&audio_codec {
@@ -72,6 +94,22 @@ &pcie0 {
pinctrl-names = "default";
pinctrl-0 = <&pcie0_pins_default>;
status = "okay";
+
+ pcie@0 {
+ compatible = "pciclass,0604";
+ reg = <0 0 0 0 0>;
+ device_type = "pci";
+ num-lanes = <2>;
+ #address-cells = <3>;
+ #size-cells = <2>;
+ ranges;
+
+ port {
+ pcie0_ep: endpoint {
+ remote-endpoint = <&nvme_ep>;
+ };
+ };
+ };
};

&pciephy {
--
2.53.0.414.gf7e9f6c205-goog