From nobody Mon Apr 20 05:57:43 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2D376C43334 for ; Wed, 22 Jun 2022 04:10:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1356655AbiFVEKf (ORCPT ); Wed, 22 Jun 2022 00:10:35 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42572 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232414AbiFVEKV (ORCPT ); Wed, 22 Jun 2022 00:10:21 -0400 Received: from mail-ot1-x333.google.com (mail-ot1-x333.google.com [IPv6:2607:f8b0:4864:20::333]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C2D1E33E22 for ; Tue, 21 Jun 2022 21:10:20 -0700 (PDT) Received: by mail-ot1-x333.google.com with SMTP id l9-20020a056830268900b006054381dd35so12203906otu.4 for ; Tue, 21 Jun 2022 21:10:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=KKIz5tnMbAzg2NTgeo3md9ebE7cBvAVZ/cPgDeboDYc=; b=vnUfKCyey+9D47t4+fBJNDpMiXQmXk52knlTD60xh/r1aWgbpk6QNFQvnVfIi8baWT nlogEZBGYb5XZGB/4BAEucIqkKW04aMSvzJLa81SgyGF09TYxv4nt2BHeRRdRmadRoIJ I/IUYa/OJMEA5oRx1OINg+mPjgA4/UpHRceIO9PKqmnW6NwOv87Psc1eyG11rV/UmAeN uu/QCPXmyjY53Am0o0Xy7KD4ajmeu73duPDWksp5KecgNjmGyYpO6RsmnqKk5y2LumHe 9bZ3mpN50LHSnfRirzE/hkhidANsLd8xBYk64LXTFOrnGzohmdg0h5KbA8COvS375jEX EbsA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=KKIz5tnMbAzg2NTgeo3md9ebE7cBvAVZ/cPgDeboDYc=; b=tw949ZyK/x7fIbqApqkoOVxIyH7et6rcqI/TGxjq02la4dh+Pka54T395j/1aHzmvS faluGIxaPqF5UVwo4bg28/yg9FpFQq3cOvNR7Us/S8hkzyWT9SmH+FmUVDBHQEpltNWn jiJGF2qr5ROSxqxn9epKLZvTzDI09RdjOHYDMDUUONBA5pykwb12bZ9lWYfZwV7+96Ij TKqyvM3biKpLxtqIj5pDmB7Dph6xE4Qq/yndlKO5DaoUiqJZqoFcaM8Tw++cZEPC/t3D WU7a4NXRp+TWLfbxvWwHSYI8jMGmi+hwgBadKbNmgW8cut7dOlbNlvexNdX8pDS6fkGg Sy/g== X-Gm-Message-State: AJIora9kgUd8xAWSGsgVqSx/+qEK8O8eEv+vdgVv2lef5i352ddm877i 0IL0DyDOU8LuT4QTG9HoeOWGsw== X-Google-Smtp-Source: AGRyM1sWT0gOCuqBLlvADMHlst9VYSq5f2w5tIFcioSWUzKDFU8DOoqY4cd6CePeFZGAP2deC2pa/Q== X-Received: by 2002:a05:6830:6306:b0:614:c6db:9d3e with SMTP id cg6-20020a056830630600b00614c6db9d3emr714330otb.60.1655871020116; Tue, 21 Jun 2022 21:10:20 -0700 (PDT) Received: from ripper.. (104-57-184-186.lightspeed.austtx.sbcglobal.net. [104.57.184.186]) by smtp.gmail.com with ESMTPSA id b7-20020a056870918700b000f2455e26acsm2314718oaf.48.2022.06.21.21.10.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Jun 2022 21:10:19 -0700 (PDT) From: Bjorn Andersson To: Andy Gross , Bjorn Andersson , Rob Herring , Krzysztof Kozlowski Cc: Manivannan Sadhasivam , Jassi Brar , linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 1/6] dt-bindings: arm: qcom: Document additional sc8280xp devices Date: Tue, 21 Jun 2022 21:12:19 -0700 Message-Id: <20220622041224.627803-2-bjorn.andersson@linaro.org> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220622041224.627803-1-bjorn.andersson@linaro.org> References: <20220622041224.627803-1-bjorn.andersson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Add the CRD (Customer Reference Design?) and the Lenovo Thinkpad X13s to the valid device compatibles found on the sc8280xp platform. Signed-off-by: Bjorn Andersson Acked-by: Krzysztof Kozlowski Reviewed-by: Johan Hovold --- Changes since v1: - Added the two missing board compatibles Documentation/devicetree/bindings/arm/qcom.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/devicetree/bindings/arm/qcom.yaml b/Documentatio= n/devicetree/bindings/arm/qcom.yaml index 5c06d1bfc046..6ec7521be19d 100644 --- a/Documentation/devicetree/bindings/arm/qcom.yaml +++ b/Documentation/devicetree/bindings/arm/qcom.yaml @@ -238,6 +238,8 @@ properties: =20 - items: - enum: + - lenovo,thinkpad-x13s + - qcom,sc8280xp-crd - qcom,sc8280xp-qrd - const: qcom,sc8280xp =20 --=20 2.35.1 From nobody Mon Apr 20 05:57:43 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6AA10C43334 for ; Wed, 22 Jun 2022 04:10:39 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1356751AbiFVEKi (ORCPT ); Wed, 22 Jun 2022 00:10:38 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42602 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1356552AbiFVEKX (ORCPT ); Wed, 22 Jun 2022 00:10:23 -0400 Received: from mail-oa1-x2e.google.com (mail-oa1-x2e.google.com [IPv6:2001:4860:4864:20::2e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C5FA633E17 for ; Tue, 21 Jun 2022 21:10:21 -0700 (PDT) Received: by mail-oa1-x2e.google.com with SMTP id 586e51a60fabf-101d96fe0a5so11527962fac.2 for ; Tue, 21 Jun 2022 21:10:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=zjnIC6kku1LNGs5C6wxJSFgJUu5lrUfNmdEoTsf6hpw=; b=db4WmBtzFl7YpQwaRMaGVH01mEeJHk1VOnCuNCDdAz+y+E/zg2akJG3ZrJt8pJuyuK Q3MgdlGGKwDA0NuJx3w3CYfBMU2z2X6HXnIbBb/0biIf98J42AuPQzZU7V/OlYnNfkjY 7BuB1SC4hct4PhktN8Tc5JK0xZKRFClfrnGkNFcmTA+kAGZWVgdm+5L0mAOt+cPQJOem LFnVPwfUCjJai39l/k0F4zcEtx6YJqDEi+597Oz8QaHqiA9L3YEvf6Eyq0OjxqwGChmq osC+0mYrFxpLh7jVOThvsKpoEV1wYeg9vB8YvJt3Z4fIAaignVkHODlAgjWu0sEA0sAA f/Lg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=zjnIC6kku1LNGs5C6wxJSFgJUu5lrUfNmdEoTsf6hpw=; b=qLoCcIVYJg4LeJ74bY5tpAMh8TBxQZY5knpSlKgTAi57LIGSMx6r2VnG8ZSG0NZ6gf /DULJp8pgLjQoI+2XKAxji+cgpxQLICkJYsVvremKvpo/1oxuzRtnU6Fiv+Sp7os9e4P KJLKKBGIpqO5mBNDqr541/P3pUBWuWVZcDRARbd2MpHRCmRrwwEcPiMpqNp+zoICY/+M SF6+v1In4jckk98RAuTryKu0rT4SI4WGBOo/uSK+IOvACtUyhRdy8QumSheVe5u7wR/D h5+qdw6VUlxkDR94BhspfLQxAgn7re4wzKgnMOedCYMX/9+2X4Rd4yF4VFXqb/r3M+If y82A== X-Gm-Message-State: AJIora9Lq8CuEHek+Czq7eTcJWpoJscwqiHdeoU7XJ2JG8c4hJwnnh8Z oS9WFocGwmcrK0zNkUCx+XCCPg== X-Google-Smtp-Source: AGRyM1uajMmDarLjCSa8/IRfeCMFHaAQYL8Ln05z+DpWxeTkp08O458IB+ni2/sxws9/IsGtApaV3w== X-Received: by 2002:a05:6871:78a:b0:101:f144:4bad with SMTP id o10-20020a056871078a00b00101f1444badmr990181oap.240.1655871021145; Tue, 21 Jun 2022 21:10:21 -0700 (PDT) Received: from ripper.. (104-57-184-186.lightspeed.austtx.sbcglobal.net. [104.57.184.186]) by smtp.gmail.com with ESMTPSA id b7-20020a056870918700b000f2455e26acsm2314718oaf.48.2022.06.21.21.10.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Jun 2022 21:10:20 -0700 (PDT) From: Bjorn Andersson To: Jassi Brar Cc: Andy Gross , Rob Herring , Krzysztof Kozlowski , Manivannan Sadhasivam , linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Krzysztof Kozlowski Subject: [PATCH v2 2/6] dt-bindings: mailbox: qcom-ipcc: Add NSP1 client Date: Tue, 21 Jun 2022 21:12:20 -0700 Message-Id: <20220622041224.627803-3-bjorn.andersson@linaro.org> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220622041224.627803-1-bjorn.andersson@linaro.org> References: <20220622041224.627803-1-bjorn.andersson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Add a client for the NSP1 found in some recent Qualcomm platforms. Acked-by: Krzysztof Kozlowski Signed-off-by: Bjorn Andersson --- Changes since v1: - None include/dt-bindings/mailbox/qcom-ipcc.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/dt-bindings/mailbox/qcom-ipcc.h b/include/dt-bindings/= mailbox/qcom-ipcc.h index 9296d0bb5f34..fbfa3febc66d 100644 --- a/include/dt-bindings/mailbox/qcom-ipcc.h +++ b/include/dt-bindings/mailbox/qcom-ipcc.h @@ -30,6 +30,7 @@ #define IPCC_CLIENT_PCIE1 14 #define IPCC_CLIENT_PCIE2 15 #define IPCC_CLIENT_SPSS 16 +#define IPCC_CLIENT_NSP1 18 #define IPCC_CLIENT_TME 23 #define IPCC_CLIENT_WPSS 24 =20 --=20 2.35.1 From nobody Mon Apr 20 05:57:43 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id EA0C3C433EF for ; Wed, 22 Jun 2022 04:10:44 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231591AbiFVEKn (ORCPT ); Wed, 22 Jun 2022 00:10:43 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42678 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1356516AbiFVEK0 (ORCPT ); Wed, 22 Jun 2022 00:10:26 -0400 Received: from mail-oa1-x35.google.com (mail-oa1-x35.google.com [IPv6:2001:4860:4864:20::35]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F3B1D33E21 for ; Tue, 21 Jun 2022 21:10:22 -0700 (PDT) Received: by mail-oa1-x35.google.com with SMTP id 586e51a60fabf-101ab23ff3fso17276807fac.1 for ; Tue, 21 Jun 2022 21:10:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=UYkznzrl1BiBPmMJ0kmLYjV4WhHcRVsgXlsUjMjzNF8=; b=BykCpFuUxTjVMxm7vq++XY4w1PeOtGGdftbiqpCfDIgRqDcRGjyqE6OJDPsYjcatGz T/REjnQlRyUkVq5DkYWlLtaCqDsKKZXmOnAjEjEOqX+bJfXRUWRgn+sTna7RYrqkiS3v vVzz69OShd3SrW/Lh42J+f/aSL4DiMT1myRpzKJcmN3uOMl7EGcNQplY8sERayhSnOfR 3nbzKFSGkZOyYTl5Vw0wnRBuQfD+pCI6ATLdkLfXyr1DVptS3X4hDSXJ/ikLHy9GmBRy d7m7wdsKiuRkGn77+cP/S9j4GsvP/0XHYMd1JTEMHhD7udlJiVgV7QTSupNY+VK4Rxd7 BJ9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=UYkznzrl1BiBPmMJ0kmLYjV4WhHcRVsgXlsUjMjzNF8=; b=q+KJp9mL46tVNMHfnQw392c6mYbe7aHCUZeychSHW5xLfThw5NxYjaVX8WSHRiCnjX 4UO8BTNMwmZYJfE/WzZEVi15HuYIO84brk+IMolMu2zV1bEVlLnWcBvw0JpLGHDvj26+ WSduF6OL0QnOX1HK4u6RgoKEZFFpyw7G7vpqvW0pMwJceaCZzY3GaOUgkSyJ4r53Oayo k4HGFgkmTUQ/F+K58FTTjDyt9yuY8L2VWBiBDdxDHLiT60oToEj9/8uQWXwRALw7OvN6 dXYc0CKXyEZtdjLsJMqv7ojcFHo1EKwjkJfPU4xEoNsoJ7q4u4nTXEWHY10lELJzVAoW oi+Q== X-Gm-Message-State: AJIora9vXofGIGC3Af1T8tidwYqBPpadSg73R2hsVT4yORZB/fttJRGA 2EHTvRvy0n7H5tfLVgZWgusFUg== X-Google-Smtp-Source: AGRyM1t3qoT2tWFxXg8CL//FRKJOVhpU4A6oJQ0o7RG7LKq3RDpoygcMG7KLws7/nDpY+lXE6yfLqg== X-Received: by 2002:a05:6870:514e:b0:105:cdf1:f2b6 with SMTP id z14-20020a056870514e00b00105cdf1f2b6mr355747oak.148.1655871022396; Tue, 21 Jun 2022 21:10:22 -0700 (PDT) Received: from ripper.. (104-57-184-186.lightspeed.austtx.sbcglobal.net. [104.57.184.186]) by smtp.gmail.com with ESMTPSA id b7-20020a056870918700b000f2455e26acsm2314718oaf.48.2022.06.21.21.10.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Jun 2022 21:10:21 -0700 (PDT) From: Bjorn Andersson To: Andy Gross , Bjorn Andersson , Krzysztof Kozlowski Cc: Rob Herring , Manivannan Sadhasivam , Jassi Brar , linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 3/6] arm64: dts: qcom: add SC8280XP platform Date: Tue, 21 Jun 2022 21:12:21 -0700 Message-Id: <20220622041224.627803-4-bjorn.andersson@linaro.org> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220622041224.627803-1-bjorn.andersson@linaro.org> References: <20220622041224.627803-1-bjorn.andersson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Introduce initial support for the Qualcomm SC8280XP platform, aka 8cx Gen 3. This initial contribution supports SMP, CPUfreq, CPU cluster idling, GCC, TLMM, SMMU, RPMh regulators, power-domains and clocks, interconnects, some QUPs, UFS, remoteprocs, USB, watchdog, LLCC and tsens. Signed-off-by: Bjorn Andersson Reviewed-by: Johan Hovold Reviewed-by: Konrad Dybcio Reviewed-by: Krzysztof Kozlowski --- Changes since v1: - Reordered "status" last - Fixed invalid unit addresses on USB phys - Dropped multiport USB controller for now - Fixed system-cache-controller sort ordering - Moved &xo_board_clk frequency to board dts arch/arm64/boot/dts/qcom/sc8280xp.dtsi | 2145 ++++++++++++++++++++++++ 1 file changed, 2145 insertions(+) create mode 100644 arch/arm64/boot/dts/qcom/sc8280xp.dtsi diff --git a/arch/arm64/boot/dts/qcom/sc8280xp.dtsi b/arch/arm64/boot/dts/q= com/sc8280xp.dtsi new file mode 100644 index 000000000000..ac13965a181e --- /dev/null +++ b/arch/arm64/boot/dts/qcom/sc8280xp.dtsi @@ -0,0 +1,2145 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2021, The Linux Foundation. All rights reserved. + * Copyright (c) 2022, Linaro Limited + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +/ { + interrupt-parent =3D <&intc>; + + #address-cells =3D <2>; + #size-cells =3D <2>; + + clocks { + xo_board_clk: xo-board-clk { + compatible =3D "fixed-clock"; + #clock-cells =3D <0>; + }; + + sleep_clk: sleep-clk { + compatible =3D "fixed-clock"; + #clock-cells =3D <0>; + clock-frequency =3D <32764>; + }; + }; + + cpu0_opp_table: cpu0-opp-table { + compatible =3D "operating-points-v2"; + opp-shared; + + opp-403200000 { + opp-hz =3D /bits/ 64 <403200000>; + }; + opp-499200000 { + opp-hz =3D /bits/ 64 <499200000>; + }; + opp-595200000 { + opp-hz =3D /bits/ 64 <595200000>; + }; + opp-691200000 { + opp-hz =3D /bits/ 64 <691200000>; + }; + opp-806400000 { + opp-hz =3D /bits/ 64 <806400000>; + }; + opp-902400000 { + opp-hz =3D /bits/ 64 <902400000>; + }; + opp-1017600000 { + opp-hz =3D /bits/ 64 <1017600000>; + }; + opp-1113600000 { + opp-hz =3D /bits/ 64 <1113600000>; + }; + opp-1209600000 { + opp-hz =3D /bits/ 64 <1209600000>; + }; + opp-1324800000 { + opp-hz =3D /bits/ 64 <1324800000>; + }; + opp-1440000000 { + opp-hz =3D /bits/ 64 <1440000000>; + }; + opp-1555200000 { + opp-hz =3D /bits/ 64 <1555200000>; + }; + opp-1670400000 { + opp-hz =3D /bits/ 64 <1670400000>; + }; + opp-1785600000 { + opp-hz =3D /bits/ 64 <1785600000>; + }; + opp-1881600000 { + opp-hz =3D /bits/ 64 <1881600000>; + }; + opp-1996800000 { + opp-hz =3D /bits/ 64 <1996800000>; + }; + opp-2112000000 { + opp-hz =3D /bits/ 64 <2112000000>; + }; + opp-2227200000 { + opp-hz =3D /bits/ 64 <2227200000>; + }; + opp-2342400000 { + opp-hz =3D /bits/ 64 <2342400000>; + }; + opp-2438400000 { + opp-hz =3D /bits/ 64 <2438400000>; + }; + }; + + cpu4_opp_table: cpu4-opp-table { + compatible =3D "operating-points-v2"; + opp-shared; + + opp-825600000 { + opp-hz =3D /bits/ 64 <825600000>; + }; + opp-940800000 { + opp-hz =3D /bits/ 64 <940800000>; + }; + opp-1056000000 { + opp-hz =3D /bits/ 64 <1056000000>; + }; + opp-1171200000 { + opp-hz =3D /bits/ 64 <1171200000>; + }; + opp-1286400000 { + opp-hz =3D /bits/ 64 <1286400000>; + }; + opp-1401600000 { + opp-hz =3D /bits/ 64 <1401600000>; + }; + opp-1516800000 { + opp-hz =3D /bits/ 64 <1516800000>; + }; + opp-1632000000 { + opp-hz =3D /bits/ 64 <1632000000>; + }; + opp-1747200000 { + opp-hz =3D /bits/ 64 <1747200000>; + }; + opp-1862400000 { + opp-hz =3D /bits/ 64 <1862400000>; + }; + opp-1977600000 { + opp-hz =3D /bits/ 64 <1977600000>; + }; + opp-2073600000 { + opp-hz =3D /bits/ 64 <2073600000>; + }; + opp-2169600000 { + opp-hz =3D /bits/ 64 <2169600000>; + }; + opp-2284800000 { + opp-hz =3D /bits/ 64 <2284800000>; + }; + opp-2400000000 { + opp-hz =3D /bits/ 64 <2400000000>; + }; + opp-2496000000 { + opp-hz =3D /bits/ 64 <2496000000>; + }; + opp-2592000000 { + opp-hz =3D /bits/ 64 <2592000000>; + }; + opp-2688000000 { + opp-hz =3D /bits/ 64 <2688000000>; + }; + opp-2803200000 { + opp-hz =3D /bits/ 64 <2803200000>; + }; + opp-2899200000 { + opp-hz =3D /bits/ 64 <2899200000>; + }; + opp-2995200000 { + opp-hz =3D /bits/ 64 <2995200000>; + }; + }; + + cpus { + #address-cells =3D <2>; + #size-cells =3D <0>; + + CPU0: cpu@0 { + device_type =3D "cpu"; + compatible =3D "qcom,kryo"; + reg =3D <0x0 0x0>; + enable-method =3D "psci"; + capacity-dmips-mhz =3D <602>; + next-level-cache =3D <&L2_0>; + power-domains =3D <&CPU_PD0>; + power-domain-names =3D "psci"; + qcom,freq-domain =3D <&cpufreq_hw 0>; + operating-points-v2 =3D <&cpu0_opp_table>; + #cooling-cells =3D <2>; + L2_0: l2-cache { + compatible =3D "cache"; + next-level-cache =3D <&L3_0>; + L3_0: l3-cache { + compatible =3D "cache"; + }; + }; + }; + + CPU1: cpu@100 { + device_type =3D "cpu"; + compatible =3D "qcom,kryo"; + reg =3D <0x0 0x100>; + enable-method =3D "psci"; + capacity-dmips-mhz =3D <602>; + next-level-cache =3D <&L2_100>; + power-domains =3D <&CPU_PD1>; + power-domain-names =3D "psci"; + qcom,freq-domain =3D <&cpufreq_hw 0>; + operating-points-v2 =3D <&cpu0_opp_table>; + #cooling-cells =3D <2>; + L2_100: l2-cache { + compatible =3D "cache"; + next-level-cache =3D <&L3_0>; + }; + + }; + + CPU2: cpu@200 { + device_type =3D "cpu"; + compatible =3D "qcom,kryo"; + reg =3D <0x0 0x200>; + enable-method =3D "psci"; + capacity-dmips-mhz =3D <602>; + next-level-cache =3D <&L2_200>; + power-domains =3D <&CPU_PD2>; + power-domain-names =3D "psci"; + qcom,freq-domain =3D <&cpufreq_hw 0>; + operating-points-v2 =3D <&cpu0_opp_table>; + #cooling-cells =3D <2>; + L2_200: l2-cache { + compatible =3D "cache"; + next-level-cache =3D <&L3_0>; + }; + }; + + CPU3: cpu@300 { + device_type =3D "cpu"; + compatible =3D "qcom,kryo"; + reg =3D <0x0 0x300>; + enable-method =3D "psci"; + capacity-dmips-mhz =3D <602>; + next-level-cache =3D <&L2_300>; + power-domains =3D <&CPU_PD3>; + power-domain-names =3D "psci"; + qcom,freq-domain =3D <&cpufreq_hw 0>; + operating-points-v2 =3D <&cpu0_opp_table>; + #cooling-cells =3D <2>; + L2_300: l2-cache { + compatible =3D "cache"; + next-level-cache =3D <&L3_0>; + }; + }; + + CPU4: cpu@400 { + device_type =3D "cpu"; + compatible =3D "qcom,kryo"; + reg =3D <0x0 0x400>; + enable-method =3D "psci"; + capacity-dmips-mhz =3D <1024>; + next-level-cache =3D <&L2_400>; + power-domains =3D <&CPU_PD4>; + power-domain-names =3D "psci"; + qcom,freq-domain =3D <&cpufreq_hw 1>; + operating-points-v2 =3D <&cpu4_opp_table>; + #cooling-cells =3D <2>; + L2_400: l2-cache { + compatible =3D "cache"; + next-level-cache =3D <&L3_0>; + }; + }; + + CPU5: cpu@500 { + device_type =3D "cpu"; + compatible =3D "qcom,kryo"; + reg =3D <0x0 0x500>; + enable-method =3D "psci"; + capacity-dmips-mhz =3D <1024>; + next-level-cache =3D <&L2_500>; + power-domains =3D <&CPU_PD5>; + power-domain-names =3D "psci"; + qcom,freq-domain =3D <&cpufreq_hw 1>; + operating-points-v2 =3D <&cpu4_opp_table>; + #cooling-cells =3D <2>; + L2_500: l2-cache { + compatible =3D "cache"; + next-level-cache =3D <&L3_0>; + }; + }; + + CPU6: cpu@600 { + device_type =3D "cpu"; + compatible =3D "qcom,kryo"; + reg =3D <0x0 0x600>; + enable-method =3D "psci"; + capacity-dmips-mhz =3D <1024>; + next-level-cache =3D <&L2_600>; + power-domains =3D <&CPU_PD6>; + power-domain-names =3D "psci"; + qcom,freq-domain =3D <&cpufreq_hw 1>; + operating-points-v2 =3D <&cpu4_opp_table>; + #cooling-cells =3D <2>; + L2_600: l2-cache { + compatible =3D "cache"; + next-level-cache =3D <&L3_0>; + }; + }; + + CPU7: cpu@700 { + device_type =3D "cpu"; + compatible =3D "qcom,kryo"; + reg =3D <0x0 0x700>; + enable-method =3D "psci"; + capacity-dmips-mhz =3D <1024>; + next-level-cache =3D <&L2_700>; + power-domains =3D <&CPU_PD7>; + power-domain-names =3D "psci"; + qcom,freq-domain =3D <&cpufreq_hw 1>; + operating-points-v2 =3D <&cpu4_opp_table>; + #cooling-cells =3D <2>; + L2_700: l2-cache { + compatible =3D "cache"; + next-level-cache =3D <&L3_0>; + }; + }; + + cpu-map { + cluster0 { + core0 { + cpu =3D <&CPU0>; + }; + + core1 { + cpu =3D <&CPU1>; + }; + + core2 { + cpu =3D <&CPU2>; + }; + + core3 { + cpu =3D <&CPU3>; + }; + + core4 { + cpu =3D <&CPU4>; + }; + + core5 { + cpu =3D <&CPU5>; + }; + + core6 { + cpu =3D <&CPU6>; + }; + + core7 { + cpu =3D <&CPU7>; + }; + }; + }; + + idle-states { + entry-method =3D "psci"; + + LITTLE_CPU_SLEEP_0: cpu-sleep-0-0 { + compatible =3D "arm,idle-state"; + idle-state-name =3D "little-rail-power-collapse"; + arm,psci-suspend-param =3D <0x40000004>; + entry-latency-us =3D <355>; + exit-latency-us =3D <909>; + min-residency-us =3D <3934>; + local-timer-stop; + }; + + BIG_CPU_SLEEP_0: cpu-sleep-1-0 { + compatible =3D "arm,idle-state"; + idle-state-name =3D "big-rail-power-collapse"; + arm,psci-suspend-param =3D <0x40000004>; + entry-latency-us =3D <241>; + exit-latency-us =3D <1461>; + min-residency-us =3D <4488>; + local-timer-stop; + }; + }; + + domain-idle-states { + CLUSTER_SLEEP_0: cluster-sleep-0 { + compatible =3D "domain-idle-state"; + idle-state-name =3D "cluster-power-collapse"; + arm,psci-suspend-param =3D <0x4100c344>; + entry-latency-us =3D <3263>; + exit-latency-us =3D <6562>; + min-residency-us =3D <9987>; + }; + }; + }; + + firmware { + scm: scm { + compatible =3D "qcom,scm-sc8280xp", "qcom,scm"; + }; + }; + + aggre1_noc: interconnect-aggre1-noc { + compatible =3D "qcom,sc8280xp-aggre1-noc"; + #interconnect-cells =3D <2>; + qcom,bcm-voters =3D <&apps_bcm_voter>; + }; + + aggre2_noc: interconnect-aggre2-noc { + compatible =3D "qcom,sc8280xp-aggre2-noc"; + #interconnect-cells =3D <2>; + qcom,bcm-voters =3D <&apps_bcm_voter>; + }; + + clk_virt: interconnect-clk-virt { + compatible =3D "qcom,sc8280xp-clk-virt"; + #interconnect-cells =3D <2>; + qcom,bcm-voters =3D <&apps_bcm_voter>; + }; + + config_noc: interconnect-config-noc { + compatible =3D "qcom,sc8280xp-config-noc"; + #interconnect-cells =3D <2>; + qcom,bcm-voters =3D <&apps_bcm_voter>; + }; + + dc_noc: interconnect-dc-noc { + compatible =3D "qcom,sc8280xp-dc-noc"; + #interconnect-cells =3D <2>; + qcom,bcm-voters =3D <&apps_bcm_voter>; + }; + + gem_noc: interconnect-gem-noc { + compatible =3D "qcom,sc8280xp-gem-noc"; + #interconnect-cells =3D <2>; + qcom,bcm-voters =3D <&apps_bcm_voter>; + }; + + lpass_noc: interconnect-lpass-ag-noc { + compatible =3D "qcom,sc8280xp-lpass-ag-noc"; + #interconnect-cells =3D <2>; + qcom,bcm-voters =3D <&apps_bcm_voter>; + }; + + mc_virt: interconnect-mc-virt { + compatible =3D "qcom,sc8280xp-mc-virt"; + #interconnect-cells =3D <2>; + qcom,bcm-voters =3D <&apps_bcm_voter>; + }; + + mmss_noc: interconnect-mmss-noc { + compatible =3D "qcom,sc8280xp-mmss-noc"; + #interconnect-cells =3D <2>; + qcom,bcm-voters =3D <&apps_bcm_voter>; + }; + + nspa_noc: interconnect-nspa-noc { + compatible =3D "qcom,sc8280xp-nspa-noc"; + #interconnect-cells =3D <2>; + qcom,bcm-voters =3D <&apps_bcm_voter>; + }; + + nspb_noc: interconnect-nspb-noc { + compatible =3D "qcom,sc8280xp-nspb-noc"; + #interconnect-cells =3D <2>; + qcom,bcm-voters =3D <&apps_bcm_voter>; + }; + + system_noc: interconnect-system-noc { + compatible =3D "qcom,sc8280xp-system-noc"; + #interconnect-cells =3D <2>; + qcom,bcm-voters =3D <&apps_bcm_voter>; + }; + + memory@80000000 { + device_type =3D "memory"; + /* We expect the bootloader to fill in the size */ + reg =3D <0x0 0x80000000 0x0 0x0>; + }; + + pmu { + compatible =3D "arm,armv8-pmuv3"; + interrupts =3D ; + }; + + psci { + compatible =3D "arm,psci-1.0"; + method =3D "smc"; + + CPU_PD0: cpu0 { + #power-domain-cells =3D <0>; + power-domains =3D <&CLUSTER_PD>; + domain-idle-states =3D <&LITTLE_CPU_SLEEP_0>; + }; + + CPU_PD1: cpu1 { + #power-domain-cells =3D <0>; + power-domains =3D <&CLUSTER_PD>; + domain-idle-states =3D <&LITTLE_CPU_SLEEP_0>; + }; + + CPU_PD2: cpu2 { + #power-domain-cells =3D <0>; + power-domains =3D <&CLUSTER_PD>; + domain-idle-states =3D <&LITTLE_CPU_SLEEP_0>; + }; + + CPU_PD3: cpu3 { + #power-domain-cells =3D <0>; + power-domains =3D <&CLUSTER_PD>; + domain-idle-states =3D <&LITTLE_CPU_SLEEP_0>; + }; + + CPU_PD4: cpu4 { + #power-domain-cells =3D <0>; + power-domains =3D <&CLUSTER_PD>; + domain-idle-states =3D <&BIG_CPU_SLEEP_0>; + }; + + CPU_PD5: cpu5 { + #power-domain-cells =3D <0>; + power-domains =3D <&CLUSTER_PD>; + domain-idle-states =3D <&BIG_CPU_SLEEP_0>; + }; + + CPU_PD6: cpu6 { + #power-domain-cells =3D <0>; + power-domains =3D <&CLUSTER_PD>; + domain-idle-states =3D <&BIG_CPU_SLEEP_0>; + }; + + CPU_PD7: cpu7 { + #power-domain-cells =3D <0>; + power-domains =3D <&CLUSTER_PD>; + domain-idle-states =3D <&BIG_CPU_SLEEP_0>; + }; + + CLUSTER_PD: cpu-cluster0 { + #power-domain-cells =3D <0>; + domain-idle-states =3D <&CLUSTER_SLEEP_0>; + }; + }; + + qup_opp_table_100mhz: qup-100mhz-opp-table { + compatible =3D "operating-points-v2"; + + opp-75000000 { + opp-hz =3D /bits/ 64 <75000000>; + required-opps =3D <&rpmhpd_opp_low_svs>; + }; + + opp-100000000 { + opp-hz =3D /bits/ 64 <100000000>; + required-opps =3D <&rpmhpd_opp_svs>; + }; + }; + + reserved-memory { + #address-cells =3D <2>; + #size-cells =3D <2>; + ranges; + + memory@80000000 { + reg =3D <0 0x80000000 0 0x860000>; + no-map; + }; + + cmd_db: memory@80860000 { + compatible =3D "qcom,cmd-db"; + reg =3D <0 0x80860000 0 0x20000>; + no-map; + }; + + memory@80880000 { + reg =3D <0 0x80880000 0 0x80000>; + no-map; + }; + + smem_mem: smem@80900000 { + compatible =3D "qcom,smem"; + reg =3D <0 0x80900000 0 0x200000>; + no-map; + hwlocks =3D <&tcsr_mutex 3>; + }; + + memory@80b00000 { + reg =3D <0 0x80b00000 0 0x100000>; + no-map; + }; + + memory@83b00000 { + reg =3D <0 0x83b00000 0 0x1700000>; + no-map; + }; + + memory@85b00000 { + reg =3D <0 0x85b00000 0 0xc00000>; + no-map; + }; + + pil_adsp_mem: memory@86c00000 { + reg =3D <0 0x86c00000 0 0x2000000>; + no-map; + }; + + pil_nsp0_mem: memory@8a100000 { + reg =3D <0 0x8a100000 0 0x1e00000>; + no-map; + }; + + pil_nsp1_mem: memory@8c600000 { + reg =3D <0 0x8c600000 0 0x1e00000>; + no-map; + }; + + memory@aeb00000 { + reg =3D <0 0xaeb00000 0 0x16600000>; + no-map; + }; + }; + + smp2p-adsp { + compatible =3D "qcom,smp2p"; + qcom,smem =3D <443>, <429>; + interrupts-extended =3D <&ipcc IPCC_CLIENT_LPASS + IPCC_MPROC_SIGNAL_SMP2P + IRQ_TYPE_EDGE_RISING>; + mboxes =3D <&ipcc IPCC_CLIENT_LPASS + IPCC_MPROC_SIGNAL_SMP2P>; + + qcom,local-pid =3D <0>; + qcom,remote-pid =3D <2>; + + smp2p_adsp_out: master-kernel { + qcom,entry-name =3D "master-kernel"; + #qcom,smem-state-cells =3D <1>; + }; + + smp2p_adsp_in: slave-kernel { + qcom,entry-name =3D "slave-kernel"; + interrupt-controller; + #interrupt-cells =3D <2>; + }; + }; + + smp2p-nsp0 { + compatible =3D "qcom,smp2p"; + qcom,smem =3D <94>, <432>; + interrupts-extended =3D <&ipcc IPCC_CLIENT_CDSP + IPCC_MPROC_SIGNAL_SMP2P + IRQ_TYPE_EDGE_RISING>; + mboxes =3D <&ipcc IPCC_CLIENT_CDSP + IPCC_MPROC_SIGNAL_SMP2P>; + + qcom,local-pid =3D <0>; + qcom,remote-pid =3D <5>; + + smp2p_nsp0_out: master-kernel { + qcom,entry-name =3D "master-kernel"; + #qcom,smem-state-cells =3D <1>; + }; + + smp2p_nsp0_in: slave-kernel { + qcom,entry-name =3D "slave-kernel"; + interrupt-controller; + #interrupt-cells =3D <2>; + }; + }; + + smp2p-nsp1 { + compatible =3D "qcom,smp2p"; + qcom,smem =3D <617>, <616>; + interrupts-extended =3D <&ipcc IPCC_CLIENT_NSP1 + IPCC_MPROC_SIGNAL_SMP2P + IRQ_TYPE_EDGE_RISING>; + mboxes =3D <&ipcc IPCC_CLIENT_NSP1 + IPCC_MPROC_SIGNAL_SMP2P>; + + qcom,local-pid =3D <0>; + qcom,remote-pid =3D <12>; + + smp2p_nsp1_out: master-kernel { + qcom,entry-name =3D "master-kernel"; + #qcom,smem-state-cells =3D <1>; + }; + + smp2p_nsp1_in: slave-kernel { + qcom,entry-name =3D "slave-kernel"; + interrupt-controller; + #interrupt-cells =3D <2>; + }; + }; + + soc: soc@0 { + #address-cells =3D <2>; + #size-cells =3D <2>; + ranges =3D <0 0 0 0 0x10 0>; + dma-ranges =3D <0 0 0 0 0x10 0>; + compatible =3D "simple-bus"; + + gcc: clock-controller@100000 { + compatible =3D "qcom,gcc-sc8280xp"; + reg =3D <0x0 0x00100000 0x0 0x1f0000>; + #clock-cells =3D <1>; + #reset-cells =3D <1>; + #power-domain-cells =3D <1>; + clocks =3D <&rpmhcc RPMH_CXO_CLK>, + <&sleep_clk>, + <0>, + <0>, + <0>, + <0>, + <0>, + <0>, + <&usb_0_ssphy>, + <0>, + <0>, + <0>, + <0>, + <0>, + <0>, + <0>, + <&usb_1_ssphy>, + <0>, + <0>, + <0>, + <0>, + <0>, + <0>, + <0>, + <0>, + <0>, + <0>, + <0>, + <0>, + <0>, + <0>, + <0>, + <0>; + power-domains =3D <&rpmhpd SC8280XP_CX>; + }; + + ipcc: mailbox@408000 { + compatible =3D "qcom,sc8280xp-ipcc", "qcom,ipcc"; + reg =3D <0 0x00408000 0 0x1000>; + interrupts =3D ; + interrupt-controller; + #interrupt-cells =3D <3>; + #mbox-cells =3D <2>; + }; + + qup2: geniqup@8c0000 { + compatible =3D "qcom,geni-se-qup"; + reg =3D <0 0x008c0000 0 0x2000>; + clocks =3D <&gcc GCC_QUPV3_WRAP_2_M_AHB_CLK>, + <&gcc GCC_QUPV3_WRAP_2_S_AHB_CLK>; + clock-names =3D "m-ahb", "s-ahb"; + iommus =3D <&apps_smmu 0xa3 0>; + + #address-cells =3D <2>; + #size-cells =3D <2>; + ranges; + + status =3D "disabled"; + + qup2_uart17: serial@884000 { + compatible =3D "qcom,geni-uart"; + reg =3D <0 0x00884000 0 0x4000>; + clocks =3D <&gcc GCC_QUPV3_WRAP2_S1_CLK>; + clock-names =3D "se"; + interrupts =3D ; + operating-points-v2 =3D <&qup_opp_table_100mhz>; + power-domains =3D <&rpmhpd SC8280XP_CX>; + interconnects =3D <&clk_virt MASTER_QUP_CORE_2 0 &clk_virt SLAVE_QUP_C= ORE_2 0>, + <&gem_noc MASTER_APPSS_PROC 0 &config_noc SLAVE_QUP_2 0>; + interconnect-names =3D "qup-core", "qup-config"; + status =3D "disabled"; + }; + + qup2_i2c5: i2c@894000 { + compatible =3D "qcom,geni-i2c"; + reg =3D <0 0x00894000 0 0x4000>; + clock-names =3D "se"; + clocks =3D <&gcc GCC_QUPV3_WRAP2_S5_CLK>; + interrupts =3D ; + #address-cells =3D <1>; + #size-cells =3D <0>; + power-domains =3D <&rpmhpd SC8280XP_CX>; + interconnects =3D <&clk_virt MASTER_QUP_CORE_2 0 &clk_virt SLAVE_QUP_C= ORE_2 0>, + <&gem_noc MASTER_APPSS_PROC 0 &config_noc SLAVE_QUP_2 0>, + <&aggre1_noc MASTER_QUP_2 0 &mc_virt SLAVE_EBI1 0>; + interconnect-names =3D "qup-core", "qup-config", "qup-memory"; + status =3D "disabled"; + }; + }; + + qup0: geniqup@9c0000 { + compatible =3D "qcom,geni-se-qup"; + reg =3D <0 0x009c0000 0 0x6000>; + clocks =3D <&gcc GCC_QUPV3_WRAP_0_M_AHB_CLK>, + <&gcc GCC_QUPV3_WRAP_0_S_AHB_CLK>; + clock-names =3D "m-ahb", "s-ahb"; + iommus =3D <&apps_smmu 0x563 0>; + + #address-cells =3D <2>; + #size-cells =3D <2>; + ranges; + + status =3D "disabled"; + + qup0_i2c4: i2c@990000 { + compatible =3D "qcom,geni-i2c"; + reg =3D <0 0x00990000 0 0x4000>; + clock-names =3D "se"; + clocks =3D <&gcc GCC_QUPV3_WRAP0_S4_CLK>; + interrupts =3D ; + #address-cells =3D <1>; + #size-cells =3D <0>; + power-domains =3D <&rpmhpd SC8280XP_CX>; + interconnects =3D <&clk_virt MASTER_QUP_CORE_0 0 &clk_virt SLAVE_QUP_C= ORE_0 0>, + <&gem_noc MASTER_APPSS_PROC 0 &config_noc SLAVE_QUP_0 0>, + <&aggre1_noc MASTER_QUP_0 0 &mc_virt SLAVE_EBI1 0>; + interconnect-names =3D "qup-core", "qup-config", "qup-memory"; + status =3D "disabled"; + }; + }; + + qup1: geniqup@ac0000 { + compatible =3D "qcom,geni-se-qup"; + reg =3D <0 0x00ac0000 0 0x6000>; + clocks =3D <&gcc GCC_QUPV3_WRAP_1_M_AHB_CLK>, + <&gcc GCC_QUPV3_WRAP_1_S_AHB_CLK>; + clock-names =3D "m-ahb", "s-ahb"; + iommus =3D <&apps_smmu 0x83 0>; + + #address-cells =3D <2>; + #size-cells =3D <2>; + ranges; + + status =3D "disabled"; + }; + + ufs_mem_hc: ufs@1d84000 { + compatible =3D "qcom,sc8280xp-ufshc", "qcom,ufshc", + "jedec,ufs-2.0"; + reg =3D <0 0x01d84000 0 0x3000>; + interrupts =3D ; + phys =3D <&ufs_mem_phy_lanes>; + phy-names =3D "ufsphy"; + lanes-per-direction =3D <2>; + #reset-cells =3D <1>; + resets =3D <&gcc GCC_UFS_PHY_BCR>; + reset-names =3D "rst"; + + power-domains =3D <&gcc UFS_PHY_GDSC>; + required-opps =3D <&rpmhpd_opp_nom>; + + iommus =3D <&apps_smmu 0xe0 0x0>; + + clocks =3D <&gcc GCC_UFS_PHY_AXI_CLK>, + <&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>, + <&gcc GCC_UFS_PHY_AHB_CLK>, + <&gcc GCC_UFS_PHY_UNIPRO_CORE_CLK>, + <&rpmhcc RPMH_CXO_CLK>, + <&gcc GCC_UFS_PHY_TX_SYMBOL_0_CLK>, + <&gcc GCC_UFS_PHY_RX_SYMBOL_0_CLK>, + <&gcc GCC_UFS_PHY_RX_SYMBOL_1_CLK>; + clock-names =3D "core_clk", + "bus_aggr_clk", + "iface_clk", + "core_clk_unipro", + "ref_clk", + "tx_lane0_sync_clk", + "rx_lane0_sync_clk", + "rx_lane1_sync_clk"; + freq-table-hz =3D <75000000 300000000>, + <0 0>, + <0 0>, + <75000000 300000000>, + <0 0>, + <0 0>, + <0 0>, + <0 0>; + status =3D "disabled"; + }; + + ufs_mem_phy: phy@1d87000 { + compatible =3D "qcom,sc8280xp-qmp-ufs-phy"; + reg =3D <0 0x01d87000 0 0xe10>; + #address-cells =3D <2>; + #size-cells =3D <2>; + ranges; + clock-names =3D "ref", + "ref_aux"; + clocks =3D <&rpmhcc RPMH_CXO_CLK>, + <&gcc GCC_UFS_PHY_PHY_AUX_CLK>; + + resets =3D <&ufs_mem_hc 0>; + reset-names =3D "ufsphy"; + status =3D "disabled"; + + ufs_mem_phy_lanes: phy@1d87400 { + reg =3D <0 0x01d87400 0 0x108>, + <0 0x01d87600 0 0x1e0>, + <0 0x01d87c00 0 0x1dc>, + <0 0x01d87800 0 0x108>, + <0 0x01d87a00 0 0x1e0>; + #phy-cells =3D <0>; + #clock-cells =3D <0>; + }; + }; + + ufs_card_hc: ufs@1da4000 { + compatible =3D "qcom,sc8280xp-ufshc", "qcom,ufshc", + "jedec,ufs-2.0"; + reg =3D <0 0x01da4000 0 0x3000>; + interrupts =3D ; + phys =3D <&ufs_card_phy_lanes>; + phy-names =3D "ufsphy"; + lanes-per-direction =3D <2>; + #reset-cells =3D <1>; + resets =3D <&gcc GCC_UFS_CARD_BCR>; + reset-names =3D "rst"; + + power-domains =3D <&gcc UFS_CARD_GDSC>; + + iommus =3D <&apps_smmu 0x4a0 0x0>; + + clocks =3D <&gcc GCC_UFS_CARD_AXI_CLK>, + <&gcc GCC_AGGRE_UFS_CARD_AXI_CLK>, + <&gcc GCC_UFS_CARD_AHB_CLK>, + <&gcc GCC_UFS_CARD_UNIPRO_CORE_CLK>, + <&rpmhcc RPMH_CXO_CLK>, + <&gcc GCC_UFS_CARD_TX_SYMBOL_0_CLK>, + <&gcc GCC_UFS_CARD_RX_SYMBOL_0_CLK>, + <&gcc GCC_UFS_CARD_RX_SYMBOL_1_CLK>; + clock-names =3D "core_clk", + "bus_aggr_clk", + "iface_clk", + "core_clk_unipro", + "ref_clk", + "tx_lane0_sync_clk", + "rx_lane0_sync_clk", + "rx_lane1_sync_clk"; + freq-table-hz =3D <75000000 300000000>, + <0 0>, + <0 0>, + <75000000 300000000>, + <0 0>, + <0 0>, + <0 0>, + <0 0>; + status =3D "disabled"; + }; + + ufs_card_phy: phy@1da7000 { + compatible =3D "qcom,sc8280xp-qmp-ufs-phy"; + reg =3D <0 0x01da7000 0 0xe10>; + #address-cells =3D <2>; + #size-cells =3D <2>; + ranges; + clock-names =3D "ref", + "ref_aux"; + clocks =3D <&gcc GCC_UFS_1_CARD_CLKREF_CLK>, + <&gcc GCC_UFS_CARD_PHY_AUX_CLK>; + + resets =3D <&ufs_card_hc 0>; + reset-names =3D "ufsphy"; + + status =3D "disabled"; + + ufs_card_phy_lanes: phy@1da7400 { + reg =3D <0 0x01da7400 0 0x108>, + <0 0x01da7600 0 0x1e0>, + <0 0x01da7c00 0 0x1dc>, + <0 0x01da7800 0 0x108>, + <0 0x01da7a00 0 0x1e0>; + #phy-cells =3D <0>; + #clock-cells =3D <0>; + }; + }; + + tcsr_mutex: hwlock@1f40000 { + compatible =3D "qcom,tcsr-mutex"; + reg =3D <0x0 0x01f40000 0x0 0x20000>; + #hwlock-cells =3D <1>; + }; + + usb_0_hsphy: phy@88e5000 { + compatible =3D "qcom,sc8280xp-usb-hs-phy", + "qcom,usb-snps-hs-5nm-phy"; + reg =3D <0 0x088e5000 0 0x400>; + clocks =3D <&gcc GCC_USB2_HS0_CLKREF_CLK>; + clock-names =3D "ref"; + resets =3D <&gcc GCC_QUSB2PHY_PRIM_BCR>; + + #phy-cells =3D <0>; + + status =3D "disabled"; + }; + + usb_2_hsphy0: phy@88e7000 { + compatible =3D "qcom,sc8280xp-usb-hs-phy", + "qcom,usb-snps-hs-5nm-phy"; + reg =3D <0 0x088e7000 0 0x400>; + clocks =3D <&gcc GCC_USB2_HS0_CLKREF_CLK>; + clock-names =3D "ref"; + resets =3D <&gcc GCC_QUSB2PHY_HS0_MP_BCR>; + + #phy-cells =3D <0>; + + status =3D "disabled"; + }; + + usb_2_hsphy1: phy@88e8000 { + compatible =3D "qcom,sc8280xp-usb-hs-phy", + "qcom,usb-snps-hs-5nm-phy"; + reg =3D <0 0x088e8000 0 0x400>; + clocks =3D <&gcc GCC_USB2_HS1_CLKREF_CLK>; + clock-names =3D "ref"; + resets =3D <&gcc GCC_QUSB2PHY_HS1_MP_BCR>; + + #phy-cells =3D <0>; + + status =3D "disabled"; + }; + + usb_2_hsphy2: phy@88e9000 { + compatible =3D "qcom,sc8280xp-usb-hs-phy", + "qcom,usb-snps-hs-5nm-phy"; + reg =3D <0 0x088e9000 0 0x400>; + clocks =3D <&gcc GCC_USB2_HS2_CLKREF_CLK>; + clock-names =3D "ref"; + resets =3D <&gcc GCC_QUSB2PHY_HS2_MP_BCR>; + + #phy-cells =3D <0>; + + status =3D "disabled"; + }; + + usb_2_hsphy3: phy@88ea000 { + compatible =3D "qcom,sc8280xp-usb-hs-phy", + "qcom,usb-snps-hs-5nm-phy"; + reg =3D <0 0x088ea000 0 0x400>; + clocks =3D <&gcc GCC_USB2_HS3_CLKREF_CLK>; + clock-names =3D "ref"; + resets =3D <&gcc GCC_QUSB2PHY_HS3_MP_BCR>; + + #phy-cells =3D <0>; + + status =3D "disabled"; + }; + + usb_2_qmpphy0: phy-wrapper@88ef000 { + compatible =3D "qcom,sc8280xp-qmp-usb3-uni-phy"; + reg =3D <0 0x088ef000 0 0x1c8>; + #address-cells =3D <2>; + #size-cells =3D <2>; + ranges; + + clocks =3D <&gcc GCC_USB3_MP_PHY_AUX_CLK>, + <&rpmhcc RPMH_CXO_CLK>, + <&gcc GCC_USB3_MP0_CLKREF_CLK>, + <&gcc GCC_USB3_MP_PHY_COM_AUX_CLK>; + clock-names =3D "aux", "ref_clk_src", "ref", "com_aux"; + + resets =3D <&gcc GCC_USB3_UNIPHY_MP0_BCR>, + <&gcc GCC_USB3UNIPHY_PHY_MP0_BCR>; + reset-names =3D "phy", "common"; + + power-domains =3D <&gcc USB30_MP_GDSC>; + + status =3D "disabled"; + + usb_2_ssphy0: phy@88efe00 { + reg =3D <0 0x088efe00 0 0x160>, + <0 0x088f0000 0 0x1ec>, + <0 0x088ef200 0 0x1f0>; + #phy-cells =3D <0>; + #clock-cells =3D <0>; + clocks =3D <&gcc GCC_USB3_MP_PHY_PIPE_0_CLK>; + clock-names =3D "pipe0"; + clock-output-names =3D "usb2_phy0_pipe_clk"; + }; + }; + + usb_2_qmpphy1: phy-wrapper@88f1000 { + compatible =3D "qcom,sc8280xp-qmp-usb3-uni-phy"; + reg =3D <0 0x088f1000 0 0x1c8>; + #address-cells =3D <2>; + #size-cells =3D <2>; + ranges; + + clocks =3D <&gcc GCC_USB3_MP_PHY_AUX_CLK>, + <&rpmhcc RPMH_CXO_CLK>, + <&gcc GCC_USB3_MP1_CLKREF_CLK>, + <&gcc GCC_USB3_MP_PHY_COM_AUX_CLK>; + clock-names =3D "aux", "ref_clk_src", "ref", "com_aux"; + + resets =3D <&gcc GCC_USB3_UNIPHY_MP1_BCR>, + <&gcc GCC_USB3UNIPHY_PHY_MP1_BCR>; + reset-names =3D "phy", "common"; + + power-domains =3D <&gcc USB30_MP_GDSC>; + + status =3D "disabled"; + + usb_2_ssphy1: phy@88f1e00 { + reg =3D <0 0x088f1e00 0 0x160>, + <0 0x088f2000 0 0x1ec>, + <0 0x088f1200 0 0x1f0>; + #phy-cells =3D <0>; + #clock-cells =3D <0>; + clocks =3D <&gcc GCC_USB3_MP_PHY_PIPE_1_CLK>; + clock-names =3D "pipe0"; + clock-output-names =3D "usb2_phy1_pipe_clk"; + }; + }; + + remoteproc_adsp: remoteproc@3000000 { + compatible =3D "qcom,sc8280xp-adsp-pas"; + reg =3D <0 0x03000000 0 0x100>; + + interrupts-extended =3D <&intc GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>, + <&smp2p_adsp_in 0 IRQ_TYPE_EDGE_RISING>, + <&smp2p_adsp_in 1 IRQ_TYPE_EDGE_RISING>, + <&smp2p_adsp_in 2 IRQ_TYPE_EDGE_RISING>, + <&smp2p_adsp_in 3 IRQ_TYPE_EDGE_RISING>, + <&smp2p_adsp_in 7 IRQ_TYPE_EDGE_RISING>; + interrupt-names =3D "wdog", "fatal", "ready", + "handover", "stop-ack", "shutdown-ack"; + + clocks =3D <&rpmhcc RPMH_CXO_CLK>; + clock-names =3D "xo"; + + power-domains =3D <&rpmhpd SC8280XP_LCX>, + <&rpmhpd SC8280XP_LMX>; + power-domain-names =3D "lcx", "lmx"; + + memory-region =3D <&pil_adsp_mem>; + + qcom,qmp =3D <&aoss_qmp>; + + qcom,smem-states =3D <&smp2p_adsp_out 0>; + qcom,smem-state-names =3D "stop"; + + status =3D "disabled"; + + remoteproc_adsp_glink: glink-edge { + interrupts-extended =3D <&ipcc IPCC_CLIENT_LPASS + IPCC_MPROC_SIGNAL_GLINK_QMP + IRQ_TYPE_EDGE_RISING>; + mboxes =3D <&ipcc IPCC_CLIENT_LPASS + IPCC_MPROC_SIGNAL_GLINK_QMP>; + + label =3D "lpass"; + qcom,remote-pid =3D <2>; + }; + }; + + usb_0_qmpphy: phy-wrapper@88ec000 { + compatible =3D "qcom,sc8280xp-qmp-usb43dp-phy"; + reg =3D <0 0x088ec000 0 0x1e4>, + <0 0x088eb000 0 0x40>, + <0 0x088ed000 0 0x1c8>; + #address-cells =3D <2>; + #size-cells =3D <2>; + ranges; + + clocks =3D <&gcc GCC_USB3_PRIM_PHY_AUX_CLK>, + <&rpmhcc RPMH_CXO_CLK>, + <&gcc GCC_USB4_EUD_CLKREF_CLK>, + <&gcc GCC_USB3_PRIM_PHY_COM_AUX_CLK>; + clock-names =3D "aux", "ref_clk_src", "ref", "com_aux"; + + resets =3D <&gcc GCC_USB3_PHY_PRIM_BCR>, + <&gcc GCC_USB3_DP_PHY_PRIM_BCR>; + reset-names =3D "phy", "common"; + + power-domains =3D <&gcc USB30_PRIM_GDSC>; + + status =3D "disabled"; + + usb_0_ssphy: usb3-phy@88eb400 { + reg =3D <0 0x088eb400 0 0x100>, + <0 0x088eb600 0 0x3ec>, + <0 0x088ec400 0 0x1f0>, + <0 0x088eba00 0 0x100>, + <0 0x088ebc00 0 0x3ec>, + <0 0x088ec700 0 0x64>; + #phy-cells =3D <0>; + #clock-cells =3D <0>; + clocks =3D <&gcc GCC_USB3_PRIM_PHY_PIPE_CLK>; + clock-names =3D "pipe0"; + clock-output-names =3D "usb0_phy_pipe_clk_src"; + }; + + usb_0_dpphy: dp-phy@88ed200 { + reg =3D <0 0x088ed200 0 0x200>, + <0 0x088ed400 0 0x200>, + <0 0x088eda00 0 0x200>, + <0 0x088ea600 0 0x200>, + <0 0x088ea800 0 0x200>; + #clock-cells =3D <1>; + #phy-cells =3D <0>; + }; + }; + + usb_1_hsphy: phy@8902000 { + compatible =3D "qcom,sc8280xp-usb-hs-phy", + "qcom,usb-snps-hs-5nm-phy"; + reg =3D <0 0x08902000 0 0x400>; + #phy-cells =3D <0>; + + clocks =3D <&rpmhcc RPMH_CXO_CLK>; + clock-names =3D "ref"; + + resets =3D <&gcc GCC_QUSB2PHY_SEC_BCR>; + + status =3D "disabled"; + }; + + usb_1_qmpphy: phy-wrapper@8904000 { + compatible =3D "qcom,sc8280xp-qmp-usb43dp-phy"; + reg =3D <0 0x08904000 0 0x1e4>, + <0 0x08903000 0 0x40>, + <0 0x08905000 0 0x1c8>; + #address-cells =3D <2>; + #size-cells =3D <2>; + ranges; + + clocks =3D <&gcc GCC_USB3_SEC_PHY_AUX_CLK>, + <&rpmhcc RPMH_CXO_CLK>, + <&gcc GCC_USB4_CLKREF_CLK>, + <&gcc GCC_USB3_SEC_PHY_COM_AUX_CLK>; + clock-names =3D "aux", "ref_clk_src", "ref", "com_aux"; + + resets =3D <&gcc GCC_USB3_PHY_SEC_BCR>, + <&gcc GCC_USB4_1_DP_PHY_PRIM_BCR>; + reset-names =3D "phy", "common"; + + power-domains =3D <&gcc USB30_SEC_GDSC>; + + status =3D "disabled"; + + usb_1_ssphy: usb3-phy@8903400 { + reg =3D <0 0x08903400 0 0x100>, + <0 0x08903c00 0 0x3ec>, + <0 0x08904400 0 0x1f0>, + <0 0x08903a00 0 0x100>, + <0 0x08903c00 0 0x3ec>, + <0 0x08904200 0 0x18>; + #phy-cells =3D <0>; + #clock-cells =3D <0>; + clocks =3D <&gcc GCC_USB3_SEC_PHY_PIPE_CLK>; + clock-names =3D "pipe0"; + clock-output-names =3D "usb1_phy_pipe_clk_src"; + }; + + usb_1_dpphy: dp-phy@88ed200 { + reg =3D <0 0x08904200 0 0x200>, + <0 0x08904400 0 0x200>, + <0 0x08904a00 0 0x200>, + <0 0x08904600 0 0x200>, + <0 0x08904800 0 0x200>; + #clock-cells =3D <1>; + #phy-cells =3D <0>; + }; + }; + + system-cache-controller@9200000 { + compatible =3D "qcom,sc8280xp-llcc"; + reg =3D <0 0x09200000 0 0x58000>, <0 0x09600000 0 0x58000>; + reg-names =3D "llcc_base", "llcc_broadcast_base"; + interrupts =3D ; + }; + + usb_0: usb@a6f8800 { + compatible =3D "qcom,sc8280xp-dwc3", "qcom,dwc3"; + reg =3D <0 0x0a6f8800 0 0x400>; + #address-cells =3D <2>; + #size-cells =3D <2>; + ranges; + + clocks =3D <&gcc GCC_USB30_PRIM_MASTER_CLK>, + <&gcc GCC_CFG_NOC_USB3_PRIM_AXI_CLK>, + <&gcc GCC_AGGRE_USB3_PRIM_AXI_CLK>, + <&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>, + <&gcc GCC_USB30_PRIM_SLEEP_CLK>, + <&gcc GCC_AGGRE_USB_NOC_AXI_CLK>, + <&gcc GCC_AGGRE_USB_NOC_NORTH_AXI_CLK>, + <&gcc GCC_AGGRE_USB_NOC_SOUTH_AXI_CLK>, + <&gcc GCC_SYS_NOC_USB_AXI_CLK>; + clock-names =3D "core", "iface", "bus_aggr", "utmi", "sleep", + "noc_aggr", "noc_aggr_north", "noc_aggr_south", "noc_sys"; + + assigned-clocks =3D <&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>, + <&gcc GCC_USB30_PRIM_MASTER_CLK>; + assigned-clock-rates =3D <19200000>, <200000000>; + + interrupts-extended =3D <&intc GIC_SPI 804 IRQ_TYPE_LEVEL_HIGH>, + <&pdc 14 IRQ_TYPE_EDGE_BOTH>, + <&pdc 15 IRQ_TYPE_EDGE_BOTH>, + <&pdc 138 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names =3D "hs_phy_irq", "dp_hs_phy_irq", + "dm_hs_phy_irq", "ss_phy_irq"; + + power-domains =3D <&gcc USB30_PRIM_GDSC>; + + resets =3D <&gcc GCC_USB30_PRIM_BCR>; + + interconnects =3D <&aggre1_noc MASTER_USB3_0 0 &mc_virt SLAVE_EBI1 0>, + <&gem_noc MASTER_APPSS_PROC 0 &config_noc SLAVE_USB3_0 0>; + interconnect-names =3D "usb-ddr", "apps-usb"; + + status =3D "disabled"; + + usb_0_dwc3: usb@a600000 { + compatible =3D "snps,dwc3"; + reg =3D <0 0x0a600000 0 0xcd00>; + interrupts =3D ; + iommus =3D <&apps_smmu 0x820 0x0>; + phys =3D <&usb_0_hsphy>, <&usb_0_ssphy>; + phy-names =3D "usb2-phy", "usb3-phy"; + }; + }; + + usb_1: usb@a8f8800 { + compatible =3D "qcom,sc8280xp-dwc3", "qcom,dwc3"; + reg =3D <0 0x0a8f8800 0 0x400>; + #address-cells =3D <2>; + #size-cells =3D <2>; + ranges; + + clocks =3D <&gcc GCC_USB30_SEC_MASTER_CLK>, + <&gcc GCC_CFG_NOC_USB3_SEC_AXI_CLK>, + <&gcc GCC_AGGRE_USB3_SEC_AXI_CLK>, + <&gcc GCC_USB30_SEC_MOCK_UTMI_CLK>, + <&gcc GCC_USB30_SEC_SLEEP_CLK>, + <&gcc GCC_AGGRE_USB_NOC_AXI_CLK>, + <&gcc GCC_AGGRE_USB_NOC_NORTH_AXI_CLK>, + <&gcc GCC_AGGRE_USB_NOC_SOUTH_AXI_CLK>, + <&gcc GCC_SYS_NOC_USB_AXI_CLK>; + clock-names =3D "core", "iface", "bus_aggr", "utmi", "sleep", + "noc_aggr", "noc_aggr_north", "noc_aggr_south", "noc_sys"; + + assigned-clocks =3D <&gcc GCC_USB30_SEC_MOCK_UTMI_CLK>, + <&gcc GCC_USB30_SEC_MASTER_CLK>; + assigned-clock-rates =3D <19200000>, <200000000>; + + interrupts-extended =3D <&intc GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>, + <&pdc 12 IRQ_TYPE_EDGE_BOTH>, + <&pdc 13 IRQ_TYPE_EDGE_BOTH>, + <&pdc 16 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names =3D "hs_phy_irq", "dp_hs_phy_irq", + "dm_hs_phy_irq", "ss_phy_irq"; + + power-domains =3D <&gcc USB30_SEC_GDSC>; + + resets =3D <&gcc GCC_USB30_SEC_BCR>; + + interconnects =3D <&aggre1_noc MASTER_USB3_1 0 &mc_virt SLAVE_EBI1 0>, + <&gem_noc MASTER_APPSS_PROC 0 &config_noc SLAVE_USB3_1 0>; + interconnect-names =3D "usb-ddr", "apps-usb"; + + status =3D "disabled"; + + usb_1_dwc3: usb@a800000 { + compatible =3D "snps,dwc3"; + reg =3D <0 0x0a800000 0 0xcd00>; + interrupts =3D ; + iommus =3D <&apps_smmu 0x860 0x0>; + phys =3D <&usb_1_hsphy>, <&usb_1_ssphy>; + phy-names =3D "usb2-phy", "usb3-phy"; + }; + }; + + pdc: interrupt-controller@b220000 { + compatible =3D "qcom,sc8280xp-pdc", "qcom,pdc"; + reg =3D <0 0x0b220000 0 0x30000>, <0 0x17c000f0 0 0x60>; + qcom,pdc-ranges =3D <0 480 40>, + <40 140 14>, + <54 263 1>, + <55 306 4>, + <59 312 3>, + <62 374 2>, + <64 434 2>, + <66 438 3>, + <69 86 1>, + <70 520 54>, + <124 609 28>, + <159 638 1>, + <160 720 8>, + <168 801 1>, + <169 728 30>, + <199 416 2>, + <201 449 1>, + <202 89 1>, + <203 451 1>, + <204 462 1>, + <205 264 1>, + <206 579 1>, + <207 653 1>, + <208 656 1>, + <209 659 1>, + <210 122 1>, + <211 699 1>, + <212 705 1>, + <213 450 1>, + <214 643 1>, + <216 646 5>, + <221 390 5>, + <226 700 3>, + <229 240 3>, + <232 269 1>, + <233 377 1>, + <234 372 1>, + <235 138 1>, + <236 857 1>, + <237 860 1>, + <238 137 1>, + <239 668 1>, + <240 366 1>, + <241 949 1>, + <242 815 5>, + <247 769 1>, + <248 768 1>, + <249 663 1>, + <250 799 2>, + <252 798 1>, + <253 765 1>, + <254 763 1>, + <255 454 1>, + <258 139 1>, + <259 786 2>, + <261 370 2>, + <263 158 2>; + #interrupt-cells =3D <2>; + interrupt-parent =3D <&intc>; + interrupt-controller; + }; + + tsens0: thermal-sensor@c263000 { + compatible =3D "qcom,sc8280xp-tsens", "qcom,tsens-v2"; + reg =3D <0 0x0c263000 0 0x1ff>, /* TM */ + <0 0x0c222000 0 0x8>; /* SROT */ + #qcom,sensors =3D <14>; + interrupts-extended =3D <&pdc 26 IRQ_TYPE_LEVEL_HIGH>, + <&pdc 28 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names =3D "uplow", "critical"; + #thermal-sensor-cells =3D <1>; + }; + + tsens1: thermal-sensor@c265000 { + compatible =3D "qcom,sc8280xp-tsens", "qcom,tsens-v2"; + reg =3D <0 0x0c265000 0 0x1ff>, /* TM */ + <0 0x0c223000 0 0x8>; /* SROT */ + #qcom,sensors =3D <16>; + interrupts-extended =3D <&pdc 27 IRQ_TYPE_LEVEL_HIGH>, + <&pdc 29 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names =3D "uplow", "critical"; + #thermal-sensor-cells =3D <1>; + }; + + aoss_qmp: power-controller@c300000 { + compatible =3D "qcom,sc8280xp-aoss-qmp", "qcom,aoss-qmp"; + reg =3D <0 0x0c300000 0 0x400>; + interrupts-extended =3D <&ipcc IPCC_CLIENT_AOP IPCC_MPROC_SIGNAL_GLINK_= QMP IRQ_TYPE_EDGE_RISING>; + mboxes =3D <&ipcc IPCC_CLIENT_AOP IPCC_MPROC_SIGNAL_GLINK_QMP>; + + #clock-cells =3D <0>; + }; + + spmi_bus: spmi@c440000 { + compatible =3D "qcom,spmi-pmic-arb"; + reg =3D <0 0x0c440000 0 0x1100>, + <0 0x0c600000 0 0x2000000>, + <0 0x0e600000 0 0x100000>, + <0 0x0e700000 0 0xa0000>, + <0 0x0c40a000 0 0x26000>; + reg-names =3D "core", "chnls", "obsrvr", "intr", "cnfg"; + interrupt-names =3D "periph_irq"; + interrupts-extended =3D <&pdc 1 IRQ_TYPE_LEVEL_HIGH>; + qcom,ee =3D <0>; + qcom,channel =3D <0>; + #address-cells =3D <1>; + #size-cells =3D <1>; + interrupt-controller; + #interrupt-cells =3D <4>; + }; + + tlmm: pinctrl@f100000 { + compatible =3D "qcom,sc8280xp-tlmm"; + reg =3D <0 0x0f100000 0 0x300000>; + interrupts =3D ; + gpio-controller; + #gpio-cells =3D <2>; + interrupt-controller; + #interrupt-cells =3D <2>; + gpio-ranges =3D <&tlmm 0 0 230>; + }; + + apps_smmu: iommu@15000000 { + compatible =3D "qcom,sc8280xp-smmu-500", "arm,mmu-500"; + reg =3D <0 0x15000000 0 0x100000>; + #iommu-cells =3D <2>; + #global-interrupts =3D <2>; + interrupts =3D , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + ; + }; + + intc: interrupt-controller@17a00000 { + compatible =3D "arm,gic-v3"; + interrupt-controller; + #interrupt-cells =3D <3>; + reg =3D <0x0 0x17a00000 0x0 0x10000>, /* GICD */ + <0x0 0x17a60000 0x0 0x100000>; /* GICR * 8 */ + interrupts =3D ; + #redistributor-regions =3D <1>; + redistributor-stride =3D <0 0x20000>; + + #address-cells =3D <2>; + #size-cells =3D <2>; + ranges; + + gic-its@17a40000 { + compatible =3D "arm,gic-v3-its"; + reg =3D <0 0x17a40000 0 0x20000>; + msi-controller; + #msi-cells =3D <1>; + }; + }; + + watchdog@17c10000 { + compatible =3D "qcom,apss-wdt-sc8280xp", "qcom,kpss-wdt"; + reg =3D <0 0x17c10000 0 0x1000>; + clocks =3D <&sleep_clk>; + interrupts =3D ; + }; + + timer@17c20000 { + compatible =3D "arm,armv7-timer-mem"; + #address-cells =3D <2>; + #size-cells =3D <2>; + ranges; + reg =3D <0x0 0x17c20000 0x0 0x1000>; + clock-frequency =3D <19200000>; + + frame@17c21000 { + frame-number =3D <0>; + interrupts =3D , + ; + reg =3D <0x0 0x17c21000 0x0 0x1000>, + <0x0 0x17c22000 0x0 0x1000>; + }; + + frame@17c23000 { + frame-number =3D <1>; + interrupts =3D ; + reg =3D <0x0 0x17c23000 0x0 0x1000>; + status =3D "disabled"; + }; + + frame@17c25000 { + frame-number =3D <2>; + interrupts =3D ; + reg =3D <0x0 0x17c25000 0x0 0x1000>; + status =3D "disabled"; + }; + + frame@17c27000 { + frame-number =3D <3>; + interrupts =3D ; + reg =3D <0x0 0x17c26000 0x0 0x1000>; + status =3D "disabled"; + }; + + frame@17c29000 { + frame-number =3D <4>; + interrupts =3D ; + reg =3D <0x0 0x17c29000 0x0 0x1000>; + status =3D "disabled"; + }; + + frame@17c2b000 { + frame-number =3D <5>; + interrupts =3D ; + reg =3D <0x0 0x17c2b000 0x0 0x1000>; + status =3D "disabled"; + }; + + frame@17c2d000 { + frame-number =3D <6>; + interrupts =3D ; + reg =3D <0x0 0x17c2d000 0x0 0x1000>; + status =3D "disabled"; + }; + }; + + apps_rsc: rsc@18200000 { + compatible =3D "qcom,rpmh-rsc"; + reg =3D <0x0 0x18200000 0x0 0x10000>, + <0x0 0x18210000 0x0 0x10000>, + <0x0 0x18220000 0x0 0x10000>; + reg-names =3D "drv-0", "drv-1", "drv-2"; + interrupts =3D , + , + ; + qcom,tcs-offset =3D <0xd00>; + qcom,drv-id =3D <2>; + qcom,tcs-config =3D , , + , ; + label =3D "apps_rsc"; + + apps_bcm_voter: bcm-voter { + compatible =3D "qcom,bcm-voter"; + }; + + rpmhcc: clock-controller { + compatible =3D "qcom,sc8280xp-rpmh-clk"; + #clock-cells =3D <1>; + clock-names =3D "xo"; + clocks =3D <&xo_board_clk>; + }; + + rpmhpd: power-controller { + compatible =3D "qcom,sc8280xp-rpmhpd"; + #power-domain-cells =3D <1>; + operating-points-v2 =3D <&rpmhpd_opp_table>; + + rpmhpd_opp_table: opp-table { + compatible =3D "operating-points-v2"; + + rpmhpd_opp_ret: opp1 { + opp-level =3D ; + }; + + rpmhpd_opp_min_svs: opp2 { + opp-level =3D ; + }; + + rpmhpd_opp_low_svs: opp3 { + opp-level =3D ; + }; + + rpmhpd_opp_svs: opp4 { + opp-level =3D ; + }; + + rpmhpd_opp_svs_l1: opp5 { + opp-level =3D ; + }; + + rpmhpd_opp_nom: opp6 { + opp-level =3D ; + }; + + rpmhpd_opp_nom_l1: opp7 { + opp-level =3D ; + }; + + rpmhpd_opp_nom_l2: opp8 { + opp-level =3D ; + }; + + rpmhpd_opp_turbo: opp9 { + opp-level =3D ; + }; + + rpmhpd_opp_turbo_l1: opp10 { + opp-level =3D ; + }; + }; + }; + }; + + cpufreq_hw: cpufreq@18591000 { + compatible =3D "qcom,sc8280xp-cpufreq-epss", "qcom,cpufreq-epss"; + reg =3D <0 0x18591000 0 0x1000>, + <0 0x18592000 0 0x1000>; + reg-names =3D "freq-domain0", "freq-domain1"; + + clocks =3D <&rpmhcc RPMH_CXO_CLK>, <&gcc GCC_GPLL0>; + clock-names =3D "xo", "alternate"; + + #freq-domain-cells =3D <1>; + }; + + remoteproc_nsp0: remoteproc@1b300000 { + compatible =3D "qcom,sc8280xp-nsp0-pas"; + reg =3D <0 0x1b300000 0 0x100>; + + interrupts-extended =3D <&intc GIC_SPI 578 IRQ_TYPE_LEVEL_HIGH>, + <&smp2p_nsp0_in 0 IRQ_TYPE_EDGE_RISING>, + <&smp2p_nsp0_in 1 IRQ_TYPE_EDGE_RISING>, + <&smp2p_nsp0_in 2 IRQ_TYPE_EDGE_RISING>, + <&smp2p_nsp0_in 3 IRQ_TYPE_EDGE_RISING>; + interrupt-names =3D "wdog", "fatal", "ready", + "handover", "stop-ack"; + + clocks =3D <&rpmhcc RPMH_CXO_CLK>; + clock-names =3D "xo"; + + power-domains =3D <&rpmhpd SC8280XP_NSP>; + power-domain-names =3D "nsp"; + + memory-region =3D <&pil_nsp0_mem>; + + qcom,smem-states =3D <&smp2p_nsp0_out 0>; + qcom,smem-state-names =3D "stop"; + + interconnects =3D <&nspa_noc MASTER_CDSP_PROC 0 &mc_virt SLAVE_EBI1 0>; + + status =3D "disabled"; + + glink-edge { + interrupts-extended =3D <&ipcc IPCC_CLIENT_CDSP + IPCC_MPROC_SIGNAL_GLINK_QMP + IRQ_TYPE_EDGE_RISING>; + mboxes =3D <&ipcc IPCC_CLIENT_CDSP + IPCC_MPROC_SIGNAL_GLINK_QMP>; + + label =3D "nsp0"; + qcom,remote-pid =3D <5>; + + fastrpc { + compatible =3D "qcom,fastrpc"; + qcom,glink-channels =3D "fastrpcglink-apps-dsp"; + label =3D "cdsp"; + #address-cells =3D <1>; + #size-cells =3D <0>; + + compute-cb@1 { + compatible =3D "qcom,fastrpc-compute-cb"; + reg =3D <1>; + iommus =3D <&apps_smmu 0x3181 0x0420>; + }; + + compute-cb@2 { + compatible =3D "qcom,fastrpc-compute-cb"; + reg =3D <2>; + iommus =3D <&apps_smmu 0x3182 0x0420>; + }; + + compute-cb@3 { + compatible =3D "qcom,fastrpc-compute-cb"; + reg =3D <3>; + iommus =3D <&apps_smmu 0x3183 0x0420>; + }; + + compute-cb@4 { + compatible =3D "qcom,fastrpc-compute-cb"; + reg =3D <4>; + iommus =3D <&apps_smmu 0x3184 0x0420>; + }; + + compute-cb@5 { + compatible =3D "qcom,fastrpc-compute-cb"; + reg =3D <5>; + iommus =3D <&apps_smmu 0x3185 0x0420>; + }; + + compute-cb@6 { + compatible =3D "qcom,fastrpc-compute-cb"; + reg =3D <6>; + iommus =3D <&apps_smmu 0x3186 0x0420>; + }; + + compute-cb@7 { + compatible =3D "qcom,fastrpc-compute-cb"; + reg =3D <7>; + iommus =3D <&apps_smmu 0x3187 0x0420>; + }; + + compute-cb@8 { + compatible =3D "qcom,fastrpc-compute-cb"; + reg =3D <8>; + iommus =3D <&apps_smmu 0x3188 0x0420>; + }; + + compute-cb@9 { + compatible =3D "qcom,fastrpc-compute-cb"; + reg =3D <9>; + iommus =3D <&apps_smmu 0x318b 0x0420>; + }; + + compute-cb@10 { + compatible =3D "qcom,fastrpc-compute-cb"; + reg =3D <10>; + iommus =3D <&apps_smmu 0x318b 0x0420>; + }; + + compute-cb@11 { + compatible =3D "qcom,fastrpc-compute-cb"; + reg =3D <11>; + iommus =3D <&apps_smmu 0x318c 0x0420>; + }; + + compute-cb@12 { + compatible =3D "qcom,fastrpc-compute-cb"; + reg =3D <12>; + iommus =3D <&apps_smmu 0x318d 0x0420>; + }; + + compute-cb@13 { + compatible =3D "qcom,fastrpc-compute-cb"; + reg =3D <13>; + iommus =3D <&apps_smmu 0x318e 0x0420>; + }; + + compute-cb@14 { + compatible =3D "qcom,fastrpc-compute-cb"; + reg =3D <14>; + iommus =3D <&apps_smmu 0x318f 0x0420>; + }; + }; + }; + }; + + remoteproc_nsp1: remoteproc@21300000 { + compatible =3D "qcom,sc8280xp-nsp1-pas"; + reg =3D <0 0x21300000 0 0x100>; + + interrupts-extended =3D <&intc GIC_SPI 887 IRQ_TYPE_LEVEL_HIGH>, + <&smp2p_nsp1_in 0 IRQ_TYPE_EDGE_RISING>, + <&smp2p_nsp1_in 1 IRQ_TYPE_EDGE_RISING>, + <&smp2p_nsp1_in 2 IRQ_TYPE_EDGE_RISING>, + <&smp2p_nsp1_in 3 IRQ_TYPE_EDGE_RISING>; + interrupt-names =3D "wdog", "fatal", "ready", + "handover", "stop-ack"; + + clocks =3D <&rpmhcc RPMH_CXO_CLK>; + clock-names =3D "xo"; + + power-domains =3D <&rpmhpd SC8280XP_NSP>; + power-domain-names =3D "nsp"; + + memory-region =3D <&pil_nsp1_mem>; + + qcom,smem-states =3D <&smp2p_nsp1_out 0>; + qcom,smem-state-names =3D "stop"; + + interconnects =3D <&nspb_noc MASTER_CDSP_PROC_B 0 &mc_virt SLAVE_EBI1 0= >; + + status =3D "disabled"; + + glink-edge { + interrupts-extended =3D <&ipcc IPCC_CLIENT_NSP1 + IPCC_MPROC_SIGNAL_GLINK_QMP + IRQ_TYPE_EDGE_RISING>; + mboxes =3D <&ipcc IPCC_CLIENT_NSP1 + IPCC_MPROC_SIGNAL_GLINK_QMP>; + + label =3D "nsp1"; + qcom,remote-pid =3D <12>; + }; + }; + }; + + thermal-zones { + cpu0-thermal { + polling-delay-passive =3D <250>; + polling-delay =3D <1000>; + + thermal-sensors =3D <&tsens0 1>; + + trips { + cpu-crit { + temperature =3D <110000>; + hysteresis =3D <1000>; + type =3D "critical"; + }; + }; + }; + + cpu1-thermal { + polling-delay-passive =3D <250>; + polling-delay =3D <1000>; + + thermal-sensors =3D <&tsens0 2>; + + trips { + cpu-crit { + temperature =3D <110000>; + hysteresis =3D <1000>; + type =3D "critical"; + }; + }; + }; + + cpu2-thermal { + polling-delay-passive =3D <250>; + polling-delay =3D <1000>; + + thermal-sensors =3D <&tsens0 3>; + + trips { + cpu-crit { + temperature =3D <110000>; + hysteresis =3D <1000>; + type =3D "critical"; + }; + }; + }; + + cpu3-thermal { + polling-delay-passive =3D <250>; + polling-delay =3D <1000>; + + thermal-sensors =3D <&tsens0 4>; + + trips { + cpu-crit { + temperature =3D <110000>; + hysteresis =3D <1000>; + type =3D "critical"; + }; + }; + }; + + cpu4-thermal { + polling-delay-passive =3D <250>; + polling-delay =3D <1000>; + + thermal-sensors =3D <&tsens0 5>; + + trips { + cpu-crit { + temperature =3D <110000>; + hysteresis =3D <1000>; + type =3D "critical"; + }; + }; + }; + + cpu5-thermal { + polling-delay-passive =3D <250>; + polling-delay =3D <1000>; + + thermal-sensors =3D <&tsens0 6>; + + trips { + cpu-crit { + temperature =3D <110000>; + hysteresis =3D <1000>; + type =3D "critical"; + }; + }; + }; + + cpu6-thermal { + polling-delay-passive =3D <250>; + polling-delay =3D <1000>; + + thermal-sensors =3D <&tsens0 7>; + + trips { + cpu-crit { + temperature =3D <110000>; + hysteresis =3D <1000>; + type =3D "critical"; + }; + }; + }; + + cpu7-thermal { + polling-delay-passive =3D <250>; + polling-delay =3D <1000>; + + thermal-sensors =3D <&tsens0 8>; + + trips { + cpu-crit { + temperature =3D <110000>; + hysteresis =3D <1000>; + type =3D "critical"; + }; + }; + }; + + cluster0-thermal { + polling-delay-passive =3D <250>; + polling-delay =3D <1000>; + + thermal-sensors =3D <&tsens0 9>; + + trips { + cpu-crit { + temperature =3D <110000>; + hysteresis =3D <1000>; + type =3D "critical"; + }; + }; + }; + + mem-thermal { + polling-delay-passive =3D <250>; + polling-delay =3D <1000>; + + thermal-sensors =3D <&tsens1 15>; + + trips { + trip-point0 { + temperature =3D <90000>; + hysteresis =3D <2000>; + type =3D "hot"; + }; + }; + }; + }; + + timer { + compatible =3D "arm,armv8-timer"; + interrupts =3D , + , + , + ; + clock-frequency =3D <19200000>; + }; +}; --=20 2.35.1 From nobody Mon Apr 20 05:57:43 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id C75A2C433EF for ; Wed, 22 Jun 2022 04:11:04 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1356791AbiFVELC (ORCPT ); Wed, 22 Jun 2022 00:11:02 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42926 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1356476AbiFVEKk (ORCPT ); Wed, 22 Jun 2022 00:10:40 -0400 Received: from mail-oa1-x2d.google.com (mail-oa1-x2d.google.com [IPv6:2001:4860:4864:20::2d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 07CA333E17 for ; Tue, 21 Jun 2022 21:10:24 -0700 (PDT) Received: by mail-oa1-x2d.google.com with SMTP id 586e51a60fabf-101e1a33fe3so10803417fac.11 for ; Tue, 21 Jun 2022 21:10:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=qM9FtL7Bun/LQFw7BzyPO2DdxH2rLLRucKrpbo4przQ=; b=y13sn0cz/Kr3ojMkULzAiA/xSxNPvIjye6dMLXaQqZRNMMU5kSZykhwMthxq7Atg+T SxxZw9o+mQySX3GZpwb0BVNQ5ttyiLGw3uyITWH05dHsgmBL5cB6frTlDxSTooP6RILU SJ+PaKSKR9ND/o1JKh/9ptbMLQpakev7mzIMLyM2lFESyy+fcfgnzEr7kMPEWsmfpFU0 WQYoimm6ip0ETxqKKcCon+T9rfl+grBn5STymeNfgBgbua4hksQT4fPUFfWFiACJJTjD ahuQpZT+0Jh41L90u+oCzmPTOBki4siCEWZi/xG0hVSWU+1H4Pm+fNVpqtrq+XfEtq0i 173A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=qM9FtL7Bun/LQFw7BzyPO2DdxH2rLLRucKrpbo4przQ=; b=HSlODiGJVyejgWcqW28A+WITe9iC1WcshRuv06FuoIXTiQsdq2w1DyXhq413XEN5Sz 5KHWwIK3rXZWPDAnikDj3qyqY0g3PkyKOdjb3lJ0s9okZbXMOKOlCRqnWhmrqnVXChzl YuL8Q9NrYqkvilwYHCv/Z77EZ5cai7mqbR8tvq7a3agq1PTIZJKvBpDZjdb3LRtsF/hx QsGdHMKp52CxyBaIYoNI9YzPI2QIKhnaboJDFQ8p8CAUA7U/WMP77FLglJgd1zY6IOby +93koMw3MpSx6UD0ZmqIUK5DbRjlb71vMGGY9244pI3nEIv01h8wsyYCr/VJj/AhHmg9 MN3g== X-Gm-Message-State: AJIora/sqnpmEl8+5tfK8zsVcC9nndrct6RjBPDR089HrlJV1rDZka57 Nj9iaY4wwZtWobnrkfpk3eUBQA== X-Google-Smtp-Source: AGRyM1tNLnPVqUH37kUSzyIRVu1P9vORYa9CTyRciWMIi6Iy3b1hnU37377BeTn7QxfQayo+li30Xg== X-Received: by 2002:a05:6870:f71d:b0:f2:a4c5:191a with SMTP id ej29-20020a056870f71d00b000f2a4c5191amr23465017oab.257.1655871023317; Tue, 21 Jun 2022 21:10:23 -0700 (PDT) Received: from ripper.. (104-57-184-186.lightspeed.austtx.sbcglobal.net. [104.57.184.186]) by smtp.gmail.com with ESMTPSA id b7-20020a056870918700b000f2455e26acsm2314718oaf.48.2022.06.21.21.10.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Jun 2022 21:10:22 -0700 (PDT) From: Bjorn Andersson To: Andy Gross , Bjorn Andersson , Krzysztof Kozlowski Cc: Rob Herring , Manivannan Sadhasivam , Jassi Brar , linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 4/6] arm64: dts: qcom: sc8280xp: Add reference device Date: Tue, 21 Jun 2022 21:12:22 -0700 Message-Id: <20220622041224.627803-5-bjorn.andersson@linaro.org> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220622041224.627803-1-bjorn.andersson@linaro.org> References: <20220622041224.627803-1-bjorn.andersson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Add basic support for the SC8280XP reference device, which allows it to boot to a shell (using EFIFB) with functional storage (UFS), USB, keyboard, touchpad, touchscreen, backlight and remoteprocs. The PMICs are, per socinfo, reused from other platforms. But given that the address of the PMICs doesn't match other cases and that it's desirable to label things according to the schematics a new dtsi file is created to represent the reference combination of PMICs. Signed-off-by: Bjorn Andersson Reviewed-by: Johan Hovold --- Changes since v1: - Reordered "status" last - Fixed invalid PMIC gpio 0 - Replaced "hid" name with touchscreen, touchpad and keyboard - Added &xo_board_clk frequency arch/arm64/boot/dts/qcom/Makefile | 1 + arch/arm64/boot/dts/qcom/sc8280xp-crd.dts | 432 +++++++++++++++++++ arch/arm64/boot/dts/qcom/sc8280xp-pmics.dtsi | 108 +++++ 3 files changed, 541 insertions(+) create mode 100644 arch/arm64/boot/dts/qcom/sc8280xp-crd.dts create mode 100644 arch/arm64/boot/dts/qcom/sc8280xp-pmics.dtsi diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/M= akefile index 2f8aec2cc6db..ceeae094a59f 100644 --- a/arch/arm64/boot/dts/qcom/Makefile +++ b/arch/arm64/boot/dts/qcom/Makefile @@ -89,6 +89,7 @@ dtb-$(CONFIG_ARCH_QCOM) +=3D sc7280-herobrine-villager-r0= .dtb dtb-$(CONFIG_ARCH_QCOM) +=3D sc7280-idp.dtb dtb-$(CONFIG_ARCH_QCOM) +=3D sc7280-idp2.dtb dtb-$(CONFIG_ARCH_QCOM) +=3D sc7280-crd-r3.dtb +dtb-$(CONFIG_ARCH_QCOM) +=3D sc8280xp-crd.dtb dtb-$(CONFIG_ARCH_QCOM) +=3D sdm630-sony-xperia-ganges-kirin.dtb dtb-$(CONFIG_ARCH_QCOM) +=3D sdm630-sony-xperia-nile-discovery.dtb dtb-$(CONFIG_ARCH_QCOM) +=3D sdm630-sony-xperia-nile-pioneer.dtb diff --git a/arch/arm64/boot/dts/qcom/sc8280xp-crd.dts b/arch/arm64/boot/dt= s/qcom/sc8280xp-crd.dts new file mode 100644 index 000000000000..38a64e886466 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/sc8280xp-crd.dts @@ -0,0 +1,432 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2021, The Linux Foundation. All rights reserved. + * Copyright (c) 2022, Linaro Limited + */ + +/dts-v1/; + +#include +#include +#include +#include + +#include "sc8280xp.dtsi" +#include "sc8280xp-pmics.dtsi" + +/ { + model =3D "Qualcomm SC8280XP CRD"; + compatible =3D "qcom,sc8280xp-crd", "qcom,sc8280xp"; + + aliases { + serial0 =3D &qup2_uart17; + }; + + backlight { + compatible =3D "pwm-backlight"; + pwms =3D <&pmc8280c_lpg 3 1000000>; + enable-gpios =3D <&pmc8280_1_gpios 8 GPIO_ACTIVE_HIGH>; + power-supply =3D <&vreg_edp_bl>; + + pinctrl-names =3D "default"; + pinctrl-0 =3D <&edp_bl_en>, <&edp_bl_pwm>; + }; + + chosen { + stdout-path =3D "serial0:115200n8"; + }; + + vreg_edp_bl: edp-bl-regulator { + compatible =3D "regulator-fixed"; + + regulator-name =3D "VREG_EDP_BL"; + regulator-min-microvolt =3D <3600000>; + regulator-max-microvolt =3D <3600000>; + + gpio =3D <&pmc8280_1_gpios 9 GPIO_ACTIVE_HIGH>; + enable-active-high; + + pinctrl-names =3D "default"; + pinctrl-0 =3D <&edp_bl_reg_en>; + + regulator-boot-on; + }; + + vreg_misc_3p3: misc-3p3-regulator { + compatible =3D "regulator-fixed"; + + regulator-name =3D "VREG_MISC_3P3"; + regulator-min-microvolt =3D <3300000>; + regulator-max-microvolt =3D <3300000>; + + gpio =3D <&pmc8280_1_gpios 1 GPIO_ACTIVE_HIGH>; + enable-active-high; + + pinctrl-names =3D "default"; + pinctrl-0 =3D <&misc_3p3_reg_en>; + + regulator-boot-on; + regulator-always-on; + }; + + reserved-memory { + }; +}; + +&apps_rsc { + pmc8280-1-rpmh-regulators { + compatible =3D "qcom,pm8350-rpmh-regulators"; + qcom,pmic-id =3D "b"; + + vdd-l3-l5-supply =3D <&vreg_s11b>; + + vreg_s11b: smps11 { + regulator-name =3D "vreg_s11b"; + regulator-min-microvolt =3D <1272000>; + regulator-max-microvolt =3D <1272000>; + regulator-initial-mode =3D ; + }; + + vreg_l3b: ldo3 { + regulator-name =3D "vreg_l3b"; + regulator-min-microvolt =3D <1200000>; + regulator-max-microvolt =3D <1200000>; + regulator-initial-mode =3D ; + regulator-allow-set-load; + regulator-boot-on; + regulator-always-on; + }; + + vreg_l4b: ldo4 { + regulator-name =3D "vreg_l4b"; + regulator-min-microvolt =3D <912000>; + regulator-max-microvolt =3D <912000>; + regulator-initial-mode =3D ; + regulator-allow-set-load; + }; + + vreg_l6b: ldo6 { + regulator-name =3D "vreg_l6b"; + regulator-min-microvolt =3D <880000>; + regulator-max-microvolt =3D <880000>; + regulator-initial-mode =3D ; + regulator-allow-set-load; + regulator-boot-on; + }; + }; + + pmc8280c-rpmh-regulators { + compatible =3D "qcom,pm8350c-rpmh-regulators"; + qcom,pmic-id =3D "c"; + + vreg_l1c: ldo1 { + regulator-name =3D "vreg_l1c"; + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + regulator-initial-mode =3D ; + regulator-allow-set-load; + }; + + vreg_l7c: ldo7 { + regulator-name =3D "vreg_l7c"; + regulator-min-microvolt =3D <2504000>; + regulator-max-microvolt =3D <2504000>; + regulator-initial-mode =3D ; + regulator-allow-set-load; + }; + + vreg_l13c: ldo13 { + regulator-name =3D "vreg_l13c"; + regulator-min-microvolt =3D <3072000>; + regulator-max-microvolt =3D <3072000>; + regulator-initial-mode =3D ; + regulator-allow-set-load; + }; + }; + + pmc8280-2-rpmh-regulators { + compatible =3D "qcom,pm8350-rpmh-regulators"; + qcom,pmic-id =3D "d"; + + vdd-l1-l4-supply =3D <&vreg_s11b>; + + vreg_l3d: ldo3 { + regulator-name =3D "vreg_l3d"; + regulator-min-microvolt =3D <1200000>; + regulator-max-microvolt =3D <1200000>; + regulator-initial-mode =3D ; + regulator-allow-set-load; + }; + + vreg_l4d: ldo4 { + regulator-name =3D "vreg_l4d"; + regulator-min-microvolt =3D <1200000>; + regulator-max-microvolt =3D <1200000>; + regulator-initial-mode =3D ; + regulator-allow-set-load; + }; + + vreg_l6d: ldo6 { + regulator-name =3D "vreg_l6d"; + regulator-min-microvolt =3D <880000>; + regulator-max-microvolt =3D <880000>; + regulator-initial-mode =3D ; + regulator-allow-set-load; + }; + + vreg_l7d: ldo7 { + regulator-name =3D "vreg_l7d"; + regulator-min-microvolt =3D <3072000>; + regulator-max-microvolt =3D <3072000>; + regulator-initial-mode =3D ; + regulator-allow-set-load; + }; + + vreg_l9d: ldo9 { + regulator-name =3D "vreg_l9d"; + regulator-min-microvolt =3D <912000>; + regulator-max-microvolt =3D <912000>; + regulator-initial-mode =3D ; + regulator-allow-set-load; + }; + }; +}; + +&pmc8280c_lpg { + status =3D "okay"; +}; + +&pmk8280_pon_pwrkey { + status =3D "okay"; +}; + +&qup0 { + status =3D "okay"; +}; + +&qup0_i2c4 { + clock-frequency =3D <400000>; + + pinctrl-names =3D "default"; + pinctrl-0 =3D <&qup0_i2c4_default>, <&ts0_default>; + + status =3D "okay"; + + touchscreen@10 { + compatible =3D "hid-over-i2c"; + reg =3D <0x10>; + hid-descr-addr =3D <0x1>; + interrupts-extended =3D <&tlmm 175 IRQ_TYPE_LEVEL_LOW>; + vdd-supply =3D <&vreg_misc_3p3>; + }; +}; + +&qup1 { + status =3D "okay"; +}; + +&qup2 { + status =3D "okay"; +}; + +&qup2_i2c5 { + clock-frequency =3D <400000>; + + pinctrl-names =3D "default"; + pinctrl-0 =3D <&qup2_i2c5_default>, <&kybd_default>, <&tpad_default>; + + status =3D "okay"; + + touchpad@15 { + compatible =3D "hid-over-i2c"; + reg =3D <0x15>; + hid-descr-addr =3D <0x1>; + interrupts-extended =3D <&tlmm 182 IRQ_TYPE_LEVEL_LOW>; + vdd-supply =3D <&vreg_misc_3p3>; + }; + + keyboard@68 { + compatible =3D "hid-over-i2c"; + reg =3D <0x68>; + hid-descr-addr =3D <0x1>; + interrupts-extended =3D <&tlmm 104 IRQ_TYPE_LEVEL_LOW>; + vdd-supply =3D <&vreg_misc_3p3>; + }; +}; + +&qup2_uart17 { + compatible =3D "qcom,geni-debug-uart"; + + status =3D "okay"; +}; + +&remoteproc_adsp { + firmware-name =3D "qcom/sc8280xp/qcadsp8280.mbn"; + + status =3D "okay"; +}; + +&remoteproc_nsp0 { + firmware-name =3D "qcom/sc8280xp/qccdsp8280.mbn"; + + status =3D "okay"; +}; + +&ufs_mem_hc { + reset-gpios =3D <&tlmm 228 GPIO_ACTIVE_LOW>; + + vcc-supply =3D <&vreg_l7c>; + vcc-max-microamp =3D <800000>; + vccq-supply =3D <&vreg_l3d>; + vccq-max-microamp =3D <900000>; + + status =3D "okay"; +}; + +&ufs_mem_phy { + vdda-phy-supply =3D <&vreg_l6b>; + vdda-pll-supply =3D <&vreg_l3b>; + + status =3D "okay"; +}; + +&usb_0 { + status =3D "okay"; +}; + +&usb_0_dwc3 { + /* TODO: Define USB-C connector properly */ + dr_mode =3D "host"; +}; + +&usb_0_hsphy { + vdda-pll-supply =3D <&vreg_l9d>; + vdda18-supply =3D <&vreg_l1c>; + vdda33-supply =3D <&vreg_l7d>; + + status =3D "okay"; +}; + +&usb_0_qmpphy { + vdda-phy-supply =3D <&vreg_l9d>; + vdda-pll-supply =3D <&vreg_l4d>; + + status =3D "okay"; +}; + +&usb_1 { + status =3D "okay"; +}; + +&usb_1_dwc3 { + /* TODO: Define USB-C connector properly */ + dr_mode =3D "host"; +}; + +&usb_1_hsphy { + vdda-pll-supply =3D <&vreg_l4b>; + vdda18-supply =3D <&vreg_l1c>; + vdda33-supply =3D <&vreg_l13c>; + + status =3D "okay"; +}; + +&usb_1_qmpphy { + vdda-phy-supply =3D <&vreg_l4b>; + vdda-pll-supply =3D <&vreg_l3b>; + + status =3D "okay"; +}; + +/* PINCTRL - additions to nodes defined in sc8280xp.dtsi */ + +&pmc8280_1_gpios { + edp_bl_en: edp-bl-en-state { + pins =3D "gpio8"; + function =3D "normal"; + }; + + edp_bl_reg_en: edp-bl-reg-en-state { + pins =3D "gpio9"; + function =3D "normal"; + }; + + misc_3p3_reg_en: misc-3p3-reg-en-state { + pins =3D "gpio1"; + function =3D "normal"; + }; +}; + +&pmc8280c_gpios { + edp_bl_pwm: edp-bl-pwm-state { + pins =3D "gpio8"; + function =3D "func1"; + }; +}; + +&xo_board_clk { + clock-frequency =3D <38400000>; +}; + +&tlmm { + gpio-reserved-ranges =3D <74 6>, <83 4>, <125 2>, <128 2>, <154 7>; + + kybd_default: kybd-default-state { + disable { + pins =3D "gpio102"; + function =3D "gpio"; + output-low; + }; + + int-n { + pins =3D "gpio104"; + function =3D "gpio"; + bias-disable; + }; + + reset { + pins =3D "gpio105"; + function =3D "gpio"; + bias-disable; + }; + }; + + qup0_i2c4_default: qup0-i2c4-default-state { + pins =3D "gpio171", "gpio172"; + function =3D "qup4"; + + bias-disable; + drive-strength =3D <16>; + }; + + qup2_i2c5_default: qup2-i2c5-default-state { + pins =3D "gpio81", "gpio82"; + function =3D "qup21"; + + bias-disable; + drive-strength =3D <16>; + }; + + tpad_default: tpad-default-state { + int-n { + pins =3D "gpio182"; + function =3D "gpio"; + bias-disable; + }; + }; + + ts0_default: ts0-default-state { + int-n { + pins =3D "gpio175"; + function =3D "gpio"; + bias-pull-up; + }; + + reset-n { + pins =3D "gpio99"; + function =3D "gpio"; + output-high; + drive-strength =3D <16>; + }; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/sc8280xp-pmics.dtsi b/arch/arm64/boot= /dts/qcom/sc8280xp-pmics.dtsi new file mode 100644 index 000000000000..36ed7d808ab8 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/sc8280xp-pmics.dtsi @@ -0,0 +1,108 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2022, Linaro Limited + */ + +#include +#include + +&spmi_bus { + pmk8280: pmic@0 { + compatible =3D "qcom,pmk8350", "qcom,spmi-pmic"; + reg =3D <0x0 SPMI_USID>; + #address-cells =3D <1>; + #size-cells =3D <0>; + + pmk8280_pon: pon@1300 { + compatible =3D "qcom,pm8998-pon"; + reg =3D <0x1300>; + + pmk8280_pon_pwrkey: pwrkey { + compatible =3D "qcom,pmk8350-pwrkey"; + interrupts =3D <0x0 0x13 0x7 IRQ_TYPE_EDGE_BOTH>; + linux,code =3D ; + status =3D "disabled"; + }; + }; + }; + + pmc8280_1: pmic@1 { + compatible =3D "qcom,pm8350", "qcom,spmi-pmic"; + reg =3D <0x1 SPMI_USID>; + #address-cells =3D <1>; + #size-cells =3D <0>; + + pmc8280_1_gpios: gpio@8800 { + compatible =3D "qcom,pm8350-gpio", "qcom,spmi-gpio"; + reg =3D <0x8800>; + gpio-controller; + gpio-ranges =3D <&pmc8280_1_gpios 0 0 10>; + #gpio-cells =3D <2>; + interrupt-controller; + #interrupt-cells =3D <2>; + }; + }; + + pmc8280c: pmic@2 { + compatible =3D "qcom,pm8350c", "qcom,spmi-pmic"; + reg =3D <0x2 SPMI_USID>; + #address-cells =3D <1>; + #size-cells =3D <0>; + + pmc8280c_gpios: gpio@8800 { + compatible =3D "qcom,pm8350c-gpio", "qcom,spmi-gpio"; + reg =3D <0x8800>; + gpio-controller; + gpio-ranges =3D <&pmc8280c_gpios 0 0 9>; + #gpio-cells =3D <2>; + interrupt-controller; + #interrupt-cells =3D <2>; + }; + + pmc8280c_lpg: lpg@e800 { + compatible =3D "qcom,pm8350c-pwm"; + reg =3D <0xe800>; + + #address-cells =3D <1>; + #size-cells =3D <0>; + + #pwm-cells =3D <2>; + + status =3D "disabled"; + }; + }; + + pmc8280_2: pmic@3 { + compatible =3D "qcom,pm8350", "qcom,spmi-pmic"; + reg =3D <0x3 SPMI_USID>; + #address-cells =3D <1>; + #size-cells =3D <0>; + + pmc8280_2_gpios: gpio@8800 { + compatible =3D "qcom,pm8350-gpio", "qcom,spmi-gpio"; + reg =3D <0x8800>; + gpio-controller; + gpio-ranges =3D <&pmc8280_2_gpios 0 0 10>; + #gpio-cells =3D <2>; + interrupt-controller; + #interrupt-cells =3D <2>; + }; + }; + + pmr735a: pmic@4 { + compatible =3D "qcom,pmr735a", "qcom,spmi-pmic"; + reg =3D <0x4 SPMI_USID>; + #address-cells =3D <1>; + #size-cells =3D <0>; + + pmr735a_gpios: gpio@8800 { + compatible =3D "qcom,pmr735a-gpio", "qcom,spmi-gpio"; + reg =3D <0x8800>; + gpio-controller; + gpio-ranges =3D <&pmr735a_gpios 0 0 4>; + #gpio-cells =3D <2>; + interrupt-controller; + #interrupt-cells =3D <2>; + }; + }; +}; --=20 2.35.1 From nobody Mon Apr 20 05:57:43 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 59632C43334 for ; Wed, 22 Jun 2022 04:11:14 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1356781AbiFVELL (ORCPT ); Wed, 22 Jun 2022 00:11:11 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43000 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1356516AbiFVEKo (ORCPT ); Wed, 22 Jun 2022 00:10:44 -0400 Received: from mail-oi1-x235.google.com (mail-oi1-x235.google.com [IPv6:2607:f8b0:4864:20::235]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0C7DB33E37 for ; Tue, 21 Jun 2022 21:10:25 -0700 (PDT) Received: by mail-oi1-x235.google.com with SMTP id u9so19645151oiv.12 for ; Tue, 21 Jun 2022 21:10:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=WmV5CqX7PSrCsFb78/oFCaZXKS/0VAQmcXxZw7SW4qY=; b=uTqXYtWigDcUqjJqnmUknyy8MpM+n9VsybCG/QsmuJiDdw1p0AmUB92BfQx1PEnPAl /Vfkhj/pKIyLmaRyrlp6eLqmdwTDHWfH5AtV/EM/zl+btgdS39Uumr3R4FDyxpUir0nH hB6ZxhVHBNAapZNJhasMDhOyc2t2VzquPVp541NuuUXJV4gcs6cXY3mWaUJ/ev/exca2 nHjCK8QAtMSdG0Y3fnHxl5JDWKEUkosAOYfK8lDyblVtkvLciDIGDtSmEJPreWqLir0S 12FbIT8eqmm2H6naqRHiFUlot0YAu7ikxb/F7TvosxyZUCXxyMhLWftf5XVwVOn8F0g/ DOTw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=WmV5CqX7PSrCsFb78/oFCaZXKS/0VAQmcXxZw7SW4qY=; b=ub7JUWkcszgv7EzE9y95XCAExTE9t/k/1RHIzlTFTVWjdA1OcPoL3AMoRH4Evorrgk y3XxngvWporf/0IocXRdHJWeygZyrV7THhPbTpWfRpdYdZ+tLAUv6tZ2HRDtD/dreqho yocfBeymCNmoV/IAewla49lNZd8L/4iixwF8R1qN7Str8AhVMnbNe9Kwbccn0Lb2Eo1L A0eTjLSzue2L5L9Jw1D/tRkbbVPNPfszoh4YPeZKm1MhRX5onwXddf93QYTLg8ljpzgA dSweJkaasBP+EYisgadH2jfBYEHunUgyfp34AkoapXsBVv411CY6p8VaX78HkYs6YN/h V7dg== X-Gm-Message-State: AOAM530UBTx8P5t6TA3cJYQ9mzKz8s69qzYkHn6j5+1jaV3SyjjMA5Tu vqhb/bcErCDQHhEm6WY/eYG/ag== X-Google-Smtp-Source: ABdhPJzMCXEUIxhaMEVugFdg/SS1UONLx8unL2U7+Pvj2pKzsKwLZSVWu4mdw93mfYiH+Bh1uiUFuQ== X-Received: by 2002:a05:6808:138c:b0:32e:714f:35e4 with SMTP id c12-20020a056808138c00b0032e714f35e4mr20747543oiw.229.1655871024302; Tue, 21 Jun 2022 21:10:24 -0700 (PDT) Received: from ripper.. (104-57-184-186.lightspeed.austtx.sbcglobal.net. [104.57.184.186]) by smtp.gmail.com with ESMTPSA id b7-20020a056870918700b000f2455e26acsm2314718oaf.48.2022.06.21.21.10.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Jun 2022 21:10:23 -0700 (PDT) From: Bjorn Andersson To: Andy Gross , Bjorn Andersson , Krzysztof Kozlowski Cc: Rob Herring , Manivannan Sadhasivam , Jassi Brar , linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 5/6] arm64: dts: qcom: add SA8540P and ADP Date: Tue, 21 Jun 2022 21:12:23 -0700 Message-Id: <20220622041224.627803-6-bjorn.andersson@linaro.org> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220622041224.627803-1-bjorn.andersson@linaro.org> References: <20220622041224.627803-1-bjorn.andersson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Introduce the Qualcomm SA8540P automotive platform and the SA8295P ADP development board. The SA8540P and SC8280XP are fairly similar, so the SA8540P is built ontop of the SC8280XP dtsi to reduce duplication. As more advanced features are integrated this might be re-evaluated. This initial contribution supports SMP, CPUFreq, cluster idle, UFS, RPMh regulators, debug UART, PMICs, remoteprocs (NSPs crashes shortly after booting) and USB. The SA8295P ADP contains four PM8450 PMICs, which according to their revid are compatible with PM8150. They are defined within the ADP for now, to avoid creating additional .dtsi files for PM8150 with just addresses changed - and to allow using the labels from the schematics. Signed-off-by: Bjorn Andersson Reviewed-by: Johan Hovold --- arch/arm64/boot/dts/qcom/Makefile | 1 + arch/arm64/boot/dts/qcom/sa8295p-adp.dts | 427 +++++++++++++++++++++++ arch/arm64/boot/dts/qcom/sa8540p.dtsi | 133 +++++++ 3 files changed, 561 insertions(+) create mode 100644 arch/arm64/boot/dts/qcom/sa8295p-adp.dts create mode 100644 arch/arm64/boot/dts/qcom/sa8540p.dtsi diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/M= akefile index ceeae094a59f..2f416b84b71c 100644 --- a/arch/arm64/boot/dts/qcom/Makefile +++ b/arch/arm64/boot/dts/qcom/Makefile @@ -52,6 +52,7 @@ dtb-$(CONFIG_ARCH_QCOM) +=3D qcs404-evb-1000.dtb dtb-$(CONFIG_ARCH_QCOM) +=3D qcs404-evb-4000.dtb dtb-$(CONFIG_ARCH_QCOM) +=3D qrb5165-rb5.dtb dtb-$(CONFIG_ARCH_QCOM) +=3D sa8155p-adp.dtb +dtb-$(CONFIG_ARCH_QCOM) +=3D sa8295p-adp.dtb dtb-$(CONFIG_ARCH_QCOM) +=3D sc7180-idp.dtb dtb-$(CONFIG_ARCH_QCOM) +=3D sc7180-trogdor-coachz-r1.dtb dtb-$(CONFIG_ARCH_QCOM) +=3D sc7180-trogdor-coachz-r1-lte.dtb diff --git a/arch/arm64/boot/dts/qcom/sa8295p-adp.dts b/arch/arm64/boot/dts= /qcom/sa8295p-adp.dts new file mode 100644 index 000000000000..8dbcd95966b0 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/sa8295p-adp.dts @@ -0,0 +1,427 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2021, The Linux Foundation. All rights reserved. + * Copyright (c) 2022, Linaro Limited + */ + +/dts-v1/; + +#include +#include +#include +#include +#include + +#include "sa8540p.dtsi" + +/ { + model =3D "Qualcomm SA8295P ADP"; + compatible =3D "qcom,sa8295p-adp", "qcom,sa8540p"; + + aliases { + serial0 =3D &qup2_uart17; + }; + + chosen { + stdout-path =3D "serial0:115200n8"; + }; + + reserved-memory { + }; +}; + +&apps_rsc { + pmm8540-a-regulators { + compatible =3D "qcom,pm8150-rpmh-regulators"; + qcom,pmic-id =3D "a"; + + vreg_l3a: ldo3 { + regulator-name =3D "vreg_l3a"; + regulator-min-microvolt =3D <1200000>; + regulator-max-microvolt =3D <1208000>; + regulator-initial-mode =3D ; + regulator-allow-set-load; + }; + + vreg_l5a: ldo5 { + regulator-name =3D "vreg_l5a"; + regulator-min-microvolt =3D <912000>; + regulator-max-microvolt =3D <912000>; + regulator-initial-mode =3D ; + regulator-allow-set-load; + }; + + vreg_l7a: ldo7 { + regulator-name =3D "vreg_l7a"; + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + regulator-initial-mode =3D ; + regulator-allow-set-load; + }; + + vreg_l13a: ldo13 { + regulator-name =3D "vreg_l13a"; + regulator-min-microvolt =3D <3072000>; + regulator-max-microvolt =3D <3072000>; + regulator-initial-mode =3D ; + regulator-allow-set-load; + }; + }; + + pmm8540-c-regulators { + compatible =3D "qcom,pm8150-rpmh-regulators"; + qcom,pmic-id =3D "c"; + + vreg_l1c: ldo1 { + regulator-name =3D "vreg_l1c"; + regulator-min-microvolt =3D <912000>; + regulator-max-microvolt =3D <912000>; + regulator-initial-mode =3D ; + regulator-allow-set-load; + }; + + vreg_l2c: ldo2 { + regulator-name =3D "vreg_l2c"; + regulator-min-microvolt =3D <3072000>; + regulator-max-microvolt =3D <3072000>; + regulator-initial-mode =3D ; + regulator-allow-set-load; + }; + + vreg_l3c: ldo3 { + regulator-name =3D "vreg_l3c"; + regulator-min-microvolt =3D <1200000>; + regulator-max-microvolt =3D <1200000>; + regulator-initial-mode =3D ; + regulator-allow-set-load; + }; + + vreg_l4c: ldo4 { + regulator-name =3D "vreg_l4c"; + regulator-min-microvolt =3D <1200000>; + regulator-max-microvolt =3D <1208000>; + regulator-initial-mode =3D ; + regulator-allow-set-load; + }; + + vreg_l6c: ldo6 { + regulator-name =3D "vreg_l6c"; + regulator-min-microvolt =3D <1200000>; + regulator-max-microvolt =3D <1200000>; + regulator-initial-mode =3D ; + regulator-allow-set-load; + }; + + vreg_l7c: ldo7 { + regulator-name =3D "vreg_l7c"; + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + regulator-initial-mode =3D ; + regulator-allow-set-load; + }; + + vreg_l10c: ldo10 { + regulator-name =3D "vreg_l10c"; + regulator-min-microvolt =3D <2504000>; + regulator-max-microvolt =3D <2504000>; + regulator-initial-mode =3D ; + regulator-allow-set-load; + }; + + vreg_l17c: ldo17 { + regulator-name =3D "vreg_l17c"; + regulator-min-microvolt =3D <2504000>; + regulator-max-microvolt =3D <2504000>; + regulator-initial-mode =3D ; + regulator-allow-set-load; + }; + }; + + pmm8540-g-regulators { + compatible =3D "qcom,pm8150-rpmh-regulators"; + qcom,pmic-id =3D "g"; + + vreg_l3g: ldo3 { + regulator-name =3D "vreg_l3g"; + regulator-min-microvolt =3D <1200000>; + regulator-max-microvolt =3D <1200000>; + regulator-initial-mode =3D ; + regulator-allow-set-load; + }; + + vreg_l7g: ldo7 { + regulator-name =3D "vreg_l7g"; + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + regulator-initial-mode =3D ; + regulator-allow-set-load; + }; + + vreg_l8g: ldo8 { + regulator-name =3D "vreg_l8g"; + regulator-min-microvolt =3D <880000>; + regulator-max-microvolt =3D <880000>; + regulator-initial-mode =3D ; + regulator-allow-set-load; + }; + }; +}; + +&qup2 { + status =3D "okay"; +}; + +&qup2_uart17 { + compatible =3D "qcom,geni-debug-uart"; + status =3D "okay"; +}; + +&remoteproc_adsp { + status =3D "okay"; + firmware-name =3D "qcom/sa8540p/adsp.mbn"; +}; + +&remoteproc_nsp0 { + status =3D "okay"; + firmware-name =3D "qcom/sa8540p/cdsp.mbn"; +}; + +&remoteproc_nsp1 { + status =3D "okay"; + firmware-name =3D "qcom/sa8540p/cdsp1.mbn"; +}; + +&spmi_bus { + pm8450a: pmic@0 { + compatible =3D "qcom,pm8150", "qcom,spmi-pmic"; + reg =3D <0x0 SPMI_USID>; + #address-cells =3D <1>; + #size-cells =3D <0>; + + pm8450a_gpios: gpio@c000 { + compatible =3D "qcom,pm8150-gpio"; + reg =3D <0xc000>; + gpio-controller; + #gpio-cells =3D <2>; + interrupt-controller; + #interrupt-cells =3D <2>; + }; + }; + + pm8450c: pmic@4 { + compatible =3D "qcom,pm8150", "qcom,spmi-pmic"; + reg =3D <0x4 SPMI_USID>; + #address-cells =3D <1>; + #size-cells =3D <0>; + + pm8450c_gpios: gpio@c000 { + compatible =3D "qcom,pm8150-gpio"; + reg =3D <0xc000>; + gpio-controller; + #gpio-cells =3D <2>; + interrupt-controller; + #interrupt-cells =3D <2>; + }; + }; + + pm8450e: pmic@8 { + compatible =3D "qcom,pm8150", "qcom,spmi-pmic"; + reg =3D <0x8 SPMI_USID>; + #address-cells =3D <1>; + #size-cells =3D <0>; + + pm8450e_gpios: gpio@c000 { + compatible =3D "qcom,pm8150-gpio"; + reg =3D <0xc000>; + gpio-controller; + #gpio-cells =3D <2>; + interrupt-controller; + #interrupt-cells =3D <2>; + }; + }; + + pm8450g: pmic@c { + compatible =3D "qcom,pm8150", "qcom,spmi-pmic"; + reg =3D <0xc SPMI_USID>; + #address-cells =3D <1>; + #size-cells =3D <0>; + + pm8450g_gpios: gpio@c000 { + compatible =3D "qcom,pm8150-gpio"; + reg =3D <0xc000>; + gpio-controller; + #gpio-cells =3D <2>; + interrupt-controller; + #interrupt-cells =3D <2>; + }; + }; +}; + +&ufs_mem_hc { + status =3D "okay"; + + reset-gpios =3D <&tlmm 228 GPIO_ACTIVE_LOW>; + + vcc-supply =3D <&vreg_l17c>; + vcc-max-microamp =3D <800000>; + vccq-supply =3D <&vreg_l6c>; + vccq-max-microamp =3D <900000>; +}; + +&ufs_mem_phy { + status =3D "okay"; + + vdda-phy-supply =3D <&vreg_l8g>; + vdda-pll-supply =3D <&vreg_l3g>; +}; + +&ufs_card_hc { + status =3D "okay"; + + reset-gpios =3D <&tlmm 229 GPIO_ACTIVE_LOW>; + + vcc-supply =3D <&vreg_l10c>; + vcc-max-microamp =3D <800000>; + vccq-supply =3D <&vreg_l3c>; + vccq-max-microamp =3D <900000>; +}; + +&ufs_card_phy { + status =3D "okay"; + + vdda-phy-supply =3D <&vreg_l8g>; + vdda-pll-supply =3D <&vreg_l3g>; +}; + +&usb_0 { + status =3D "okay"; +}; + +&usb_0_dwc3 { + /* TODO: Define USB-C connector properly */ + dr_mode =3D "peripheral"; +}; + +&usb_0_hsphy { + status =3D "okay"; + + vdda-pll-supply =3D <&vreg_l5a>; + vdda18-supply =3D <&vreg_l7a>; + vdda33-supply =3D <&vreg_l13a>; +}; + +&usb_0_qmpphy { + status =3D "okay"; + + vdda-phy-supply =3D <&vreg_l3a>; + vdda-pll-supply =3D <&vreg_l5a>; +}; + +&usb_1 { + status =3D "okay"; +}; + +&usb_1_dwc3 { + /* TODO: Define USB-C connector properly */ + dr_mode =3D "host"; +}; + +&usb_1_hsphy { + status =3D "okay"; + + vdda-pll-supply =3D <&vreg_l1c>; + vdda18-supply =3D <&vreg_l7c>; + vdda33-supply =3D <&vreg_l2c>; +}; + +&usb_1_qmpphy { + status =3D "okay"; + + vdda-phy-supply =3D <&vreg_l4c>; + vdda-pll-supply =3D <&vreg_l1c>; +}; + +&usb_2_hsphy0 { + status =3D "okay"; + + vdda-pll-supply =3D <&vreg_l5a>; + vdda18-supply =3D <&vreg_l7g>; + vdda33-supply =3D <&vreg_l13a>; +}; + +&usb_2_hsphy1 { + status =3D "okay"; + + vdda-pll-supply =3D <&vreg_l5a>; + vdda18-supply =3D <&vreg_l7g>; + vdda33-supply =3D <&vreg_l13a>; +}; + +&usb_2_hsphy2 { + status =3D "okay"; + + vdda-pll-supply =3D <&vreg_l5a>; + vdda18-supply =3D <&vreg_l7g>; + vdda33-supply =3D <&vreg_l13a>; +}; + +&usb_2_hsphy3 { + status =3D "okay"; + + vdda-pll-supply =3D <&vreg_l5a>; + vdda18-supply =3D <&vreg_l7g>; + vdda33-supply =3D <&vreg_l13a>; +}; + +&usb_2_qmpphy0 { + status =3D "okay"; + + vdda-phy-supply =3D <&vreg_l3a>; + vdda-pll-supply =3D <&vreg_l5a>; +}; + +&usb_2_qmpphy1 { + status =3D "okay"; + + vdda-phy-supply =3D <&vreg_l3a>; + vdda-pll-supply =3D <&vreg_l5a>; +}; + +&xo_board_clk { + clock-frequency =3D <38400000>; +}; + +/* PINCTRL */ +&pm8450c_gpios { + usb2_en_state: usb2-en-state { + pins =3D "gpio9"; + function =3D "normal"; + output-high; + power-source =3D <0>; + }; +}; + +&pm8450e_gpios { + usb3_en_state: usb3-en-state { + pins =3D "gpio5"; + function =3D "normal"; + output-high; + power-source =3D <0>; + }; +}; + +&pm8450g_gpios { + usb4_en_state: usb4-en-state { + pins =3D "gpio5"; + function =3D "normal"; + output-high; + power-source =3D <0>; + }; + + usb5_en_state: usb5-en-state { + pins =3D "gpio9"; + function =3D "normal"; + output-high; + power-source =3D <0>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/sa8540p.dtsi b/arch/arm64/boot/dts/qc= om/sa8540p.dtsi new file mode 100644 index 000000000000..8ea2886fbab2 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/sa8540p.dtsi @@ -0,0 +1,133 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2021, The Linux Foundation. All rights reserved. + * Copyright (c) 2022, Linaro Limited + */ + +#include "sc8280xp.dtsi" + +/delete-node/ &cpu0_opp_table; +/delete-node/ &cpu4_opp_table; + +/ { + cpu0_opp_table: cpu0-opp-table { + compatible =3D "operating-points-v2"; + opp-shared; + + opp-403200000 { + opp-hz =3D /bits/ 64 <403200000>; + }; + opp-499200000 { + opp-hz =3D /bits/ 64 <499200000>; + }; + opp-595200000 { + opp-hz =3D /bits/ 64 <595200000>; + }; + opp-710400000 { + opp-hz =3D /bits/ 64 <710400000>; + }; + opp-806400000 { + opp-hz =3D /bits/ 64 <806400000>; + }; + opp-902400000 { + opp-hz =3D /bits/ 64 <902400000>; + }; + opp-1017600000 { + opp-hz =3D /bits/ 64 <1017600000>; + }; + opp-1113600000 { + opp-hz =3D /bits/ 64 <1113600000>; + }; + opp-1209600000 { + opp-hz =3D /bits/ 64 <1209600000>; + }; + opp-1324800000 { + opp-hz =3D /bits/ 64 <1324800000>; + }; + opp-1440000000 { + opp-hz =3D /bits/ 64 <1440000000>; + }; + opp-1555200000 { + opp-hz =3D /bits/ 64 <1555200000>; + }; + opp-1670400000 { + opp-hz =3D /bits/ 64 <1670400000>; + }; + opp-1785600000 { + opp-hz =3D /bits/ 64 <1785600000>; + }; + opp-1881600000 { + opp-hz =3D /bits/ 64 <1881600000>; + }; + opp-2016000000 { + opp-hz =3D /bits/ 64 <2016000000>; + }; + opp-2131200000 { + opp-hz =3D /bits/ 64 <2131200000>; + }; + opp-2246400000 { + opp-hz =3D /bits/ 64 <2246400000>; + }; + }; + + cpu4_opp_table: cpu4-opp-table { + compatible =3D "operating-points-v2"; + opp-shared; + + opp-825600000 { + opp-hz =3D /bits/ 64 <825600000>; + }; + opp-940800000 { + opp-hz =3D /bits/ 64 <940800000>; + }; + opp-1056000000 { + opp-hz =3D /bits/ 64 <1056000000>; + }; + opp-1171200000 { + opp-hz =3D /bits/ 64 <1171200000>; + }; + opp-1286400000 { + opp-hz =3D /bits/ 64 <1286400000>; + }; + opp-1401600000 { + opp-hz =3D /bits/ 64 <1401600000>; + }; + opp-1516800000 { + opp-hz =3D /bits/ 64 <1516800000>; + }; + opp-1632000000 { + opp-hz =3D /bits/ 64 <1632000000>; + }; + opp-1747200000 { + opp-hz =3D /bits/ 64 <1747200000>; + }; + opp-1862400000 { + opp-hz =3D /bits/ 64 <1862400000>; + }; + opp-1977600000 { + opp-hz =3D /bits/ 64 <1977600000>; + }; + opp-2073600000 { + opp-hz =3D /bits/ 64 <2073600000>; + }; + opp-2169600000 { + opp-hz =3D /bits/ 64 <2169600000>; + }; + opp-2284800000 { + opp-hz =3D /bits/ 64 <2284800000>; + }; + opp-2380800000 { + opp-hz =3D /bits/ 64 <2380800000>; + }; + opp-2496000000 { + opp-hz =3D /bits/ 64 <2496000000>; + }; + opp-2592000000 { + opp-hz =3D /bits/ 64 <2592000000>; + }; + }; +}; + +&rpmhpd { + compatible =3D "qcom,sa8540p-rpmhpd"; +}; --=20 2.35.1 From nobody Mon Apr 20 05:57:43 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 949CCC433EF for ; Wed, 22 Jun 2022 04:11:08 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1356820AbiFVELG (ORCPT ); Wed, 22 Jun 2022 00:11:06 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43026 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1356759AbiFVEKp (ORCPT ); Wed, 22 Jun 2022 00:10:45 -0400 Received: from mail-oa1-x33.google.com (mail-oa1-x33.google.com [IPv6:2001:4860:4864:20::33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0138933E38 for ; Tue, 21 Jun 2022 21:10:25 -0700 (PDT) Received: by mail-oa1-x33.google.com with SMTP id 586e51a60fabf-1048b8a38bbso4307372fac.12 for ; Tue, 21 Jun 2022 21:10:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=V2lBRiQ83+499zZ6HYPxPX39zS2ryDaEeojdegHG3XI=; b=x4x/y5Ydt+XZcf8uo6HXVfmi/EbiZmwg5XCgRkHUGmJDBsRd89YEFxHHkHs7tVINiQ jyXVZdlEaX7HMFmy8cj75WOkdRZ7vi+gG+tti5AOTDcUOJUzGFPpiBI4cCt1IdSwDmaB kL/mv3Hr0siRyCXUCHwrw6g5O8FrffjC2dZwxhTqHN/YkeuBzlwLTFeIgDgTO7wfE/bm bxSsmkMXbcnlIRt2U6j7aboWSWwL/xOxl3rBF6KshC0O3xGyGU7bZNnkMMGHXN4HVjQ+ 7tP660LzyR7a3nuECPPJ22mixt1KY1qLiEIsiY/eOQ+7ImxnmdkM3myOz/DzNBONg87y 9g/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=V2lBRiQ83+499zZ6HYPxPX39zS2ryDaEeojdegHG3XI=; b=f77r7zOQpuJJQQvF0PltvzTcP/vylE+qPXlsyCNRnQMfijSoXAuslrn/Pqi8nnoeg6 CiLzpO52WHropPAKBQhjmPt0rUaZzVNRljkE08ZhP0iWs5itXWb8utIMmoK9ZCvEKnae Si+AsfdESQsNCD8mQxSEHi3Uac9ldwoeVLJp7teAkaw+GisaUqk/Vllt0DkN9D047je7 tNBipG3AIVyuFvhjtbH1d3CgFSv2cyGWdDgG5oYwH9pmm0gBrVH7nihXZwFORkwRbooi krK7rPpyhOtSyO3kQIv4iS5PFi9zMMi2zYooeen/Cn8tx8Fg40BHJww+tjSwxDOCLG/4 fOUg== X-Gm-Message-State: AJIora9SkoWUg3BMUrwBwLerA9kDTW5G0cPYgjWT5LhfBYPjwMqEYRxn Sz+UkVbb4bSUcjELuq8By9OsLg== X-Google-Smtp-Source: AGRyM1tjo9cVRRdEkiRm6jUkDlzCXkCbUcBCWcBUUjNnvOwV5PIzm+zggmDy23Kte8D/RN/peHvLDg== X-Received: by 2002:a05:6870:5247:b0:101:ec40:6a3a with SMTP id o7-20020a056870524700b00101ec406a3amr985948oai.276.1655871025265; Tue, 21 Jun 2022 21:10:25 -0700 (PDT) Received: from ripper.. (104-57-184-186.lightspeed.austtx.sbcglobal.net. [104.57.184.186]) by smtp.gmail.com with ESMTPSA id b7-20020a056870918700b000f2455e26acsm2314718oaf.48.2022.06.21.21.10.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Jun 2022 21:10:24 -0700 (PDT) From: Bjorn Andersson To: Andy Gross , Bjorn Andersson , Krzysztof Kozlowski Cc: Rob Herring , Manivannan Sadhasivam , Jassi Brar , linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 6/6] arm64: dts: qcom: sc8280xp: add Lenovo Thinkpad X13s devicetree Date: Tue, 21 Jun 2022 21:12:24 -0700 Message-Id: <20220622041224.627803-7-bjorn.andersson@linaro.org> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220622041224.627803-1-bjorn.andersson@linaro.org> References: <20220622041224.627803-1-bjorn.andersson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Johan Hovold Add an initial Lenovo Thinkpad X13s devicetree. Signed-off-by: Johan Hovold Signed-off-by: Bjorn Andersson --- Changs since v1: - New patch arch/arm64/boot/dts/qcom/Makefile | 1 + .../qcom/sc8280xp-lenovo-thinkpad-x13s.dts | 393 ++++++++++++++++++ 2 files changed, 394 insertions(+) create mode 100644 arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.= dts diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/M= akefile index 2f416b84b71c..43053f1f6be9 100644 --- a/arch/arm64/boot/dts/qcom/Makefile +++ b/arch/arm64/boot/dts/qcom/Makefile @@ -91,6 +91,7 @@ dtb-$(CONFIG_ARCH_QCOM) +=3D sc7280-idp.dtb dtb-$(CONFIG_ARCH_QCOM) +=3D sc7280-idp2.dtb dtb-$(CONFIG_ARCH_QCOM) +=3D sc7280-crd-r3.dtb dtb-$(CONFIG_ARCH_QCOM) +=3D sc8280xp-crd.dtb +dtb-$(CONFIG_ARCH_QCOM) +=3D sc8280xp-lenovo-thinkpad-x13s.dtb dtb-$(CONFIG_ARCH_QCOM) +=3D sdm630-sony-xperia-ganges-kirin.dtb dtb-$(CONFIG_ARCH_QCOM) +=3D sdm630-sony-xperia-nile-discovery.dtb dtb-$(CONFIG_ARCH_QCOM) +=3D sdm630-sony-xperia-nile-pioneer.dtb diff --git a/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts b/a= rch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts new file mode 100644 index 000000000000..58d3d8035751 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts @@ -0,0 +1,393 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2021, The Linux Foundation. All rights reserved. + * Copyright (c) 2022, Linaro Limited + */ + +/dts-v1/; + +#include +#include +#include +#include + +#include "sc8280xp.dtsi" +#include "sc8280xp-pmics.dtsi" + +/ { + model =3D "Lenovo ThinkPad X13s"; + compatible =3D "lenovo,thinkpad-x13s", "qcom,sc8280xp"; + + backlight { + compatible =3D "pwm-backlight"; + pwms =3D <&pmc8280c_lpg 3 1000000>; + enable-gpios =3D <&pmc8280_1_gpios 8 GPIO_ACTIVE_HIGH>; + power-supply =3D <&vreg_edp_bl>; + + pinctrl-names =3D "default"; + pinctrl-0 =3D <&edp_bl_en>, <&edp_bl_pwm>; + }; + + vreg_edp_bl: edp-bl-regulator { + compatible =3D "regulator-fixed"; + + regulator-name =3D "VBL9"; + regulator-min-microvolt =3D <3600000>; + regulator-max-microvolt =3D <3600000>; + + gpio =3D <&pmc8280_1_gpios 9 GPIO_ACTIVE_HIGH>; + enable-active-high; + + pinctrl-names =3D "default"; + pinctrl-0 =3D <&edp_bl_reg_en>; + + regulator-boot-on; + }; + + vreg_misc_3p3: misc-3p3-regulator { + compatible =3D "regulator-fixed"; + + regulator-name =3D "VCC3B"; + regulator-min-microvolt =3D <3300000>; + regulator-max-microvolt =3D <3300000>; + + gpio =3D <&pmc8280_1_gpios 1 GPIO_ACTIVE_HIGH>; + enable-active-high; + + pinctrl-names =3D "default"; + pinctrl-0 =3D <&misc_3p3_reg_en>; + + regulator-boot-on; + regulator-always-on; + }; + + reserved-memory { + }; +}; + +&apps_rsc { + pmc8280-1-rpmh-regulators { + compatible =3D "qcom,pm8350-rpmh-regulators"; + qcom,pmic-id =3D "b"; + + vdd-l3-l5-supply =3D <&vreg_s11b>; + + vreg_s11b: smps11 { + regulator-name =3D "vreg_s11b"; + regulator-min-microvolt =3D <1272000>; + regulator-max-microvolt =3D <1272000>; + regulator-initial-mode =3D ; + }; + + vreg_l3b: ldo3 { + regulator-name =3D "vreg_l3b"; + regulator-min-microvolt =3D <1200000>; + regulator-max-microvolt =3D <1200000>; + regulator-initial-mode =3D ; + regulator-allow-set-load; + regulator-boot-on; + }; + + vreg_l4b: ldo4 { + regulator-name =3D "vreg_l4b"; + regulator-min-microvolt =3D <912000>; + regulator-max-microvolt =3D <912000>; + regulator-initial-mode =3D ; + regulator-allow-set-load; + }; + + vreg_l6b: ldo6 { + regulator-name =3D "vreg_l6b"; + regulator-min-microvolt =3D <880000>; + regulator-max-microvolt =3D <880000>; + regulator-initial-mode =3D ; + regulator-allow-set-load; + regulator-boot-on; + regulator-always-on; // FIXME: VDD_A_EDP_0_0P9 + }; + }; + + pmc8280c-rpmh-regulators { + compatible =3D "qcom,pm8350c-rpmh-regulators"; + qcom,pmic-id =3D "c"; + + vreg_l1c: ldo1 { + regulator-name =3D "vreg_l1c"; + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + regulator-initial-mode =3D ; + regulator-allow-set-load; + }; + + vreg_l12c: ldo12 { + regulator-name =3D "vreg_l12c"; + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + regulator-initial-mode =3D ; + regulator-allow-set-load; + }; + + vreg_l13c: ldo13 { + regulator-name =3D "vreg_l13c"; + regulator-min-microvolt =3D <3072000>; + regulator-max-microvolt =3D <3072000>; + regulator-initial-mode =3D ; + regulator-allow-set-load; + }; + }; + + pmc8280-2-rpmh-regulators { + compatible =3D "qcom,pm8350-rpmh-regulators"; + qcom,pmic-id =3D "d"; + + vdd-l1-l4-supply =3D <&vreg_s11b>; + + vreg_l3d: ldo3 { + regulator-name =3D "vreg_l3d"; + regulator-min-microvolt =3D <1200000>; + regulator-max-microvolt =3D <1200000>; + regulator-initial-mode =3D ; + regulator-allow-set-load; + }; + + vreg_l4d: ldo4 { + regulator-name =3D "vreg_l4d"; + regulator-min-microvolt =3D <1200000>; + regulator-max-microvolt =3D <1200000>; + regulator-initial-mode =3D ; + regulator-allow-set-load; + }; + + vreg_l7d: ldo7 { + regulator-name =3D "vreg_l7d"; + regulator-min-microvolt =3D <3072000>; + regulator-max-microvolt =3D <3072000>; + regulator-initial-mode =3D ; + regulator-allow-set-load; + }; + + vreg_l9d: ldo9 { + regulator-name =3D "vreg_l9d"; + regulator-min-microvolt =3D <912000>; + regulator-max-microvolt =3D <912000>; + regulator-initial-mode =3D ; + regulator-allow-set-load; + }; + }; +}; + +&pmc8280c_lpg { + status =3D "okay"; +}; + +&pmk8280_pon_pwrkey { + status =3D "okay"; +}; + +&qup0 { + status =3D "okay"; +}; + +&qup0_i2c4 { + clock-frequency =3D <400000>; + + pinctrl-names =3D "default"; + pinctrl-0 =3D <&qup0_i2c4_default>, <&ts0_default>; + + status =3D "okay"; + + /* FIXME: verify, missing on some x13s */ + touchscreen@10 { + compatible =3D "hid-over-i2c"; + reg =3D <0x10>; + hid-descr-addr =3D <0x1>; + interrupts-extended =3D <&tlmm 175 IRQ_TYPE_LEVEL_LOW>; + vdd-supply =3D <&vreg_misc_3p3>; + }; +}; + +&qup1 { + status =3D "okay"; +}; + +&qup2 { + status =3D "okay"; +}; + +&qup2_i2c5 { + clock-frequency =3D <400000>; + + pinctrl-names =3D "default"; + pinctrl-0 =3D <&qup2_i2c5_default>, <&kybd_default>, <&tpad_default>; + + status =3D "okay"; + + touchpad@2c { + compatible =3D "hid-over-i2c"; + reg =3D <0x2c>; + hid-descr-addr =3D <0x20>; + interrupts-extended =3D <&tlmm 182 IRQ_TYPE_LEVEL_LOW>; + vdd-supply =3D <&vreg_misc_3p3>; + }; + + keyboard@68 { + compatible =3D "hid-over-i2c"; + reg =3D <0x68>; + hid-descr-addr =3D <0x1>; + interrupts-extended =3D <&tlmm 104 IRQ_TYPE_LEVEL_LOW>; + vdd-supply =3D <&vreg_misc_3p3>; + }; +}; + +&remoteproc_adsp { + firmware-name =3D "qcom/sc8280xp/qcadsp8280.mbn"; + + status =3D "okay"; +}; + +&remoteproc_nsp0 { + firmware-name =3D "qcom/sc8280xp/qccdsp8280.mbn"; + + status =3D "okay"; +}; + +&usb_0 { + status =3D "okay"; +}; + +&usb_0_dwc3 { + /* TODO: Define USB-C connector properly */ + dr_mode =3D "host"; +}; + +&usb_0_hsphy { + vdda-pll-supply =3D <&vreg_l9d>; + vdda18-supply =3D <&vreg_l1c>; + vdda33-supply =3D <&vreg_l7d>; + + status =3D "okay"; +}; + +&usb_0_qmpphy { + vdda-phy-supply =3D <&vreg_l9d>; + vdda-pll-supply =3D <&vreg_l4d>; + + status =3D "okay"; +}; + +&usb_1 { + status =3D "okay"; +}; + +&usb_1_dwc3 { + /* TODO: Define USB-C connector properly */ + dr_mode =3D "host"; +}; + +&usb_1_hsphy { + vdda-pll-supply =3D <&vreg_l4b>; + vdda18-supply =3D <&vreg_l1c>; + vdda33-supply =3D <&vreg_l13c>; + + status =3D "okay"; +}; + +&usb_1_qmpphy { + vdda-phy-supply =3D <&vreg_l4b>; + vdda-pll-supply =3D <&vreg_l3b>; + + status =3D "okay"; +}; + +&xo_board_clk { + clock-frequency =3D <38400000>; +}; + +/* PINCTRL - additions to nodes defined in sc8280xp.dtsi */ + +&pmc8280_1_gpios { + edp_bl_en: edp-bl-en-state { + pins =3D "gpio8"; + function =3D "normal"; + }; + + edp_bl_reg_en: edp-bl-reg-en-state { + pins =3D "gpio9"; + function =3D "normal"; + }; + + misc_3p3_reg_en: misc-3p3-reg-en-state { + pins =3D "gpio1"; + function =3D "normal"; + }; +}; + +&pmc8280c_gpios { + edp_bl_pwm: edp-bl-pwm-state { + pins =3D "gpio8"; + function =3D "func1"; + }; +}; + +&tlmm { + gpio-reserved-ranges =3D <70 2>, <74 6>, <83 4>, <125 2>, <128 2>, <154 7= >; + + kybd_default: kybd-default-state { + disable { + pins =3D "gpio102"; + function =3D "gpio"; + output-low; + }; + + int-n { + pins =3D "gpio104"; + function =3D "gpio"; + bias-disable; + }; + + reset { + pins =3D "gpio105"; + function =3D "gpio"; + bias-disable; + }; + }; + + qup0_i2c4_default: qup0-i2c4-default-state { + pins =3D "gpio171", "gpio172"; + function =3D "qup4"; + + bias-disable; + drive-strength =3D <16>; + }; + + qup2_i2c5_default: qup2-i2c5-default-state { + pins =3D "gpio81", "gpio82"; + function =3D "qup21"; + + bias-disable; + drive-strength =3D <16>; + }; + + tpad_default: tpad-default-state { + int-n { + pins =3D "gpio182"; + function =3D "gpio"; + bias-disable; + }; + }; + + ts0_default: ts0-default-state { + int-n { + pins =3D "gpio175"; + function =3D "gpio"; + bias-pull-up; + }; + + reset-n { + pins =3D "gpio99"; + function =3D "gpio"; + output-high; + drive-strength =3D <16>; + }; + }; +}; --=20 2.35.1