Message ID | 20230405125759.4201-7-quic_kriskura@quicinc.com |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:6358:3d4a:b0:114:e959:cc0c with SMTP id b10csp333971rwc; Wed, 5 Apr 2023 06:21:13 -0700 (PDT) X-Google-Smtp-Source: AKy350bbRDPqSC+qvPk34TB7zW5apUPOv9fhhutGWipWQ/aUYfNfxAuDZrd4njkD3V3+Z42BhqRF X-Received: by 2002:a17:906:c443:b0:93e:6f40:d141 with SMTP id ck3-20020a170906c44300b0093e6f40d141mr2666707ejb.40.1680700872944; Wed, 05 Apr 2023 06:21:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1680700872; cv=none; d=google.com; s=arc-20160816; b=t9eJk591JHSWTSqaH0mXmPS8cDUvFi+sUAltVlSjPhCi8dT3c56S/+snoABnZDh6FC ZwgejdyUEuQGolspAiatT1TZW9xIXBcCfmmlFICSTklsaFWD8AZtiZGMPAQ0Jv/gv9CY 3uKcluovQR2hkcfl/JPlnuEIxFAguR1Ts8j24Ob+59J7sRSXtXIpi31I3bL9pqq5/VZA LzL1HTQN++3IKz9I75bykMgeOBP21n0f3cwTZ0lNPnZEkOejhhxoyeRO1eMoeUlsHUjT S8favgmy7UwJxneFZio/wqBWH3xvFjMgkU/5u6k9gqHD8SAlc4zZ1UUb/sJbp96Gcbip 7jeA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=oJ4TkUtVUwDIySQJnN9OpBmRVER1M54HOBRcs4DK+9o=; b=RmoNamoT7X59ovjkrQGV2ZYsuNQmwvzrm6vp/BkRustkTi0xSlEySBPrBvUKWm0qiG idN6g2Df7x9AfK36/PyvTzxsnEqoxcMqZ+XY/QZMHeFVDSoXkd0LsJdcHBYl2EyLyaAq v7t/H+cYMZfj7TCtx9P+95QJeIMVVWQKbiVza8p1vODOB57ygoNk7rtocccB3MR4ATu/ s4pdxV2FUe50l5wxfy36BI0edZry9h7LCwyLFF+zGdbYvTmQow265u+xsw4WUoY4FvLS iIygWbTc+5oGx3aNayMihVSkaohlAWDP9FgXUaFiZicIr1qqN92edxegFzAY3WtbCjyX sbWg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=hINNOIvO; 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=quicinc.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id j9-20020a170906254900b009311151f1c3si3671396ejb.426.2023.04.05.06.20.48; Wed, 05 Apr 2023 06:21:12 -0700 (PDT) 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=@quicinc.com header.s=qcppdkim1 header.b=hINNOIvO; 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=quicinc.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238171AbjDENA2 (ORCPT <rfc822;lkml4gm@gmail.com> + 99 others); Wed, 5 Apr 2023 09:00:28 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40728 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238144AbjDENAW (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Wed, 5 Apr 2023 09:00:22 -0400 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 123C15FFB; Wed, 5 Apr 2023 05:59:59 -0700 (PDT) Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 335BQ67u015386; Wed, 5 Apr 2023 12:59:25 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-transfer-encoding : content-type; s=qcppdkim1; bh=oJ4TkUtVUwDIySQJnN9OpBmRVER1M54HOBRcs4DK+9o=; b=hINNOIvO6ZiJ4JdPy2iRr6l0juz2OfeKijdA/UWYkGvC8gI7ZyFhQ6QVpZFtRXHw2ONL SyqBIOzbqwR5cc+WtkdWzbEAOgNi2UeFOjngsXMU5m1wj7Usap/DHmjUFtt+1A1lbZNM fmfh3WxLmdVY/N8B2gauM44vTZT/LGwBw1o5GS1Lw6DasO1wrUslHMfCcJgfXN+mgZGY Of+6Fns3ELhGOoNhn2rDtcFmlWLnGHUMXwU/7dqzU9qpp/QUhBOauL7te/zBssBF2WxD GWEQ1CFx5JHn2aUQrrSOH5I5SbY+EfxPRN1mxkoFkz8lpgp5VzZVTvTaCPraQXLH0t1Q lg== Received: from nalasppmta02.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3prwc79gnr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 05 Apr 2023 12:59:25 +0000 Received: from nalasex01a.na.qualcomm.com (nalasex01a.na.qualcomm.com [10.47.209.196]) by NALASPPMTA02.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 335Cx5Ib010543 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 5 Apr 2023 12:59:05 GMT Received: from hu-kriskura-hyd.qualcomm.com (10.80.80.8) by nalasex01a.na.qualcomm.com (10.47.209.196) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.42; Wed, 5 Apr 2023 05:58:59 -0700 From: Krishna Kurapati <quic_kriskura@quicinc.com> To: Thinh Nguyen <Thinh.Nguyen@synopsys.com>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Philipp Zabel <p.zabel@pengutronix.de>, "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> CC: <linux-usb@vger.kernel.org>, <linux-kernel@vger.kernel.org>, <linux-arm-msm@vger.kernel.org>, <devicetree@vger.kernel.org>, <quic_pkondeti@quicinc.com>, <quic_ppratap@quicinc.com>, <quic_wcheng@quicinc.com>, <quic_jackp@quicinc.com>, <quic_harshq@quicinc.com>, <ahalaney@redhat.com>, <quic_shazhuss@quicinc.com>, Krishna Kurapati <quic_kriskura@quicinc.com> Subject: [PATCH v6 6/8] arm64: dts: qcom: sc8280xp: Add multiport controller node for SC8280 Date: Wed, 5 Apr 2023 18:27:57 +0530 Message-ID: <20230405125759.4201-7-quic_kriskura@quicinc.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230405125759.4201-1-quic_kriskura@quicinc.com> References: <20230405125759.4201-1-quic_kriskura@quicinc.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [10.80.80.8] X-ClientProxiedBy: nasanex01b.na.qualcomm.com (10.46.141.250) To nalasex01a.na.qualcomm.com (10.47.209.196) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-GUID: riqha0QrZPTr24Ms2kcRzkI6s-H2xewm X-Proofpoint-ORIG-GUID: riqha0QrZPTr24Ms2kcRzkI6s-H2xewm X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.942,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-04-05_08,2023-04-05_01,2023-02-09_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 suspectscore=0 malwarescore=0 phishscore=0 priorityscore=1501 bulkscore=0 mlxlogscore=999 adultscore=0 lowpriorityscore=0 mlxscore=0 spamscore=0 impostorscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2303200000 definitions=main-2304050118 X-Spam-Status: No, score=-0.9 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW,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?1762342598355794159?= X-GMAIL-MSGID: =?utf-8?q?1762342598355794159?= |
Series |
Add multiport support for DWC3 controllers
|
|
Commit Message
Krishna Kurapati
April 5, 2023, 12:57 p.m. UTC
Add USB and DWC3 node for tertiary port of SC8280 along with multiport
IRQ's and phy's. This will be used as a base for SA8295P and SA8295-Ride
platforms.
Signed-off-by: Krishna Kurapati <quic_kriskura@quicinc.com>
---
Link to v5: https://lore.kernel.org/all/20230310163420.7582-7-quic_kriskura@quicinc.com/
arch/arm64/boot/dts/qcom/sc8280xp.dtsi | 58 ++++++++++++++++++++++++++
1 file changed, 58 insertions(+)
Comments
On Wed, Apr 05, 2023 at 06:27:57PM +0530, Krishna Kurapati wrote: > Add USB and DWC3 node for tertiary port of SC8280 along with multiport > IRQ's and phy's. This will be used as a base for SA8295P and SA8295-Ride > platforms. > > Signed-off-by: Krishna Kurapati <quic_kriskura@quicinc.com> > --- > Link to v5: https://lore.kernel.org/all/20230310163420.7582-7-quic_kriskura@quicinc.com/ > > arch/arm64/boot/dts/qcom/sc8280xp.dtsi | 58 ++++++++++++++++++++++++++ > 1 file changed, 58 insertions(+) > > diff --git a/arch/arm64/boot/dts/qcom/sc8280xp.dtsi b/arch/arm64/boot/dts/qcom/sc8280xp.dtsi > index 42bfa9fa5b96..7b81f2b0449d 100644 > --- a/arch/arm64/boot/dts/qcom/sc8280xp.dtsi > +++ b/arch/arm64/boot/dts/qcom/sc8280xp.dtsi > @@ -3108,6 +3108,64 @@ usb_1_role_switch: endpoint { > }; > }; > > + usb_2: usb@a4f8800 { > + compatible = "qcom,sc8280xp-dwc3", "qcom,dwc3"; > + reg = <0 0x0a4f8800 0 0x400>; > + #address-cells = <2>; > + #size-cells = <2>; > + ranges; > + > + clocks = <&gcc GCC_CFG_NOC_USB3_MP_AXI_CLK>, > + <&gcc GCC_USB30_MP_MASTER_CLK>, > + <&gcc GCC_AGGRE_USB3_MP_AXI_CLK>, > + <&gcc GCC_USB30_MP_SLEEP_CLK>, > + <&gcc GCC_USB30_MP_MOCK_UTMI_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 = "cfg_noc", "core", "iface", "sleep", "mock_utmi", > + "noc_aggr", "noc_aggr_north", "noc_aggr_south", "noc_sys"; > + > + assigned-clocks = <&gcc GCC_USB30_MP_MOCK_UTMI_CLK>, > + <&gcc GCC_USB30_MP_MASTER_CLK>; > + assigned-clock-rates = <19200000>, <200000000>; > + > + interrupts-extended = <&pdc 127 IRQ_TYPE_EDGE_RISING>, > + <&pdc 126 IRQ_TYPE_EDGE_RISING>, > + <&pdc 16 IRQ_TYPE_LEVEL_HIGH>; > + > + interrupt-names = "dp_hs_phy_irq", "dm_hs_phy_irq", > + "ss_phy_irq"; > + This is breaking the current schema (with the full series applied), I am not sure if a pwr_event IRQ exists or but it maybe necessary to modify qcom,dwc3.yaml in order to explain hardware if it doesn't exist: (dtschema) ahalaney@halaney-x13s ~/git/linux-next (git)-[718f2024524f] % make CHECK_DTBS=y DT_SCHEMA_FILES=/usb/qcom,dwc3.yaml qcom/sa8540p-ride.dtb :( LINT Documentation/devicetree/bindings CHKDT Documentation/devicetree/bindings/processed-schema.json SCHEMA Documentation/devicetree/bindings/processed-schema.json DTC_CHK arch/arm64/boot/dts/qcom/sa8540p-ride.dtb /home/ahalaney/git/linux-next/arch/arm64/boot/dts/qcom/sa8540p-ride.dtb: usb@a4f8800: interrupt-names:0: 'pwr_event' was expected From schema: /home/ahalaney/git/linux-next/Documentation/devicetree/bindings/usb/qcom,dwc3.yaml /home/ahalaney/git/linux-next/arch/arm64/boot/dts/qcom/sa8540p-ride.dtb: usb@a4f8800: interrupt-names:1: 'dp_hs_phy_irq' was expected From schema: /home/ahalaney/git/linux-next/Documentation/devicetree/bindings/usb/qcom,dwc3.yaml /home/ahalaney/git/linux-next/arch/arm64/boot/dts/qcom/sa8540p-ride.dtb: usb@a4f8800: interrupt-names:2: 'dm_hs_phy_irq' was expected From schema: /home/ahalaney/git/linux-next/Documentation/devicetree/bindings/usb/qcom,dwc3.yaml /home/ahalaney/git/linux-next/arch/arm64/boot/dts/qcom/sa8540p-ride.dtb: usb@a4f8800: interrupt-names: ['dp_hs_phy_irq', 'dm_hs_phy_irq', 'ss_phy_irq'] is too short From schema: /home/ahalaney/git/linux-next/Documentation/devicetree/bindings/usb/qcom,dwc3.yaml /home/ahalaney/git/linux-next/arch/arm64/boot/dts/qcom/sa8540p-ride.dtb: usb@a4f8800: interrupts-extended: [[99, 127, 1], [99, 126, 1], [99, 16, 4]] is too short From schema: /home/ahalaney/git/linux-next/Documentation/devicetree/bindings/usb/qcom,dwc3.yaml make CHECK_DTBS=y DT_SCHEMA_FILES=/usb/qcom,dwc3.yaml qcom/sa8540p-ride.dtb 22.61s user 0.54s system 99% cpu 23.172 total (dtschema) ahalaney@halaney-x13s ~/git/linux-next (git)-[718f2024524f] % Thanks, Andrew
On 4/14/2023 9:15 PM, Andrew Halaney wrote: > On Wed, Apr 05, 2023 at 06:27:57PM +0530, Krishna Kurapati wrote: >> Add USB and DWC3 node for tertiary port of SC8280 along with multiport >> IRQ's and phy's. This will be used as a base for SA8295P and SA8295-Ride >> platforms. >> >> Signed-off-by: Krishna Kurapati <quic_kriskura@quicinc.com> >> --- >> Link to v5: https://lore.kernel.org/all/20230310163420.7582-7-quic_kriskura@quicinc.com/ >> >> arch/arm64/boot/dts/qcom/sc8280xp.dtsi | 58 ++++++++++++++++++++++++++ >> 1 file changed, 58 insertions(+) >> >> diff --git a/arch/arm64/boot/dts/qcom/sc8280xp.dtsi b/arch/arm64/boot/dts/qcom/sc8280xp.dtsi >> index 42bfa9fa5b96..7b81f2b0449d 100644 >> --- a/arch/arm64/boot/dts/qcom/sc8280xp.dtsi >> +++ b/arch/arm64/boot/dts/qcom/sc8280xp.dtsi >> @@ -3108,6 +3108,64 @@ usb_1_role_switch: endpoint { >> }; >> }; >> >> + usb_2: usb@a4f8800 { >> + compatible = "qcom,sc8280xp-dwc3", "qcom,dwc3"; >> + reg = <0 0x0a4f8800 0 0x400>; >> + #address-cells = <2>; >> + #size-cells = <2>; >> + ranges; >> + >> + clocks = <&gcc GCC_CFG_NOC_USB3_MP_AXI_CLK>, >> + <&gcc GCC_USB30_MP_MASTER_CLK>, >> + <&gcc GCC_AGGRE_USB3_MP_AXI_CLK>, >> + <&gcc GCC_USB30_MP_SLEEP_CLK>, >> + <&gcc GCC_USB30_MP_MOCK_UTMI_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 = "cfg_noc", "core", "iface", "sleep", "mock_utmi", >> + "noc_aggr", "noc_aggr_north", "noc_aggr_south", "noc_sys"; >> + >> + assigned-clocks = <&gcc GCC_USB30_MP_MOCK_UTMI_CLK>, >> + <&gcc GCC_USB30_MP_MASTER_CLK>; >> + assigned-clock-rates = <19200000>, <200000000>; >> + >> + interrupts-extended = <&pdc 127 IRQ_TYPE_EDGE_RISING>, >> + <&pdc 126 IRQ_TYPE_EDGE_RISING>, >> + <&pdc 16 IRQ_TYPE_LEVEL_HIGH>; >> + >> + interrupt-names = "dp_hs_phy_irq", "dm_hs_phy_irq", >> + "ss_phy_irq"; >> + > > This is breaking the current schema (with the full series applied), > I am not sure if a pwr_event IRQ exists or but it maybe necessary to > modify qcom,dwc3.yaml in order to explain hardware if it doesn't exist: > > (dtschema) ahalaney@halaney-x13s ~/git/linux-next (git)-[718f2024524f] % make CHECK_DTBS=y DT_SCHEMA_FILES=/usb/qcom,dwc3.yaml qcom/sa8540p-ride.dtb :( > LINT Documentation/devicetree/bindings > CHKDT Documentation/devicetree/bindings/processed-schema.json > SCHEMA Documentation/devicetree/bindings/processed-schema.json > DTC_CHK arch/arm64/boot/dts/qcom/sa8540p-ride.dtb > /home/ahalaney/git/linux-next/arch/arm64/boot/dts/qcom/sa8540p-ride.dtb: usb@a4f8800: interrupt-names:0: 'pwr_event' was expected > From schema: /home/ahalaney/git/linux-next/Documentation/devicetree/bindings/usb/qcom,dwc3.yaml > /home/ahalaney/git/linux-next/arch/arm64/boot/dts/qcom/sa8540p-ride.dtb: usb@a4f8800: interrupt-names:1: 'dp_hs_phy_irq' was expected > From schema: /home/ahalaney/git/linux-next/Documentation/devicetree/bindings/usb/qcom,dwc3.yaml > /home/ahalaney/git/linux-next/arch/arm64/boot/dts/qcom/sa8540p-ride.dtb: usb@a4f8800: interrupt-names:2: 'dm_hs_phy_irq' was expected > From schema: /home/ahalaney/git/linux-next/Documentation/devicetree/bindings/usb/qcom,dwc3.yaml > /home/ahalaney/git/linux-next/arch/arm64/boot/dts/qcom/sa8540p-ride.dtb: usb@a4f8800: interrupt-names: ['dp_hs_phy_irq', 'dm_hs_phy_irq', 'ss_phy_irq'] is too short > From schema: /home/ahalaney/git/linux-next/Documentation/devicetree/bindings/usb/qcom,dwc3.yaml > /home/ahalaney/git/linux-next/arch/arm64/boot/dts/qcom/sa8540p-ride.dtb: usb@a4f8800: interrupts-extended: [[99, 127, 1], [99, 126, 1], [99, 16, 4]] is too short > From schema: /home/ahalaney/git/linux-next/Documentation/devicetree/bindings/usb/qcom,dwc3.yaml > make CHECK_DTBS=y DT_SCHEMA_FILES=/usb/qcom,dwc3.yaml qcom/sa8540p-ride.dtb 22.61s user 0.54s system 99% cpu 23.172 total > (dtschema) ahalaney@halaney-x13s ~/git/linux-next (git)-[718f2024524f] % > > Thanks, > Andrew > Hi Andrew, Thanks for pointing it out. Let me check and get back on the pwr_event_irq. Probably I might have missed it 😅. If so, will make sure to add it in next version. Regards, Krishna,
On 4/16/2023 12:34 AM, Krishna Kurapati PSSNV wrote: > > > On 4/14/2023 9:15 PM, Andrew Halaney wrote: >> On Wed, Apr 05, 2023 at 06:27:57PM +0530, Krishna Kurapati wrote: >>> Add USB and DWC3 node for tertiary port of SC8280 along with multiport >>> IRQ's and phy's. This will be used as a base for SA8295P and SA8295-Ride >>> platforms. >>> >>> Signed-off-by: Krishna Kurapati <quic_kriskura@quicinc.com> >>> --- >>> Link to v5: >>> https://lore.kernel.org/all/20230310163420.7582-7-quic_kriskura@quicinc.com/ >>> >>> arch/arm64/boot/dts/qcom/sc8280xp.dtsi | 58 ++++++++++++++++++++++++++ >>> 1 file changed, 58 insertions(+) >>> >>> diff --git a/arch/arm64/boot/dts/qcom/sc8280xp.dtsi >>> b/arch/arm64/boot/dts/qcom/sc8280xp.dtsi >>> index 42bfa9fa5b96..7b81f2b0449d 100644 >>> --- a/arch/arm64/boot/dts/qcom/sc8280xp.dtsi >>> +++ b/arch/arm64/boot/dts/qcom/sc8280xp.dtsi >>> @@ -3108,6 +3108,64 @@ usb_1_role_switch: endpoint { >>> }; >>> }; >>> + usb_2: usb@a4f8800 { >>> + compatible = "qcom,sc8280xp-dwc3", "qcom,dwc3"; >>> + reg = <0 0x0a4f8800 0 0x400>; >>> + #address-cells = <2>; >>> + #size-cells = <2>; >>> + ranges; >>> + >>> + clocks = <&gcc GCC_CFG_NOC_USB3_MP_AXI_CLK>, >>> + <&gcc GCC_USB30_MP_MASTER_CLK>, >>> + <&gcc GCC_AGGRE_USB3_MP_AXI_CLK>, >>> + <&gcc GCC_USB30_MP_SLEEP_CLK>, >>> + <&gcc GCC_USB30_MP_MOCK_UTMI_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 = "cfg_noc", "core", "iface", "sleep", >>> "mock_utmi", >>> + "noc_aggr", "noc_aggr_north", >>> "noc_aggr_south", "noc_sys"; >>> + >>> + assigned-clocks = <&gcc GCC_USB30_MP_MOCK_UTMI_CLK>, >>> + <&gcc GCC_USB30_MP_MASTER_CLK>; >>> + assigned-clock-rates = <19200000>, <200000000>; >>> + >>> + interrupts-extended = <&pdc 127 IRQ_TYPE_EDGE_RISING>, >>> + <&pdc 126 IRQ_TYPE_EDGE_RISING>, >>> + <&pdc 16 IRQ_TYPE_LEVEL_HIGH>; >>> + >>> + interrupt-names = "dp_hs_phy_irq", "dm_hs_phy_irq", >>> + "ss_phy_irq"; >>> + >> >> This is breaking the current schema (with the full series applied), >> I am not sure if a pwr_event IRQ exists or but it maybe necessary to >> modify qcom,dwc3.yaml in order to explain hardware if it doesn't exist: >> >> (dtschema) ahalaney@halaney-x13s ~/git/linux-next (git)-[718f2024524f] >> % make CHECK_DTBS=y DT_SCHEMA_FILES=/usb/qcom,dwc3.yaml >> qcom/sa8540p-ride.dtb :( >> LINT Documentation/devicetree/bindings >> CHKDT Documentation/devicetree/bindings/processed-schema.json >> SCHEMA Documentation/devicetree/bindings/processed-schema.json >> DTC_CHK arch/arm64/boot/dts/qcom/sa8540p-ride.dtb >> /home/ahalaney/git/linux-next/arch/arm64/boot/dts/qcom/sa8540p-ride.dtb: usb@a4f8800: interrupt-names:0: 'pwr_event' was expected >> From schema: >> /home/ahalaney/git/linux-next/Documentation/devicetree/bindings/usb/qcom,dwc3.yaml >> /home/ahalaney/git/linux-next/arch/arm64/boot/dts/qcom/sa8540p-ride.dtb: usb@a4f8800: interrupt-names:1: 'dp_hs_phy_irq' was expected >> From schema: >> /home/ahalaney/git/linux-next/Documentation/devicetree/bindings/usb/qcom,dwc3.yaml >> /home/ahalaney/git/linux-next/arch/arm64/boot/dts/qcom/sa8540p-ride.dtb: usb@a4f8800: interrupt-names:2: 'dm_hs_phy_irq' was expected >> From schema: >> /home/ahalaney/git/linux-next/Documentation/devicetree/bindings/usb/qcom,dwc3.yaml >> /home/ahalaney/git/linux-next/arch/arm64/boot/dts/qcom/sa8540p-ride.dtb: usb@a4f8800: interrupt-names: ['dp_hs_phy_irq', 'dm_hs_phy_irq', 'ss_phy_irq'] is too short >> From schema: >> /home/ahalaney/git/linux-next/Documentation/devicetree/bindings/usb/qcom,dwc3.yaml >> /home/ahalaney/git/linux-next/arch/arm64/boot/dts/qcom/sa8540p-ride.dtb: usb@a4f8800: interrupts-extended: [[99, 127, 1], [99, 126, 1], [99, 16, 4]] is too short >> From schema: >> /home/ahalaney/git/linux-next/Documentation/devicetree/bindings/usb/qcom,dwc3.yaml >> make CHECK_DTBS=y DT_SCHEMA_FILES=/usb/qcom,dwc3.yaml >> qcom/sa8540p-ride.dtb 22.61s user 0.54s system 99% cpu 23.172 total >> (dtschema) ahalaney@halaney-x13s ~/git/linux-next (git)-[718f2024524f] % >> >> Thanks, >> Andrew >> > > Hi Andrew, > > Thanks for pointing it out. Let me check and get back on the > pwr_event_irq. > > Probably I might have missed it 😅. If so, will make sure to add it in > next version. > > Regards, > Krishna, Hi Andrew, Johan, I was looking at the pwr_event_irq interrupts for Multiport controller and see that there are two of them as per HW specs. All targets till date have only 1 pwr_event_irq required. The reason I thought I missed pwr_event_irq in my patches is because in downstream this is a required IRQ for all targets, so I was under assumption that we need it for upstream targets as well. But upstream qcom driver doesn't have support for this IRQ yet. And this has been made a required one only for SC8280 [1]/[2]. Probably we can proceed in one of the following ways: 1. Remove pwr_event_irq in both bindings and DT as driver support is not present currently. 2. Update the bindings for SC8280 to include an optional secondary pwr_event_irq for multiport controller. I would prefer option-1 as removing them would be better because they are not being used. Please let me know your thoughts on this. [1]: https://lore.kernel.org/all/20220713131340.29401-2-johan+linaro@kernel.org/ [2]: https://lore.kernel.org/all/20220713131340.29401-6-johan+linaro@kernel.org/ Regards, Krishna,
On Sat, Apr 22, 2023 at 09:38:44PM +0530, Krishna Kurapati PSSNV wrote: > > > On 4/16/2023 12:34 AM, Krishna Kurapati PSSNV wrote: > > > > > > On 4/14/2023 9:15 PM, Andrew Halaney wrote: > > > On Wed, Apr 05, 2023 at 06:27:57PM +0530, Krishna Kurapati wrote: > > > > Add USB and DWC3 node for tertiary port of SC8280 along with multiport > > > > IRQ's and phy's. This will be used as a base for SA8295P and SA8295-Ride > > > > platforms. > > > > > > > > Signed-off-by: Krishna Kurapati <quic_kriskura@quicinc.com> > > > > --- > > > > Link to v5: https://lore.kernel.org/all/20230310163420.7582-7-quic_kriskura@quicinc.com/ > > > > > > > > arch/arm64/boot/dts/qcom/sc8280xp.dtsi | 58 ++++++++++++++++++++++++++ > > > > 1 file changed, 58 insertions(+) > > > > > > > > diff --git a/arch/arm64/boot/dts/qcom/sc8280xp.dtsi > > > > b/arch/arm64/boot/dts/qcom/sc8280xp.dtsi > > > > index 42bfa9fa5b96..7b81f2b0449d 100644 > > > > --- a/arch/arm64/boot/dts/qcom/sc8280xp.dtsi > > > > +++ b/arch/arm64/boot/dts/qcom/sc8280xp.dtsi > > > > @@ -3108,6 +3108,64 @@ usb_1_role_switch: endpoint { > > > > }; > > > > }; > > > > + usb_2: usb@a4f8800 { > > > > + compatible = "qcom,sc8280xp-dwc3", "qcom,dwc3"; > > > > + reg = <0 0x0a4f8800 0 0x400>; > > > > + #address-cells = <2>; > > > > + #size-cells = <2>; > > > > + ranges; > > > > + > > > > + clocks = <&gcc GCC_CFG_NOC_USB3_MP_AXI_CLK>, > > > > + <&gcc GCC_USB30_MP_MASTER_CLK>, > > > > + <&gcc GCC_AGGRE_USB3_MP_AXI_CLK>, > > > > + <&gcc GCC_USB30_MP_SLEEP_CLK>, > > > > + <&gcc GCC_USB30_MP_MOCK_UTMI_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 = "cfg_noc", "core", "iface", "sleep", > > > > "mock_utmi", > > > > + "noc_aggr", "noc_aggr_north", > > > > "noc_aggr_south", "noc_sys"; > > > > + > > > > + assigned-clocks = <&gcc GCC_USB30_MP_MOCK_UTMI_CLK>, > > > > + <&gcc GCC_USB30_MP_MASTER_CLK>; > > > > + assigned-clock-rates = <19200000>, <200000000>; > > > > + > > > > + interrupts-extended = <&pdc 127 IRQ_TYPE_EDGE_RISING>, > > > > + <&pdc 126 IRQ_TYPE_EDGE_RISING>, > > > > + <&pdc 16 IRQ_TYPE_LEVEL_HIGH>; > > > > + > > > > + interrupt-names = "dp_hs_phy_irq", "dm_hs_phy_irq", > > > > + "ss_phy_irq"; > > > > + > > > > > > This is breaking the current schema (with the full series applied), > > > I am not sure if a pwr_event IRQ exists or but it maybe necessary to > > > modify qcom,dwc3.yaml in order to explain hardware if it doesn't exist: > > > > > > (dtschema) ahalaney@halaney-x13s ~/git/linux-next > > > (git)-[718f2024524f] % make CHECK_DTBS=y > > > DT_SCHEMA_FILES=/usb/qcom,dwc3.yaml qcom/sa8540p-ride.dtb > > > :( > > > LINT Documentation/devicetree/bindings > > > CHKDT Documentation/devicetree/bindings/processed-schema.json > > > SCHEMA Documentation/devicetree/bindings/processed-schema.json > > > DTC_CHK arch/arm64/boot/dts/qcom/sa8540p-ride.dtb > > > /home/ahalaney/git/linux-next/arch/arm64/boot/dts/qcom/sa8540p-ride.dtb: usb@a4f8800: interrupt-names:0: 'pwr_event' was expected > > > From schema: /home/ahalaney/git/linux-next/Documentation/devicetree/bindings/usb/qcom,dwc3.yaml > > > /home/ahalaney/git/linux-next/arch/arm64/boot/dts/qcom/sa8540p-ride.dtb: usb@a4f8800: interrupt-names:1: 'dp_hs_phy_irq' was expected > > > From schema: /home/ahalaney/git/linux-next/Documentation/devicetree/bindings/usb/qcom,dwc3.yaml > > > /home/ahalaney/git/linux-next/arch/arm64/boot/dts/qcom/sa8540p-ride.dtb: usb@a4f8800: interrupt-names:2: 'dm_hs_phy_irq' was expected > > > From schema: /home/ahalaney/git/linux-next/Documentation/devicetree/bindings/usb/qcom,dwc3.yaml > > > /home/ahalaney/git/linux-next/arch/arm64/boot/dts/qcom/sa8540p-ride.dtb: usb@a4f8800: interrupt-names: ['dp_hs_phy_irq', 'dm_hs_phy_irq', 'ss_phy_irq'] is too short > > > From schema: /home/ahalaney/git/linux-next/Documentation/devicetree/bindings/usb/qcom,dwc3.yaml > > > /home/ahalaney/git/linux-next/arch/arm64/boot/dts/qcom/sa8540p-ride.dtb: usb@a4f8800: interrupts-extended: [[99, 127, 1], [99, 126, 1], [99, 16, 4]] is too short > > > From schema: /home/ahalaney/git/linux-next/Documentation/devicetree/bindings/usb/qcom,dwc3.yaml > > > make CHECK_DTBS=y DT_SCHEMA_FILES=/usb/qcom,dwc3.yaml > > > qcom/sa8540p-ride.dtb 22.61s user 0.54s system 99% cpu 23.172 total > > > (dtschema) ahalaney@halaney-x13s ~/git/linux-next (git)-[718f2024524f] % > > > > > > Thanks, > > > Andrew > > > > > > > Hi Andrew, > > > > Thanks for pointing it out. Let me check and get back on the > > pwr_event_irq. > > > > Probably I might have missed it 😅. If so, will make sure to add it in > > next version. > > > > Regards, > > Krishna, > > > Hi Andrew, Johan, > > I was looking at the pwr_event_irq interrupts for Multiport controller and > see that there are two of them as per HW specs. All targets till date have > only 1 pwr_event_irq required. > > The reason I thought I missed pwr_event_irq in my patches is because in > downstream this is a required IRQ for all targets, so I was under assumption > that we need it for upstream targets as well. But upstream qcom driver > doesn't have support for this IRQ yet. And this has been made a required one > only for SC8280 [1]/[2]. > > Probably we can proceed in one of the following ways: > 1. Remove pwr_event_irq in both bindings and DT as driver support is not > present currently. > 2. Update the bindings for SC8280 to include an optional secondary > pwr_event_irq for multiport controller. > > I would prefer option-1 as removing them would be better because they are > not being used. Please let me know your thoughts on this. > > [1]: > https://lore.kernel.org/all/20220713131340.29401-2-johan+linaro@kernel.org/ > [2]: > https://lore.kernel.org/all/20220713131340.29401-6-johan+linaro@kernel.org/ > Personally, I prefer option 2 since the IRQ does exist technically (although it isn't currently used), I like it being described... it makes the dt-binding a more complete description of the hardware. I am unsure of the rules wrt dt-bindings and usage in drivers, but I always like to view it as "this is a description of the hardware", and the driver bit is just nice to have to ensure that whoever is adding the binding is actually describing things sufficiently. You could probably add a new compatible string for the multiport sc8280xp IP as well, and make the second IRQ non-optional in dt-binding evaluation? That seems more inline with reality, the regular IP has 1 pwr_event_irq, multiport on this platform has 2, they behave slightly differently and thus they deserve their own string to match on despite being on the same platform. Please note, I'm just a contributor -- I would not be surprised to find out that my view is not aligned with what maintainers here think, but that's my interpretation of things! Hope that helps, Andrew
On Tue, Apr 25, 2023 at 03:33:28PM -0500, Andrew Halaney wrote: > On Sat, Apr 22, 2023 at 09:38:44PM +0530, Krishna Kurapati PSSNV wrote: > > Hi Andrew, Johan, > > > > I was looking at the pwr_event_irq interrupts for Multiport controller and > > see that there are two of them as per HW specs. All targets till date have > > only 1 pwr_event_irq required. > > > > The reason I thought I missed pwr_event_irq in my patches is because in > > downstream this is a required IRQ for all targets, so I was under assumption > > that we need it for upstream targets as well. But upstream qcom driver > > doesn't have support for this IRQ yet. And this has been made a required one > > only for SC8280 [1]/[2]. > > > > Probably we can proceed in one of the following ways: > > 1. Remove pwr_event_irq in both bindings and DT as driver support is not > > present currently. > > 2. Update the bindings for SC8280 to include an optional secondary > > pwr_event_irq for multiport controller. > > > > I would prefer option-1 as removing them would be better because they are > > not being used. Please let me know your thoughts on this. > > > > [1]: > > https://lore.kernel.org/all/20220713131340.29401-2-johan+linaro@kernel.org/ > > [2]: > > https://lore.kernel.org/all/20220713131340.29401-6-johan+linaro@kernel.org/ > > > > Personally, I prefer option 2 since the IRQ does exist technically > (although it isn't currently used), I like it being described... it > makes the dt-binding a more complete description of the hardware. > > I am unsure of the rules wrt dt-bindings and usage in drivers, but I > always like to view it as "this is a description of the hardware", and > the driver bit is just nice to have to ensure that whoever is adding the > binding is actually describing things sufficiently. As Andrew mentioned, the binding should reflect the hardware and not what is currently supported in some version of software. It looks like you even had four of these pwr_event interrupt line judging from your last iteration of this series. Johan
diff --git a/arch/arm64/boot/dts/qcom/sc8280xp.dtsi b/arch/arm64/boot/dts/qcom/sc8280xp.dtsi index 42bfa9fa5b96..7b81f2b0449d 100644 --- a/arch/arm64/boot/dts/qcom/sc8280xp.dtsi +++ b/arch/arm64/boot/dts/qcom/sc8280xp.dtsi @@ -3108,6 +3108,64 @@ usb_1_role_switch: endpoint { }; }; + usb_2: usb@a4f8800 { + compatible = "qcom,sc8280xp-dwc3", "qcom,dwc3"; + reg = <0 0x0a4f8800 0 0x400>; + #address-cells = <2>; + #size-cells = <2>; + ranges; + + clocks = <&gcc GCC_CFG_NOC_USB3_MP_AXI_CLK>, + <&gcc GCC_USB30_MP_MASTER_CLK>, + <&gcc GCC_AGGRE_USB3_MP_AXI_CLK>, + <&gcc GCC_USB30_MP_SLEEP_CLK>, + <&gcc GCC_USB30_MP_MOCK_UTMI_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 = "cfg_noc", "core", "iface", "sleep", "mock_utmi", + "noc_aggr", "noc_aggr_north", "noc_aggr_south", "noc_sys"; + + assigned-clocks = <&gcc GCC_USB30_MP_MOCK_UTMI_CLK>, + <&gcc GCC_USB30_MP_MASTER_CLK>; + assigned-clock-rates = <19200000>, <200000000>; + + interrupts-extended = <&pdc 127 IRQ_TYPE_EDGE_RISING>, + <&pdc 126 IRQ_TYPE_EDGE_RISING>, + <&pdc 16 IRQ_TYPE_LEVEL_HIGH>; + + interrupt-names = "dp_hs_phy_irq", "dm_hs_phy_irq", + "ss_phy_irq"; + + power-domains = <&gcc USB30_MP_GDSC>; + + resets = <&gcc GCC_USB30_MP_BCR>; + + interconnects = <&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 = "usb-ddr", "apps-usb"; + + required-opps = <&rpmhpd_opp_nom>; + + status = "disabled"; + + usb_2_dwc3: usb@a400000 { + compatible = "snps,dwc3"; + reg = <0 0x0a400000 0 0xcd00>; + interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>; + iommus = <&apps_smmu 0x800 0x0>; + phys = <&usb_2_hsphy0>, <&usb_2_qmpphy0>, + <&usb_2_hsphy1>, <&usb_2_qmpphy1>, + <&usb_2_hsphy2>, + <&usb_2_hsphy3>; + phy-names = "usb2-port0", "usb3-port0", + "usb2-port1", "usb3-port1", + "usb2-port2", + "usb2-port3"; + }; + }; + mdss0: display-subsystem@ae00000 { compatible = "qcom,sc8280xp-mdss"; reg = <0 0x0ae00000 0 0x1000>;