From nobody Sat Apr 4 00:23:43 2026 Received: from GVAP278CU002.outbound.protection.outlook.com (mail-switzerlandwestazon11020106.outbound.protection.outlook.com [52.101.188.106]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 642832874F5; Sun, 22 Mar 2026 16:03:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.188.106 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774195425; cv=fail; b=lWxnxpMy3Ly+C2/hUo5e0/ZpyS9Vz0IgfrMK3pc/KMytw6dCZCtHdxcD1X8G00UWHUXyVPhT0jyJCLZ7fTcjp07o5iJVarF4hB/A7udE6phXpFe8056mX6PaHdGSZaAdKtdfkMz+5DcRtDKJThU8zADlfjQGjBJ6grzJQdDFWao= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774195425; c=relaxed/simple; bh=RbE2XlI5U9u40gfyV/lBOHOZf2GOry1QM5o5ek+yxIQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=MgNXUXO/3rSqyXRh0cH5RlQ2PR5EdUEiXJzEKhGOABOTcl3DO6OLJucd1HMl4ilTNPEO1oocrfmqllk8ze6zVjaBUZaNB8oIkg1dvVF2BV1X1FpldfYOntse+VqEGxy4Flo6C/+rY133oQPpH3QWSPoUB7fWJRcOuhZQFJpGrtM= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=cern.ch; spf=pass smtp.mailfrom=cern.ch; dkim=pass (1024-bit key) header.d=cern.ch header.i=@cern.ch header.b=RPEJ1AY8; dkim=pass (1024-bit key) header.d=cern.ch header.i=@cern.ch header.b=RPEJ1AY8; arc=fail smtp.client-ip=52.101.188.106 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=cern.ch Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=cern.ch Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=cern.ch header.i=@cern.ch header.b="RPEJ1AY8"; dkim=pass (1024-bit key) header.d=cern.ch header.i=@cern.ch header.b="RPEJ1AY8" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=f8kUWOHidMi4H+lF/Wn01q8ZMUAbCae6ipujxQO+WivcTs+ppxgZOqAdSHCqGNJ71CTTZTnXWQgXy2Lkbp0zMDgDBGPwFMdf0dL31GhPPEPVil9W2ey7LsVip+vOmhZ77cJpoNwIWZSeEUpC+eeqEXCq71nWLrCwE0R/C4hJJH6OHiogmjQweKmzbymf2KB1z9x3ty03V+uTL3pNEp18/rybGqkCgIDFQ8IlJi+FaanI7l0iW3Vk8WTlF+umhgVe6I3NXPPasv2RxcxAs+QsAzRykYXKg99gwG6PGE8t9M4xAR0wyla+6rtMMb67WPW1qzk39KmfF9BG8Ktg6OG2yA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=IRkzkjPbtCPPwr6YFsMGXiJ/lDlqgDhVqPhllWebLZM=; b=eZkzx4/OKFPc7uVGdchcDmICQ97vooLzrU5NlEjPf7CgKLGPAk8xV2TxduCiVjhHrDgZD0jA95tXLQonqWeWxbzXdGtXwk22lK/KrQre0QIMaZE8vr4rbCoBZG+CvhOo6GSF0eBtTOQ765zRPXFV24emIfgF80InnScqszm+nYQXmuvGO9yZBCJAaGDV00phSjSRkzF/8XjQfon/NFR333EXl/y6oG51XInyOecytH1Df7CKJzpph21SMCq7Ago8Jhs3yw6k21KvrkTX5/lpgm/8sJ7RPURfw9+B0F8Y8fUn8o58yB+vBiFtsZIlwMcaQWJPp8eZckscS7YALJZmuA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 51.107.2.244) smtp.rcpttodomain=kernel.org smtp.mailfrom=cern.ch; dmarc=pass (p=quarantine sp=none pct=100) action=none header.from=cern.ch; dkim=pass (signature was verified) header.d=cern.ch; arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cern.ch; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=IRkzkjPbtCPPwr6YFsMGXiJ/lDlqgDhVqPhllWebLZM=; b=RPEJ1AY8l05wkJEXpRHqm+v8y1yLYZRZt0Fo7bFVgH40d2GhMoSZjioJoWFaO7SfyUYbASdb3ZCrhgabV78w06OjKHJt2ULQtL1zFfd3uxRmgyELl2roes1w0smvhJtNwmUiAW/ybjGTY5oLvrtYBW6n5Fa7Oef9KFxN2eqlgvY= Received: from DU7PR01CA0039.eurprd01.prod.exchangelabs.com (2603:10a6:10:50e::12) by ZR4P278MB1788.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:b4::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.25; Sun, 22 Mar 2026 16:03:33 +0000 Received: from DB5PEPF00014B9B.eurprd02.prod.outlook.com (2603:10a6:10:50e:cafe::69) by DU7PR01CA0039.outlook.office365.com (2603:10a6:10:50e::12) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9723.25 via Frontend Transport; Sun, 22 Mar 2026 16:03:33 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 51.107.2.244) smtp.mailfrom=cern.ch; dkim=pass (signature was verified) header.d=cern.ch;dmarc=pass action=none header.from=cern.ch; Received-SPF: Pass (protection.outlook.com: domain of cern.ch designates 51.107.2.244 as permitted sender) receiver=protection.outlook.com; client-ip=51.107.2.244; helo=mx2.crn.activeguard.cloud; pr=C Received: from mx2.crn.activeguard.cloud (51.107.2.244) by DB5PEPF00014B9B.mail.protection.outlook.com (10.167.8.168) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9723.19 via Frontend Transport; Sun, 22 Mar 2026 16:03:32 +0000 Authentication-Results-Original: auth.opendkim.xorlab.com; dkim=pass (1024-bit key; unprotected) header.d=cern.ch header.i=@cern.ch header.a=rsa-sha256 header.s=selector1 header.b=RPEJ1AY8 Received: from GVAP278CU002.outbound.protection.outlook.com (mail-switzerlandwestazlp17010002.outbound.protection.outlook.com [40.93.86.2]) by mx2.crn.activeguard.cloud (Postfix) with ESMTPS id 660777E8FB; Sun, 22 Mar 2026 17:03:28 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cern.ch; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=IRkzkjPbtCPPwr6YFsMGXiJ/lDlqgDhVqPhllWebLZM=; b=RPEJ1AY8l05wkJEXpRHqm+v8y1yLYZRZt0Fo7bFVgH40d2GhMoSZjioJoWFaO7SfyUYbASdb3ZCrhgabV78w06OjKHJt2ULQtL1zFfd3uxRmgyELl2roes1w0smvhJtNwmUiAW/ybjGTY5oLvrtYBW6n5Fa7Oef9KFxN2eqlgvY= Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=cern.ch; Received: from ZR2P278MB1053.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:5d::11) by ZR1P278MB1326.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:6f::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.25; Sun, 22 Mar 2026 16:03:26 +0000 Received: from ZR2P278MB1053.CHEP278.PROD.OUTLOOK.COM ([fe80::79ac:8d79:4b56:709c]) by ZR2P278MB1053.CHEP278.PROD.OUTLOOK.COM ([fe80::79ac:8d79:4b56:709c%2]) with mapi id 15.20.9723.022; Sun, 22 Mar 2026 16:03:26 +0000 From: Maxim Storetvedt To: andersson@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org Cc: marcus@nazgul.ch, marijn.suijten@somainline.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, abel.vesa@linaro.org, abel.vesa@oss.qualcomm.com, johan@kernel.org, konradybcio@kernel.org, kirill@korins.ky Subject: [PATCH v6 3/3] arm64: dts: qcom: Add Samsung Galaxy Book4 Edge DTS/DTSI Date: Sun, 22 Mar 2026 17:03:12 +0100 Message-ID: <20260322160317.424797-4-mstoretv@cern.ch> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260322160317.424797-1-mstoretv@cern.ch> References: <20260322160317.424797-1-mstoretv@cern.ch> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: GV0P278CA0016.CHEP278.PROD.OUTLOOK.COM (2603:10a6:710:26::26) To ZR2P278MB1053.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:5d::11) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-TrafficTypeDiagnostic: ZR2P278MB1053:EE_|ZR1P278MB1326:EE_|DB5PEPF00014B9B:EE_|ZR4P278MB1788:EE_ X-MS-Office365-Filtering-Correlation-Id: df7fe33a-9ddb-42c3-7f52-08de882c9135 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0;ARA:13230040|19092799006|366016|10070799003|786006|7416014|376014|1800799024|22082099003|56012099003|18002099003; X-Microsoft-Antispam-Message-Info-Original: r5jpRb0j+QCT4KozgPviGfgC3Pg5dMhnp+1Zcj13HWvxtm/Fa3iBW7WVzON9jkc1v7hxr9rMFV2uRa60RXx936W/4RhVCfkCaCyOIqjgjXlRfIiGIRXHi69gCvW8kF/IEklsfRwF4VFiB/GP/0rtN1KavPNGY4mNA5LmWfwvQysEUua97CBgoKD8oOxOgjE5bCwf7sZwNegWINsE7u8onXlDZfGqtv5EgHeQTQtvKJoxUjBnwtJzINWtfQJpIv1Q+PuitThgQGeJYionUQmGHxqjbCyxZWC/3eIwtjT7RyYF2uchjJrM/hw02aPLiG0kA/8mtYYHqYBc0YHeosTPB5tkmccwZyxPV2cIW8ivKvABC9X6VsotugkFg13Zcta+SA7GyBMDS5jb0NNfsz2NSLsEP2lin7x68RYXA4a8/ceexP5lF/Xh6jw483wPLakGN6pROrMLPPa6YpwEmA4J/m9LVW5lNqRZK3uXft/lyEVPKcZ+BxruWDw82A3WS08NwJzQURyl+3Xqm0VJ1M+o33ywFU1jK2glGmhefi6M3E/fFTj/i/+j3qDcx0W3x+HgDkGNBoKmx2a9O2ULVPo746XJRgyONJX3Yk9hJQttC2QkOtMPS0qtXhh1xQnfKdCuio1jcxzkAhXt3cajAsY8GxfNxBsD6X3ljOMaRqmh3DVUvALAr3RrfH6WaDoqGGHZ X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:ZR2P278MB1053.CHEP278.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(19092799006)(366016)(10070799003)(786006)(7416014)(376014)(1800799024)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1102; X-Exchange-RoutingPolicyChecked: ArIcom+MDJIL2DKlkW+Dx0T2JwzAfruarB1ya8hsh1K9y1NpGvc6RvROwwuBsLDbe4AkjrImDewgGzbylzHh2LIXSqs4/6o2CqLr6r6VUu2HB7HtRKZTFZzbUi9S3skZQx+Y3D1+2bRv+HaedN1EgejFXL+UTT46r8lXMHJYnGCphxdv25EDdkxepNullXA8zJsEXCKXaJI5k+lfVJjofkNEhErfA2gmEDsQNmG6i5XsdHqL5Y4vF4CFqhwrpqIJxMSoV4crguKwJxqJJg7Kf2THCgr/gDynpWuRGOTVyWhWkIEQNuhVpgkNHW8tRwTCyzZ8l1DMCHTiMZuXjnp9Kw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: ZR1P278MB1326 X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DB5PEPF00014B9B.eurprd02.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 62937b03-ba03-4873-4799-08de882c8d4a X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|36860700016|19092799006|30052699003|14060799003|35042699022|82310400026|786006|56012099003|22082099003|18002099003|13003099007; X-Microsoft-Antispam-Message-Info: 1yUUMjswsiULq/Zae1rG7CFdxy/eiq8cw+VQ20LG+84vTFX7yajdFZtERoCeuSmOFWmbg5r89m0E5SuXdheVxjhhjh8RnfOxWXTTtz6Ajo6WS0nH5Bg6RPh7w9Lgg6uzA4asHZQa1+Cfr4kBZ1RgZqg+/vR0Hm3BPEO5I1kw8/HrIZ8eUThE29KSzqNrjoIWhiZtZHWNyZB4nUc9072GQpyqdKCOIvtFlvzeS7mkxpf8OYU6l7Oj2Vc9Kg4LT7KPMx8wCiCmaiv23oZKlYcau3A5U9qOWXgyuAe7XScy5GEQ7Y7fBolGGIVqrLfG7w9N4CwlwQxgaUU6OwNoY7abokyL3qEiMDP24ZG8Xnt10Hezg60o+CppmGaF/IVq2pY3U3R0SgfbCAPJd1QjPtjeX5QVnj7nVBftb0Rl0ReXq5+IY0giPXmQyLrrzbhvHuJo5mtvdiIRb/Z+E+VdZuCxyCCi6bCaj3u3klMTK3xeDp2aQerAV+dWAT55E4kuDWPVH2g0Ve+hSgq+dX3kkZAaWHBYSGuVPTpBYUN4jH6kdx86NZ36UICCRXc6iI+M78Pgtez953xWUg73cXRTTPA+aRMa586fTtdMspzuNif4sVw0lKCBP+3pggwouzX8UYZjvFzUd8TikGmd93aYAJdFxPNjN6hxJa6zlZtRcobcHkAidLtSa06ncPAbG79rPl9AcHJR5tm6b664kXNaWholOe+DgW3E/5FGXgVnt/lVvlc= X-Forefront-Antispam-Report: CIP:51.107.2.244;CTRY:CH;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:mx2.crn.activeguard.cloud;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(36860700016)(19092799006)(30052699003)(14060799003)(35042699022)(82310400026)(786006)(56012099003)(22082099003)(18002099003)(13003099007);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: I7Y/bZg9+VS/8RLunsZUAMr7uy9M77yyRLM+7uWMsqx4mUv7q9+2F30Z0Q0MaFC4MhEFeAgExCvt8ksjFSRnx0e+fJ8nHzcQeipuk9RPAITH1rykL+PvQ1XsyHS/e75ZJMHmDNBkFeCK+PNgRHP+ai52Q0vmwn9GeWxOTB/2+dDfBHGTdsGHRN8HH3fteTJIp1Gtqc2wQZhiY4CtlV3KnsaQWmQ/V1RbQQIxwWdavjfIPrW4YYYErxypUf85rAK/WeboPoAyaOCmyNiiVZd6yo3RHEc7d1uHruCwVWCpVKMSHnKnbGGXCUPEYy1xkF2z717PwwsCp+5yUmfJONP3Hz1snEV4xDRTgbFFDEyK4P8IYVljL1xm2z2HwsoQtuy3nuiK6jd7oHjgQjavxGz98UgO/hbe7hSWHKvbsibpqKe0ySIDd+xcl2fNv5hM1FcX X-OriginatorOrg: cern.ch X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Mar 2026 16:03:32.8352 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: df7fe33a-9ddb-42c3-7f52-08de882c9135 X-MS-Exchange-CrossTenant-Id: c80d3499-4a40-4a8c-986e-abce017d6b19 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c80d3499-4a40-4a8c-986e-abce017d6b19;Ip=[51.107.2.244];Helo=[mx2.crn.activeguard.cloud] X-MS-Exchange-CrossTenant-AuthSource: DB5PEPF00014B9B.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: ZR4P278MB1788 Content-Type: text/plain; charset="utf-8" Adds devicetrees for the 14-inch and 16-inch SKUs of the Samsung Galaxy Boo= k4 Edge. These use a common dtsi derived from nodes that were able to work on Linux from the initial Galaxy Book4 Edge DTS by Marcus: Link: https://lore.kernel.org/all/p3mhtj2rp6y2ezuwpd2gu7dwx5cbckfu4s4pazcud= i4j2wogtr@4yecb2bkeyms/ combined with the ongoing patch for the Honor Magicbook Art 14, and its dow= nstream by Valentin Manea, which shares device similarities: Link: https://lore.kernel.org/all/871px910m1.wl-kirill@korins.ky/ Link: https://github.com/vamanea/linux-magicbook (downstream) as well as a few more adjustments on top of that again to get additional fe= atures working. Special thanks to Jesse Ahn for helping expand on what would eventually bec= ome this dtsi. Based-on-a-patch-by: Marcus Glocker Based-on-a-patch-by: Kirill A. Korinsky Signed-off-by: Maxim Storetvedt --- arch/arm64/boot/dts/qcom/Makefile | 2 + .../qcom/x1-samsung-galaxy-book4-edge.dtsi | 1518 +++++++++++++++++ .../x1e80100-samsung-galaxy-book4-edge-14.dts | 39 + .../x1e84100-samsung-galaxy-book4-edge-16.dts | 29 + 4 files changed, 1588 insertions(+) create mode 100644 arch/arm64/boot/dts/qcom/x1-samsung-galaxy-book4-edge.d= tsi create mode 100644 arch/arm64/boot/dts/qcom/x1e80100-samsung-galaxy-book4-= edge-14.dts create mode 100644 arch/arm64/boot/dts/qcom/x1e84100-samsung-galaxy-book4-= edge-16.dts diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/M= akefile index 02921a495..3546a3be9 100644 --- a/arch/arm64/boot/dts/qcom/Makefile +++ b/arch/arm64/boot/dts/qcom/Makefile @@ -398,6 +398,8 @@ x1e80100-microsoft-romulus15-el2-dtbs :=3D x1e80100-mic= rosoft-romulus15.dtb x1-el2 dtb-$(CONFIG_ARCH_QCOM) +=3D x1e80100-microsoft-romulus15.dtb x1e80100-mic= rosoft-romulus15-el2.dtb x1e80100-qcp-el2-dtbs :=3D x1e80100-qcp.dtb x1-el2.dtbo dtb-$(CONFIG_ARCH_QCOM) +=3D x1e80100-qcp.dtb x1e80100-qcp-el2.dtb +dtb-$(CONFIG_ARCH_QCOM) +=3D x1e80100-samsung-galaxy-book4-edge-14.dtb +dtb-$(CONFIG_ARCH_QCOM) +=3D x1e84100-samsung-galaxy-book4-edge-16.dtb x1p42100-asus-vivobook-s15-el2-dtbs :=3D x1p42100-asus-vivobook-s15.dtb x1= -el2.dtbo dtb-$(CONFIG_ARCH_QCOM) +=3D x1p42100-asus-vivobook-s15.dtb x1p42100-asus-= vivobook-s15-el2.dtb x1p42100-asus-zenbook-a14-el2-dtbs :=3D x1p42100-asus-zenbook-a14.dtb x1-e= l2.dtbo diff --git a/arch/arm64/boot/dts/qcom/x1-samsung-galaxy-book4-edge.dtsi b/a= rch/arm64/boot/dts/qcom/x1-samsung-galaxy-book4-edge.dtsi new file mode 100644 index 000000000..2f9e76a82 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/x1-samsung-galaxy-book4-edge.dtsi @@ -0,0 +1,1518 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved. + * Copyright (c) 2025 Kirill A. Korinsky + * Copyright (c) 2025 Valentin Manea + */ + +/dts-v1/; + +#include +#include +#include +#include +#include + +#include "hamoa.dtsi" +#include "hamoa-pmics.dtsi" + +/ { + model =3D "Samsung Galaxy Book4 Edge"; + compatible =3D "samsung,galaxy-book4-edge", "qcom,x1e80100"; + chassis-type =3D "laptop"; + + aliases { + serial0 =3D &uart21; + serial1 =3D &uart14; + }; + + wcd938x: audio-codec { + compatible =3D "qcom,wcd9385-codec"; + + pinctrl-names =3D "default"; + pinctrl-0 =3D <&wcd_default>; + + qcom,micbias1-microvolt =3D <1800000>; + qcom,micbias2-microvolt =3D <1800000>; + qcom,micbias3-microvolt =3D <1800000>; + qcom,micbias4-microvolt =3D <1800000>; + qcom,mbhc-buttons-vthreshold-microvolt =3D <75000 150000 237000 500000 5= 00000 500000 500000 500000>; + qcom,mbhc-headset-vthreshold-microvolt =3D <1700000>; + qcom,mbhc-headphone-vthreshold-microvolt =3D <50000>; + qcom,rx-device =3D <&wcd_rx>; + qcom,tx-device =3D <&wcd_tx>; + + reset-gpios =3D <&tlmm 191 GPIO_ACTIVE_LOW>; + + vdd-buck-supply =3D <&vreg_l15b_1p8>; + vdd-rxtx-supply =3D <&vreg_l15b_1p8>; + vdd-io-supply =3D <&vreg_l15b_1p8>; + vdd-mic-bias-supply =3D <&vreg_bob1>; + + #sound-dai-cells =3D <1>; + }; + + gpio-keys { + compatible =3D "gpio-keys"; + + pinctrl-0 =3D <&hall_int_n_default>; + pinctrl-names =3D "default"; + + switch-lid { + gpios =3D <&tlmm 92 GPIO_ACTIVE_LOW>; + linux,input-type =3D ; + linux,code =3D ; + wakeup-source; + wakeup-event-action =3D ; + }; + }; + + hdmi-connector { + compatible =3D "hdmi-connector"; + type =3D "a"; + pinctrl-0 =3D <&hdmi_hpd_default>; + pinctrl-names =3D "default"; + + port { + hdmi_con: endpoint { + remote-endpoint =3D <&usb_1_ss2_qmpphy_out>; + }; + }; + }; + + pmic-glink { + compatible =3D "qcom,x1e80100-pmic-glink", + "qcom,pmic-glink"; + #address-cells =3D <1>; + #size-cells =3D <0>; + orientation-gpios =3D <&tlmm 121 GPIO_ACTIVE_HIGH>, + <&tlmm 123 GPIO_ACTIVE_HIGH>, + <&tlmm 125 GPIO_ACTIVE_HIGH>; + + /* Left-side rear port */ + connector@0 { + compatible =3D "usb-c-connector"; + reg =3D <0>; + power-role =3D "dual"; + data-role =3D "dual"; + + ports { + #address-cells =3D <1>; + #size-cells =3D <0>; + + port@0 { + reg =3D <0>; + + pmic_glink_ss0_hs_in: endpoint { + remote-endpoint =3D <&usb_1_ss0_dwc3_hs>; + }; + }; + + port@1 { + reg =3D <1>; + + pmic_glink_ss0_ss_in: endpoint { + remote-endpoint =3D <&usb_1_ss0_qmpphy_out>; + }; + }; + + port@2 { + reg =3D <2>; + + pmic_glink_ss0_sbu: endpoint { + remote-endpoint =3D <&usb_1_ss0_sbu_mux>; + }; + }; + }; + }; + + /* Left-side front port */ + connector@1 { + compatible =3D "usb-c-connector"; + reg =3D <1>; + power-role =3D "dual"; + data-role =3D "dual"; + + ports { + #address-cells =3D <1>; + #size-cells =3D <0>; + + port@0 { + reg =3D <0>; + + pmic_glink_ss1_hs_in: endpoint { + remote-endpoint =3D <&usb_1_ss1_dwc3_hs>; + }; + }; + + port@1 { + reg =3D <1>; + + pmic_glink_ss1_ss_in: endpoint { + remote-endpoint =3D <&usb_1_ss1_qmpphy_out>; + }; + }; + + port@2 { + reg =3D <2>; + + pmic_glink_ss1_sbu: endpoint { + remote-endpoint =3D <&usb_1_ss1_sbu_mux>; + }; + }; + }; + }; + }; + + reserved-memory { + linux,cma { + compatible =3D "shared-dma-pool"; + size =3D <0x0 0x8000000>; + reusable; + linux,cma-default; + }; + }; + + sound { + compatible =3D "qcom,x1e80100-sndcard"; + model =3D "X1E80100-CRD"; + audio-routing =3D "WooferLeft IN", "WSA WSA_SPK1 OUT", + "TweeterLeft IN", "WSA WSA_SPK2 OUT", + "WooferRight IN", "WSA2 WSA_SPK2 OUT", + "TweeterRight IN", "WSA2 WSA_SPK2 OUT", + "IN1_HPHL", "HPHL_OUT", + "IN2_HPHR", "HPHR_OUT", + "AMIC2", "MIC BIAS2", + "VA DMIC0", "MIC BIAS3", + "VA DMIC1", "MIC BIAS3", + "VA DMIC2", "MIC BIAS1", + "VA DMIC3", "MIC BIAS1", + "VA DMIC0", "VA MIC BIAS3", + "VA DMIC1", "VA MIC BIAS3", + "VA DMIC2", "VA MIC BIAS1", + "VA DMIC3", "VA MIC BIAS1", + "TX SWR_INPUT1", "ADC2_OUTPUT"; + + wcd-playback-dai-link { + link-name =3D "WCD Playback"; + + cpu { + sound-dai =3D <&q6apmbedai RX_CODEC_DMA_RX_0>; + }; + + codec { + sound-dai =3D <&wcd938x 0>, <&swr1 0>, <&lpass_rxmacro 0>; + }; + + platform { + sound-dai =3D <&q6apm>; + }; + }; + + wcd-capture-dai-link { + link-name =3D "WCD Capture"; + + cpu { + sound-dai =3D <&q6apmbedai TX_CODEC_DMA_TX_3>; + }; + + codec { + sound-dai =3D <&wcd938x 1>, <&swr2 1>, <&lpass_txmacro 0>; + }; + + platform { + sound-dai =3D <&q6apm>; + }; + }; + + wsa-dai-link { + link-name =3D "WSA Playback"; + + cpu { + sound-dai =3D <&q6apmbedai WSA_CODEC_DMA_RX_0>; + }; + + codec { + sound-dai =3D <&left_woofer>, <&left_tweeter>, + <&swr0 0>, <&lpass_wsamacro 0>, + <&right_woofer>, <&right_tweeter>, + <&swr3 0>, <&lpass_wsa2macro 0>; + }; + + platform { + sound-dai =3D <&q6apm>; + }; + }; + + va-dai-link { + link-name =3D "VA Capture"; + + cpu { + sound-dai =3D <&q6apmbedai VA_CODEC_DMA_TX_0>; + }; + + codec { + sound-dai =3D <&lpass_vamacro 0>; + }; + + platform { + sound-dai =3D <&q6apm>; + }; + }; + }; + + vreg_octa_vdd: regulator-octa-vdd { + compatible =3D "regulator-fixed"; + + regulator-name =3D "VREG_OCTA_VDD"; + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + + gpio =3D <&tlmm 111 GPIO_ACTIVE_HIGH>; + enable-active-high; + + pinctrl-0 =3D <&octa_vdd_en>; + pinctrl-names =3D "default"; + + startup-delay-us =3D <1000>; + regulator-enable-ramp-delay =3D <1000>; + + regulator-always-on; + regulator-boot-on; + }; + + vreg_display_vdd: regulator-display-vdd { + compatible =3D "regulator-fixed"; + + regulator-name =3D "VREG_DISPLAY_VDD"; + regulator-min-microvolt =3D <3300000>; + regulator-max-microvolt =3D <3300000>; + + gpio =3D <&tlmm 120 GPIO_ACTIVE_HIGH>; + enable-active-high; + + pinctrl-0 =3D <&display_vdd_en>; + pinctrl-names =3D "default"; + + startup-delay-us =3D <400000>; + regulator-enable-ramp-delay =3D <400000>; + + vin-supply =3D <&vreg_octa_vdd>; + + regulator-always-on; + regulator-boot-on; + }; + + vreg_edp_3p3: regulator-edp-3p3 { + compatible =3D "regulator-fixed"; + + regulator-name =3D "VREG_EDP_3P3"; + regulator-min-microvolt =3D <3300000>; + regulator-max-microvolt =3D <3300000>; + + gpio =3D <&tlmm 70 GPIO_ACTIVE_LOW>; + enable-active-low; + + pinctrl-0 =3D <&edp_reg_en>; + pinctrl-names =3D "default"; + + startup-delay-us =3D <1000>; + regulator-enable-ramp-delay =3D <1000>; + + vin-supply =3D <&vreg_display_vdd>; + + regulator-always-on; + regulator-boot-on; + }; + + + vreg_misc_3p3: regulator-misc-3p3 { + compatible =3D "regulator-fixed"; + + regulator-name =3D "VREG_MISC_3P3"; + regulator-min-microvolt =3D <3300000>; + regulator-max-microvolt =3D <3300000>; + + gpio =3D <&pm8550ve_8_gpios 6 GPIO_ACTIVE_HIGH>; + enable-active-high; + + pinctrl-names =3D "default"; + pinctrl-0 =3D <&misc_3p3_reg_en>; + + regulator-boot-on; + regulator-always-on; + }; + + vph_pwr: regulator-vph-pwr { + compatible =3D "regulator-fixed"; + + regulator-name =3D "vph_pwr"; + regulator-min-microvolt =3D <3700000>; + regulator-max-microvolt =3D <3700000>; + + regulator-always-on; + regulator-boot-on; + }; + + vreg_wcn_3p3: regulator-wcn-3p3 { + compatible =3D "regulator-fixed"; + + regulator-name =3D "VREG_WCN_3P3"; + regulator-min-microvolt =3D <3300000>; + regulator-max-microvolt =3D <3300000>; + + gpio =3D <&tlmm 214 GPIO_ACTIVE_HIGH>; + enable-active-high; + + pinctrl-0 =3D <&wcn_sw_en>; + pinctrl-names =3D "default"; + + regulator-always-on; + regulator-boot-on; + }; + + usb-1-ss0-sbu-mux { + compatible =3D "onnn,fsusb42", "gpio-sbu-mux"; + + enable-gpios =3D <&tlmm 168 GPIO_ACTIVE_LOW>; + select-gpios =3D <&tlmm 167 GPIO_ACTIVE_HIGH>; + + mode-switch; + orientation-switch; + + port { + usb_1_ss0_sbu_mux: endpoint { + remote-endpoint =3D <&pmic_glink_ss0_sbu>; + }; + }; + }; + + usb-1-ss1-sbu-mux { + compatible =3D "onnn,fsusb42", "gpio-sbu-mux"; + + enable-gpios =3D <&tlmm 179 GPIO_ACTIVE_LOW>; + select-gpios =3D <&tlmm 178 GPIO_ACTIVE_HIGH>; + + mode-switch; + orientation-switch; + + port { + usb_1_ss1_sbu_mux: endpoint { + remote-endpoint =3D <&pmic_glink_ss1_sbu>; + }; + }; + }; + + wcn7850-pmu { + compatible =3D "qcom,wcn7850-pmu"; + + wlan-enable-gpios =3D <&tlmm 117 GPIO_ACTIVE_HIGH>; + bt-enable-gpios =3D <&tlmm 116 GPIO_ACTIVE_HIGH>; + + pinctrl-0 =3D <&wcn_wlan_bt_en>; + pinctrl-names =3D "default"; + + regulators { + vreg_pmu_rfa_cmn: ldo0 { + regulator-name =3D "vreg_pmu_rfa_cmn"; + }; + + vreg_pmu_aon_0p59: ldo1 { + regulator-name =3D "vreg_pmu_aon_0p59"; + }; + + vreg_pmu_wlcx_0p8: ldo2 { + regulator-name =3D "vreg_pmu_wlcx_0p8"; + }; + + vreg_pmu_wlmx_0p85: ldo3 { + regulator-name =3D "vreg_pmu_wlmx_0p85"; + }; + + vreg_pmu_btcmx_0p85: ldo4 { + regulator-name =3D "vreg_pmu_btcmx_0p85"; + }; + + vreg_pmu_rfa_0p8: ldo5 { + regulator-name =3D "vreg_pmu_rfa_0p8"; + }; + + vreg_pmu_rfa_1p2: ldo6 { + regulator-name =3D "vreg_pmu_rfa_1p2"; + }; + + vreg_pmu_rfa_1p8: ldo7 { + regulator-name =3D "vreg_pmu_rfa_1p8"; + }; + + vreg_pmu_pcie_0p9: ldo8 { + regulator-name =3D "vreg_pmu_pcie_0p9"; + }; + + vreg_pmu_pcie_1p8: ldo9 { + regulator-name =3D "vreg_pmu_pcie_1p8"; + }; + }; + }; +}; + +&apps_rsc { + regulators-0 { + compatible =3D "qcom,pm8550-rpmh-regulators"; + qcom,pmic-id =3D "b"; + + vdd-bob1-supply =3D <&vph_pwr>; + vdd-bob2-supply =3D <&vph_pwr>; + vdd-l1-l4-l10-supply =3D <&vreg_s4c_1p8>; + vdd-l2-l13-l14-supply =3D <&vreg_bob1>; + vdd-l5-l16-supply =3D <&vreg_bob1>; + vdd-l6-l7-supply =3D <&vreg_bob2>; + vdd-l8-l9-supply =3D <&vreg_bob1>; + vdd-l12-supply =3D <&vreg_s5j_1p2>; + vdd-l15-supply =3D <&vreg_s4c_1p8>; + vdd-l17-supply =3D <&vreg_bob2>; + + vreg_bob1: bob1 { + regulator-name =3D "vreg_bob1"; + regulator-min-microvolt =3D <3008000>; + regulator-max-microvolt =3D <3960000>; + regulator-initial-mode =3D ; + }; + + vreg_bob2: bob2 { + regulator-name =3D "vreg_bob2"; + regulator-min-microvolt =3D <2504000>; + regulator-max-microvolt =3D <3008000>; + regulator-initial-mode =3D ; + }; + + vreg_l1b_1p8: ldo1 { + regulator-name =3D "vreg_l1b_1p8"; + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + regulator-initial-mode =3D ; + }; + + vreg_l2b_3p0: ldo2 { + regulator-name =3D "vreg_l2b_3p0"; + regulator-min-microvolt =3D <3072000>; + regulator-max-microvolt =3D <3100000>; + regulator-initial-mode =3D ; + }; + + vreg_l4b_1p8: ldo4 { + regulator-name =3D "vreg_l4b_1p8"; + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + regulator-initial-mode =3D ; + }; + + vreg_l5b_3p0: ldo5 { + regulator-name =3D "vreg_l5b_3p0"; + regulator-min-microvolt =3D <3000000>; + regulator-max-microvolt =3D <3000000>; + regulator-initial-mode =3D ; + }; + + vreg_l6b_1p8: ldo6 { + regulator-name =3D "vreg_l6b_1p8"; + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <2960000>; + regulator-initial-mode =3D ; + }; + + vreg_l7b_2p8: ldo7 { + regulator-name =3D "vreg_l7b_2p8"; + regulator-min-microvolt =3D <2800000>; + regulator-max-microvolt =3D <2800000>; + regulator-initial-mode =3D ; + }; + + vreg_l8b_3p0: ldo8 { + regulator-name =3D "vreg_l8b_3p0"; + regulator-min-microvolt =3D <3072000>; + regulator-max-microvolt =3D <3072000>; + regulator-initial-mode =3D ; + }; + + vreg_l9b_2p9: ldo9 { + regulator-name =3D "vreg_l9b_2p9"; + regulator-min-microvolt =3D <2960000>; + regulator-max-microvolt =3D <2960000>; + regulator-initial-mode =3D ; + }; + + vreg_l10b_1p8: ldo10 { + regulator-name =3D "vreg_l10b_1p8"; + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + regulator-initial-mode =3D ; + }; + + vreg_l12b_1p2: ldo12 { + regulator-name =3D "vreg_l12b_1p2"; + regulator-min-microvolt =3D <1200000>; + regulator-max-microvolt =3D <1200000>; + regulator-initial-mode =3D ; + regulator-always-on; + }; + + vreg_l13b_3p0: ldo13 { + regulator-name =3D "vreg_l13b_3p0"; + regulator-min-microvolt =3D <3072000>; + regulator-max-microvolt =3D <3100000>; + regulator-initial-mode =3D ; + }; + + vreg_l14b_3p0: ldo14 { + regulator-name =3D "vreg_l14b_3p0"; + regulator-min-microvolt =3D <3072000>; + regulator-max-microvolt =3D <3072000>; + regulator-initial-mode =3D ; + }; + + vreg_l15b_1p8: ldo15 { + regulator-name =3D "vreg_l15b_1p8"; + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + regulator-initial-mode =3D ; + regulator-always-on; + }; + + vreg_l16b_2p9: ldo16 { + regulator-name =3D "vreg_l16b_2p9"; + regulator-min-microvolt =3D <2912000>; + regulator-max-microvolt =3D <2912000>; + regulator-initial-mode =3D ; + }; + + vreg_l17b_2p5: ldo17 { + regulator-name =3D "vreg_l17b_2p5"; + regulator-min-microvolt =3D <2504000>; + regulator-max-microvolt =3D <2504000>; + regulator-initial-mode =3D ; + }; + }; + + regulators-1 { + compatible =3D "qcom,pm8550ve-rpmh-regulators"; + qcom,pmic-id =3D "c"; + + vdd-l1-supply =3D <&vreg_s5j_1p2>; + vdd-l2-supply =3D <&vreg_s1f_0p7>; + vdd-l3-supply =3D <&vreg_s1f_0p7>; + vdd-s4-supply =3D <&vph_pwr>; + + vreg_s4c_1p8: smps4 { + regulator-name =3D "vreg_s4c_1p8"; + regulator-min-microvolt =3D <1856000>; + regulator-max-microvolt =3D <2000000>; + regulator-initial-mode =3D ; + }; + + vreg_l1c_1p2: ldo1 { + regulator-name =3D "vreg_l1c_1p2"; + regulator-min-microvolt =3D <1200000>; + regulator-max-microvolt =3D <1200000>; + regulator-initial-mode =3D ; + }; + + vreg_l2c_0p8: ldo2 { + regulator-name =3D "vreg_l2c_0p8"; + regulator-min-microvolt =3D <880000>; + regulator-max-microvolt =3D <920000>; + regulator-initial-mode =3D ; + }; + + vreg_l3c_0p8: ldo3 { + regulator-name =3D "vreg_l3c_0p8"; + regulator-min-microvolt =3D <880000>; + regulator-max-microvolt =3D <920000>; + regulator-initial-mode =3D ; + }; + }; + + regulators-2 { + compatible =3D "qcom,pmc8380-rpmh-regulators"; + qcom,pmic-id =3D "d"; + + vdd-l1-supply =3D <&vreg_s1f_0p7>; + vdd-l2-supply =3D <&vreg_s1f_0p7>; + vdd-l3-supply =3D <&vreg_s4c_1p8>; + vdd-s1-supply =3D <&vph_pwr>; + + vreg_l1d_0p8: ldo1 { + regulator-name =3D "vreg_l1d_0p8"; + regulator-min-microvolt =3D <880000>; + regulator-max-microvolt =3D <920000>; + regulator-initial-mode =3D ; + }; + + vreg_l2d_0p9: ldo2 { + regulator-name =3D "vreg_l2d_0p9"; + regulator-min-microvolt =3D <912000>; + regulator-max-microvolt =3D <920000>; + regulator-initial-mode =3D ; + }; + + vreg_l3d_1p8: ldo3 { + regulator-name =3D "vreg_l3d_1p8"; + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + regulator-initial-mode =3D ; + }; + }; + + regulators-3 { + compatible =3D "qcom,pmc8380-rpmh-regulators"; + qcom,pmic-id =3D "e"; + + vdd-l2-supply =3D <&vreg_s1f_0p7>; + vdd-l3-supply =3D <&vreg_s5j_1p2>; + + vreg_l2e_0p8: ldo2 { + regulator-name =3D "vreg_l2e_0p8"; + regulator-min-microvolt =3D <880000>; + regulator-max-microvolt =3D <920000>; + regulator-initial-mode =3D ; + }; + + vreg_l3e_1p2: ldo3 { + regulator-name =3D "vreg_l3e_1p2"; + regulator-min-microvolt =3D <1200000>; + regulator-max-microvolt =3D <1200000>; + regulator-initial-mode =3D ; + }; + }; + + regulators-4 { + compatible =3D "qcom,pmc8380-rpmh-regulators"; + qcom,pmic-id =3D "f"; + + vdd-l1-supply =3D <&vreg_s5j_1p2>; + vdd-l2-supply =3D <&vreg_s5j_1p2>; + vdd-l3-supply =3D <&vreg_s5j_1p2>; + vdd-s1-supply =3D <&vph_pwr>; + + vreg_s1f_0p7: smps1 { + regulator-name =3D "vreg_s1f_0p7"; + regulator-min-microvolt =3D <700000>; + regulator-max-microvolt =3D <1100000>; + regulator-initial-mode =3D ; + }; + + vreg_l1f_1p0: ldo1 { + regulator-name =3D "vreg_l1f_1p0"; + regulator-min-microvolt =3D <1024000>; + regulator-max-microvolt =3D <1024000>; + regulator-initial-mode =3D ; + }; + + vreg_l2f_1p0: ldo2 { + regulator-name =3D "vreg_l2f_1p0"; + regulator-min-microvolt =3D <1024000>; + regulator-max-microvolt =3D <1024000>; + regulator-initial-mode =3D ; + }; + + vreg_l3f_1p0: ldo3 { + regulator-name =3D "vreg_l3f_1p0"; + regulator-min-microvolt =3D <1024000>; + regulator-max-microvolt =3D <1024000>; + regulator-initial-mode =3D ; + }; + }; + + regulators-6 { + compatible =3D "qcom,pm8550ve-rpmh-regulators"; + qcom,pmic-id =3D "i"; + + vdd-l1-supply =3D <&vreg_s4c_1p8>; + vdd-l2-supply =3D <&vreg_s5j_1p2>; + vdd-l3-supply =3D <&vreg_s1f_0p7>; + vdd-s1-supply =3D <&vph_pwr>; + vdd-s2-supply =3D <&vph_pwr>; + + vreg_s1i_0p9: smps1 { + regulator-name =3D "vreg_s1i_0p9"; + regulator-min-microvolt =3D <900000>; + regulator-max-microvolt =3D <920000>; + regulator-initial-mode =3D ; + }; + + vreg_s2i_1p0: smps2 { + regulator-name =3D "vreg_s2i_1p0"; + regulator-min-microvolt =3D <1000000>; + regulator-max-microvolt =3D <1100000>; + regulator-initial-mode =3D ; + }; + + vreg_l1i_1p8: ldo1 { + regulator-name =3D "vreg_l1i_1p8"; + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + regulator-initial-mode =3D ; + }; + + vreg_l2i_1p2: ldo2 { + regulator-name =3D "vreg_l2i_1p2"; + regulator-min-microvolt =3D <1200000>; + regulator-max-microvolt =3D <1200000>; + regulator-initial-mode =3D ; + }; + + vreg_l3i_0p8: ldo3 { + regulator-name =3D "vreg_l3i_0p8"; + regulator-min-microvolt =3D <880000>; + regulator-max-microvolt =3D <920000>; + regulator-initial-mode =3D ; + }; + }; + + regulators-7 { + compatible =3D "qcom,pm8550ve-rpmh-regulators"; + qcom,pmic-id =3D "j"; + + vdd-l1-supply =3D <&vreg_s1f_0p7>; + vdd-l2-supply =3D <&vreg_s5j_1p2>; + vdd-l3-supply =3D <&vreg_s1f_0p7>; + vdd-s5-supply =3D <&vph_pwr>; + + vreg_s5j_1p2: smps5 { + regulator-name =3D "vreg_s5j_1p2"; + regulator-min-microvolt =3D <1256000>; + regulator-max-microvolt =3D <1304000>; + regulator-initial-mode =3D ; + }; + + vreg_l1j_0p8: ldo1 { + regulator-name =3D "vreg_l1j_0p8"; + regulator-min-microvolt =3D <880000>; + regulator-max-microvolt =3D <920000>; + regulator-initial-mode =3D ; + }; + + vreg_l2j_1p2: ldo2 { + regulator-name =3D "vreg_l2j_1p2"; + regulator-min-microvolt =3D <1256000>; + regulator-max-microvolt =3D <1256000>; + regulator-initial-mode =3D ; + }; + + vreg_l3j_0p8: ldo3 { + regulator-name =3D "vreg_l3j_0p8"; + regulator-min-microvolt =3D <880000>; + regulator-max-microvolt =3D <920000>; + regulator-initial-mode =3D ; + }; + }; +}; + +&gpu { + status =3D "okay"; + + zap-shader { + firmware-name =3D "qcom/x1e80100/SAMSUNG/galaxy-book4-edge/= qcdxkmsuc8380.mbn"; + }; +}; + +&i2c0 { + clock-frequency =3D <400000>; + + status =3D "okay"; + + keyboard@5 { + compatible =3D "hid-over-i2c"; + reg =3D <0x5>; + + hid-descr-addr =3D <0x20>; + interrupts-extended =3D <&tlmm 67 IRQ_TYPE_LEVEL_LOW>; + + pinctrl-0 =3D <&kybd_default>; + pinctrl-names =3D "default"; + + wakeup-source; + }; +}; + +&i2c2 { + clock-frequency =3D <400000>; + + status =3D "okay"; + + eusb0_repeater: redriver@4f { + compatible =3D "nxp,ptn3222"; + reg =3D <0x4f>; + #phy-cells =3D <0>; + + vdd3v3-supply =3D <&vreg_l2b_3p0>; + vdd1v8-supply =3D <&vreg_l3d_1p8>; + + reset-gpios =3D <&tlmm 10 GPIO_ACTIVE_LOW>; + + pinctrl-0 =3D <&eusb0_reset_n>; + pinctrl-names =3D "default"; + }; +}; + +&i2c4 { + clock-frequency =3D <400000>; + + status =3D "okay"; + + eusb1_repeater: redriver@4f { + compatible =3D "nxp,ptn3222"; + reg =3D <0x4f>; + #phy-cells =3D <0>; + + vdd3v3-supply =3D <&vreg_l14b_3p0>; + vdd1v8-supply =3D <&vreg_l3d_1p8>; + + reset-gpios =3D <&tlmm 19 GPIO_ACTIVE_LOW>; + + pinctrl-0 =3D <&eusb1_reset_n>; + pinctrl-names =3D "default"; + }; +}; + +&i2c6 { + clock-frequency =3D <400000>; + + status =3D "okay"; + + eusb5_repeater: redriver@4f { + compatible =3D "nxp,ptn3222"; + reg =3D <0x4f>; + #phy-cells =3D <0>; + + vdd3v3-supply =3D <&vreg_l8b_3p0>; + vdd1v8-supply =3D <&vreg_l3d_1p8>; + + reset-gpios =3D <&tlmm 26 GPIO_ACTIVE_LOW>; + + pinctrl-0 =3D <&eusb5_reset_n>; + pinctrl-names =3D "default"; + }; +}; + +&i2c18 { + eusb6_repeater: redriver@4f { + compatible =3D "nxp,ptn3222"; + reg =3D <0x4f>; + #phy-cells =3D <0>; + + vdd3v3-supply =3D <&vreg_l13b_3p0>; + vdd1v8-supply =3D <&vreg_l4b_1p8>; + + reset-gpios =3D <&tlmm 74 GPIO_ACTIVE_LOW>; + + pinctrl-0 =3D <&eusb6_reset_n>; + pinctrl-names =3D "default"; + }; +}; + +&i2c8 { + clock-frequency =3D <400000>; + + status =3D "okay"; + + touchscreen@5d { + compatible =3D "hid-over-i2c"; + reg =3D <0x5d>; + + hid-descr-addr =3D <0x1>; + interrupts-extended =3D <&tlmm 34 IRQ_TYPE_LEVEL_LOW>; + + vdd-supply =3D <&vreg_misc_3p3>; + /* Lower power supply is not enoug to work. */ + // vddl-supply =3D <&vreg_l15b_1p8>; + + pinctrl-0 =3D <&ts0_default>; + pinctrl-names =3D "default"; + }; +}; + +&i2c13 { + clock-frequency =3D <400000>; + + status =3D "okay"; +}; + +&lpass_tlmm { + spkr_01_sd_n_active: spkr-01-sd-n-active-state { + pins =3D "gpio12"; + function =3D "gpio"; + drive-strength =3D <16>; + bias-disable; + output-low; + }; + + spkr_23_sd_n_active: spkr-23-sd-n-active-state { + pins =3D "gpio13"; + function =3D "gpio"; + drive-strength =3D <16>; + bias-disable; + output-low; + }; +}; + +&lpass_vamacro { + pinctrl-0 =3D <&dmic01_default>, <&dmic23_default>; + pinctrl-names =3D "default"; + + vdd-micb-supply =3D <&vreg_l1b_1p8>; + qcom,dmic-sample-rate =3D <4800000>; +}; + +&mdss { + status =3D "okay"; +}; + +&mdss_dp0 { + status =3D "okay"; +}; + +&mdss_dp0_out { + data-lanes =3D <0 1>; + link-frequencies =3D /bits/ 64 <1620000000 2700000000 5400000000 81000000= 00>; +}; + +&mdss_dp1 { + status =3D "okay"; +}; + +&mdss_dp1_out { + data-lanes =3D <0 1>; + link-frequencies =3D /bits/ 64 <1620000000 2700000000 5400000000 81000000= 00>; +}; + +&mdss_dp2 { + status =3D "okay"; +}; + +&mdss_dp2_out { + data-lanes =3D <0 1 2 3>; +}; + +&mdss_dp3 { + /delete-property/ #sound-dai-cells; + + pinctrl-0 =3D <&edp0_hpd_default>; + pinctrl-names =3D "default"; + + status =3D "okay"; + + aux-bus { + panel: panel { + compatible =3D "samsung,atna60cl07", "samsung,atna33xc20"; + enable-gpios =3D <&pmc8380_3_gpios 4 GPIO_ACTIVE_HIGH>; + power-supply =3D <&vreg_edp_3p3>; + hpd-gpios =3D <&tlmm 119 GPIO_ACTIVE_HIGH>; + + pinctrl-0 =3D <&edp_bl_en>; + pinctrl-names =3D "default"; + + port { + edp_panel_in: endpoint { + remote-endpoint =3D <&mdss_dp3_out>; + }; + }; + }; + }; + + ports { + port@1 { + reg =3D <1>; + mdss_dp3_out: endpoint { + data-lanes =3D <0 1 2 3>; + link-frequencies =3D /bits/ 64 <1620000000 2700000000 5400000000>; + + remote-endpoint =3D <&edp_panel_in>; + }; + }; + }; +}; + + +&mdss_dp3_phy { + vdda-phy-supply =3D <&vreg_l3j_0p8>; + vdda-pll-supply =3D <&vreg_l2j_1p2>; + + status =3D "okay"; +}; + +&pcie4 { + perst-gpios =3D <&tlmm 146 GPIO_ACTIVE_LOW>; + wake-gpios =3D <&tlmm 148 GPIO_ACTIVE_LOW>; + + pinctrl-0 =3D <&pcie4_default>; + pinctrl-names =3D "default"; + + status =3D "okay"; +}; + +&pcie4_phy { + vdda-phy-supply =3D <&vreg_l3i_0p8>; + vdda-pll-supply =3D <&vreg_l3e_1p2>; + + status =3D "okay"; +}; + +&pcie4_port0 { + wifi@0 { + compatible =3D "pci17cb,1107"; + reg =3D <0x10000 0x0 0x0 0x0 0x0>; + + vddaon-supply =3D <&vreg_pmu_aon_0p59>; + vddwlcx-supply =3D <&vreg_pmu_wlcx_0p8>; + vddwlmx-supply =3D <&vreg_pmu_wlmx_0p85>; + vddrfacmn-supply =3D <&vreg_pmu_rfa_cmn>; + vddrfa0p8-supply =3D <&vreg_pmu_rfa_0p8>; + vddrfa1p2-supply =3D <&vreg_pmu_rfa_1p2>; + vddrfa1p8-supply =3D <&vreg_pmu_rfa_1p8>; + vddpcie0p9-supply =3D <&vreg_pmu_pcie_0p9>; + vddpcie1p8-supply =3D <&vreg_pmu_pcie_1p8>; + }; +}; + +&pm8550ve_8_gpios { + misc_3p3_reg_en: misc-3p3-reg-en-state { + pins =3D "gpio6"; + function =3D "normal"; + bias-disable; + input-disable; + output-enable; + drive-push-pull; + power-source =3D <1>; /* 1.8 V */ + qcom,drive-strength =3D ; + }; +}; + +&pmc8380_3_gpios { + edp_bl_en: edp-bl-en-state { + pins =3D "gpio4"; + function =3D "normal"; + power-source =3D <1>; /* 1.8V */ + input-disable; + output-enable; + }; +}; + +&qupv3_0 { + status =3D "okay"; +}; + +&qupv3_1 { + status =3D "okay"; +}; + +&qupv3_2 { + status =3D "okay"; +}; + +&remoteproc_adsp { + firmware-name =3D "qcom/x1e80100/SAMSUNG/galaxy-book4-edge/qcadsp8380.mbn= ", + "qcom/x1e80100/SAMSUNG/galaxy-book4-edge/adsp_dtbs.elf"; + + status =3D "okay"; +}; + +&remoteproc_cdsp { + firmware-name =3D "qcom/x1e80100/SAMSUNG/galaxy-book4-edge/qccdsp8380.mbn= ", + "qcom/x1e80100/SAMSUNG/galaxy-book4-edge/cdsp_dtbs.elf"; + + status =3D "okay"; +}; + +&swr0 { + status =3D "okay"; + + pinctrl-0 =3D <&wsa_swr_active>, <&spkr_01_sd_n_active>; + pinctrl-names =3D "default"; + + /* WSA8845, Left Woofer */ + left_woofer: speaker@0,0 { + compatible =3D "sdw20217020400"; + reg =3D <0 0>; + reset-gpios =3D <&lpass_tlmm 12 GPIO_ACTIVE_LOW>; + #sound-dai-cells =3D <0>; + sound-name-prefix =3D "WooferLeft"; + vdd-1p8-supply =3D <&vreg_l15b_1p8>; + vdd-io-supply =3D <&vreg_l12b_1p2>; + qcom,port-mapping =3D <1 2 3 7 10 13>; + }; + + /* WSA8845, Left Tweeter */ + left_tweeter: speaker@0,1 { + compatible =3D "sdw20217020400"; + reg =3D <0 1>; + reset-gpios =3D <&lpass_tlmm 12 GPIO_ACTIVE_LOW>; + #sound-dai-cells =3D <0>; + sound-name-prefix =3D "TweeterLeft"; + vdd-1p8-supply =3D <&vreg_l15b_1p8>; + vdd-io-supply =3D <&vreg_l12b_1p2>; + qcom,port-mapping =3D <4 5 6 7 11 13>; + }; +}; + +&swr1 { + status =3D "okay"; + + /* WCD9385 RX */ + wcd_rx: codec@0,4 { + compatible =3D "sdw20217010d00"; + reg =3D <0 4>; + qcom,rx-port-mapping =3D <1 2 3 4 5>; + }; +}; + +&swr2 { + status =3D "okay"; + + /* WCD9385 TX */ + wcd_tx: codec@0,3 { + compatible =3D "sdw20217010d00"; + reg =3D <0 3>; + qcom,tx-port-mapping =3D <2 2 3 4>; + }; +}; + +&swr3 { + status =3D "okay"; + + pinctrl-0 =3D <&wsa2_swr_active>, <&spkr_23_sd_n_active>; + pinctrl-names =3D "default"; + + /* WSA8845, Right Woofer */ + right_woofer: speaker@0,0 { + compatible =3D "sdw20217020400"; + reg =3D <0 0>; + reset-gpios =3D <&lpass_tlmm 13 GPIO_ACTIVE_LOW>; + #sound-dai-cells =3D <0>; + sound-name-prefix =3D "WooferRight"; + vdd-1p8-supply =3D <&vreg_l15b_1p8>; + vdd-io-supply =3D <&vreg_l12b_1p2>; + qcom,port-mapping =3D <1 2 3 7 10 13>; + }; + + /* WSA8845, Right Tweeter */ + right_tweeter: speaker@0,1 { + compatible =3D "sdw20217020400"; + reg =3D <0 1>; + reset-gpios =3D <&lpass_tlmm 13 GPIO_ACTIVE_LOW>; + #sound-dai-cells =3D <0>; + sound-name-prefix =3D "TweeterRight"; + vdd-1p8-supply =3D <&vreg_l15b_1p8>; + vdd-io-supply =3D <&vreg_l12b_1p2>; + qcom,port-mapping =3D <4 5 6 7 11 13>; + }; +}; + +&tlmm { + gpio-reserved-ranges =3D <34 2>, /* Unused */ + <44 4>; /* SPI (TPM) */ + + edp_reg_en: edp-reg-en-state { + pins =3D "gpio70"; + function =3D "gpio"; + drive-strength =3D <16>; + bias-pull-up; + output-low; + }; + + octa_vdd_en: octa-vdd-en-state { + pins =3D "gpio111"; + function =3D "gpio"; + drive-strength =3D <16>; + bias-pull-up; + output-high; + }; + + display_vdd_en: display-vdd-en-state { + pins =3D "gpio120"; + function =3D "gpio"; + drive-strength =3D <16>; + bias-pull-up; + output-high; + }; + + edp0_hpd_default: edp0-hpd-default-state { + pins =3D "gpio119"; + function =3D "edp0_hot"; + bias-pull-down; + input-enable; + drive-strength =3D <2>; + }; + + + hall_int_n_default: hall-int-n-state { + pins =3D "gpio92"; + function =3D "gpio"; + bias-disable; + }; + + kybd_default: kybd-default-state { + pins =3D "gpio67"; + function =3D "gpio"; + bias-disable; + }; + + hdmi_hpd_default: hdmi-hpd-default-state { + pins =3D "gpio126"; + function =3D "usb2_dp"; + bias-disable; + }; + + eusb0_reset_n: eusb0-reset-n-state { + pins =3D "gpio10"; + function =3D "gpio"; + drive-strength =3D <2>; + bias-disable; + output-low; + }; + + eusb1_reset_n: eusb1-reset-n-state { + pins =3D "gpio19"; + function =3D "gpio"; + drive-strength =3D <2>; + bias-disable; + output-low; + }; + + eusb5_reset_n: eusb5-reset-n-state { + pins =3D "gpio26"; + function =3D "gpio"; + drive-strength =3D <2>; + bias-disable; + output-low; + }; + + eusb6_reset_n: eusb6-reset-n-state { + pins =3D "gpio74"; + function =3D "gpio"; + drive-strength =3D <2>; + bias-disable; + output-low; + }; + + pcie4_default: pcie4-default-state { + clkreq-n-pins { + pins =3D "gpio147"; + function =3D "pcie4_clk"; + drive-strength =3D <2>; + bias-pull-up; + }; + + perst-n-pins { + pins =3D "gpio146"; + function =3D "gpio"; + drive-strength =3D <2>; + bias-disable; + }; + + wake-n-pins { + pins =3D "gpio148"; + function =3D "gpio"; + drive-strength =3D <2>; + bias-pull-up; + }; + }; + + tpad_default: tpad-default-state { + pins =3D "gpio3"; + function =3D "gpio"; + bias-disable; + }; + + ts0_default: ts0-default-state { + int-n-pins { + pins =3D "gpio34"; + function =3D "gpio"; + bias-disable; + }; + + reset-n-pins { + pins =3D "gpio48"; + function =3D "gpio"; + output-high; + drive-strength =3D <16>; + }; + }; + + wcn_sw_en: wcn-sw-en-state { + pins =3D "gpio214"; + function =3D "gpio"; + drive-strength =3D <2>; + bias-disable; + }; + + wcn_wlan_bt_en: wcn-wlan-bt-en-state { + pins =3D "gpio116", "gpio117"; + function =3D "gpio"; + drive-strength =3D <2>; + bias-disable; + }; + + wcd_default: wcd-reset-n-active-state { + pins =3D "gpio191"; + function =3D "gpio"; + drive-strength =3D <16>; + bias-disable; + output-low; + }; +}; + +&ufs_mem_hc { + status =3D "okay"; + + reset-gpios =3D <&tlmm 238 GPIO_ACTIVE_LOW>; + vcc-supply =3D <&vreg_l17b_2p5>; + vcc-max-microamp =3D <600000>; + + vccq-supply =3D <&vreg_l2i_1p2>; + vccq-max-microamp =3D <600000>; +}; + +&ufs_mem_phy { + status =3D "okay"; + + vdda-phy-supply =3D <&vreg_l3i_0p8>; + vdda-pll-supply =3D <&vreg_l3e_1p2>; +}; + +&uart14 { + status =3D "okay"; + + bluetooth { + compatible =3D "qcom,wcn7850-bt"; + max-speed =3D <3200000>; + + vddaon-supply =3D <&vreg_pmu_aon_0p59>; + vddwlcx-supply =3D <&vreg_pmu_wlcx_0p8>; + vddwlmx-supply =3D <&vreg_pmu_wlmx_0p85>; + vddrfacmn-supply =3D <&vreg_pmu_rfa_cmn>; + vddrfa0p8-supply =3D <&vreg_pmu_rfa_0p8>; + vddrfa1p2-supply =3D <&vreg_pmu_rfa_1p2>; + vddrfa1p8-supply =3D <&vreg_pmu_rfa_1p8>; + }; +}; + +&uart21 { + compatible =3D "qcom,geni-debug-uart"; + status =3D "okay"; +}; + +/* usb1 covers left side typec ports */ + +/* back(towards the display) typec port */ +&usb_1_ss0 { + status =3D "okay"; +}; + +&usb_1_ss0_hsphy { + vdd-supply =3D <&vreg_l3j_0p8>; + vdda12-supply =3D <&vreg_l2j_1p2>; + + status =3D "okay"; +}; + +&usb_1_ss0_qmpphy { + vdda-phy-supply =3D <&vreg_l2j_1p2>; + vdda-pll-supply =3D <&vreg_l1j_0p8>; + + status =3D "okay"; +}; + +&usb_1_ss0_dwc3 { + dr_mode =3D "host"; +}; + +&usb_1_ss0_dwc3_hs { + remote-endpoint =3D <&pmic_glink_ss0_hs_in>; +}; + +&usb_1_ss0_qmpphy_out { + remote-endpoint =3D <&pmic_glink_ss0_ss_in>; +}; + +/* front typec port */ +&usb_1_ss1 { + status =3D "okay"; +}; + +&usb_1_ss1_hsphy { + vdd-supply =3D <&vreg_l3j_0p8>; + vdda12-supply =3D <&vreg_l2j_1p2>; + + status =3D "okay"; +}; + +&usb_1_ss1_qmpphy { + vdda-phy-supply =3D <&vreg_l2j_1p2>; + vdda-pll-supply =3D <&vreg_l2d_0p9>; + + status =3D "okay"; +}; + +&usb_1_ss1_dwc3 { + dr_mode =3D "host"; +}; + +&usb_1_ss1_dwc3_hs { + remote-endpoint =3D <&pmic_glink_ss1_hs_in>; +}; + +&usb_1_ss1_qmpphy_out { + remote-endpoint =3D <&pmic_glink_ss1_ss_in>; +}; + +/* DP-HDMI bridge connected here? */ +&usb_1_ss2_qmpphy { + vdda-phy-supply =3D <&vreg_l2j_1p2>; + vdda-pll-supply =3D <&vreg_l2d_0p9>; + + qcom,combo-initial-mode =3D "dp"; + + /delete-property/ mode-switch; + /delete-property/ orientation-switch; + + status =3D "okay"; +}; + +&usb_1_ss2_qmpphy_out { + remote-endpoint =3D <&hdmi_con>; +}; + + +/* MP0 goes to the USB-A port(USB3) and FPC */ +&usb_mp { + status =3D "okay"; +}; + +&usb_mp_hsphy0 { + vdd-supply =3D <&vreg_l2e_0p8>; + vdda12-supply =3D <&vreg_l3e_1p2>; + + status =3D "okay"; +}; + +&usb_mp_hsphy1 { + vdd-supply =3D <&vreg_l2e_0p8>; + vdda12-supply =3D <&vreg_l3e_1p2>; + + status =3D "okay"; +}; + +&usb_mp_qmpphy0 { + vdda-phy-supply =3D <&vreg_l3e_1p2>; + vdda-pll-supply =3D <&vreg_l3c_0p8>; + + status =3D "okay"; +}; + +&usb_mp_qmpphy1 { + vdda-phy-supply =3D <&vreg_l3e_1p2>; + vdda-pll-supply =3D <&vreg_l3c_0p8>; + + status =3D "okay"; +}; diff --git a/arch/arm64/boot/dts/qcom/x1e80100-samsung-galaxy-book4-edge-14= .dts b/arch/arm64/boot/dts/qcom/x1e80100-samsung-galaxy-book4-edge-14.dts new file mode 100644 index 000000000..1713ea4ce --- /dev/null +++ b/arch/arm64/boot/dts/qcom/x1e80100-samsung-galaxy-book4-edge-14.dts @@ -0,0 +1,39 @@ +// SPDX-License-Identifier: BSD-3-Clause + +#include "x1-samsung-galaxy-book4-edge.dtsi" + +/ { + model =3D "Samsung Galaxy Book4 Edge (14 inch)"; + compatible =3D "samsung,galaxy-book4-edge-14", "samsung,galaxy-book4-edge= ", + "qcom,x1e80100"; + +}; + +&i2c13 { + touchpad@40 { + compatible =3D "hid-over-i2c"; + reg =3D <0x40>; + + hid-descr-addr =3D <0xe>; + interrupts-extended =3D <&tlmm 3 IRQ_TYPE_LEVEL_LOW>; + + pinctrl-0 =3D <&tpad_default>; + pinctrl-names =3D "default"; + }; +}; + +&panel { + compatible =3D "samsung,atna40cu07", "samsung,atna33xc20"; + enable-gpios =3D <&pmc8380_3_gpios 4 GPIO_ACTIVE_HIGH>; + power-supply =3D <&vreg_edp_3p3>; + no-hpd; + + pinctrl-0 =3D <&edp_bl_en>; + pinctrl-names =3D "default"; + + port { + edp_panel_in: endpoint { + remote-endpoint =3D <&mdss_dp3_out>; + }; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/x1e84100-samsung-galaxy-book4-edge-16= .dts b/arch/arm64/boot/dts/qcom/x1e84100-samsung-galaxy-book4-edge-16.dts new file mode 100644 index 000000000..1bc49d994 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/x1e84100-samsung-galaxy-book4-edge-16.dts @@ -0,0 +1,29 @@ +// SPDX-License-Identifier: BSD-3-Clause + +#include "x1-samsung-galaxy-book4-edge.dtsi" + +/ { + model =3D "Samsung Galaxy Book4 Edge (16 inch)"; + compatible =3D "samsung,galaxy-book4-edge-16", "samsung,galaxy-book4-edge= ", + "qcom,x1e80100"; +}; + +&i2c13 { + touchpad@50 { + compatible =3D "hid-over-i2c"; + reg =3D <0x50>; + + hid-descr-addr =3D <0xd1>; + interrupts-extended =3D <&tlmm 3 IRQ_TYPE_LEVEL_LOW>; + + vdd-supply =3D <&vreg_misc_3p3>; + vddl-supply =3D <&vreg_l15b_1p8>; + + pinctrl-0 =3D <&tpad_default>; + pinctrl-names =3D "default"; + }; +}; + + + + --=20 2.43.0