get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/1.0/patches/2219695/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2219695,
    "url": "http://patchwork.ozlabs.org/api/1.0/patches/2219695/?format=api",
    "project": {
        "id": 18,
        "url": "http://patchwork.ozlabs.org/api/1.0/projects/18/?format=api",
        "name": "U-Boot",
        "link_name": "uboot",
        "list_id": "u-boot.lists.denx.de",
        "list_email": "u-boot@lists.denx.de",
        "web_url": null,
        "scm_url": null,
        "webscm_url": null
    },
    "msgid": "<20260403160127.10605-1-lobanokivan11@gmail.com>",
    "date": "2026-04-03T16:01:26",
    "name": "xiaomi pad 5 support",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "8093f6113345c12abdfb64a98c888113ec1eabd9",
    "submitter": {
        "id": 93049,
        "url": "http://patchwork.ozlabs.org/api/1.0/people/93049/?format=api",
        "name": "Lobanokivan11",
        "email": "lobanokivan11@gmail.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/uboot/patch/20260403160127.10605-1-lobanokivan11@gmail.com/mbox/",
    "series": [
        {
            "id": 498671,
            "url": "http://patchwork.ozlabs.org/api/1.0/series/498671/?format=api",
            "date": "2026-04-03T16:01:26",
            "name": "xiaomi pad 5 support",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/498671/mbox/"
        }
    ],
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2219695/checks/",
    "tags": {},
    "headers": {
        "Return-Path": "<u-boot-bounces@lists.denx.de>",
        "X-Original-To": "incoming@patchwork.ozlabs.org",
        "Delivered-To": "patchwork-incoming@legolas.ozlabs.org",
        "Authentication-Results": [
            "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=YycbnwfI;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de\n (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de;\n envelope-from=u-boot-bounces@lists.denx.de; receiver=patchwork.ozlabs.org)",
            "phobos.denx.de;\n dmarc=pass (p=none dis=none) header.from=gmail.com",
            "phobos.denx.de;\n spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de",
            "phobos.denx.de;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.b=\"YycbnwfI\";\n\tdkim-atps=neutral",
            "phobos.denx.de;\n dmarc=pass (p=none dis=none) header.from=gmail.com",
            "phobos.denx.de;\n spf=pass smtp.mailfrom=lobanokivan11@gmail.com"
        ],
        "Received": [
            "from phobos.denx.de (phobos.denx.de\n [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fnVHp6kZ6z1xtJ\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 04 Apr 2026 07:12:06 +1100 (AEDT)",
            "from h2850616.stratoserver.net (localhost [IPv6:::1])\n\tby phobos.denx.de (Postfix) with ESMTP id AF7A184020;\n\tFri,  3 Apr 2026 22:11:58 +0200 (CEST)",
            "by phobos.denx.de (Postfix, from userid 109)\n id 29B28840AB; Fri,  3 Apr 2026 18:01:37 +0200 (CEST)",
            "from mail-wm1-x329.google.com (mail-wm1-x329.google.com\n [IPv6:2a00:1450:4864:20::329])\n (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits))\n (No client certificate requested)\n by phobos.denx.de (Postfix) with ESMTPS id 39A1B83CF5\n for <u-boot@lists.denx.de>; Fri,  3 Apr 2026 18:01:33 +0200 (CEST)",
            "by mail-wm1-x329.google.com with SMTP id\n 5b1f17b1804b1-488a041eae5so2967055e9.1\n for <u-boot@lists.denx.de>; Fri, 03 Apr 2026 09:01:33 -0700 (PDT)",
            "from nixos (mm-138-12-215-37.mfilial.dynamic.pppoe.byfly.by.\n [37.215.12.138]) by smtp.gmail.com with ESMTPSA id\n 5b1f17b1804b1-4887e967badsm365081515e9.14.2026.04.03.09.01.29\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Fri, 03 Apr 2026 09:01:30 -0700 (PDT)"
        ],
        "X-Spam-Checker-Version": "SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de",
        "X-Spam-Level": "",
        "X-Spam-Status": "No, score=-0.8 required=5.0 tests=BAYES_00,DKIM_SIGNED,\n DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FORGED_GMAIL_RCVD,\n FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,RCVD_IN_DNSWL_BLOCKED,\n SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.2",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=gmail.com; s=20251104; t=1775232092; x=1775836892; darn=lists.denx.de;\n h=content-transfer-encoding:signed-off-by:mime-version:message-id\n :date:subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to;\n bh=NOXgV/k4knn0d3n5hWmjPXJ6lr6HZn/LfNf76oR3C6I=;\n b=YycbnwfIVic70wx9mKYLVl08ODZWxgmd0gSuvlMXhjaBh+ROSWNC5YX8tb5h9TjkLv\n 1P9QbycFZO54R+RHa0lDO2BQd+nejv5pRICXOnqmkG1mSSM+WEXGlchvYE2mCwNsP/q9\n PIej7pboBmH9BPvI0DgZREEIG2bEp4+EQvHkjHiw5yU5NWZE12MaRykzs+Vma4hACSl8\n ue72VT8TQeHv7LsUnvgMX5R6Hft1X+Ehyt+25kOL+GQ50lXMZ07q3KVU2eH1GRke/DO6\n ZoMaZ5ydTDJRmb9tyy1pnDvW0OT+5Nh6NgNHBNkGpmbNOoGV7SCKKGMTtAEOTBHduAdY\n Y14A==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1775232092; x=1775836892;\n h=content-transfer-encoding:signed-off-by:mime-version:message-id\n :date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from:to:cc\n :subject:date:message-id:reply-to;\n bh=NOXgV/k4knn0d3n5hWmjPXJ6lr6HZn/LfNf76oR3C6I=;\n b=CdJMMq1ddKWv8vfNiSQedN0Bdo3y3Yg/Z+W1izf+xRaKZ5lGHQzGYjWzCcEybK7vfU\n QBkiGBeTLJ+gJhHkDsX/GhK69rCfiIxZVUTaKIxa+DZEoScTDgeNNtiZn33ddXELOrgY\n mAPODg7d8bsNwLgMtPDHUnbd95X1K7UFKsJe1/6RnTtifSQF5h/hUxJKIFwS/UWnY6dN\n ngxX2IFinpmJRuOkGBUMcS5pox6qfgG1XFl4Na8m23npOQCYRZDn7SFE8zryStwi29Ca\n VK1PsGyL2ZuqpCeSPY2oOkoVU0Nj/48qfcr3JQZQUjtHxp0Hnx8K0oI0ifGm6AEXGBcf\n zyhA==",
        "X-Gm-Message-State": "AOJu0YwTCxQoTiRSNFPZS6/9fzbXjN6hCTXTkqDxlSXhDZCApiaAINA/\n 7iaN3maaUeD0eLrsd/Yjmy0IIvQ8C9oUEqlAOgueXq0BUoVXUGt/M11zqrR9mvQQ5VSIizwU",
        "X-Gm-Gg": "ATEYQzzQxqvp+Oi5xopOmF/RawpoCG5gH7kcTYJqJb8B/wD7vpRKDBqXK0aL9yq4/gp\n rW1KAASzzTqSe7nwLZTgwpXm03U+44kY96i9+HmUEbm4ncBeC9upDZvRUy0BB/vGGE68ENFAIr3\n StsNIasZdiAGw1wLN62skNraGMI/Heu6v2krfwViBMKsS8oSIzb+iJ8bYAa8fIcwU44a1A4FHO9\n nxcp9+lVvr4jZQYIDLUwUZin+o+a9aU6eSIw0eY96quWYYY0/q/EF17ecj/fPDVif0DEmGkX3iX\n T3q0BxgqO/7gB/pZov2+0nzXRuYgqiOUbSx+4+UHg7VD64KdOtZYV3+hotW2jrbIG1Z+LWQcyW+\n FkZcIh3vmOmiAkPjoP0mSX8t3isHutc1MyNCwVgKjRs+0CRkIsTb0kBRt1f4jVwMs082dX6qzcW\n F8yfZpiiv+aCIht9fNuKrrvxhvvz7s4cOtfCCa2mFYGhSoQsYMHwtFPniPSE5/7iJLZmHZ1on/t\n 75mHRSfrUKg",
        "X-Received": "by 2002:a05:600c:3e87:b0:486:f8d6:5dea with SMTP id\n 5b1f17b1804b1-488997c273dmr61530595e9.19.1775232091177;\n Fri, 03 Apr 2026 09:01:31 -0700 (PDT)",
        "From": "Lobanokivan11 <lobanokivan11@gmail.com>",
        "To": "u-boot@lists.denx.de",
        "Cc": "u-boot-qcom@groups.io, casey.connolly@linaro.org,\n neil.armstrong@linaro.org, sumit.garg@kernel.org, trini@konsulko.com,\n Lobanokivan11 <lobanokivan11@gmail.com>",
        "Subject": "[PATCH] xiaomi pad 5 support",
        "Date": "Fri,  3 Apr 2026 19:01:26 +0300",
        "Message-ID": "<20260403160127.10605-1-lobanokivan11@gmail.com>",
        "X-Mailer": "git-send-email 2.53.0",
        "MIME-Version": "1.0",
        "Signed-off-by": "Lobanokivan11 <lobanokivan11@gmail.com>",
        "Content-Transfer-Encoding": "8bit",
        "X-Mailman-Approved-At": "Fri, 03 Apr 2026 22:11:58 +0200",
        "X-BeenThere": "u-boot@lists.denx.de",
        "X-Mailman-Version": "2.1.39",
        "Precedence": "list",
        "List-Id": "U-Boot discussion <u-boot.lists.denx.de>",
        "List-Unsubscribe": "<https://lists.denx.de/options/u-boot>,\n <mailto:u-boot-request@lists.denx.de?subject=unsubscribe>",
        "List-Archive": "<https://lists.denx.de/pipermail/u-boot/>",
        "List-Post": "<mailto:u-boot@lists.denx.de>",
        "List-Help": "<mailto:u-boot-request@lists.denx.de?subject=help>",
        "List-Subscribe": "<https://lists.denx.de/listinfo/u-boot>,\n <mailto:u-boot-request@lists.denx.de?subject=subscribe>",
        "Errors-To": "u-boot-bounces@lists.denx.de",
        "Sender": "\"U-Boot\" <u-boot-bounces@lists.denx.de>",
        "X-Virus-Scanned": "clamav-milter 0.103.8 at phobos.denx.de",
        "X-Virus-Status": "Clean"
    },
    "content": "---\n board/qualcomm/xiaomi-nabu.env                |   11 +\n configs/xiaomi-nabu_defconfig                 |    6 +\n dts/upstream/src/arm64/qcom/pm8150.dtsi       |   10 +-\n dts/upstream/src/arm64/qcom/pm8150b.dtsi      |    8 +\n .../src/arm64/qcom/sm8150-oneplus-common.dtsi |  545 ++++++++\n .../arm64/qcom/sm8150-oneplus-guacamole.dts   |   70 +\n .../src/arm64/qcom/sm8150-oneplus-hotdogb.dts |   65 +\n .../src/arm64/qcom/sm8150-wcd9340.dtsi        |   86 ++\n .../src/arm64/qcom/sm8150-xiaomi-cepheus.dts  |  575 ++++++++\n .../src/arm64/qcom/sm8150-xiaomi-nabu.dts     | 1175 +++++++++++++++++\n dts/upstream/src/arm64/qcom/sm8150.dtsi       |  102 ++\n 11 files changed, 2652 insertions(+), 1 deletion(-)\n create mode 100644 board/qualcomm/xiaomi-nabu.env\n create mode 100644 configs/xiaomi-nabu_defconfig\n create mode 100644 dts/upstream/src/arm64/qcom/sm8150-oneplus-common.dtsi\n create mode 100644 dts/upstream/src/arm64/qcom/sm8150-oneplus-guacamole.dts\n create mode 100644 dts/upstream/src/arm64/qcom/sm8150-oneplus-hotdogb.dts\n create mode 100644 dts/upstream/src/arm64/qcom/sm8150-wcd9340.dtsi\n create mode 100644 dts/upstream/src/arm64/qcom/sm8150-xiaomi-cepheus.dts\n create mode 100644 dts/upstream/src/arm64/qcom/sm8150-xiaomi-nabu.dts",
    "diff": "diff --git a/board/qualcomm/xiaomi-nabu.env b/board/qualcomm/xiaomi-nabu.env\nnew file mode 100644\nindex 00000000000..ffa49ea9885\n--- /dev/null\n+++ b/board/qualcomm/xiaomi-nabu.env\n@@ -0,0 +1,11 @@\n+stdin=serial,button-kbd\n+stdout=serial,vidconsole\n+stderr=serial,vidconsole\n+preboot=scsi scan; bootefi bootmgr\n+fastboot=fastboot -l $fastboot_addr_r usb 0\n+do_boot=bootefi bootmgr\n+bootmenu_0=Boot first available device=run do_boot\n+bootmenu_1=Enable fastboot mode=run fastboot\n+bootmenu_2=Reset device=reset\n+menucmd=bootmenu\n+bootcmd=run do_boot\ndiff --git a/configs/xiaomi-nabu_defconfig b/configs/xiaomi-nabu_defconfig\nnew file mode 100644\nindex 00000000000..9554b6b88e8\n--- /dev/null\n+++ b/configs/xiaomi-nabu_defconfig\n@@ -0,0 +1,6 @@\n+# Configuration for building U-Boot for Xiaomi Pad 5\n+\n+#include \"qcom_defconfig\"\n+\n+CONFIG_DEFAULT_DEVICE_TREE=\"qcom/sm8150-xiaomi-nabu\"\n+CONFIG_DEFAULT_ENV_FILE=\"board/qualcomm/xiaomi-nabu.env\"\ndiff --git a/dts/upstream/src/arm64/qcom/pm8150.dtsi b/dts/upstream/src/arm64/qcom/pm8150.dtsi\nindex d2568686a09..c3411b308e3 100644\n--- a/dts/upstream/src/arm64/qcom/pm8150.dtsi\n+++ b/dts/upstream/src/arm64/qcom/pm8150.dtsi\n@@ -116,13 +116,21 @@\n \t\t\tstatus = \"disabled\";\n \t\t};\n \n-\t\trtc@6000 {\n+\t\tpm8150_rtc: rtc@6000 {\n \t\t\tcompatible = \"qcom,pm8941-rtc\";\n \t\t\treg = <0x6000>, <0x6100>;\n \t\t\treg-names = \"rtc\", \"alarm\";\n \t\t\tinterrupts = <0x0 0x61 0x1 IRQ_TYPE_NONE>;\n \t\t};\n \n+\t\tpm8150_sdam_2: sdam@b100 {\n+\t\t\tcompatible = \"qcom,spmi-sdam\";\n+\t\t\treg = <0xb100>;\n+\t\t\t#address-cells = <1>;\n+\t\t\t#size-cells = <1>;\n+\t\t\tstatus = \"disabled\";\n+\t\t};\n+\n \t\tpm8150_gpios: gpio@c000 {\n \t\t\tcompatible = \"qcom,pm8150-gpio\", \"qcom,spmi-gpio\";\n \t\t\treg = <0xc000>;\ndiff --git a/dts/upstream/src/arm64/qcom/pm8150b.dtsi b/dts/upstream/src/arm64/qcom/pm8150b.dtsi\nindex 3f7b0b6a1d1..97361a586be 100644\n--- a/dts/upstream/src/arm64/qcom/pm8150b.dtsi\n+++ b/dts/upstream/src/arm64/qcom/pm8150b.dtsi\n@@ -150,6 +150,14 @@\n \t\t\tstatus = \"disabled\";\n \t\t};\n \n+\t\tpm8150b_fg: fuel-gauge@4000 {\n+\t\t\tcompatible = \"qcom,pm8150b-fg\";\n+\t\t\treg = <0x4000>;\n+\t\t\tinterrupts = <0x2 0x40 0x3 IRQ_TYPE_EDGE_RISING>;\n+\t\t\tinterrupt-names = \"soc-delta\";\n+\t\t\tstatus = \"disabled\";\n+\t\t};\n+\n \t\tpm8150b_gpios: gpio@c000 {\n \t\t\tcompatible = \"qcom,pm8150b-gpio\", \"qcom,spmi-gpio\";\n \t\t\treg = <0xc000>;\ndiff --git a/dts/upstream/src/arm64/qcom/sm8150-oneplus-common.dtsi b/dts/upstream/src/arm64/qcom/sm8150-oneplus-common.dtsi\nnew file mode 100644\nindex 00000000000..e9118defdd3\n--- /dev/null\n+++ b/dts/upstream/src/arm64/qcom/sm8150-oneplus-common.dtsi\n@@ -0,0 +1,544 @@\n+// SPDX-License-Identifier: BSD-3-Clause\n+/*\n+ * Copyright (c) 2020, The Linux Foundation. All rights reserved.\n+ * Copyright (c) 2021, Caleb Connolly <caleb@connolly.tech>\n+ */\n+\n+/dts-v1/;\n+\n+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>\n+#include <dt-bindings/gpio/gpio.h>\n+#include \"sm8150.dtsi\"\n+#include \"pm8150.dtsi\"\n+#include \"pm8150b.dtsi\"\n+#include \"pm8150l.dtsi\"\n+\n+/delete-node/ &rmtfs_mem;\n+\n+/ {\n+\tcompatible = \"qcom,sm8150-mtp\", \"qcom,sm8150\";\n+\n+\tvph_pwr: vph-pwr-regulator {\n+\t\tcompatible = \"regulator-fixed\";\n+\t\tregulator-name = \"vph_pwr\";\n+\t\tregulator-min-microvolt = <3700000>;\n+\t\tregulator-max-microvolt = <3700000>;\n+\t};\n+\n+\t/*\n+\t * Apparently RPMh does not provide support for PM8150 S4 because it\n+\t * is always-on; model it as a fixed regulator.\n+\t */\n+\tvreg_s4a_1p8: pm8150-s4 {\n+\t\tcompatible = \"regulator-fixed\";\n+\t\tregulator-name = \"vreg_s4a_1p8\";\n+\n+\t\tregulator-min-microvolt = <1800000>;\n+\t\tregulator-max-microvolt = <1800000>;\n+\n+\t\tregulator-always-on;\n+\t\tregulator-boot-on;\n+\n+\t\tvin-supply = <&vph_pwr>;\n+\t};\n+\n+\treserved-memory {\n+\t\t/* The rmtfs_mem needs to be guarded due to \"XPU limitations\"\n+\t\t * it is otherwise possible for an allocation adjacent to the\n+\t\t * rmtfs_mem region to trigger an XPU violation, causing a crash.\n+\t\t */\n+\t\t// rmtfs_lower_guard: memory@f2900000 {\n+\t\t//\tno-map;\n+\t\t//\treg = <0 0xf2900000 0 0x1000>;\n+\t\t// };\n+\t\t/*\n+\t\t * The rmtfs memory region in downstream is 'dynamically allocated'\n+\t\t * but given the same address every time. Hard code it as this address is\n+\t\t * where the modem firmware expects it to be.\n+\t\t */\n+\t\trmtfs_mem: memory@f2901000 {\n+\t\t\tcompatible = \"qcom,rmtfs-mem\";\n+\t\t\treg = <0x0 0xf2901000 0x0 0x200000>;\n+\t\t\tno-map;\n+\n+\t\t\tqcom,client-id = <1>;\n+\t\t\tqcom,vmid = <15>;\n+\t\t};\n+\t\t// rmtfs_upper: memory@f2902000 {\n+\t\t//\tno-map;\n+\t\t//\treg = <0 0xf2902000 0 0x1000>;\n+\t\t// };\n+\t};\n+};\n+\n+&adsp_mem {\n+\treg = <0x0 0x8be00000 0x0 0x1e00000>;\n+};\n+\n+&mpss_mem {\n+\treg = <0x0 0x8dc00000 0x0 0x9600000>;\n+};\n+\n+&venus_mem {\n+\treg = <0x0 0x97200000 0x0 0x500000>;\n+};\n+\n+&slpi_mem {\n+\treg = <0x0 0x97700000 0x0 0x1400000>;\n+};\n+\n+&ipa_fw_mem {\n+\treg = <0x0 0x98b00000 0x0 0x10000>;\n+};\n+\n+&ipa_gsi_mem {\n+\treg = <0x0 0x98b10000 0x0 0x5000>;\n+};\n+\n+&gpu_mem {\n+\treg = <0x0 0x98b15000 0x0 0x2000>;\n+};\n+\n+&spss_mem {\n+\treg = <0x0 0x98c00000 0x0 0x100000>;\n+};\n+\n+&cdsp_mem {\n+\treg = <0x0 0x98d00000 0x0 0x1400000>;\n+};\n+\n+// Just like the OnePlus 6, the OnePlus 7 puts this in a weird spot\n+// Again it's left up to the driver to allocate this, it always allocates\n+// it here.\n+&rmtfs_mem {\n+\treg = <0x0 0xf2901000 0x0 0x200000>;\n+};\n+\n+&gpu {\n+\tstatus = \"disabled\";\n+};\n+\n+&apps_rsc {\n+\tpm8150-rpmh-regulators {\n+\t\tcompatible = \"qcom,pm8150-rpmh-regulators\";\n+\t\tqcom,pmic-id = \"a\";\n+\n+\t\tvdd-s1-supply = <&vph_pwr>;\n+\t\tvdd-s2-supply = <&vph_pwr>;\n+\t\tvdd-s3-supply = <&vph_pwr>;\n+\t\tvdd-s4-supply = <&vph_pwr>;\n+\t\tvdd-s5-supply = <&vph_pwr>;\n+\t\tvdd-s6-supply = <&vph_pwr>;\n+\t\tvdd-s7-supply = <&vph_pwr>;\n+\t\tvdd-s8-supply = <&vph_pwr>;\n+\t\tvdd-s9-supply = <&vph_pwr>;\n+\t\tvdd-s10-supply = <&vph_pwr>;\n+\n+\t\tvdd-l1-l8-l11-supply = <&vreg_s6a_0p9>;\n+\t\tvdd-l2-l10-supply = <&vreg_bob>;\n+\t\tvdd-l3-l4-l5-l18-supply = <&vreg_s6a_0p9>;\n+\t\tvdd-l6-l9-supply = <&vreg_s8c_1p3>;\n+\t\tvdd-l7-l12-l14-l15-supply = <&vreg_s5a_2p0>;\n+\t\tvdd-l13-l16-l17-supply = <&vreg_bob>;\n+\n+\t\tvreg_s5a_2p0: smps5 {\n+\t\t\tregulator-min-microvolt = <1904000>;\n+\t\t\tregulator-max-microvolt = <2040000>;\n+\t\t};\n+\n+\t\tvreg_s6a_0p9: smps6 {\n+\t\t\tregulator-min-microvolt = <920000>;\n+\t\t\tregulator-max-microvolt = <1128000>;\n+\t\t};\n+\n+\t\tvdda_wcss_pll:\n+\t\tvreg_l1a_0p75: ldo1 {\n+\t\t\tregulator-min-microvolt = <752000>;\n+\t\t\tregulator-max-microvolt = <752000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t};\n+\n+\t\tvdd_pdphy:\n+\t\tvdda_usb_hs_3p1:\n+\t\tvreg_l2a_3p1: ldo2 {\n+\t\t\tregulator-min-microvolt = <3072000>;\n+\t\t\tregulator-max-microvolt = <3072000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t};\n+\n+\t\tvreg_l3a_0p8: ldo3 {\n+\t\t\tregulator-min-microvolt = <480000>;\n+\t\t\tregulator-max-microvolt = <932000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t};\n+\n+\t\tvdd_usb_hs_core:\n+\t\tvdda_csi_0_0p9:\n+\t\tvdda_csi_1_0p9:\n+\t\tvdda_csi_2_0p9:\n+\t\tvdda_csi_3_0p9:\n+\t\tvdda_dsi_0_0p9:\n+\t\tvdda_dsi_1_0p9:\n+\t\tvdda_dsi_0_pll_0p9:\n+\t\tvdda_dsi_1_pll_0p9:\n+\t\tvdda_pcie_1ln_core:\n+\t\tvdda_pcie_2ln_core:\n+\t\tvdda_pll_hv_cc_ebi01:\n+\t\tvdda_pll_hv_cc_ebi23:\n+\t\tvdda_qrefs_0p875_5:\n+\t\tvdda_sp_sensor:\n+\t\tvdda_ufs_2ln_core_1:\n+\t\tvdda_ufs_2ln_core_2:\n+\t\tvdda_usb_ss_dp_core_1:\n+\t\tvdda_usb_ss_dp_core_2:\n+\t\tvdda_qlink_lv:\n+\t\tvdda_qlink_lv_ck:\n+\t\tvreg_l5a_0p875: ldo5 {\n+\t\t\tregulator-min-microvolt = <880000>;\n+\t\t\tregulator-max-microvolt = <880000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t};\n+\n+\t\tvreg_l6a_1p2: ldo6 {\n+\t\t\tregulator-min-microvolt = <1200000>;\n+\t\t\tregulator-max-microvolt = <1200000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t};\n+\n+\t\tvreg_l7a_1p8: ldo7 {\n+\t\t\tregulator-min-microvolt = <1800000>;\n+\t\t\tregulator-max-microvolt = <1800000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t};\n+\n+\t\tvddpx_10:\n+\t\tvreg_l9a_1p2: ldo9 {\n+\t\t\tregulator-min-microvolt = <1200000>;\n+\t\t\tregulator-max-microvolt = <1200000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t};\n+\n+\t\tvreg_l10a_2p5: ldo10 {\n+\t\t\tregulator-min-microvolt = <2504000>;\n+\t\t\tregulator-max-microvolt = <2960000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t};\n+\n+\t\tvreg_l11a_0p8: ldo11 {\n+\t\t\tregulator-min-microvolt = <800000>;\n+\t\t\tregulator-max-microvolt = <800000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t};\n+\n+\t\tvdd_qfprom:\n+\t\tvdd_qfprom_sp:\n+\t\tvdda_apc_cs_1p8:\n+\t\tvdda_gfx_cs_1p8:\n+\t\tvdda_usb_hs_1p8:\n+\t\tvdda_qrefs_vref_1p8:\n+\t\tvddpx_10_a:\n+\t\tvreg_l12a_1p8: ldo12 {\n+\t\t\tregulator-min-microvolt = <1800000>;\n+\t\t\tregulator-max-microvolt = <1800000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t};\n+\n+\t\tvreg_l13a_2p7: ldo13 {\n+\t\t\tregulator-min-microvolt = <2704000>;\n+\t\t\tregulator-max-microvolt = <2704000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t};\n+\n+\t\tvreg_l14a_1p8: ldo14 {\n+\t\t\tregulator-min-microvolt = <1800000>;\n+\t\t\tregulator-max-microvolt = <1880000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t};\n+\n+\t\tvreg_l15a_1p7: ldo15 {\n+\t\t\tregulator-min-microvolt = <1704000>;\n+\t\t\tregulator-max-microvolt = <1704000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t};\n+\n+\t\tvreg_l16a_2p7: ldo16 {\n+\t\t\tregulator-min-microvolt = <2704000>;\n+\t\t\tregulator-max-microvolt = <2960000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t};\n+\n+\t\tvreg_l17a_3p0: ldo17 {\n+\t\t\tregulator-min-microvolt = <2856000>;\n+\t\t\tregulator-max-microvolt = <3008000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t};\n+\t};\n+\n+\tpm8150l-rpmh-regulators {\n+\t\tcompatible = \"qcom,pm8150l-rpmh-regulators\";\n+\t\tqcom,pmic-id = \"c\";\n+\n+\t\tvdd-s1-supply = <&vph_pwr>;\n+\t\tvdd-s2-supply = <&vph_pwr>;\n+\t\tvdd-s3-supply = <&vph_pwr>;\n+\t\tvdd-s4-supply = <&vph_pwr>;\n+\t\tvdd-s5-supply = <&vph_pwr>;\n+\t\tvdd-s6-supply = <&vph_pwr>;\n+\t\tvdd-s7-supply = <&vph_pwr>;\n+\t\tvdd-s8-supply = <&vph_pwr>;\n+\n+\t\tvdd-l1-l8-supply = <&vreg_s4a_1p8>;\n+\t\tvdd-l2-l3-supply = <&vreg_s8c_1p3>;\n+\t\tvdd-l4-l5-l6-supply = <&vreg_bob>;\n+\t\tvdd-l7-l11-supply = <&vreg_bob>;\n+\t\tvdd-l9-l10-supply = <&vreg_bob>;\n+\n+\t\tvdd-bob-supply = <&vph_pwr>;\n+\t\tvdd-flash-supply = <&vreg_bob>;\n+\t\tvdd-rgb-supply = <&vreg_bob>;\n+\n+\t\tvreg_bob: bob {\n+\t\t\tregulator-min-microvolt = <3008000>;\n+\t\t\tregulator-max-microvolt = <4000000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;\n+\t\t\tregulator-allow-bypass;\n+\t\t};\n+\n+\t\tvreg_s8c_1p3: smps8 {\n+\t\t\tregulator-min-microvolt = <1352000>;\n+\t\t\tregulator-max-microvolt = <1352000>;\n+\t\t};\n+\n+\t\tvreg_l1c_1p8: ldo1 {\n+\t\t\tregulator-min-microvolt = <1800000>;\n+\t\t\tregulator-max-microvolt = <1800000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t};\n+\n+\t\tvdda_wcss_adcdac_1:\n+\t\tvdda_wcss_adcdac_22:\n+\t\tvreg_l2c_1p3: ldo2 {\n+\t\t\tregulator-min-microvolt = <1304000>;\n+\t\t\tregulator-max-microvolt = <1304000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t};\n+\n+\t\tvdda_hv_ebi0:\n+\t\tvdda_hv_ebi1:\n+\t\tvdda_hv_ebi2:\n+\t\tvdda_hv_ebi3:\n+\t\tvdda_hv_refgen0:\n+\t\tvdda_qlink_hv_ck:\n+\t\tvreg_l3c_1p2: ldo3 {\n+\t\t\tregulator-min-microvolt = <1200000>;\n+\t\t\tregulator-max-microvolt = <1200000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t};\n+\n+\t\tvddpx_5:\n+\t\tvreg_l4c_1p8: ldo4 {\n+\t\t\tregulator-min-microvolt = <1704000>;\n+\t\t\tregulator-max-microvolt = <2928000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t};\n+\n+\t\tvddpx_6:\n+\t\tvreg_l5c_1p8: ldo5 {\n+\t\t\tregulator-min-microvolt = <1704000>;\n+\t\t\tregulator-max-microvolt = <2928000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t};\n+\n+\t\tvddpx_2:\n+\t\tvreg_l6c_2p9: ldo6 {\n+\t\t\tregulator-min-microvolt = <1800000>;\n+\t\t\tregulator-max-microvolt = <2960000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t};\n+\n+\t\tvreg_l7c_3p0: ldo7 {\n+\t\t\tregulator-min-microvolt = <2856000>;\n+\t\t\tregulator-max-microvolt = <3104000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t};\n+\n+\t\tvreg_l8c_1p8: ldo8 {\n+\t\t\tregulator-min-microvolt = <1800000>;\n+\t\t\tregulator-max-microvolt = <1800000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t};\n+\n+\t\tvreg_l9c_2p9: ldo9 {\n+\t\t\tregulator-min-microvolt = <2704000>;\n+\t\t\tregulator-max-microvolt = <2960000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t};\n+\n+\t\tvreg_l10c_3p3: ldo10 {\n+\t\t\tregulator-min-microvolt = <3000000>;\n+\t\t\tregulator-max-microvolt = <3312000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t};\n+\n+\t\tvreg_l11c_3p3: ldo11 {\n+\t\t\tregulator-min-microvolt = <3000000>;\n+\t\t\tregulator-max-microvolt = <3312000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t};\n+\t};\n+\n+\tpm8009-rpmh-regulators {\n+\t\tcompatible = \"qcom,pm8009-rpmh-regulators\";\n+\t\tqcom,pmic-id = \"f\";\n+\n+\t\tvdd-s1-supply = <&vph_pwr>;\n+\t\tvdd-s2-supply = <&vreg_bob>;\n+\n+\t\tvdd-l2-supply = <&vreg_s8c_1p3>;\n+\t\tvdd-l5-l6-supply = <&vreg_bob>;\n+\n+\t\tvreg_l2f_1p2: ldo2 {\n+\t\t\tregulator-min-microvolt = <1200000>;\n+\t\t\tregulator-max-microvolt = <1200000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t};\n+\n+\t\tvreg_l5f_2p85: ldo5 {\n+\t\t\tregulator-min-microvolt = <2800000>;\n+\t\t\tregulator-max-microvolt = <2800000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t};\n+\n+\t\tvreg_l6f_2p85: ldo6 {\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t\tregulator-min-microvolt = <2856000>;\n+\t\t\tregulator-max-microvolt = <2856000>;\n+\t\t};\n+\t};\n+};\n+\n+&qupv3_id_1 {\n+\tstatus = \"okay\";\n+};\n+\n+&pon {\n+\tpwrkey {\n+\t\tstatus = \"okay\";\n+\t};\n+\n+\tresin {\n+\t\tcompatible = \"qcom,pm8941-resin\";\n+\t\tinterrupts = <0x0 0x8 0x1 IRQ_TYPE_EDGE_BOTH>;\n+\t\tdebounce = <15625>;\n+\t\tbias-pull-up;\n+\t\tlinux,code = <KEY_VOLUMEDOWN>;\n+\t};\n+};\n+\n+&remoteproc_adsp {\n+\tstatus = \"disabled\";\n+};\n+\n+&remoteproc_cdsp {\n+\tstatus = \"disabled\";\n+};\n+\n+&remoteproc_slpi {\n+\tstatus = \"disabled\";\n+};\n+\n+&remoteproc_mpss {\n+\tstatus = \"okay\";\n+\tfirmware-name = \"qcom/sm8150/oneplus7/modem.mdt\";\n+};\n+\n+// Some of these might be guacamole specific\n+&tlmm {\n+\tgpio-reserved-ranges = <0 4>, <126 4>;\n+\n+\ttp_irq_active: tp-irq-active {\n+\t\tmux {\n+\t\t\tpins = \"gpio122\";\n+\t\t\tfunction = \"gpio\";\n+\t\t};\n+\n+\t\tconfig {\n+\t\t\tpins = \"gpio122\";\n+\t\t\tdrive-strength = <0x08>;\n+\t\t\tbias-disable;\n+\t\t\tinput-enable;\n+\t\t};\n+\t};\n+\n+\ttp_rst_active: tp-rst-active {\n+\t\tmux {\n+\t\t\tpins = \"gpio54\";\n+\t\t\tfunction = \"gpio\";\n+\t\t};\n+\n+\t\tconfig {\n+\t\t\tpins = \"gpio54\";\n+\t\t\tdrive-strength = <0x08>;\n+\t\t\tbias-disable;\n+\t\t};\n+\t};\n+\n+\ttp_1v8_active: tp-1v8-active {\n+\t\tmux {\n+\t\t\tpins = \"gpio119\";\n+\t\t\tfunction = \"gpio\";\n+\t\t};\n+\n+\t\tconfig {\n+\t\t\tpins = \"gpio119\";\n+\t\t\tdrive-strength = <0x08>;\n+\t\t\tbias-pull-up;\n+\t\t};\n+\t};\n+};\n+\n+&ufs_mem_hc {\n+\tstatus = \"okay\";\n+\n+\treset-gpios = <&tlmm 175 GPIO_ACTIVE_LOW>;\n+\n+\tvcc-supply = <&vreg_l10a_2p5>;\n+\tvcc-max-microamp = <750000>;\n+\tvccq-supply = <&vreg_l9a_1p2>;\n+\tvccq-max-microamp = <700000>;\n+\tvccq2-supply = <&vreg_s4a_1p8>;\n+\tvccq2-max-microamp = <750000>;\n+};\n+\n+&ufs_mem_phy {\n+\tstatus = \"okay\";\n+\n+\tvdda-phy-supply = <&vdda_ufs_2ln_core_1>;\n+\tvdda-max-microamp = <90200>;\n+\tvdda-pll-supply = <&vreg_l3c_1p2>;\n+\tvdda-pll-max-microamp = <19000>;\n+};\n+\n+&usb_1_hsphy {\n+\tstatus = \"okay\";\n+\tvdda-pll-supply = <&vdd_usb_hs_core>;\n+\tvdda33-supply = <&vdda_usb_hs_3p1>;\n+\tvdda18-supply = <&vdda_usb_hs_1p8>;\n+};\n+\n+&usb_1_qmpphy {\n+\tstatus = \"okay\";\n+\tvdda-phy-supply = <&vreg_l3c_1p2>;\n+\tvdda-pll-supply = <&vdda_usb_ss_dp_core_1>;\n+};\n+\n+&usb_1 {\n+\tstatus = \"okay\";\n+};\n+\n+&usb_1_dwc3 {\n+\tdr_mode = \"peripheral\";\n+};\n+\n+&wifi {\n+\tstatus = \"okay\";\n+};\ndiff --git a/dts/upstream/src/arm64/qcom/sm8150-oneplus-guacamole.dts b/dts/upstream/src/arm64/qcom/sm8150-oneplus-guacamole.dts\nnew file mode 100644\nindex 00000000000..bf4b540d36a\n--- /dev/null\n+++ b/dts/upstream/src/arm64/qcom/sm8150-oneplus-guacamole.dts\n@@ -0,0 +1,69 @@\n+// SPDX-License-Identifier: BSD-3-Clause\n+/*\n+ * Devicetree for the OnePlus 7 Pro. This device uses a samsung touch driver\n+ * and has a 1440p panel but is otherwise similar to the rest of the series.\n+ *\n+ * Copyright (c) 2021, Caleb Connolly <caleb@connolly.tech>\n+ */\n+\n+/dts-v1/;\n+\n+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>\n+#include <dt-bindings/gpio/gpio.h>\n+#include \"sm8150-oneplus-common.dtsi\"\n+\n+/ {\n+\tmodel = \"OnePlus 7 Pro\";\n+\tcompatible = \"oneplus,guacamole\", \"oneplus,oneplus7\", \"qcom,sm8150\";\n+\n+\taliases {\n+\t\tdisplay0 = &framebuffer0;\n+\t};\n+\n+\tchosen {\n+\t\t#address-cells = <2>;\n+\t\t#size-cells = <2>;\n+\t\tranges;\n+\t\tstdout-path = \"display0\";\n+\n+\t\t/*\n+\t\t * hack: Use framebuffer setup by the bootloader for simplefb.\n+\t\t * the address is taken from the bootloader config (strings xbl.img | grep \"Display Reserved\")\n+\t\t */\n+\t\tframebuffer0: framebuffer@9C000000 {\n+\t\t\tcompatible = \"simple-framebuffer\";\n+\t\t\treg = <0 0x9C000000 0 (1440 * 3120 * 4)>;\n+\t\t\twidth = <1440>;\n+\t\t\theight = <3120>;\n+\t\t\tstride = <(1440 * 4)>;\n+\t\t\tformat = \"a8r8g8b8\";\n+\t\t\tstatus = \"okay\";\n+\n+\t\t};\n+\t};\n+\n+\treserved-memory {\n+\t// hack: Bootloader framebuffer memory region\n+\t\tfb_mem: memory@a1a10000 {\n+\t\t\tcompatible = \"removed-dma-pool\";\n+\t\t\tno-map;\n+\t\t\treg = <0 0x9C000000 0 (1440 * 3120 * 4)>;\n+\t\t};\n+\t};\n+};\n+\n+&i2c17 {\n+\tstatus = \"okay\";\n+\tclock-frequency = <400000>;\n+\n+\ttouchscreen@48 {\n+\t\tcompatible = \"samsung,s6sy761\";\n+\t\tstatus = \"okay\";\n+\t\treg = <0x48>;\n+\t\tinterrupt-parent = <&tlmm>;\n+\t\tinterrupts = <122 0x2008>;\n+\t\tvdd-supply = <&vreg_l17a_3p0>;\n+\n+\t\tpinctrl-names = \"default\";\n+\t\tpinctrl-0 = <&tp_irq_active &tp_rst_active &tp_1v8_active>;\n+\t};\n+};\ndiff --git a/dts/upstream/src/arm64/qcom/sm8150-oneplus-hotdogb.dts b/dts/upstream/src/arm64/qcom/sm8150-oneplus-hotdogb.dts\nnew file mode 100644\nindex 00000000000..7ba966a838c\n--- /dev/null\n+++ b/dts/upstream/src/arm64/qcom/sm8150-oneplus-hotdogb.dts\n@@ -0,0 +1,64 @@\n+// SPDX-License-Identifier: BSD-3-Clause\n+/*\n+ * Copyright (c) 2020, The Linux Foundation. All rights reserved.\n+ */\n+\n+/dts-v1/;\n+\n+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>\n+#include <dt-bindings/gpio/gpio.h>\n+#include \"sm8150-oneplus-common.dtsi\"\n+\n+/ {\n+\tmodel = \"OnePlus 7T\";\n+\tcompatible = \"oneplus,hotdobg\", \"oneplus,oneplus7\", \"qcom,sm8150\";\n+\n+\taliases {\n+\t\tdisplay0 = &framebuffer0;\n+\t};\n+\n+\tchosen {\n+\t\t#address-cells = <2>;\n+\t#size-cells = <2>;\n+\tranges;\n+\t\tstdout-path = \"display0\";\n+\n+\t\t/*\n+\t * hack: Use framebuffer setup by the bootloader for simplefb.\n+\t * the address is taken from the bootloader config (strings xbl.img | grep \"Display Reserved\")\n+\t */\n+\tframebuffer0: framebuffer@9C000000 {\n+\t    compatible = \"simple-framebuffer\";\n+\t    reg = <0 0x9C000000 0 (1080 * 2400 * 4)>;\n+\t    width = <1080>;\n+\t    height = <2400>;\n+\t    stride = <(1080 * 4)>;\n+\t    format = \"a8r8g8b8\";\n+\t    status = \"okay\";\n+\n+\t};\n+\t};\n+\n+\treserved-memory {\n+\t// hack: Bootloader framebuffer memory region\n+\tfb_mem: memory@a1a10000 {\n+\t    compatible = \"removed-dma-pool\";\n+\t    no-map;\n+\t    reg = <0 0x9C000000 0 (1080 * 2400 * 4)>;\n+\t};\n+\n+\t\tremoved_region: removed-region@89d00000 {\n+\t\t\treg = <0x0 0x89d00000 0x0 0x1a00000>;\n+\t\t\tno-map;\n+\t\t};\n+\t\tramoops: ramoops@0xA9800000 {\n+\t\t\tcompatible = \"ramoops\";\n+\t\t\treg = <0 0xA9800000 0 0x400000>;\n+\t\t\trecord-size = <0x40000>;\n+\t\t\tconsole-size = <0x40000>;\n+\t\t\tftrace-size = <0x40000>;\n+\t\t\tpmsg-size = <0x200000>;\n+\t\t\tdevinfo-size = <0x1000>;\n+\t\t\tecc-size = <0x0>;\n+\t\t};\n+\t};\n+};\ndiff --git a/dts/upstream/src/arm64/qcom/sm8150-wcd9340.dtsi b/dts/upstream/src/arm64/qcom/sm8150-wcd9340.dtsi\nnew file mode 100644\nindex 00000000000..cde7e55bf84\n--- /dev/null\n+++ b/dts/upstream/src/arm64/qcom/sm8150-wcd9340.dtsi\n@@ -0,0 +1,86 @@\n+// SPDX-License-Identifier: GPL-2.0\n+/*\n+ * SM8150 SoC device tree source\n+ *\n+ * Copyright (c) 2023, The Linux Foundation. All rights reserved.\n+ */\n+\n+&slim {\n+\tstatus = \"okay\";\n+\n+\tslim@1 {\n+\t\treg = <1>;\n+\t\t#address-cells = <2>;\n+\t\t#size-cells = <0>;\n+\n+\t\twcd9340_ifd: ifd@0,0 {\n+\t\t\tcompatible = \"slim217,250\";\n+\t\t\treg = <0 0>;\n+\t\t};\n+\n+\t\twcd9340: codec@1,0 {\n+\t\t\tcompatible = \"slim217,250\";\n+\t\t\treg = <1 0>;\n+\t\t\tslim-ifc-dev = <&wcd9340_ifd>;\n+\n+\t\t\t#sound-dai-cells = <1>;\n+\n+\t\t\tinterrupts-extended = <&tlmm 123 IRQ_TYPE_LEVEL_HIGH>;\n+\t\t\tinterrupt-controller;\n+\t\t\t#interrupt-cells = <1>;\n+\n+\t\t\tclock-names = \"extclk\";\n+\t\t\tclocks = <&rpmhcc RPMH_LN_BB_CLK2>;\n+\n+\t\t\t#clock-cells = <0>;\n+\t\t\tclock-frequency = <9600000>;\n+\t\t\tclock-output-names = \"mclk\";\n+\n+\t\t\tpinctrl-0 = <&wcd_intr_default>;\n+\t\t\tpinctrl-names = \"default\";\n+\n+\t\t\tqcom,micbias1-microvolt = <1800000>;\n+\t\t\tqcom,micbias2-microvolt = <1800000>;\n+\t\t\tqcom,micbias3-microvolt = <1800000>;\n+\t\t\tqcom,micbias4-microvolt = <1800000>;\n+\n+\t\t\t#address-cells = <1>;\n+\t\t\t#size-cells = <1>;\n+\n+\t\t\twcdgpio: gpio-controller@42 {\n+\t\t\t\tcompatible = \"qcom,wcd9340-gpio\";\n+\t\t\t\tgpio-controller;\n+\t\t\t\t#gpio-cells = <2>;\n+\t\t\t\treg = <0x42 0x2>;\n+\t\t\t};\n+\n+\t\t\tswm: swm@c85 {\n+\t\t\t\tcompatible = \"qcom,soundwire-v1.3.0\";\n+\t\t\t\treg = <0xc85 0x40>;\n+\t\t\t\tinterrupts-extended = <&wcd9340 20>;\n+\n+\t\t\t\tqcom,dout-ports = <6>;\n+\t\t\t\tqcom,din-ports = <2>;\n+\t\t\t\tqcom,ports-sinterval-low = /bits/ 8  <0x07 0x1f 0x3f 0x7 0x1f 0x3f 0x0f 0x0f>;\n+\t\t\t\tqcom,ports-offset1 = /bits/ 8 <0x01 0x02 0x0c 0x6 0x12 0x0d 0x07 0x0a>;\n+\t\t\t\tqcom,ports-offset2 = /bits/ 8 <0x00 0x00 0x1f 0x00 0x00 0x1f 0x00 0x00>;\n+\n+\t\t\t\t#sound-dai-cells = <1>;\n+\t\t\t\tclocks = <&wcd9340>;\n+\t\t\t\tclock-names = \"iface\";\n+\t\t\t\t#address-cells = <2>;\n+\t\t\t\t#size-cells = <0>;\n+\t\t\t};\n+\t\t};\n+\t};\n+};\n+\n+&tlmm {\n+\twcd_intr_default: wcd-intr-default-state {\n+\t\tpins = \"gpio123\";\n+\t\tfunction = \"gpio\";\n+\t\tdrive-strength = <2>;\n+\t\tbias-pull-down;\n+\t\tinput-enable;\n+\t};\n+};\ndiff --git a/dts/upstream/src/arm64/qcom/sm8150-xiaomi-cepheus.dts b/dts/upstream/src/arm64/qcom/sm8150-xiaomi-cepheus.dts\nnew file mode 100644\nindex 00000000000..422119fbd05\n--- /dev/null\n+++ b/dts/upstream/src/arm64/qcom/sm8150-xiaomi-cepheus.dts\n@@ -0,0 +1,575 @@\n+// SPDX-License-Identifier: BSD-3-Clause\n+/*\n+ * Copyright (c) 2021, Alexey Minnekhanov <alexeymin@postmarketos.org>\n+ */\n+\n+/dts-v1/;\n+\n+#include <dt-bindings/gpio/gpio.h>\n+#include <dt-bindings/input/input.h>\n+#include <dt-bindings/input/gpio-keys.h>\n+#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>\n+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>\n+#include \"sm8150.dtsi\"\n+#include \"pm8150.dtsi\"\n+#include \"pm8150b.dtsi\"\n+#include \"pm8150l.dtsi\"\n+\n+/*\n+ * Rewrite reserved memory maps inherited from sm8150.dtsi to match the ones\n+ * used on xiaomi-cepheus.\n+ * Note: this list is ordered by its memory address in sm8150.dtsi.\n+ */\n+/delete-node/ &tz_mem;      /* same address but larger, no place for rmtfs_mem! */\n+/delete-node/ &rmtfs_mem;   /* moved to completely different address */\n+/delete-node/ &adsp_mem;    /* same start address, but larger size */\n+/delete-node/ &mpss_mem;    /* same size, shifted higher, due to larger adsp_mem */\n+/delete-node/ &venus_mem;   /* same size, shifted higher */\n+/delete-node/ &slpi_mem;    /* same size, shifted higher */\n+/delete-node/ &ipa_fw_mem;  /* same size, shifted higher */\n+/delete-node/ &ipa_gsi_mem; /* same size, shifted higher */\n+/delete-node/ &gpu_mem;     /* same size, shifted higher */\n+/delete-node/ &spss_mem;    /* same size, shifted higher */\n+/delete-node/ &cdsp_mem;    /* same size, shifted higher */\n+\n+/ {\n+\tmodel = \"Xiaomi Mi 9\";\n+\tcompatible = \"xiaomi,cepheus\", \"qcom,sm8150\";\n+\n+\taliases {\n+\t\tserial0 = &uart2;\n+\t\tdisplay0 = &framebuffer;\n+\t};\n+\n+\tchosen {\n+\t\t#address-cells = <2>;\n+\t\t#size-cells = <2>;\n+\t\tranges;\n+\n+\t\tstdout-path = \"serial0:115200n8\";\n+\n+\t\tframebuffer: framebuffer@9c000000 {\n+\t\t\tcompatible = \"simple-framebuffer\";\n+\t\t\treg = <0 0x9c000000 0 0x2300000>;\n+\t\t\twidth = <1080>;\n+\t\t\theight = <2340>;\n+\t\t\tstride = <(1080 * 4)>;\n+\t\t\tformat = \"a8r8g8b8\";\n+\t\t\t/*\n+\t\t\t * That's (going to be) a lot of clocks, but it's necessary due\n+\t\t\t * to unused clk cleanup & no panel driver yet (& no dispcc either)..\n+\t\t\t */\n+\t\t\tclocks = <&gcc GCC_DISP_HF_AXI_CLK>,\n+\t\t\t\t <&gcc GCC_DISP_SF_AXI_CLK>;\n+\t\t};\n+\t};\n+\n+\tgpio_keys {\n+\t\tcompatible = \"gpio-keys\";\n+\t\tpinctrl-names = \"default\";\n+\t\tpinctrl-0 = <&ai_key_pin_a &vol_up_pin_a>;\n+\n+\t\tvol_up {\n+\t\t\tlabel = \"volume_up\";\n+\t\t\tgpios = <&pm8150_gpios 6 GPIO_ACTIVE_LOW>;\n+\t\t\tlinux,input-type = <EV_KEY>;\n+\t\t\tlinux,code = <KEY_VOLUMEUP>;\n+\t\t\twakeup-source;\n+\t\t\tdebounce-interval = <15>;\n+\t\t};\n+\n+\t\tai_key {\n+\t\t\tlabel = \"ai_key\";\n+\t\t\tgpios = <&tlmm 97 GPIO_ACTIVE_LOW>;\n+\t\t\tlinux,input-type = <EV_KEY>;\n+\t\t\tlinux,code = <KEY_HOMEPAGE>; /* no AI key in Linux */\n+\t\t\twakeup-source;\n+\t\t\tdebounce-interval = <39>;\n+\t\t};\n+\t};\n+\n+\treserved-memory {\n+\t\ttz_mem: memory@86200000 {\n+\t\t\tno-map;\n+\t\t\treg = <0x0 0x86200000 0x0 0x5500000>;\n+\t\t\tphandle = <0x594>;\n+\t\t};\n+\n+\t\tadsp_mem: memory@8be00000 {\n+\t\t\tno-map;\n+\t\t\treg = <0x0 0x8be00000 0x0 0x2200000>;\n+\t\t};\n+\n+\t\tmpss_mem: memory@8e000000 {\n+\t\t\tno-map;\n+\t\t\treg = <0x0 0x8e000000 0x0 0x9600000>;\n+\t\t};\n+\n+\t\tvenus_mem: memory@97600000 {\n+\t\t\tno-map;\n+\t\t\treg = <0x0 0x97600000 0x0 0x500000>;\n+\t\t};\n+\n+\t\tslpi_mem: memory@97b00000 {\n+\t\t\tno-map;\n+\t\t\treg = <0x0 0x97b00000 0x0 0x1400000>;\n+\t\t};\n+\n+\t\tipa_fw_mem: memory@98f00000 {\n+\t\t\tno-map;\n+\t\t\treg = <0x0 0x98f00000 0x0 0x10000>;\n+\t\t};\n+\n+\t\tipa_gsi_mem: memory@98f10000 {\n+\t\t\tno-map;\n+\t\t\treg = <0x0 0x98f10000 0x0 0x5000>;\n+\t\t};\n+\n+\t\tgpu_mem: memory@98f15000 {\n+\t\t\tno-map;\n+\t\t\treg = <0x0 0x98f15000 0x0 0x2000>;\n+\t\t};\n+\n+\t\tspss_mem: memory@99000000 {\n+\t\t\tno-map;\n+\t\t\treg = <0x0 0x99000000 0x0 0x100000>;\n+\t\t};\n+\n+\t\tcdsp_mem: memory@99100000 {\n+\t\t\tno-map;\n+\t\t\treg = <0x0 0x99100000 0x0 0x1400000>;\n+\t\t};\n+\n+\t\tcont_splash_mem: memory@9c000000 {\n+\t\t\treg = <0x0 0x9c000000 0x0 0x2400000>;\n+\t\t\tno-map;\n+\t\t};\n+\n+\t\tcdsp_sec_mem: memory@a4c00000 {\n+\t\t\treg = <0x0 0xa4c00000 0x0 0x3c00000>;\n+\t\t\tno-map;\n+\t\t};\n+\n+\t\tramoops@b0000000 {\n+\t\t\tcompatible = \"ramoops\";\n+\t\t\treg = <0x0 0xb0000000 0x0 0x400000>;\n+\t\t\tconsole-size = <0x200000>;\n+\t\t\tecc-size = <0>;\n+\t\t\tftrace-size = <0>;\n+\t\t\tpmsg-size = <0x200000>;\n+\t\t\trecord-size = <0>;\n+\t\t};\n+\n+\t\t/* Downstream dynamically allocates rmtfs_mem region using\n+\t\t * dma_alloc_coherent and adds 4k guard pages before and after\n+\t\t * it to workaround some \"XPU limitation\". */\n+\t\t/* rmtfs_lower_guard */\n+\t\tmemory@f4100000 {\n+\t\t\tno-map;\n+\t\t\treg = <0x0 0xf4100000 0x0 0x1000>;\n+\t\t};\n+\n+\t\trmtfs_mem: memory@f4101000 {\n+\t\t\tcompatible = \"qcom,rmtfs-mem\";\n+\t\t\treg = <0x0 0xf4101000 0x0 0x300000>;\n+\t\t\tno-map;\n+\n+\t\t\tqcom,client-id = <1>;\n+\t\t\tqcom,vmid = <15>;\n+\t\t};\n+\n+\t\t/* rmtfs_upper_guard */\n+\t\tmemory@f4401000 {\n+\t\t\tno-map;\n+\t\t\treg = <0x0 0xf4401000 0x0 0x1000>;\n+\t\t};\n+\t};\n+\n+\tvdd_boost_vreg: vdd-boost-regulator {\n+\t\tcompatible = \"regulator-fixed\";\n+\t\tregulator-name = \"vdd_boost_vreg\";\n+\t\tstartup-delay-us = <4000>;\n+\t\tenable-active-high;\n+\t\tregulator-always-on;\n+\t\tgpio = <&pm8150b_gpios 5 GPIO_ACTIVE_HIGH>;\n+\t\tpinctrl-names = \"default\";\n+\t\tpinctrl-0 = <&vdd_boost_en_pin>;\n+\t};\n+\n+\tvph_pwr: vph-pwr-regulator {\n+\t\tcompatible = \"regulator-fixed\";\n+\t\tregulator-name = \"vph_pwr\";\n+\t\tregulator-min-microvolt = <3700000>;\n+\t\tregulator-max-microvolt = <3700000>;\n+\t};\n+\n+\t/* S4 is modeled as a fixed regulator in vendor sources */\n+\tvreg_s4a_1p8: pm8150-s4-regulator {\n+\t\tcompatible = \"regulator-fixed\";\n+\t\tregulator-name = \"vreg_s4a_1p8\";\n+\n+\t\tregulator-min-microvolt = <1800000>;\n+\t\tregulator-max-microvolt = <1800000>;\n+\n+\t\tregulator-always-on;\n+\t\tregulator-boot-on;\n+\n+\t\tvin-supply = <&vph_pwr>;\n+\t};\n+};\n+\n+&apps_rsc {\n+\tpm8150-rpmh-regulators {\n+\t\tcompatible = \"qcom,pm8150-rpmh-regulators\";\n+\t\tqcom,pmic-id = \"a\";\n+\n+\t\tvdd-s1-supply = <&vph_pwr>;\n+\t\tvdd-s2-supply = <&vph_pwr>;\n+\t\tvdd-s3-supply = <&vph_pwr>;\n+\t\tvdd-s4-supply = <&vph_pwr>;\n+\t\tvdd-s5-supply = <&vph_pwr>;\n+\t\tvdd-s6-supply = <&vph_pwr>;\n+\t\tvdd-s7-supply = <&vph_pwr>;\n+\t\tvdd-s8-supply = <&vph_pwr>;\n+\t\tvdd-s9-supply = <&vph_pwr>;\n+\t\tvdd-s10-supply = <&vph_pwr>;\n+\n+\t\tvdd-l1-l8-l11-supply = <&vreg_s6a_0p9>;\n+\t\tvdd-l2-l10-supply = <&vreg_bob>;\n+\t\tvdd-l3-l4-l5-l18-supply = <&vreg_s6a_0p9>;\n+\t\tvdd-l6-l9-supply = <&vreg_s8c_1p3>;\n+\t\tvdd-l7-l12-l14-l15-supply = <&vreg_s5a_1p9>;\n+\t\tvdd-l13-l16-l17-supply = <&vreg_bob>;\n+\n+\t\tvreg_s2a_0p6: smps2 {\n+\t\t\tregulator-min-microvolt = <600000>;\n+\t\t\tregulator-max-microvolt = <600000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t\tregulator-name = \"pm8150_s2a_0p6\";\n+\t\t};\n+\n+\t\tvreg_s5a_1p9: smps5 {\n+\t\t\tregulator-min-microvolt = <1904000>;\n+\t\t\tregulator-max-microvolt = <2040000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t\tregulator-name = \"pm8150_s5a_0p6\";\n+\t\t};\n+\n+\t\tvreg_s6a_0p9: smps6 {\n+\t\t\tregulator-min-microvolt = <920000>;\n+\t\t\tregulator-max-microvolt = <1128000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t\tregulator-name = \"pm8150_s6a_0p9\";\n+\t\t};\n+\n+\t\tvreg_l1a_0p75: ldo1 {\n+\t\t\tregulator-min-microvolt = <752000>;\n+\t\t\tregulator-max-microvolt = <752000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t\tregulator-name = \"pm8150_l1a_0p75\";\n+\t\t};\n+\n+\t\tvreg_l2a_3p1: ldo2 {\n+\t\t\tregulator-min-microvolt = <3072000>;\n+\t\t\tregulator-max-microvolt = <3072000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t\tregulator-name = \"pm8150_l2a_3p1\";\n+\t\t};\n+\n+\t\tvreg_l3a_0p8: ldo3 {\n+\t\t\tregulator-min-microvolt = <480000>;\n+\t\t\tregulator-max-microvolt = <932000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t\tregulator-name = \"pm8150_l3a_0p8\";\n+\t\t};\n+\n+\t\tvreg_l5a_0p875: ldo5 {\n+\t\t\tregulator-min-microvolt = <880000>;\n+\t\t\tregulator-max-microvolt = <880000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t\tregulator-name = \"pm8150_l5a_0p875\";\n+\t\t};\n+\n+\t\tvreg_l6a_1p2: ldo6 {\n+\t\t\tregulator-min-microvolt = <1200000>;\n+\t\t\tregulator-max-microvolt = <1200000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t\tregulator-name = \"pm8150_l6a_1p2\";\n+\t\t};\n+\n+\t\tvreg_l7a_1p8: ldo7 {\n+\t\t\tregulator-min-microvolt = <1800000>;\n+\t\t\tregulator-max-microvolt = <1800000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t\tregulator-name = \"pm8150_l7a_1p8\";\n+\t\t};\n+\n+\t\tvreg_l9a_1p2: ldo9 {\n+\t\t\tregulator-min-microvolt = <1200000>;\n+\t\t\tregulator-max-microvolt = <1200000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t\tregulator-name = \"pm8150_l9a_1p2\";\n+\t\t};\n+\n+\t\tvreg_l10a_2p5: ldo10 {\n+\t\t\tregulator-min-microvolt = <2504000>;\n+\t\t\tregulator-max-microvolt = <2960000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t\tregulator-name = \"pm8150_l10a_2p5\";\n+\t\t};\n+\n+\t\tvreg_l11a_0p8: ldo11 {\n+\t\t\tregulator-min-microvolt = <800000>;\n+\t\t\tregulator-max-microvolt = <800000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t\tregulator-name = \"pm8150_l11a_0p8\";\n+\t\t};\n+\n+\t\tvreg_l12a_1p8: ldo12 {\n+\t\t\tregulator-min-microvolt = <1800000>;\n+\t\t\tregulator-max-microvolt = <1800000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t\tregulator-name = \"pm8150_l12a_1p8\";\n+\t\t};\n+\n+\t\t/* L13 is unused, but min/max are 3000000 for it. */\n+\n+\t\tvreg_l14a_1p8: ldo14 {\n+\t\t\tregulator-min-microvolt = <1800000>;\n+\t\t\tregulator-max-microvolt = <1800000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t\tregulator-name = \"pm8150_l14a_1p8\";\n+\t\t};\n+\n+\t\tvreg_l15a_1p7: ldo15 {\n+\t\t\tregulator-min-microvolt = <1704000>;\n+\t\t\tregulator-max-microvolt = <1704000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t\tregulator-name = \"pm8150_l15a_1p7\";\n+\t\t};\n+\n+\t\tvreg_l16a_2p7: ldo16 {\n+\t\t\tregulator-min-microvolt = <2704000>;\n+\t\t\tregulator-max-microvolt = <2960000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t\tregulator-name = \"pm8150_l16a_2p7\";\n+\t\t};\n+\n+\t\tvreg_l17a_3p0: ldo17 {\n+\t\t\tregulator-min-microvolt = <2856000>;\n+\t\t\tregulator-max-microvolt = <3008000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t\tregulator-name = \"pm8150_l17a_3p0\";\n+\t\t};\n+\n+\t\tvreg_l18a_0p8: ldo18 {\n+\t\t\tregulator-min-microvolt = <880000>;\n+\t\t\tregulator-max-microvolt = <912000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t\tregulator-name = \"pm8150_l18a_0p8\";\n+\t\t};\n+\t};\n+\n+\tpm8150l-rpmh-regulators {\n+\t\tcompatible = \"qcom,pm8150l-rpmh-regulators\";\n+\t\tqcom,pmic-id = \"c\";\n+\n+\t\tvdd-s1-supply = <&vph_pwr>;\n+\t\tvdd-s2-supply = <&vph_pwr>;\n+\t\tvdd-s3-supply = <&vph_pwr>;\n+\t\tvdd-s4-supply = <&vph_pwr>;\n+\t\tvdd-s5-supply = <&vph_pwr>;\n+\t\tvdd-s6-supply = <&vph_pwr>;\n+\t\tvdd-s7-supply = <&vph_pwr>;\n+\t\tvdd-s8-supply = <&vph_pwr>;\n+\n+\t\tvdd-l1-l8-supply = <&vreg_s4a_1p8>;\n+\t\tvdd-l2-l3-supply = <&vreg_s8c_1p3>;\n+\t\tvdd-l4-l5-l6-supply = <&vreg_bob>;\n+\t\tvdd-l7-l11-supply = <&vreg_bob>;\n+\t\tvdd-l9-l10-supply = <&vreg_bob>;\n+\n+\t\tvdd-bob-supply = <&vph_pwr>;\n+\t\tvdd-flash-supply = <&vreg_bob>;\n+\t\tvdd-rgb-supply = <&vreg_bob>;\n+\n+\t\tvreg_bob: bob {\n+\t\t\tregulator-min-microvolt = <3350000>;\n+\t\t\tregulator-max-microvolt = <4000000>;\n+\t\t\t/* tavil-slim-pgd will request 3300000 */\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;\n+\t\t\tregulator-allow-bypass;\n+\t\t\tregulator-name = \"pm8150l_bob\";\n+\t\t};\n+\n+\t\tvreg_s1c_1p1: smps1 {\n+\t\t\tregulator-min-microvolt = <1128000>;\n+\t\t\tregulator-max-microvolt = <1128000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t\tregulator-name = \"pm8150l_s1c_1p1\";\n+\t\t};\n+\n+\t\tvreg_s8c_1p3: smps8 {\n+\t\t\tregulator-min-microvolt = <1352000>;\n+\t\t\tregulator-max-microvolt = <1352000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t\tregulator-name = \"pm8150l_s8c_1p3\";\n+\t\t};\n+\n+\t\tvreg_l1c_1p8: ldo1 {\n+\t\t\tregulator-min-microvolt = <1800000>;\n+\t\t\tregulator-max-microvolt = <1800000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t\tregulator-name = \"pm8150l_l1c_1p8\";\n+\t\t};\n+\n+\t\tvreg_l2c_1p3: ldo2 {\n+\t\t\tregulator-min-microvolt = <1304000>;\n+\t\t\tregulator-max-microvolt = <1304000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t\tregulator-name = \"pm8150l_l2c_1p3\";\n+\t\t};\n+\n+\t\tvreg_l3c_1p2: ldo3 {\n+\t\t\tregulator-min-microvolt = <1200000>;\n+\t\t\tregulator-max-microvolt = <1200000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t\tregulator-name = \"pm8150l_l3c_1p2\";\n+\t\t};\n+\n+\t\tvreg_l4c_1p8: ldo4 {\n+\t\t\tregulator-min-microvolt = <1704000>;\n+\t\t\tregulator-max-microvolt = <2928000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t\tregulator-name = \"pm8150l_l4c_1p8\";\n+\t\t};\n+\n+\t\tvreg_l5c_1p8: ldo5 {\n+\t\t\tregulator-min-microvolt = <1704000>;\n+\t\t\tregulator-max-microvolt = <2928000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t\tregulator-name = \"pm8150l_l5c_1p8\";\n+\t\t};\n+\n+\t\tvreg_l6c_2p9: ldo6 {\n+\t\t\tregulator-min-microvolt = <1800000>;\n+\t\t\tregulator-max-microvolt = <2960000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t\tregulator-allow-set-load;\n+\t\t\tregulator-name = \"pm8150l_l6c_2p9\";\n+\t\t};\n+\n+\t\tvreg_l7c_3p0: ldo7 {\n+\t\t\tregulator-min-microvolt = <2856000>;\n+\t\t\tregulator-max-microvolt = <3104000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t\tregulator-name = \"pm8150l_l7c_3p0\";\n+\t\t};\n+\n+\t\tvreg_l8c_1p8: ldo8 {\n+\t\t\tregulator-min-microvolt = <1800000>;\n+\t\t\tregulator-max-microvolt = <1800000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t\tregulator-name = \"pm8150l_l8c_1p8\";\n+\t\t};\n+\n+\t\tvreg_l9c_2p9: ldo9 {\n+\t\t\tregulator-min-microvolt = <2704000>;\n+\t\t\tregulator-max-microvolt = <2960000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t\tregulator-allow-set-load;\n+\t\t\tregulator-name = \"pm8150l_l9c_2p9\";\n+\t\t};\n+\n+\t\tvreg_l10c_3p3: ldo10 {\n+\t\t\tregulator-min-microvolt = <3000000>;\n+\t\t\tregulator-max-microvolt = <3312000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t\tregulator-name = \"pm8150l_l10c_3p3\";\n+\t\t};\n+\n+\t\tvreg_l11c_3p3: ldo11 {\n+\t\t\tregulator-min-microvolt = <3000000>;\n+\t\t\tregulator-max-microvolt = <3312000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t\tregulator-name = \"pm8150l_l11c_3p3\";\n+\t\t};\n+\t};\n+};\n+\n+&pm8150_gpios {\n+\tvol_up_pin_a: vol-up-active {\n+\t\tpins = \"gpio6\";\n+\t\tfunction = \"normal\";\n+\t\tinput-enable;\n+\t\tbias-pull-up;\n+\t\tqcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;\n+\t};\n+};\n+\n+&pm8150b_gpios {\n+\tvdd_boost_en_pin: vdd-boost-en-pin {\n+\t\tpins = \"gpio12\";\n+\t\tfunction = \"normal\";\n+\t\toutput-low;\n+\t\tqcom,drive-strength = <PMIC_GPIO_STRENGTH_HIGH>;\n+\t};\n+};\n+\n+&pon {\n+\tmode-recovery = <0x1>;\n+\tmode-bootloader = <0x2>;\n+\tmode-rtc = <0x3>;\n+\tmode-normal = <0x20>;\n+\tmode-panic = <0x21>;\n+};\n+\n+&pon_pwrkey {\n+\tstatus = \"okay\";\n+};\n+\n+&pon_resin {\n+\tlinux,code = <KEY_VOLUMEDOWN>;\n+\tstatus = \"okay\";\n+};\n+\n+&tlmm {\n+\t/* gpios 0..3 are NFC spi, gpios 126..129 are FP spi */\n+\tgpio-reserved-ranges = <0 4>, <126 4>;\n+\n+\tai_key_pin_a: ai-key-pin-active {\n+\t\tpins = \"gpio97\";\n+\t\tfunction = \"gpio\";\n+\t\tdrive-strength = <2>;\n+\t\tbias-pull-up;\n+\t\tinput-enable;\n+\t};\n+};\n+\n+&uart2 {\n+\tstatus = \"okay\";\n+};\n+\n+&usb_1 {\n+\tstatus = \"okay\";\n+};\n+\n+&usb_1_dwc3 {\n+\tsnps,has-lpm-erratum;\n+\tsnps,hird-threshold = /bits/ 8 <0x10>;\n+\tmaximum-speed = \"high-speed\";\n+\tdr_mode = \"peripheral\";\n+};\n+\n+&usb_1_hsphy {\n+\tstatus = \"okay\";\n+\tvdda-pll-supply = <&vreg_l5a_0p875>;\n+\tvdda18-supply = <&vreg_l12a_1p8>;\n+\tvdda33-supply = <&vreg_l2a_3p1>;\n+};\n+\n+&usb_1_qmpphy {\n+\tstatus = \"okay\";\n+\tvdda-phy-supply = <&vreg_l3c_1p2>;\n+\tvdda-pll-supply = <&vreg_l5a_0p875>;\n+};\ndiff --git a/dts/upstream/src/arm64/qcom/sm8150-xiaomi-nabu.dts b/dts/upstream/src/arm64/qcom/sm8150-xiaomi-nabu.dts\nnew file mode 100644\nindex 00000000000..52bdc359f08\n--- /dev/null\n+++ b/dts/upstream/src/arm64/qcom/sm8150-xiaomi-nabu.dts\n@@ -0,0 +1,1174 @@\n+// SPDX-License-Identifier: BSD-3-Clause\n+/*\n+ * Copyright (c) 2023-2024, map220v <map220v300@gmail.com>\n+ */\n+\n+/dts-v1/;\n+\n+#include <dt-bindings/arm/qcom,ids.h>\n+#include <dt-bindings/gpio/gpio.h>\n+#include <dt-bindings/leds/common.h>\n+#include <dt-bindings/phy/phy.h>\n+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>\n+#include <dt-bindings/sound/qcom,q6asm.h>\n+#include <dt-bindings/usb/pd.h>\n+#include \"sm8150.dtsi\"\n+#include \"sm8150-wcd9340.dtsi\"\n+#include \"pm8150.dtsi\"\n+#include \"pm8150b.dtsi\"\n+#include \"pm8150l.dtsi\"\n+\n+/delete-node/ &tz_mem;\n+/delete-node/ &rmtfs_mem;\n+/delete-node/ &adsp_mem;\n+/delete-node/ &mpss_mem;\n+/delete-node/ &venus_mem;\n+/delete-node/ &slpi_mem;\n+/delete-node/ &ipa_fw_mem;\n+/delete-node/ &ipa_gsi_mem;\n+/delete-node/ &gpu_mem;\n+/delete-node/ &spss_mem;\n+/delete-node/ &cdsp_mem;\n+\n+/ {\n+\tmodel = \"Xiaomi Pad 5\";\n+\tcompatible = \"xiaomi,nabu\", \"qcom,sm8150\";\n+\tchassis-type = \"tablet\";\n+\tqcom,msm-id = <QCOM_ID_SM8150 0x20002>; /* SM8150 v2.2 */\n+\tqcom,board-id = <48 0>;\n+\n+\taliases {\n+\t\tserial0 = &uart2;\n+\t\thsuart0 = &uart13;\n+\t\twifi0 = &wifi;\n+\t};\n+\n+\tchosen {\n+\t\tstdout-path = \"serial0:115200n8\";\n+\t};\n+\n+\tchosen {\n+\t\t#address-cells = <2>;\n+\t\t#size-cells = <2>;\n+\t\tranges;\n+\n+\t\tframebuffer: framebuffer@9c000000 {\n+\t\t\tcompatible = \"simple-framebuffer\";\n+\t\t\treg = <0x0 0x9c000000 0x0 0x02400000>;\n+\t\t\twidth = <1600>;\n+\t\t\theight = <2560>;\n+\t\t\tstride = <(1600 * 4)>;\n+\t\t\tformat = \"a8r8g8b8\";\n+\t\t};\n+\t};\n+\n+\treserved-memory {\n+\t\t#address-cells = <2>;\n+\t\t#size-cells = <2>;\n+\t\tranges;\n+\n+\t\ttz_mem: memory@86200000 {\n+\t\t\treg = <0x0 0x86200000 0x0 0x5500000>;\n+\t\t\tno-map;\n+\t\t};\n+\n+\t\tadsp_mem: memory@8be00000 {\n+\t\t\treg = <0x0 0x8be00000 0x0 0x2200000>;\n+\t\t\tno-map;\n+\t\t};\n+\n+\t\tmpss_mem: memory@8e000000 {\n+\t\t\treg = <0x0 0x8e000000 0x0 0x9600000>;\n+\t\t\tno-map;\n+\t\t};\n+\n+\t\tvenus_mem: memory@97600000 {\n+\t\t\treg = <0x0 0x97600000 0x0 0x500000>;\n+\t\t\tno-map;\n+\t\t};\n+\n+\t\tslpi_mem: memory@97b00000 {\n+\t\t\treg = <0x0 0x97b00000 0x0 0x1400000>;\n+\t\t\tno-map;\n+\t\t};\n+\n+\t\tipa_fw_mem: memory@98f00000 {\n+\t\t\treg = <0x0 0x98f00000 0x0 0x10000>;\n+\t\t\tno-map;\n+\t\t};\n+\n+\t\tipa_gsi_mem: memory@98f10000 {\n+\t\t\treg = <0x0 0x98f10000 0x0 0x5000>;\n+\t\t\tno-map;\n+\t\t};\n+\n+\t\tgpu_mem: memory@98f15000 {\n+\t\t\treg = <0x0 0x98f15000 0x0 0x2000>;\n+\t\t\tno-map;\n+\t\t};\n+\n+\t\tspss_mem: memory@99000000 {\n+\t\t\treg = <0x0 0x99000000 0x0 0x100000>;\n+\t\t\tno-map;\n+\t\t};\n+\n+\t\tcdsp_mem: memory@99100000 {\n+\t\t\treg = <0x0 0x99100000 0x0 0x1400000>;\n+\t\t\tno-map;\n+\t\t};\n+\n+\t\tcdsp_sec_mem: memory@a4c00000 {\n+\t\t\treg = <0x0 0xa4c00000 0x0 0x3c00000>;\n+\t\t\tno-map;\n+\t\t};\n+\n+\t\tramoops@b0000000 {\n+\t\t\tcompatible = \"ramoops\";\n+\t\t\treg = <0x0 0xb0000000 0x0 0x400000>;\n+\t\t\trecord-size = <0x1000>;\n+\t\t\tconsole-size = <0x200000>;\n+\t\t\tecc-size = <16>;\n+\t\t\tno-map;\n+\t\t};\n+\n+\t\trmtfs_mem: memory@fe101000 {\n+\t\t\tcompatible = \"qcom,rmtfs-mem\";\n+\t\t\treg = <0 0xfe101000 0 0x300000>;\n+\t\t\tno-map;\n+\n+\t\t\tqcom,client-id = <1>;\n+\t\t\tqcom,vmid = <15>;\n+\t\t};\n+\t};\n+\n+\tbattery: battery {\n+\t\tcompatible = \"simple-battery\";\n+\t\tcharge-full-design-microamp-hours = <8720000>;\n+\t\tenergy-full-design-microwatt-hours = <33600000>;\n+\t\tvoltage-min-design-microvolt = <3400000>;\n+\t\tvoltage-max-design-microvolt = <4480000>;\n+\t};\n+\n+\tbl_vddpos_5p5: bl-vddpos-regulator {\n+\t\tcompatible = \"regulator-fixed\";\n+\t\tregulator-name = \"bl_vddpos_5p5\";\n+\t\tregulator-min-microvolt = <5500000>;\n+\t\tregulator-max-microvolt = <5500000>;\n+\t\tregulator-enable-ramp-delay = <233>;\n+\t\tgpio = <&tlmm 114 GPIO_ACTIVE_HIGH>;\n+\t\tenable-active-high;\n+\t\tregulator-boot-on;\n+\t};\n+\n+\tbl_vddneg_5p5: bl-vddneg-regulator {\n+\t\tcompatible = \"regulator-fixed\";\n+\t\tregulator-name = \"bl_vddneg_5p5\";\n+\t\tregulator-min-microvolt = <5500000>;\n+\t\tregulator-max-microvolt = <5500000>;\n+\t\tregulator-enable-ramp-delay = <233>;\n+\t\tgpio = <&tlmm 115 GPIO_ACTIVE_HIGH>;\n+\t\tenable-active-high;\n+\t\tregulator-boot-on;\n+\t};\n+\n+\tvph_pwr: vph-pwr-regulator {\n+\t\tcompatible = \"regulator-fixed\";\n+\t\tregulator-name = \"vph_pwr\";\n+\t\tregulator-min-microvolt = <3700000>;\n+\t\tregulator-max-microvolt = <3700000>;\n+\t};\n+\n+\t/*\n+\t * Apparently RPMh does not provide support for PM8150 S4 because it\n+\t * is always-on; model it as a fixed regulator.\n+\t */\n+\tvreg_s4a_1p8: pm8150-s4 {\n+\t\tcompatible = \"regulator-fixed\";\n+\t\tregulator-name = \"vreg_s4a_1p8\";\n+\n+\t\tregulator-min-microvolt = <1800000>;\n+\t\tregulator-max-microvolt = <1800000>;\n+\n+\t\tregulator-always-on;\n+\t\tregulator-boot-on;\n+\n+\t\tvin-supply = <&vph_pwr>;\n+\t};\n+\n+\tgpio_keys: gpio-keys {\n+\t\tcompatible = \"gpio-keys\";\n+\n+\t\tpinctrl-names = \"default\";\n+\t\tpinctrl-0 = <&vol_up_n>;\n+\n+\t\tkey-vol-up {\n+\t\t\tlabel = \"Volume Up\";\n+\t\t\tgpios = <&pm8150_gpios 6 GPIO_ACTIVE_LOW>;\n+\t\t\tlinux,code = <KEY_VOLUMEUP>;\n+\t\t\tdebounce-interval = <15>;\n+\t\t\tlinux,can-disable;\n+\t\t\twakeup-source;\n+\t\t};\n+\n+\t\tevent-hall-sensor {\n+\t\t\tlabel = \"Hall Effect Sensor\";\n+\t\t\tgpios = <&tlmm 9 GPIO_ACTIVE_LOW>;\n+\t\t\tlinux,input-type = <EV_SW>;\n+\t\t\tlinux,code = <SW_LID>;\n+\t\t\tdebounce-interval = <15>;\n+\t\t\tlinux,can-disable;\n+\t\t\twakeup-source;\n+\t\t};\n+\t};\n+};\n+\n+&apps_rsc {\n+\tpm8150-rpmh-regulators {\n+\t\tcompatible = \"qcom,pm8150-rpmh-regulators\";\n+\t\tqcom,pmic-id = \"a\";\n+\n+\t\tvdd-s1-supply = <&vph_pwr>;\n+\t\tvdd-s2-supply = <&vph_pwr>;\n+\t\tvdd-s3-supply = <&vph_pwr>;\n+\t\tvdd-s4-supply = <&vph_pwr>;\n+\t\tvdd-s5-supply = <&vph_pwr>;\n+\t\tvdd-s6-supply = <&vph_pwr>;\n+\t\tvdd-s7-supply = <&vph_pwr>;\n+\t\tvdd-s8-supply = <&vph_pwr>;\n+\t\tvdd-s9-supply = <&vph_pwr>;\n+\t\tvdd-s10-supply = <&vph_pwr>;\n+\n+\t\tvdd-l1-l8-l11-supply = <&vreg_s6a_0p9>;\n+\t\tvdd-l2-l10-supply = <&vreg_bob>;\n+\t\tvdd-l3-l4-l5-l18-supply = <&vreg_s6a_0p9>;\n+\t\tvdd-l6-l9-supply = <&vreg_s8c_1p3>;\n+\t\tvdd-l7-l12-l14-l15-supply = <&vreg_s5a_2p0>;\n+\t\tvdd-l13-l16-l17-supply = <&vreg_bob>;\n+\n+\t\tvreg_s5a_2p0: smps5 {\n+\t\t\tregulator-min-microvolt = <1904000>;\n+\t\t\tregulator-max-microvolt = <2040000>;\n+\t\t};\n+\n+\t\tvreg_s6a_0p9: smps6 {\n+\t\t\tregulator-min-microvolt = <920000>;\n+\t\t\tregulator-max-microvolt = <1128000>;\n+\t\t};\n+\n+\t\tvreg_l1a_0p75: ldo1 {\n+\t\t\tregulator-min-microvolt = <752000>;\n+\t\t\tregulator-max-microvolt = <752000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t};\n+\n+\t\tvreg_l2a_3p1: ldo2 {\n+\t\t\tregulator-min-microvolt = <3072000>;\n+\t\t\tregulator-max-microvolt = <3072000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t};\n+\n+\t\tvreg_l3a_0p8: ldo3 {\n+\t\t\tregulator-min-microvolt = <480000>;\n+\t\t\tregulator-max-microvolt = <932000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t};\n+\n+\t\tvreg_l5a_0p8: ldo5 {\n+\t\t\tregulator-min-microvolt = <880000>;\n+\t\t\tregulator-max-microvolt = <880000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t};\n+\n+\t\tvreg_l6a_1p2: ldo6 {\n+\t\t\tregulator-min-microvolt = <1200000>;\n+\t\t\tregulator-max-microvolt = <1200000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t};\n+\n+\t\tvreg_l7a_1p8: ldo7 {\n+\t\t\tregulator-min-microvolt = <1800000>;\n+\t\t\tregulator-max-microvolt = <1800000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t};\n+\n+\t\tvreg_l9a_1p2: ldo9 {\n+\t\t\tregulator-min-microvolt = <1200000>;\n+\t\t\tregulator-max-microvolt = <1200000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t};\n+\n+\t\tvreg_l10a_2p5: ldo10 {\n+\t\t\tregulator-min-microvolt = <2504000>;\n+\t\t\tregulator-max-microvolt = <2950000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t};\n+\n+\t\tvreg_l11a_0p8: ldo11 {\n+\t\t\tregulator-min-microvolt = <800000>;\n+\t\t\tregulator-max-microvolt = <800000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t};\n+\n+\t\tvreg_l12a_1p8: ldo12 {\n+\t\t\tregulator-min-microvolt = <1800000>;\n+\t\t\tregulator-max-microvolt = <1800000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t};\n+\n+\t\tvreg_l13a_2p7: ldo13 {\n+\t\t\tregulator-min-microvolt = <3000000>;\n+\t\t\tregulator-max-microvolt = <3000000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t};\n+\n+\t\tvreg_l14a_1p8: ldo14 {\n+\t\t\tregulator-min-microvolt = <1880000>;\n+\t\t\tregulator-max-microvolt = <1880000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t};\n+\n+\t\tvreg_l15a_1p7: ldo15 {\n+\t\t\tregulator-min-microvolt = <1704000>;\n+\t\t\tregulator-max-microvolt = <1704000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t};\n+\n+\t\tvreg_l16a_2p7: ldo16 {\n+\t\t\tregulator-min-microvolt = <2704000>;\n+\t\t\tregulator-max-microvolt = <2960000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t};\n+\n+\t\tvreg_l17a_3p0: ldo17 {\n+\t\t\tregulator-min-microvolt = <2856000>;\n+\t\t\tregulator-max-microvolt = <3008000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t};\n+\t};\n+\n+\tpm8150l-rpmh-regulators {\n+\t\tcompatible = \"qcom,pm8150l-rpmh-regulators\";\n+\t\tqcom,pmic-id = \"c\";\n+\n+\t\tvdd-s1-supply = <&vph_pwr>;\n+\t\tvdd-s2-supply = <&vph_pwr>;\n+\t\tvdd-s3-supply = <&vph_pwr>;\n+\t\tvdd-s4-supply = <&vph_pwr>;\n+\t\tvdd-s5-supply = <&vph_pwr>;\n+\t\tvdd-s6-supply = <&vph_pwr>;\n+\t\tvdd-s7-supply = <&vph_pwr>;\n+\t\tvdd-s8-supply = <&vph_pwr>;\n+\n+\t\tvdd-l1-l8-supply = <&vreg_s4a_1p8>;\n+\t\tvdd-l2-l3-supply = <&vreg_s8c_1p3>;\n+\t\tvdd-l4-l5-l6-supply = <&vreg_bob>;\n+\t\tvdd-l7-l11-supply = <&vreg_bob>;\n+\t\tvdd-l9-l10-supply = <&vreg_bob>;\n+\n+\t\tvdd-bob-supply = <&vph_pwr>;\n+\t\tvdd-flash-supply = <&vreg_bob>;\n+\t\tvdd-rgb-supply = <&vreg_bob>;\n+\n+\t\tvreg_bob: bob {\n+\t\t\tregulator-min-microvolt = <3008000>;\n+\t\t\tregulator-max-microvolt = <4000000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;\n+\t\t\tregulator-allow-bypass;\n+\t\t};\n+\n+\t\tvreg_s8c_1p3: smps8 {\n+\t\t\tregulator-min-microvolt = <1352000>;\n+\t\t\tregulator-max-microvolt = <1352000>;\n+\t\t};\n+\n+\t\tvreg_l1c_1p8: ldo1 {\n+\t\t\tregulator-min-microvolt = <1800000>;\n+\t\t\tregulator-max-microvolt = <1800000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t};\n+\n+\t\tvreg_l2c_1p3: ldo2 {\n+\t\t\tregulator-min-microvolt = <1304000>;\n+\t\t\tregulator-max-microvolt = <1304000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t};\n+\n+\t\tvreg_l3c_1p2: ldo3 {\n+\t\t\tregulator-min-microvolt = <1200000>;\n+\t\t\tregulator-max-microvolt = <1200000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t};\n+\n+\t\tvreg_l4c_1p8: ldo4 {\n+\t\t\tregulator-min-microvolt = <1704000>;\n+\t\t\tregulator-max-microvolt = <2928000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t};\n+\n+\t\tvreg_l5c_1p8: ldo5 {\n+\t\t\tregulator-min-microvolt = <1704000>;\n+\t\t\tregulator-max-microvolt = <2928000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t};\n+\n+\t\tvreg_l6c_2p9: ldo6 {\n+\t\t\tregulator-min-microvolt = <1800000>;\n+\t\t\tregulator-max-microvolt = <2960000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t};\n+\n+\t\tvreg_l7c_3p0: ldo7 {\n+\t\t\tregulator-min-microvolt = <2856000>;\n+\t\t\tregulator-max-microvolt = <3104000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t};\n+\n+\t\tvreg_l8c_1p8: ldo8 {\n+\t\t\tregulator-min-microvolt = <1800000>;\n+\t\t\tregulator-max-microvolt = <1800000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t};\n+\n+\t\tvreg_l9c_2p9: ldo9 {\n+\t\t\tregulator-min-microvolt = <2704000>;\n+\t\t\tregulator-max-microvolt = <2960000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t};\n+\n+\t\tvreg_l10c_3p3: ldo10 {\n+\t\t\tregulator-min-microvolt = <3000000>;\n+\t\t\tregulator-max-microvolt = <3312000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t};\n+\n+\t\tvreg_l11c_3p3: ldo11 {\n+\t\t\tregulator-min-microvolt = <3104000>;\n+\t\t\tregulator-max-microvolt = <3312000>;\n+\t\t\tregulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;\n+\t\t};\n+\t};\n+\n+\t/* PM8009 is not present on these boards, even if downstream sources suggest so. */\n+};\n+\n+//SD860 additional cpu frequency\n+&cpu7_opp_table {\n+\tcpu7_opp21: opp-2956800000 {\n+\t\topp-hz = /bits/ 64 <2956800000>;\n+\t\topp-peak-kBps = <8368000 51609600>;\n+\t};\n+};\n+\n+&gpi_dma0 {\n+\tstatus = \"okay\";\n+};\n+\n+&gpi_dma1 {\n+\tstatus = \"okay\";\n+};\n+\n+&gpi_dma2 {\n+\tstatus = \"okay\";\n+};\n+\n+&gmu {\n+\tstatus = \"okay\";\n+};\n+\n+&gpu {\n+\tstatus = \"okay\";\n+\n+\tzap-shader {\n+\t\tmemory-region = <&gpu_mem>;\n+\t\tfirmware-name = \"qcom/sm8150/xiaomi/nabu/a640_zap.mbn\";\n+\t};\n+};\n+\n+&i2c0 {\n+\tstatus = \"okay\";\n+\tclock-frequency = <400000>;\n+\n+\tbacklight: backlight@11 {\n+\t\tcompatible = \"kinetic,ktz8866\";\n+\t\treg = <0x11>;\n+\t\tvddpos-supply = <&bl_vddpos_5p5>;\n+\t\tvddneg-supply = <&bl_vddneg_5p5>;\n+\t\tenable-gpios = <&tlmm 27 GPIO_ACTIVE_HIGH>;\n+\t\tcurrent-num-sinks = <5>;\n+\t\tkinetic,current-ramp-delay-ms = <128>;\n+\t\tkinetic,led-enable-ramp-delay-ms = <1>;\n+\t\tkinetic,enable-lcd-bias;\n+\t};\n+};\n+\n+&i2c4 {\n+\tstatus = \"okay\";\n+\n+\ttypec-mux@43 {\n+\t\tcompatible = \"fcs,fsa4480\";\n+\t\treg = <0x43>;\n+\n+\t\tvcc-supply = <&vreg_bob>;\n+\n+\t\tmode-switch;\n+\t\torientation-switch;\n+\n+\t\tport {\n+\t\t\tfsa4480_sbu_mux: endpoint {\n+\t\t\t\tremote-endpoint = <&pm8150b_sbu_mux_in>;\n+\t\t\t};\n+\t\t};\n+\t};\n+\n+\tln8000_charger@51 {\n+\t\tcompatible = \"lionsemi,ln8000\";\n+\t\treg = <0x51>;\n+\n+\t\tstatus = \"disabled\";\n+\n+\t\tirq-gpios = <&tlmm 36 0x2002>;\n+\n+\t\tusb-tcpm = <&pm8150b_typec>;\n+\n+\t\tln8000_charger,bat-ovp-threshold = <4560>;\n+\t\tln8000_charger,bat-ovp-alarm-threshold = <4525>;\n+\t\tln8000_charger,bus-ovp-threshold = <13000>;\n+\t\tln8000_charger,bus-ovp-alarm-threshold = <11000>;\n+\t\tln8000_charger,bus-ocp-threshold = <3750>;\n+\t\tln8000_charger,bus-ocp-alarm-threshold = <3500>;\n+\t\tln8000_charger,ntc-alarm-cfg  = <226>;\n+\n+\t\tln8000_charger,tdie-prot-disable;\n+\t\tln8000_charger,tbus-mon-disable;\n+\t\tln8000_charger,tbat-mon-disable;\n+\t\tln8000_charger,iin-ocp-disable;\n+\t\tln8000_charger,iin-reg-disable;\n+\t\tln8000_charger,tdie-reg-disable;\n+\t\tln8000_charger,vbat-reg-disable;\n+\t};\n+};\n+\n+&i2c7 {\n+\tstatus = \"okay\";\n+\n+\tcs35l41_br: cs35l41@40 {\n+\t\tcompatible = \"cirrus,cs35l41\";\n+\t\treg = <0x40>;\n+\t\tinterrupt-parent = <&tlmm>;\n+\t\tinterrupts = <81 IRQ_TYPE_LEVEL_LOW>;\n+\t\treset-gpios = <&tlmm 92 GPIO_ACTIVE_HIGH>;\n+\t\t#sound-dai-cells = <1>;\n+\t\tsound-name-prefix = \"BR\";\n+\t\tcirrus,boost-peak-milliamp = <4000>;\n+\t\tcirrus,boost-ind-nanohenry = <1000>;\n+\t\tcirrus,boost-cap-microfarad = <15>;\n+\t\tcirrus,asp-sdout-hiz = <3>;\n+\t\tcirrus,gpio2-src-select = <4>;\n+\t\tcirrus,gpio2-output-enable;\n+\t};\n+\n+\tcs35l41_tr: cs35l41@41 {\n+\t\tcompatible = \"cirrus,cs35l41\";\n+\t\treg = <0x41>;\n+\t\tinterrupt-parent = <&tlmm>;\n+\t\tinterrupts = <90 IRQ_TYPE_LEVEL_LOW>;\n+\t\treset-gpios = <&tlmm 92 GPIO_ACTIVE_HIGH>;\n+\t\t#sound-dai-cells = <1>;\n+\t\tsound-name-prefix = \"TR\";\n+\t\tcirrus,boost-peak-milliamp = <4000>;\n+\t\tcirrus,boost-ind-nanohenry = <1000>;\n+\t\tcirrus,boost-cap-microfarad = <15>;\n+\t\tcirrus,asp-sdout-hiz = <3>;\n+\t\tcirrus,gpio2-src-select = <4>;\n+\t\tcirrus,gpio2-output-enable;\n+\t};\n+\n+\tcs35l41_bl: cs35l41@42 {\n+\t\tcompatible = \"cirrus,cs35l41\";\n+\t\treg = <0x42>;\n+\t\tinterrupt-parent = <&tlmm>;\n+\t\tinterrupts = <91 IRQ_TYPE_LEVEL_LOW>;\n+\t\treset-gpios = <&tlmm 92 GPIO_ACTIVE_HIGH>;\n+\t\t#sound-dai-cells = <1>;\n+\t\tsound-name-prefix = \"BL\";\n+\t\tcirrus,boost-peak-milliamp = <4000>;\n+\t\tcirrus,boost-ind-nanohenry = <1000>;\n+\t\tcirrus,boost-cap-microfarad = <15>;\n+\t\tcirrus,asp-sdout-hiz = <3>;\n+\t\tcirrus,gpio2-src-select = <4>;\n+\t\tcirrus,gpio2-output-enable;\n+\t};\n+\n+\tcs35l41_tl: cs35l41@43 {\n+\t\tcompatible = \"cirrus,cs35l41\";\n+\t\treg = <0x43>;\n+\t\tinterrupt-parent = <&tlmm>;\n+\t\tinterrupts = <93 IRQ_TYPE_LEVEL_LOW>;\n+\t\treset-gpios = <&tlmm 92 GPIO_ACTIVE_HIGH>;\n+\t\t#sound-dai-cells = <1>;\n+\t\tsound-name-prefix = \"TL\";\n+\t\tcirrus,boost-peak-milliamp = <4000>;\n+\t\tcirrus,boost-ind-nanohenry = <1000>;\n+\t\tcirrus,boost-cap-microfarad = <15>;\n+\t\tcirrus,asp-sdout-hiz = <3>;\n+\t\tcirrus,gpio2-src-select = <4>;\n+\t\tcirrus,gpio2-output-enable;\n+\t};\n+};\n+\n+&mdss {\n+\tstatus = \"okay\";\n+};\n+\n+&mdss_dsi0 {\n+\tvdda-supply = <&vreg_l3c_1p2>;\n+\tqcom,dual-dsi-mode;\n+\tqcom,sync-dual-dsi;\n+\tqcom,master-dsi;\n+\tstatus = \"okay\";\n+\n+\tdisplay_panel: panel@0 {\n+\t\tcompatible = \"xiaomi,nabu-csot-nt36523\", \"novatek,nt36523\";\n+\t\treg = <0>;\n+\t\tvddio-supply = <&vreg_l14a_1p8>;\n+\t\treset-gpios = <&tlmm 6 GPIO_ACTIVE_LOW>;\n+\t\tbacklight = <&backlight>;\n+\t\trotation = <90>;\n+\n+\t\tports {\n+\t\t\t#address-cells = <1>;\n+\t\t\t#size-cells = <0>;\n+\n+\t\t\tport@0 {\n+\t\t\t\treg = <0>;\n+\n+\t\t\t\tpanel_in_0: endpoint {\n+\t\t\t\t\tremote-endpoint = <&mdss_dsi0_out>;\n+\t\t\t\t};\n+\t\t\t};\n+\n+\t\t\tport@1{\n+\t\t\t\treg = <1>;\n+\n+\t\t\t\tpanel_in_1: endpoint {\n+\t\t\t\t\tremote-endpoint = <&mdss_dsi1_out>;\n+\t\t\t\t};\n+\t\t\t};\n+\n+\t\t};\n+\t};\n+};\n+\n+&mdss_dsi0_out {\n+\tdata-lanes = <0 1 2>;\n+\tremote-endpoint = <&panel_in_0>;\n+};\n+\n+&mdss_dsi0_phy {\n+\tvdds-supply = <&vreg_l5a_0p8>;\n+\tphy-type = <PHY_TYPE_CPHY>;\n+\tstatus = \"okay\";\n+};\n+\n+&mdss_dsi1 {\n+\tvdda-supply = <&vreg_l3c_1p2>;\n+\tqcom,dual-dsi-mode;\n+\tqcom,sync-dual-dsi;\n+\t/* DSI1 is slave, so use DSI0 clocks */\n+\tassigned-clock-parents = <&mdss_dsi0_phy 0>, <&mdss_dsi0_phy 1>;\n+\tstatus = \"okay\";\n+};\n+\n+&mdss_dsi1_out {\n+\tdata-lanes = <0 1 2>;\n+\tremote-endpoint = <&panel_in_1>;\n+};\n+\n+&mdss_dsi1_phy {\n+\tvdds-supply = <&vreg_l5a_0p8>;\n+\tphy-type = <PHY_TYPE_CPHY>;\n+\tstatus = \"okay\";\n+};\n+\n+&pm8150_gpios {\n+\tvol_up_n: vol-up-n-state {\n+\t\tpins = \"gpio6\";\n+\t\tfunction = \"normal\";\n+\t\tpower-source = <1>;\n+\t\tinput-enable;\n+\t\tbias-pull-up;\n+\t};\n+};\n+\n+&pm8150b_fg {\n+\tstatus = \"okay\";\n+\tmonitored-battery = <&battery>;\n+\t//power-supplies = <&ln8000_charger>;\n+};\n+\n+&pm8150b_typec {\n+\tvdd-pdphy-supply = <&vreg_l2a_3p1>;\n+\tstatus = \"okay\";\n+\n+\tconnector {\n+\t\tcompatible = \"usb-c-connector\";\n+\n+\t\tpower-role = \"dual\";\n+\t\tdata-role = \"dual\";\n+\t\tself-powered;\n+\n+\t\tsource-pdos = <PDO_FIXED(5000, 3000,\n+\t\t\t\t\t PDO_FIXED_DUAL_ROLE |\n+\t\t\t\t\t PDO_FIXED_USB_COMM |\n+\t\t\t\t\t PDO_FIXED_DATA_SWAP)>;\n+\n+\t\tsink-pdos = <PDO_FIXED(5000, 3000,\n+\t\t\t\t\t PDO_FIXED_DUAL_ROLE |\n+\t\t\t\t\t PDO_FIXED_USB_COMM |\n+\t\t\t\t\t PDO_FIXED_DATA_SWAP)\n+\t\t\t\t\t PDO_VAR(5000, 12000, 3000)>;\n+\n+\t\top-sink-microwatt = <10000000>;\n+\n+\t\tports {\n+\t\t\t#address-cells = <1>;\n+\t\t\t#size-cells = <0>;\n+\n+\t\t\tport@0 {\n+\t\t\t\treg = <0>;\n+\n+\t\t\t\tpm8150b_role_switch_in: endpoint {\n+\t\t\t\t\tremote-endpoint = <&usb_1_dwc3_hs>;\n+\t\t\t\t};\n+\t\t\t};\n+\n+\t\t\tport@1 {\n+\t\t\t\treg = <1>;\n+\n+\t\t\t\tpm8150b_sbu_mux_in: endpoint {\n+\t\t\t\t\tremote-endpoint = <&fsa4480_sbu_mux>;\n+\t\t\t\t};\n+\t\t\t};\n+\t\t};\n+\t};\n+};\n+\n+&pm8150b_vbus {\n+\tstatus = \"okay\";\n+};\n+\n+&pm8150l_flash {\n+\tstatus = \"okay\";\n+\n+\tled-0 {\n+\t\tfunction = LED_FUNCTION_FLASH;\n+\t\tcolor = <LED_COLOR_ID_WHITE>;\n+\t\tled-sources = <1>;\n+\t\tled-max-microamp = <200000>;\n+\t\tflash-max-microamp = <1000000>;\n+\t\tflash-max-timeout-us = <1280000>;\n+\t};\n+};\n+\n+&pon_pwrkey {\n+\tstatus = \"okay\";\n+};\n+\n+&pon_resin {\n+\tlinux,code = <KEY_VOLUMEDOWN>;\n+\tstatus = \"okay\";\n+};\n+\n+&q6afedai {\n+\tdai@72 {\n+\t\treg = <QUATERNARY_TDM_RX_0>;\n+\t\tqcom,tdm-sync-mode = <1>;\n+\t\tqcom,tdm-sync-src = <1>;\n+\t\tqcom,tdm-data-out = <0>;\n+\t\tqcom,tdm-invert-sync = <1>;\n+\t\tqcom,tdm-data-delay = <1>;\n+\t\tqcom,tdm-data-align = <0>;\n+\t};\n+};\n+\n+&q6asmdai {\n+\tdai@0 {\n+\t\treg = <0>;\n+\t};\n+\n+\tdai@1 {\n+\t\treg = <1>;\n+\t};\n+};\n+\n+&qupv3_id_0 {\n+\tstatus = \"okay\";\n+};\n+\n+&qupv3_id_1 {\n+\tstatus = \"okay\";\n+};\n+\n+&qupv3_id_2 {\n+\tstatus = \"okay\";\n+};\n+\n+&remoteproc_adsp {\n+\tstatus = \"okay\";\n+\tfirmware-name = \"qcom/sm8150/xiaomi/nabu/adsp.mbn\";\n+};\n+\n+&remoteproc_cdsp {\n+\tstatus = \"okay\";\n+\tfirmware-name = \"qcom/sm8150/xiaomi/nabu/cdsp.mbn\";\n+};\n+\n+&remoteproc_mpss {\n+\tstatus = \"okay\";\n+\tfirmware-name = \"qcom/sm8150/xiaomi/nabu/modem.mbn\";\n+};\n+\n+&sound {\n+\tcompatible = \"qcom,sm8150-sndcard\";\n+\tpinctrl-0 = <&quat_tdm_active\n+\t\t&quat_tdm_sd1_active>;\n+\tpinctrl-names = \"default\";\n+\tmodel = \"Xiaomi Pad 5\";\n+\n+\taudio-routing =\t\"RX_BIAS\", \"MCLK\",\n+\t\t\"AMIC1\", \"MIC BIAS3\",\n+\t\t\"AMIC3\", \"MIC BIAS4\",\n+\t\t\"MultiMedia1 Playback\", \"BR SPK\",\n+\t\t\"MultiMedia1 Playback\", \"TR SPK\",\n+\t\t\"MultiMedia1 Playback\", \"BL SPK\",\n+\t\t\"MultiMedia1 Playback\", \"TL SPK\";\n+\n+\tmm1-dai-link {\n+\t\tlink-name = \"MultiMedia1\";\n+\t\tcpu {\n+\t\t\tsound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA1>;\n+\t\t};\n+\t};\n+\n+\tmm2-dai-link {\n+\t\tlink-name = \"MultiMedia2\";\n+\t\tcpu {\n+\t\t\tsound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA2>;\n+\t\t};\n+\t};\n+\n+\tspeaker-dai-link {\n+\t\tlink-name = \"Speaker Playback\";\n+\t\tcpu {\n+\t\t\tsound-dai = <&q6afedai QUATERNARY_TDM_RX_0>;\n+\t\t};\n+\n+\t\tplatform {\n+\t\t\tsound-dai = <&q6routing>;\n+\t\t};\n+\n+\t\tcodec {\n+\t\t\tsound-dai = <&cs35l41_br 0>, <&cs35l41_tr 0>,\n+\t\t\t\t<&cs35l41_bl 0>, <&cs35l41_tl 0>;\n+\t\t};\n+\t};\n+\n+\t//Bottom & Top internal microphones\n+\tslimcap-dai-link {\n+\t\tlink-name = \"SLIM Capture 1\";\n+\t\tcpu {\n+\t\t\tsound-dai = <&q6afedai SLIMBUS_0_TX>;\n+\t\t};\n+\n+\t\tplatform {\n+\t\t\tsound-dai = <&q6routing>;\n+\t\t};\n+\n+\t\tcodec {\n+\t\t\tsound-dai = <&wcd9340 1>; /* AIF1_CAP */\n+\t\t};\n+\t};\n+};\n+\n+&spi18 {\n+\tstatus = \"okay\";\n+\n+\ttouchscreen@0 {\n+\t\tcompatible = \"novatek,NVT-ts-spi\";\n+\t\treg = <0>;\n+\n+\t\tspi-max-frequency = <9600000>;\n+\t\tnovatek,irq-gpio = <&tlmm 39 0x2001>;\n+\n+\t\tnovatek,pen-support;\n+\t\tnovatek,wgp-stylus;\n+\n+\t\t/* 523 */\n+\t\tnovatek,swrst-n8-addr = <0x03F0FE>;\n+\t\tnovatek,spi-rd-fast-addr = <0x03F310>;\n+\n+\t\tfirmware-name = \"novatek/novatek_nt36523_fw.bin\";\n+\t};\n+};\n+\n+&tlmm {\n+\tgpio-reserved-ranges = <126 4>;\n+\n+\tquat_tdm_active: quat-tdm-active-state {\n+\t\tpins = \"gpio137\", \"gpio138\";\n+\t\tfunction = \"qua_mi2s\";\n+\t\tdrive-strength = <8>;\n+\t\tbias-disable;\n+\t\toutput-high;\n+\t};\n+\n+\tquat_tdm_sd1_active: quat-tdm-sd1-active-state {\n+\t\tpins = \"gpio140\";\n+\t\tfunction = \"qua_mi2s\";\n+\t\tdrive-strength = <8>;\n+\t\tbias-disable;\n+\t};\n+\n+\tqup_uart13_sleep: qup-uart13-sleep {\n+\t\tpinmux {\n+\t\t\tpins = \"gpio43\", \"gpio44\",\n+\t\t\t       \"gpio45\", \"gpio46\";\n+\t\t\tfunction = \"gpio\";\n+\t\t};\n+\n+\t\tpinconf-cts {\n+\t\t\t/*\n+\t\t\t * Configure a pull-down on CTS to match the pull of\n+\t\t\t * the Bluetooth module.\n+\t\t\t */\n+\t\t\tpins = \"gpio43\";\n+\t\t\tbias-pull-down;\n+\t\t};\n+\n+\t\tpinconf-rts {\n+\t\t\t/*\n+\t\t\t * Configure pull-down on RTS. As RTS is active low\n+\t\t\t * signal, pull it low to indicate the BT SoC that it\n+\t\t\t * can wakeup the system anytime from suspend state by\n+\t\t\t * pulling RX low (by sending wakeup bytes).\n+\t\t\t */\n+\t\t\t pins = \"gpio44\";\n+\t\t\t bias-pull-down;\n+\t\t};\n+\n+\t\tpinconf-tx {\n+\t\t\t/*\n+\t\t\t * Configure pull-up on TX when it isn't actively driven\n+\t\t\t * to prevent BT SoC from receiving garbage during sleep.\n+\t\t\t */\n+\t\t\tpins = \"gpio45\";\n+\t\t\tbias-pull-up;\n+\t\t};\n+\n+\t\tpinconf-rx {\n+\t\t\t/*\n+\t\t\t * Configure a pull-up on RX. This is needed to avoid\n+\t\t\t * garbage data when the TX pin of the Bluetooth module\n+\t\t\t * is floating which may cause spurious wakeups.\n+\t\t\t */\n+\t\t\tpins = \"gpio46\";\n+\t\t\tbias-pull-up;\n+\t\t};\n+\t};\n+\n+\tbl_en_state: bl-default-state {\n+\t\tbl-en {\n+\t\t\tpins = \"gpio27\";\n+\t\t\tfunction = \"gpio\";\n+\n+\t\t\tdrive-strength = <16>;\n+\t\t\toutput-high;\n+\t\t\tbias-disable;\n+\t\t};\n+\t};\n+\n+\tkeyboard_active: keyboard-active-state {\n+\t\tsleep-pins {\n+\t\t\tpins = \"gpio4\";\n+\t\t\tfunction = \"gpio\";\n+\t\t\tdrive-strength = <8>;\n+\t\t\tbias-pull-up;\n+\t\t};\n+\n+\t\treset-pins {\n+\t\t\tpins = \"gpio49\";\n+\t\t\tfunction = \"gpio\";\n+\t\t\tdrive-strength = <4>;\n+\t\t\tbias-pull-up;\n+\t\t\toutput-high;\n+\t\t};\n+\n+\t\tvdd-pins {\n+\t\t\tpins = \"gpio82\";\n+\t\t\tfunction = \"gpio\";\n+\t\t\tdrive-strength = <4>;\n+\t\t\tbias-pull-up;\n+\t\t\toutput-high;\n+\t\t};\n+\t};\n+\n+\tkeyboard_suspend: keyboard-suspend-state {\n+\t\tsleep-pins {\n+\t\t\tpins = \"gpio4\";\n+\t\t\tfunction = \"gpio\";\n+\t\t\tdrive-strength = <8>;\n+\t\t\tbias-pull-down;\n+\t\t};\n+\n+\t\treset-pins {\n+\t\t\tpins = \"gpio49\";\n+\t\t\tfunction = \"gpio\";\n+\t\t\tdrive-strength = <4>;\n+\t\t\tbias-pull-down;\n+\t\t};\n+\n+\t\tvdd-pins {\n+\t\t\tpins = \"gpio82\";\n+\t\t\tfunction = \"gpio\";\n+\t\t\tdrive-strength = <4>;\n+\t\t\tbias-pull-down;\n+\t\t};\n+\t};\n+};\n+\n+&uart2 {\n+\tstatus = \"okay\";\n+};\n+\n+&uart13 {\n+\tstatus = \"okay\";\n+\n+\t/delete-property/interrupts;\n+\tinterrupts-extended = <&intc GIC_SPI 585 IRQ_TYPE_LEVEL_HIGH>,\n+\t\t\t\t<&tlmm 46 IRQ_TYPE_EDGE_FALLING>;\n+\n+\tpinctrl-names = \"default\", \"sleep\";\n+\tpinctrl-1 = <&qup_uart13_sleep>;\n+\n+\tbluetooth: bluetooth {\n+\t\tcompatible = \"qcom,wcn3991-bt\";\n+\t\tvddio-supply = <&vreg_l1a_0p75>;\n+\t\tvddxo-supply = <&vreg_l7a_1p8>;\n+\t\tvddrf-supply = <&vreg_l2c_1p3>;\n+\t\tvddch0-supply = <&vreg_l11c_3p3>;\n+\t\tmax-speed = <3200000>;\n+\t\tlocal-bd-address = [ 21 00 00 00 5a ad ];\n+\t};\n+};\n+\n+&ufs_mem_hc {\n+\tstatus = \"okay\";\n+\n+\tvcc-supply = <&vreg_l10a_2p5>;\n+\tvcc-max-microamp = <750000>;\n+\tvccq-supply = <&vreg_l9a_1p2>;\n+\tvccq-max-microamp = <700000>;\n+\tvccq2-supply = <&vreg_s4a_1p8>;\n+\tvccq2-max-microamp = <750000>;\n+};\n+\n+&ufs_mem_phy {\n+\tstatus = \"okay\";\n+\n+\tvdda-phy-supply = <&vreg_l5a_0p8>;\n+\tvdda-phy-max-microamp = <90200>;\n+\tvdda-pll-supply = <&vreg_l3c_1p2>;\n+\tvdda-pll-max-microamp = <19000>;\n+};\n+\n+&usb_1 {\n+\t/* USB 2.0 only */\n+\tqcom,select-utmi-as-pipe-clk;\n+\tstatus = \"okay\";\n+};\n+\n+&usb_1_dwc3 {\n+\tdr_mode = \"otg\";\n+\tmaximum-speed = \"high-speed\";\n+\t/* Remove USB3 phy */\n+\tphys = <&usb_1_hsphy>;\n+\tphy-names = \"usb2-phy\";\n+\tusb-role-switch;\n+};\n+\n+&usb_1_dwc3_hs {\n+\tremote-endpoint = <&pm8150b_role_switch_in>;\n+};\n+\n+&usb_1_hsphy {\n+\tvdda-pll-supply = <&vreg_l5a_0p8>;\n+\tvdda18-supply = <&vreg_l12a_1p8>;\n+\tvdda33-supply = <&vreg_l2a_3p1>;\n+\tstatus = \"okay\";\n+};\n+\n+&usb_2 {\n+\t/* USB 2.0 only */\n+\tqcom,select-utmi-as-pipe-clk;\n+\tstatus = \"okay\";\n+};\n+\n+&usb_2_hsphy {\n+\tvdda-pll-supply = <&vreg_l5a_0p8>;\n+\tvdda18-supply = <&vreg_l12a_1p8>;\n+\tvdda33-supply = <&vreg_l2a_3p1>;\n+\tstatus = \"okay\";\n+\tpinctrl-0 = <&keyboard_active>;\n+\tpinctrl-1 = <&keyboard_suspend>;\n+\tpinctrl-names = \"default\", \"sleep\";\n+};\n+\n+&usb_2_dwc3 {\n+\tdr_mode = \"host\";\n+\tmaximum-speed = \"high-speed\";\n+\t/* Remove USB3 phy */\n+\tphys = <&usb_2_hsphy>;\n+\tphy-names = \"usb2-phy\";\n+};\n+\n+&wcd9340 {\n+\treset-gpios = <&tlmm 143 GPIO_ACTIVE_HIGH>;\n+\tvdd-buck-sido-supply = <&vreg_s4a_1p8>;\n+\tvdd-buck-supply = <&vreg_s4a_1p8>;\n+\tvdd-tx-supply = <&vreg_s4a_1p8>;\n+\tvdd-rx-supply = <&vreg_s4a_1p8>;\n+\tvdd-io-supply = <&vreg_s4a_1p8>;\n+\n+\tqcom,micbias1-microvolt = <1800000>;\n+\tqcom,micbias2-microvolt = <2750000>;\n+\tqcom,micbias3-microvolt = <1800000>;\n+\tqcom,micbias4-microvolt = <1800000>;\n+\n+\tqcom,hphl-jack-type-normally-open;\n+\tqcom,ground-jack-type-normally-open;\n+\tqcom,mbhc-buttons-vthreshold-microvolt = <75000 150000 237000 500000 500000 500000 500000 500000>;\n+\tqcom,mbhc-headset-vthreshold-microvolt = <2600000>;\n+\tqcom,mbhc-headphone-vthreshold-microvolt = <50000>;\n+};\n+\n+&wifi {\n+\tstatus = \"okay\";\n+\n+\tvdd-0.8-cx-mx-supply = <&vreg_l1a_0p75>;\n+\tvdd-1.8-xo-supply = <&vreg_l7a_1p8>;\n+\tvdd-1.3-rfa-supply = <&vreg_l2c_1p3>;\n+\tvdd-3.3-ch0-supply = <&vreg_l11c_3p3>;\n+};\n+\n+&pm8150_rtc {\n+       nvmem-cells = <&rtc_offset>;\n+       nvmem-cell-names = \"offset\";\n+       status = \"okay\";\n+};\n+\n+&pm8150_sdam_2 {\n+       status = \"okay\";\n+       rtc_offset: rtc-offset@bc {\n+\t       reg = <0xbc 0x4>;\n+       };\n+};\ndiff --git a/dts/upstream/src/arm64/qcom/sm8150.dtsi b/dts/upstream/src/arm64/qcom/sm8150.dtsi\nindex acdba79612a..264d5b2c5a9 100644\n--- a/dts/upstream/src/arm64/qcom/sm8150.dtsi\n+++ b/dts/upstream/src/arm64/qcom/sm8150.dtsi\n@@ -9,7 +9,9 @@\n #include <dt-bindings/interrupt-controller/arm-gic.h>\n #include <dt-bindings/phy/phy-qcom-qmp.h>\n #include <dt-bindings/power/qcom-rpmpd.h>\n+#include <dt-bindings/soc/qcom,apr.h>\n #include <dt-bindings/soc/qcom,rpmh-rsc.h>\n+#include <dt-bindings/sound/qcom,q6afe.h>\n #include <dt-bindings/clock/qcom,rpmh.h>\n #include <dt-bindings/clock/qcom,dispcc-sm8150.h>\n #include <dt-bindings/clock/qcom,dsi-phy-28nm.h>\n@@ -1693,6 +1695,17 @@\n \t\t\t\tstatus = \"disabled\";\n \t\t\t};\n \n+\t\t\tuart13: serial@c8c000 {\n+\t\t\t\tcompatible = \"qcom,geni-uart\";\n+\t\t\t\treg = <0 0x00c8c000 0 0x4000>;\n+\t\t\t\tclock-names = \"se\";\n+\t\t\t\tclocks = <&gcc GCC_QUPV3_WRAP2_S3_CLK>;\n+\t\t\t\tpinctrl-names = \"default\";\n+\t\t\t\tpinctrl-0 = <&qup_uart13_default>;\n+\t\t\t\tinterrupts = <GIC_SPI 585 IRQ_TYPE_LEVEL_HIGH>;\n+\t\t\t\tstatus = \"disabled\";\n+\t\t\t};\n+\n \t\t\ti2c14: i2c@c90000 {\n \t\t\t\tcompatible = \"qcom,geni-i2c\";\n \t\t\t\treg = <0 0x00c90000 0 0x4000>;\n@@ -2074,6 +2087,8 @@\n \t\t\tresets = <&gcc GCC_UFS_PHY_BCR>;\n \t\t\treset-names = \"rst\";\n \n+\t\t\tpower-domains = <&gcc UFS_PHY_GDSC>;\n+\n \t\t\tiommus = <&apps_smmu 0x300 0>;\n \n \t\t\tclock-names =\n@@ -2159,6 +2174,7 @@\n \t\t\t\t <&apps_smmu 0x512 0x0000>;\n \t\t\tinterconnects = <&aggre2_noc MASTER_CRYPTO_CORE_0 0 &mc_virt SLAVE_EBI_CH0 0>;\n \t\t\tinterconnect-names = \"memory\";\n+\t\t\tstatus = \"disable\";\n \t\t};\n \n \t\ttcsr_mutex: hwlock@1f40000 {\n@@ -2594,6 +2610,13 @@\n \t\t\t\tbias-disable;\n \t\t\t};\n \n+\t\t\tqup_uart13_default: qup-uart13-default-state {\n+\t\t\t\tpins = \"gpio43\", \"gpio44\", \"gpio45\", \"gpio46\";\n+\t\t\t\tfunction = \"qup13\";\n+\t\t\t\tdrive-strength = <2>;\n+\t\t\t\tbias-disable;\n+\t\t\t};\n+\n \t\t\tqup_i2c14_default: qup-i2c14-default-state {\n \t\t\t\tpins = \"gpio47\", \"gpio48\";\n \t\t\t\tfunction = \"qup14\";\n@@ -4306,6 +4329,32 @@\n \t\t\tdma-coherent;\n \t\t};\n \n+\t\tslimbam: dma-controller@17184000 {\n+\t\t\tcompatible = \"qcom,bam-v1.7.4\", \"qcom,bam-v1.7.0\";\n+\t\t\tqcom,controlled-remotely;\n+\t\t\treg = <0 0x17184000 0 0x2c000>;\n+\t\t\tnum-channels = <31>;\n+\t\t\tinterrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>;\n+\t\t\t#dma-cells = <1>;\n+\t\t\tqcom,ee = <1>;\n+\t\t\tqcom,num-ees = <2>;\n+\t\t\tiommus = <&apps_smmu 0x1b46 0x0>;\n+\t\t};\n+\n+\t\tslim: slim-ngd@171c0000 {\n+\t\t\tcompatible = \"qcom,slim-ngd-v2.1.0\";\n+\t\t\treg = <0 0x171c0000 0 0x2c000>;\n+\t\t\tinterrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>;\n+\n+\t\t\tdmas = <&slimbam 3>, <&slimbam 4>;\n+\t\t\tdma-names = \"rx\", \"tx\";\n+\n+\t\t\tiommus = <&apps_smmu 0x1b46 0x0>;\n+\t\t\t#address-cells = <1>;\n+\t\t\t#size-cells = <0>;\n+\t\t\tstatus = \"disabled\";\n+\t\t};\n+\n \t\tremoteproc_adsp: remoteproc@17300000 {\n \t\t\tcompatible = \"qcom,sm8150-adsp-pas\";\n \t\t\treg = <0x0 0x17300000 0x0 0x4040>;\n@@ -4338,6 +4387,56 @@\n \t\t\t\tqcom,remote-pid = <2>;\n \t\t\t\tmboxes = <&apss_shared 8>;\n \n+\t\t\t\tapr {\n+\t\t\t\t\tcompatible = \"qcom,apr-v2\";\n+\t\t\t\t\tqcom,glink-channels = \"apr_audio_svc\";\n+\t\t\t\t\tqcom,domain = <APR_DOMAIN_ADSP>;\n+\t\t\t\t\t#address-cells = <1>;\n+\t\t\t\t\t#size-cells = <0>;\n+\n+\t\t\t\t\tapr-service@3 {\n+\t\t\t\t\t\treg = <APR_SVC_ADSP_CORE>;\n+\t\t\t\t\t\tcompatible = \"qcom,q6core\";\n+\t\t\t\t\t};\n+\n+\t\t\t\t\tq6afe: apr-service@4 {\n+\t\t\t\t\t\tcompatible = \"qcom,q6afe\";\n+\t\t\t\t\t\treg = <APR_SVC_AFE>;\n+\t\t\t\t\t\tq6afedai: dais {\n+\t\t\t\t\t\t\tcompatible = \"qcom,q6afe-dais\";\n+\t\t\t\t\t\t\t#address-cells = <1>;\n+\t\t\t\t\t\t\t#size-cells = <0>;\n+\t\t\t\t\t\t\t#sound-dai-cells = <1>;\n+\t\t\t\t\t\t};\n+\n+\t\t\t\t\t\tq6afecc: cc {\n+\t\t\t\t\t\t\tcompatible = \"qcom,q6afe-clocks\";\n+\t\t\t\t\t\t\t#clock-cells = <2>;\n+\t\t\t\t\t\t};\n+\t\t\t\t\t};\n+\n+\t\t\t\t\tq6asm: apr-service@7 {\n+\t\t\t\t\t\tcompatible = \"qcom,q6asm\";\n+\t\t\t\t\t\treg = <APR_SVC_ASM>;\n+\t\t\t\t\t\tq6asmdai: dais {\n+\t\t\t\t\t\t\tcompatible = \"qcom,q6asm-dais\";\n+\t\t\t\t\t\t\t#address-cells = <1>;\n+\t\t\t\t\t\t\t#size-cells = <0>;\n+\t\t\t\t\t\t\t#sound-dai-cells = <1>;\n+\t\t\t\t\t\t\tiommus = <&apps_smmu 0x1b21 0x0>;\n+\t\t\t\t\t\t};\n+\t\t\t\t\t};\n+\n+\t\t\t\t\tq6adm: apr-service@8 {\n+\t\t\t\t\t\tcompatible = \"qcom,q6adm\";\n+\t\t\t\t\t\treg = <APR_SVC_ADM>;\n+\t\t\t\t\t\tq6routing: routing {\n+\t\t\t\t\t\t\tcompatible = \"qcom,q6adm-routing\";\n+\t\t\t\t\t\t\t#sound-dai-cells = <0>;\n+\t\t\t\t\t\t};\n+\t\t\t\t\t};\n+\t\t\t\t};\n+\n \t\t\t\tfastrpc {\n \t\t\t\t\tcompatible = \"qcom,fastrpc\";\n \t\t\t\t\tqcom,glink-channels = \"fastrpcglink-apps-dsp\";\n@@ -4606,6 +4705,9 @@\n \t\t};\n \t};\n \n+\tsound: sound {\n+\t};\n+\n \ttimer {\n \t\tcompatible = \"arm,armv8-timer\";\n \t\tinterrupts = <GIC_PPI 1 IRQ_TYPE_LEVEL_LOW>,\n",
    "prefixes": []
}