Message ID | 20230130-topic-sm8450-upstream-pmic-glink-v2-8-71fea256474f@linaro.org |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1003227wrn; Fri, 10 Feb 2023 07:05:56 -0800 (PST) X-Google-Smtp-Source: AK7set+SEOrZg2g90bfPrpHAJ1Y9mQYyQrI1xw3GP2bULnf23HZKTqQ3EWcp/Yr6z1DBO7anjH7R X-Received: by 2002:a05:6a21:3386:b0:bc:3523:13c6 with SMTP id yy6-20020a056a21338600b000bc352313c6mr19815429pzb.29.1676041555861; Fri, 10 Feb 2023 07:05:55 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1676041555; cv=none; d=google.com; s=arc-20160816; b=cV+fFt0vzNBZSNKAP/0uKCYCSi8rLi/8Ve8bOp+OtC1vHj6RgeqNPzN57bJYzuWkHf rlGzBeMjl9+tWfBdZb6Ku2t12pExu/T6xBpE3MKVgUvoRWn/cHFXm23q9m/VjYP8E2mL tkqDPVuAvOKDg7sIYvJKYIYOX0Z2Iyp7ednW0MgJMJZmei0o3340H/uYng98jAfalpc8 vbC+Ta6vBDU7no5iOoh0RVmsHXswEJ0j9xsJWlTG9xPj6TtADBWdzd+RExqkjhb6n9bW jnRGu+GDB0Ctm9T8cg3meXjFRNYgngtkGvJPYGfklNlT9kLy+D4USiQL0gujIDyerFWY HFYQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:from :dkim-signature; bh=uvwO1p90Dx+jLmKc6nBk99sTCQ2dp6oywQPc85KLqO4=; b=h0qR6NqtQhzL69QiWBMFhDG9EKGlg3wAgKWmwByAS8N2rbXNuRcHz7tkoRwCm4C4PO FRo5ef4HZEL5IIYeYPs7eyn73TdwGZAb98DqwSvPLP498gnWWo7hq1hzdTmYKjRNGdWJ KAkdsxAYSsjSTQqyjWVqpiW1E5Itn/u0YdNLFJhgYhV0zbvpda6hI+DYyycHLYtavUXY p8WXwYFyIT/wH5er3rfCjjPf3ebt5VlRXz4uAK6ZBXKq351MriJZQn6vnnzfjJWeMBXV tn/EEJ/GPURex4SCmcfKeYdg4EaJxxY1FEz5jGV1RfxPWAu5XMnxI2xvM6zr6xgIjcld chOA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=XR32bXtI; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id a126-20020a624d84000000b005865f3befe1si4669924pfb.15.2023.02.10.07.05.42; Fri, 10 Feb 2023 07:05:55 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=XR32bXtI; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231989AbjBJPCz (ORCPT <rfc822;ybw1215001957@gmail.com> + 99 others); Fri, 10 Feb 2023 10:02:55 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56442 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232498AbjBJPCa (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Fri, 10 Feb 2023 10:02:30 -0500 Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com [IPv6:2a00:1450:4864:20::330]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3C17273965 for <linux-kernel@vger.kernel.org>; Fri, 10 Feb 2023 07:02:19 -0800 (PST) Received: by mail-wm1-x330.google.com with SMTP id r18so4014290wmq.5 for <linux-kernel@vger.kernel.org>; Fri, 10 Feb 2023 07:02:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=uvwO1p90Dx+jLmKc6nBk99sTCQ2dp6oywQPc85KLqO4=; b=XR32bXtIKzszu1K2fC6Gh7ICQ1i0UJ77nRa23WzsuejYKcg5aUIfHzdMPyHE70y4ZT FhRFnvUmbXpXbrF8WJ3fb0RKEjaYyGdOjqqyLjzw/gXz1VAmdnGlC/8a6JF0mikKyNOH MY7g+kfdw0ZA3yX3Zpx1I1WZXPiVmAS4Z4tsNmvrqLaocWiIERCvaXQaZoUDJooPraxQ O5USxd2pIbV30tR3lDuhHd0msO8/vl7RdM2euEnmYIFtjp1PqotsUQQpFB571Lz9r5V7 iHMkO+3K66/rvwUu5etMlrHqcz53msvHbFYawpPEdcoo6I5ltqDg75MaSyOKkvs0FhgA 8S4g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=uvwO1p90Dx+jLmKc6nBk99sTCQ2dp6oywQPc85KLqO4=; b=I2B5j9L+5QE3Lbprl/HbxDBrMpdefChyrBbn4ccp6+cTpJ/7px5r2RY8pVEu7MG9PY lQlyzTByfg4EICjC6so9N4dFAeE8WQ3tV3QGyBmGofu4NtGBpTDKVkyfL/5g2RxCM40p YdMU/PbmdVsqMaMXDJ951La9iTMTL2L3GHpKsXdJYL31TxKfiQk3HerznThZhhIz+skg XEJTfWPDaHbEI7d1WuDHdDtRMj6GsSAs0ikrphI8v/yCNj90nb+l3z86qjWhkh7iwNhg upokdV+035QSRKsO9r6B0rVTNMYaPzYCW1fL20DuMTto2pRPSIoWGOY27snY4mjpbO4z N7FQ== X-Gm-Message-State: AO0yUKWo0cafXVRzqjf6UDNDljfhK+G5F88GEYsbIh+5nTX9+FCKkNKJ VZ52lysF4MB9Sd8O7nBEaQRKMQ== X-Received: by 2002:a05:600c:91e:b0:3dc:5362:134a with SMTP id m30-20020a05600c091e00b003dc5362134amr12593096wmp.9.1676041338380; Fri, 10 Feb 2023 07:02:18 -0800 (PST) Received: from arrakeen.starnux.net ([2a01:e0a:982:cbb0:52eb:f6ff:feb3:451a]) by smtp.gmail.com with ESMTPSA id w23-20020a1cf617000000b003db1d9553e7sm8282482wmc.32.2023.02.10.07.02.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 10 Feb 2023 07:02:17 -0800 (PST) From: Neil Armstrong <neil.armstrong@linaro.org> Date: Fri, 10 Feb 2023 16:02:11 +0100 Subject: [PATCH v2 08/11] arm64: dts: qcom: sm8350-hdk: add pmic glink node MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20230130-topic-sm8450-upstream-pmic-glink-v2-8-71fea256474f@linaro.org> References: <20230130-topic-sm8450-upstream-pmic-glink-v2-0-71fea256474f@linaro.org> In-Reply-To: <20230130-topic-sm8450-upstream-pmic-glink-v2-0-71fea256474f@linaro.org> To: Heikki Krogerus <heikki.krogerus@linux.intel.com>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Andy Gross <agross@kernel.org>, Bjorn Andersson <andersson@kernel.org>, Konrad Dybcio <konrad.dybcio@linaro.org>, Rob Herring <robh+dt@kernel.org>, Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>, Catalin Marinas <catalin.marinas@arm.com>, Will Deacon <will@kernel.org> Cc: linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Neil Armstrong <neil.armstrong@linaro.org> X-Mailer: b4 0.12.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: <linux-kernel.vger.kernel.org> X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1757456950379999037?= X-GMAIL-MSGID: =?utf-8?q?1757456950379999037?= |
Series |
soc: qcom: add UCSI function to PMIC GLINK
|
|
Commit Message
Neil Armstrong
Feb. 10, 2023, 3:02 p.m. UTC
Add the pmic glink node linked with the DWC3 USB controller
switched to OTG mode and tagged with usb-role-switch.
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
---
arch/arm64/boot/dts/qcom/sm8350-hdk.dts | 77 ++++++++++++++++++++++++++++-----
1 file changed, 65 insertions(+), 12 deletions(-)
Comments
On 10.02.2023 16:02, Neil Armstrong wrote: > Add the pmic glink node linked with the DWC3 USB controller > switched to OTG mode and tagged with usb-role-switch. > > Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org> > --- > arch/arm64/boot/dts/qcom/sm8350-hdk.dts | 77 ++++++++++++++++++++++++++++----- > 1 file changed, 65 insertions(+), 12 deletions(-) > > diff --git a/arch/arm64/boot/dts/qcom/sm8350-hdk.dts b/arch/arm64/boot/dts/qcom/sm8350-hdk.dts > index 54654eb75c28..28fc9a835c5d 100644 > --- a/arch/arm64/boot/dts/qcom/sm8350-hdk.dts > +++ b/arch/arm64/boot/dts/qcom/sm8350-hdk.dts > @@ -31,6 +31,40 @@ hdmi_con: endpoint { > }; > }; > > + pmic-glink { > + compatible = "qcom,sm8350-pmic-glink", "qcom,pmic-glink"; > + #address-cells = <1>; > + #size-cells = <0>; > + > + connector@0 { > + compatible = "usb-c-connector"; > + reg = <0>; > + power-role = "dual"; > + data-role = "dual"; > + > + ports { > + #address-cells = <1>; > + #size-cells = <0>; > + > + port@0 { > + reg = <0>; > + > + pmic_glink_hs_in: endpoint { > + remote-endpoint = <&usb_1_dwc3_hs>; > + }; > + }; > + > + port@1 { > + reg = <1>; > + > + pmic_glink_ss_in: endpoint { > + remote-endpoint = <&usb_1_dwc3_ss>; > + }; > + }; > + }; > + }; > + }; > + > vph_pwr: vph-pwr-regulator { > compatible = "regulator-fixed"; > regulator-name = "vph_pwr"; > @@ -666,23 +700,42 @@ &usb_1 { > }; > > &usb_1_dwc3 { > - /* TODO: Define USB-C connector properly */ > - dr_mode = "peripheral"; > -}; > + dr_mode = "otg"; > + usb-role-switch; > > -&usb_1_hsphy { Are you removing the hsphy completely? Konrad > - status = "okay"; > + ports { > + #address-cells = <1>; > + #size-cells = <0>; > > - vdda-pll-supply = <&vreg_l5b_0p88>; > - vdda18-supply = <&vreg_l1c_1p8>; > - vdda33-supply = <&vreg_l2b_3p07>; > + port@0 { > + reg = <0>; > + > + usb_1_dwc3_hs: endpoint { > + remote-endpoint = <&pmic_glink_hs_in>; > + }; > + }; > + > + port@1 { > + reg = <1>; > + > + usb_1_dwc3_ss: endpoint { > + remote-endpoint = <&pmic_glink_ss_in>; > + }; > + }; > + }; > }; > > -&usb_1_qmpphy { > - status = "okay"; > +&usb_1_dwc3 { > + dr_mode = "otg"; > + usb-role-switch; > +}; > > - vdda-phy-supply = <&vreg_l6b_1p2>; > - vdda-pll-supply = <&vreg_l1b_0p88>; > +&usb_1_dwc3_hs { > + remote-endpoint = <&pmic_glink_hs_in>; > +}; > + > +&usb_1_dwc3_ss { > + remote-endpoint = <&pmic_glink_ss_in>; > }; > > &usb_2 { >
On 10/02/2023 16:21, Konrad Dybcio wrote: > > > On 10.02.2023 16:02, Neil Armstrong wrote: >> Add the pmic glink node linked with the DWC3 USB controller >> switched to OTG mode and tagged with usb-role-switch. >> >> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org> >> --- >> arch/arm64/boot/dts/qcom/sm8350-hdk.dts | 77 ++++++++++++++++++++++++++++----- >> 1 file changed, 65 insertions(+), 12 deletions(-) >> >> diff --git a/arch/arm64/boot/dts/qcom/sm8350-hdk.dts b/arch/arm64/boot/dts/qcom/sm8350-hdk.dts >> index 54654eb75c28..28fc9a835c5d 100644 >> --- a/arch/arm64/boot/dts/qcom/sm8350-hdk.dts >> +++ b/arch/arm64/boot/dts/qcom/sm8350-hdk.dts >> @@ -31,6 +31,40 @@ hdmi_con: endpoint { >> }; >> }; >> >> + pmic-glink { >> + compatible = "qcom,sm8350-pmic-glink", "qcom,pmic-glink"; >> + #address-cells = <1>; >> + #size-cells = <0>; >> + >> + connector@0 { >> + compatible = "usb-c-connector"; >> + reg = <0>; >> + power-role = "dual"; >> + data-role = "dual"; >> + >> + ports { >> + #address-cells = <1>; >> + #size-cells = <0>; >> + >> + port@0 { >> + reg = <0>; >> + >> + pmic_glink_hs_in: endpoint { >> + remote-endpoint = <&usb_1_dwc3_hs>; >> + }; >> + }; >> + >> + port@1 { >> + reg = <1>; >> + >> + pmic_glink_ss_in: endpoint { >> + remote-endpoint = <&usb_1_dwc3_ss>; >> + }; >> + }; >> + }; >> + }; >> + }; >> + >> vph_pwr: vph-pwr-regulator { >> compatible = "regulator-fixed"; >> regulator-name = "vph_pwr"; >> @@ -666,23 +700,42 @@ &usb_1 { >> }; >> >> &usb_1_dwc3 { >> - /* TODO: Define USB-C connector properly */ >> - dr_mode = "peripheral"; >> -}; >> + dr_mode = "otg"; >> + usb-role-switch; >> >> -&usb_1_hsphy { > Are you removing the hsphy completely? Oops seems I did remove too much stuff... thx for noticing > > Konrad >> - status = "okay"; >> + ports { >> + #address-cells = <1>; >> + #size-cells = <0>; >> >> - vdda-pll-supply = <&vreg_l5b_0p88>; >> - vdda18-supply = <&vreg_l1c_1p8>; >> - vdda33-supply = <&vreg_l2b_3p07>; >> + port@0 { >> + reg = <0>; >> + >> + usb_1_dwc3_hs: endpoint { >> + remote-endpoint = <&pmic_glink_hs_in>; >> + }; >> + }; >> + >> + port@1 { >> + reg = <1>; >> + >> + usb_1_dwc3_ss: endpoint { >> + remote-endpoint = <&pmic_glink_ss_in>; >> + }; >> + }; >> + }; >> }; >> >> -&usb_1_qmpphy { >> - status = "okay"; >> +&usb_1_dwc3 { >> + dr_mode = "otg"; >> + usb-role-switch; >> +}; >> >> - vdda-phy-supply = <&vreg_l6b_1p2>; >> - vdda-pll-supply = <&vreg_l1b_0p88>; >> +&usb_1_dwc3_hs { >> + remote-endpoint = <&pmic_glink_hs_in>; >> +}; >> + >> +&usb_1_dwc3_ss { >> + remote-endpoint = <&pmic_glink_ss_in>; >> }; >> >> &usb_2 { >>
On 10/02/2023 17:02, Neil Armstrong wrote: > Add the pmic glink node linked with the DWC3 USB controller > switched to OTG mode and tagged with usb-role-switch. > > Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org> > --- > arch/arm64/boot/dts/qcom/sm8350-hdk.dts | 77 ++++++++++++++++++++++++++++----- > 1 file changed, 65 insertions(+), 12 deletions(-) > > diff --git a/arch/arm64/boot/dts/qcom/sm8350-hdk.dts b/arch/arm64/boot/dts/qcom/sm8350-hdk.dts > index 54654eb75c28..28fc9a835c5d 100644 > --- a/arch/arm64/boot/dts/qcom/sm8350-hdk.dts > +++ b/arch/arm64/boot/dts/qcom/sm8350-hdk.dts > @@ -31,6 +31,40 @@ hdmi_con: endpoint { > }; > }; > > + pmic-glink { > + compatible = "qcom,sm8350-pmic-glink", "qcom,pmic-glink"; > + #address-cells = <1>; > + #size-cells = <0>; > + > + connector@0 { > + compatible = "usb-c-connector"; > + reg = <0>; > + power-role = "dual"; > + data-role = "dual"; > + > + ports { > + #address-cells = <1>; > + #size-cells = <0>; > + > + port@0 { > + reg = <0>; > + > + pmic_glink_hs_in: endpoint { > + remote-endpoint = <&usb_1_dwc3_hs>; > + }; > + }; > + > + port@1 { > + reg = <1>; > + > + pmic_glink_ss_in: endpoint { > + remote-endpoint = <&usb_1_dwc3_ss>; > + }; > + }; > + }; > + }; > + }; > + > vph_pwr: vph-pwr-regulator { > compatible = "regulator-fixed"; > regulator-name = "vph_pwr"; > @@ -666,23 +700,42 @@ &usb_1 { > }; > > &usb_1_dwc3 { > - /* TODO: Define USB-C connector properly */ > - dr_mode = "peripheral"; > -}; > + dr_mode = "otg"; I could not verify UCSI / OTG on sm8350-HDK, see the GET_PDOS issue. Unless it is fixed, I suggest fixing this to "host" to get DP to work. > + usb-role-switch; > > -&usb_1_hsphy { > - status = "okay"; > + ports { > + #address-cells = <1>; > + #size-cells = <0>; > > - vdda-pll-supply = <&vreg_l5b_0p88>; > - vdda18-supply = <&vreg_l1c_1p8>; > - vdda33-supply = <&vreg_l2b_3p07>; > + port@0 { > + reg = <0>; > + > + usb_1_dwc3_hs: endpoint { > + remote-endpoint = <&pmic_glink_hs_in>; > + }; > + }; > + > + port@1 { > + reg = <1>; > + > + usb_1_dwc3_ss: endpoint { > + remote-endpoint = <&pmic_glink_ss_in>; > + }; > + }; > + }; > }; > > -&usb_1_qmpphy { > - status = "okay"; > +&usb_1_dwc3 { > + dr_mode = "otg"; > + usb-role-switch; > +}; Duplicate > > - vdda-phy-supply = <&vreg_l6b_1p2>; > - vdda-pll-supply = <&vreg_l1b_0p88>; > +&usb_1_dwc3_hs { > + remote-endpoint = <&pmic_glink_hs_in>; > +}; > + > +&usb_1_dwc3_ss { > + remote-endpoint = <&pmic_glink_ss_in>; > }; > > &usb_2 { >
On Fri, Feb 10, 2023 at 04:02:11PM +0100, Neil Armstrong wrote: > Add the pmic glink node linked with the DWC3 USB controller > switched to OTG mode and tagged with usb-role-switch. > > Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org> > --- > arch/arm64/boot/dts/qcom/sm8350-hdk.dts | 77 ++++++++++++++++++++++++++++----- > 1 file changed, 65 insertions(+), 12 deletions(-) > > diff --git a/arch/arm64/boot/dts/qcom/sm8350-hdk.dts b/arch/arm64/boot/dts/qcom/sm8350-hdk.dts > index 54654eb75c28..28fc9a835c5d 100644 > --- a/arch/arm64/boot/dts/qcom/sm8350-hdk.dts > +++ b/arch/arm64/boot/dts/qcom/sm8350-hdk.dts > @@ -31,6 +31,40 @@ hdmi_con: endpoint { > }; > }; > > + pmic-glink { > + compatible = "qcom,sm8350-pmic-glink", "qcom,pmic-glink"; > + #address-cells = <1>; > + #size-cells = <0>; > + > + connector@0 { > + compatible = "usb-c-connector"; > + reg = <0>; > + power-role = "dual"; > + data-role = "dual"; > + > + ports { > + #address-cells = <1>; > + #size-cells = <0>; > + > + port@0 { > + reg = <0>; > + > + pmic_glink_hs_in: endpoint { > + remote-endpoint = <&usb_1_dwc3_hs>; > + }; > + }; > + > + port@1 { > + reg = <1>; > + > + pmic_glink_ss_in: endpoint { > + remote-endpoint = <&usb_1_dwc3_ss>; > + }; > + }; > + }; > + }; > + }; > + > vph_pwr: vph-pwr-regulator { > compatible = "regulator-fixed"; > regulator-name = "vph_pwr"; > @@ -666,23 +700,42 @@ &usb_1 { > }; > > &usb_1_dwc3 { > - /* TODO: Define USB-C connector properly */ > - dr_mode = "peripheral"; > -}; > + dr_mode = "otg"; > + usb-role-switch; > > -&usb_1_hsphy { > - status = "okay"; > + ports { > + #address-cells = <1>; > + #size-cells = <0>; > > - vdda-pll-supply = <&vreg_l5b_0p88>; > - vdda18-supply = <&vreg_l1c_1p8>; > - vdda33-supply = <&vreg_l2b_3p07>; > + port@0 { > + reg = <0>; > + > + usb_1_dwc3_hs: endpoint { > + remote-endpoint = <&pmic_glink_hs_in>; > + }; > + }; > + > + port@1 { > + reg = <1>; > + > + usb_1_dwc3_ss: endpoint { > + remote-endpoint = <&pmic_glink_ss_in>; The connector is indeed the next active component on the SuperSpeed lanes for USB. But as you're targeting to introduce QMP on that path, connector@0/port@1 would be pointing to QMP/ports/port@N. Do you plan to express the datapath between USB and QMP using this port at that time? (It's the correct thing to do...) Or will we not describe the SS lanes in this scenario? Regards, Bjorn > + }; > + }; > + }; > }; > > -&usb_1_qmpphy { > - status = "okay"; > +&usb_1_dwc3 { > + dr_mode = "otg"; > + usb-role-switch; > +}; > > - vdda-phy-supply = <&vreg_l6b_1p2>; > - vdda-pll-supply = <&vreg_l1b_0p88>; > +&usb_1_dwc3_hs { > + remote-endpoint = <&pmic_glink_hs_in>; > +}; > + > +&usb_1_dwc3_ss { > + remote-endpoint = <&pmic_glink_ss_in>; > }; > > &usb_2 { > > -- > 2.34.1 >
On 10/02/2023 21:13, Bjorn Andersson wrote: > On Fri, Feb 10, 2023 at 04:02:11PM +0100, Neil Armstrong wrote: >> Add the pmic glink node linked with the DWC3 USB controller >> switched to OTG mode and tagged with usb-role-switch. >> >> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org> >> --- >> arch/arm64/boot/dts/qcom/sm8350-hdk.dts | 77 ++++++++++++++++++++++++++++----- >> 1 file changed, 65 insertions(+), 12 deletions(-) >> >> diff --git a/arch/arm64/boot/dts/qcom/sm8350-hdk.dts b/arch/arm64/boot/dts/qcom/sm8350-hdk.dts >> index 54654eb75c28..28fc9a835c5d 100644 >> --- a/arch/arm64/boot/dts/qcom/sm8350-hdk.dts >> +++ b/arch/arm64/boot/dts/qcom/sm8350-hdk.dts >> @@ -31,6 +31,40 @@ hdmi_con: endpoint { >> }; >> }; >> >> + pmic-glink { >> + compatible = "qcom,sm8350-pmic-glink", "qcom,pmic-glink"; >> + #address-cells = <1>; >> + #size-cells = <0>; >> + >> + connector@0 { >> + compatible = "usb-c-connector"; >> + reg = <0>; >> + power-role = "dual"; >> + data-role = "dual"; >> + >> + ports { >> + #address-cells = <1>; >> + #size-cells = <0>; >> + >> + port@0 { >> + reg = <0>; >> + >> + pmic_glink_hs_in: endpoint { >> + remote-endpoint = <&usb_1_dwc3_hs>; >> + }; >> + }; >> + >> + port@1 { >> + reg = <1>; >> + >> + pmic_glink_ss_in: endpoint { >> + remote-endpoint = <&usb_1_dwc3_ss>; >> + }; >> + }; >> + }; >> + }; >> + }; >> + >> vph_pwr: vph-pwr-regulator { >> compatible = "regulator-fixed"; >> regulator-name = "vph_pwr"; >> @@ -666,23 +700,42 @@ &usb_1 { >> }; >> >> &usb_1_dwc3 { >> - /* TODO: Define USB-C connector properly */ >> - dr_mode = "peripheral"; >> -}; >> + dr_mode = "otg"; >> + usb-role-switch; >> >> -&usb_1_hsphy { >> - status = "okay"; >> + ports { >> + #address-cells = <1>; >> + #size-cells = <0>; >> >> - vdda-pll-supply = <&vreg_l5b_0p88>; >> - vdda18-supply = <&vreg_l1c_1p8>; >> - vdda33-supply = <&vreg_l2b_3p07>; >> + port@0 { >> + reg = <0>; >> + >> + usb_1_dwc3_hs: endpoint { >> + remote-endpoint = <&pmic_glink_hs_in>; >> + }; >> + }; >> + >> + port@1 { >> + reg = <1>; >> + >> + usb_1_dwc3_ss: endpoint { >> + remote-endpoint = <&pmic_glink_ss_in>; > > The connector is indeed the next active component on the SuperSpeed > lanes for USB. But as you're targeting to introduce QMP on that path, > connector@0/port@1 would be pointing to QMP/ports/port@N. > > Do you plan to express the datapath between USB and QMP using this port > at that time? (It's the correct thing to do...) Yeah we need to figure out, because ultimately the datapath should be: connector: port0 --> usb_1_dwc3_hs port1 --> qmpphy --> usb_1_dwc3_ss port2 --> fsa4480 --> qmpphy -> dp_controller And with a retimer, it gets even more complex: connector: port0 --> usb_1_dwc3_hs port1 --> retimer --> qmpphy --> usb_1_dwc3_ss port2 --> retimer --> qmpphy -> dp_controller The solution I was using is instead of having chained port/endpoints, I use multiple endpoints like : port0 --> usb_1_dwc3_hs port1 --> ep0: usb_1_dwc3_ss ep1: qmpphy port2 --> ep0: fsa4480 ep1: dp_controller But I'm sure this is valid... but it is much simpler. Neil > > Or will we not describe the SS lanes in this scenario? > > Regards, > Bjorn > >> + }; >> + }; >> + }; >> }; >> >> -&usb_1_qmpphy { >> - status = "okay"; >> +&usb_1_dwc3 { >> + dr_mode = "otg"; >> + usb-role-switch; >> +}; >> >> - vdda-phy-supply = <&vreg_l6b_1p2>; >> - vdda-pll-supply = <&vreg_l1b_0p88>; >> +&usb_1_dwc3_hs { >> + remote-endpoint = <&pmic_glink_hs_in>; >> +}; >> + >> +&usb_1_dwc3_ss { >> + remote-endpoint = <&pmic_glink_ss_in>; >> }; >> >> &usb_2 { >> >> -- >> 2.34.1 >>
diff --git a/arch/arm64/boot/dts/qcom/sm8350-hdk.dts b/arch/arm64/boot/dts/qcom/sm8350-hdk.dts index 54654eb75c28..28fc9a835c5d 100644 --- a/arch/arm64/boot/dts/qcom/sm8350-hdk.dts +++ b/arch/arm64/boot/dts/qcom/sm8350-hdk.dts @@ -31,6 +31,40 @@ hdmi_con: endpoint { }; }; + pmic-glink { + compatible = "qcom,sm8350-pmic-glink", "qcom,pmic-glink"; + #address-cells = <1>; + #size-cells = <0>; + + connector@0 { + compatible = "usb-c-connector"; + reg = <0>; + power-role = "dual"; + data-role = "dual"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + pmic_glink_hs_in: endpoint { + remote-endpoint = <&usb_1_dwc3_hs>; + }; + }; + + port@1 { + reg = <1>; + + pmic_glink_ss_in: endpoint { + remote-endpoint = <&usb_1_dwc3_ss>; + }; + }; + }; + }; + }; + vph_pwr: vph-pwr-regulator { compatible = "regulator-fixed"; regulator-name = "vph_pwr"; @@ -666,23 +700,42 @@ &usb_1 { }; &usb_1_dwc3 { - /* TODO: Define USB-C connector properly */ - dr_mode = "peripheral"; -}; + dr_mode = "otg"; + usb-role-switch; -&usb_1_hsphy { - status = "okay"; + ports { + #address-cells = <1>; + #size-cells = <0>; - vdda-pll-supply = <&vreg_l5b_0p88>; - vdda18-supply = <&vreg_l1c_1p8>; - vdda33-supply = <&vreg_l2b_3p07>; + port@0 { + reg = <0>; + + usb_1_dwc3_hs: endpoint { + remote-endpoint = <&pmic_glink_hs_in>; + }; + }; + + port@1 { + reg = <1>; + + usb_1_dwc3_ss: endpoint { + remote-endpoint = <&pmic_glink_ss_in>; + }; + }; + }; }; -&usb_1_qmpphy { - status = "okay"; +&usb_1_dwc3 { + dr_mode = "otg"; + usb-role-switch; +}; - vdda-phy-supply = <&vreg_l6b_1p2>; - vdda-pll-supply = <&vreg_l1b_0p88>; +&usb_1_dwc3_hs { + remote-endpoint = <&pmic_glink_hs_in>; +}; + +&usb_1_dwc3_ss { + remote-endpoint = <&pmic_glink_ss_in>; }; &usb_2 {