From patchwork Thu Aug 10 09:56:04 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Varadarajan Narayanan X-Patchwork-Id: 133858 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b824:0:b0:3f2:4152:657d with SMTP id z4csp318606vqi; Thu, 10 Aug 2023 03:27:57 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFuoaC4lh0Zzns8zYYVSnBckOroId07OVyIajopG97fwo3OWNQqzuiHEI3/e3U9cf2FCvX0 X-Received: by 2002:a17:907:1c95:b0:98d:f2c9:a1eb with SMTP id nb21-20020a1709071c9500b0098df2c9a1ebmr2291309ejc.24.1691663277124; Thu, 10 Aug 2023 03:27:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1691663277; cv=none; d=google.com; s=arc-20160816; b=McYRRP81x1zCXuIs+AttUoVfQjWukQJEdx/fIQGWrSSBnZY7RbuaCV8Kg8mxM9lS2X JnuSL0r38Skb1HM2xOLTYt5K5z6dhCP1DtYMH9xHg0qy3ToD1a2YYaKj4+OWIcGCt2kD bocFueH9eFphmWUXH9LiEgF2Jv1buJBKxNxJ9dlPDjIMVA44Usaxh0etqPYY6gB/3YUN FmI+uuTOX9PAR2xcQEVoYZArQMnoMRGMBaR1XDVbgDconY9P/gZcCA0DFlvYcX+pA7VF OHShuupTnO3eiGbIMhzyySwKVEjiF2r8vIt6918XfaNW2iHyEAkQvkP2fPUmT9AvQfRr Cx8Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:to:from:dkim-signature; bh=stx5aJw+TjH6vEiDdJAveILMm05cAf8rbZ1FVfNqA1c=; fh=0k2HJcQX94dKFWJ5tuN/W9uwe9Rj3tjxabABZ2i+WP0=; b=PPS7FjDsEaTF6kYvMbF27nox72RWfVDi3QJz5N+JNVNeeKavB3pwwxN6ywZwElH2X+ lm7xBuU52tATBN6ckx3/Gk6NI32hcthVRTlATLGk+eWRuIbKVbg7mvEEl1MmATkUw8uW Rf3pQ4ZKxZoNoNFA7yJKvFoCiFP024aiTO7P6nVjhfd9m+YVZDbQ9FBkwK25dOjYwmOF qjm2b6OScGvbvXO+DKxqZeXRcpHk0ogaApBolUIwZEsX2BLELPzTJk046DznQS4b6cl5 bW/3mtXBoyrbAzjwhv5oB7Z/a/V99y4kNMMyV5IrWkwT2/qsg1k8fgcHg82Q0q7OMRmo SHMg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=k3EEc6Wb; 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 d17-20020aa7d691000000b0052337f4212bsi1122383edr.108.2023.08.10.03.27.33; Thu, 10 Aug 2023 03:27:57 -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=k3EEc6Wb; 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 S234932AbjHJJ5J (ORCPT + 99 others); Thu, 10 Aug 2023 05:57:09 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34004 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233381AbjHJJ5G (ORCPT ); Thu, 10 Aug 2023 05:57:06 -0400 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 211732127; Thu, 10 Aug 2023 02:57:06 -0700 (PDT) Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 37A9hqC2030429; Thu, 10 Aug 2023 09:56:31 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=from : to : subject : date : message-id : in-reply-to : references : mime-version : content-type; s=qcppdkim1; bh=stx5aJw+TjH6vEiDdJAveILMm05cAf8rbZ1FVfNqA1c=; b=k3EEc6Wb0mM/VaIPq93292ov9spKBEiklRUyYpxY3P3RiY5SDRLfKh1qg8zu61sTUc7C 8mYaIN1d9EuQKHqJTf9HSQapSoEoOIRJ//edSHP55iRUXgbdGRJv2rMz5xmTjyXygtub EE/YpUp3ZFdap7iaxCIanJx0iwZkdlQFeaKssvMMKhWd6SpgS6GUbUedn1nDMdO50PK6 tLl/C9aM8EbFfDR1gpr+NjxmroQLh4TCwdnUL2M1p426QvPxODajkoPpnrD4MCGTJ0EH mrwC3bJ4t5DBAbwvcu9Vl7OwvHReDYbjDePczK3yiYHzT//nS6xbJ0A8OSWSAo/CaCC1 5Q== Received: from nasanppmta01.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3scsurrggj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 10 Aug 2023 09:56:30 +0000 Received: from nasanex01a.na.qualcomm.com (nasanex01a.na.qualcomm.com [10.52.223.231]) by NASANPPMTA01.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 37A9uUCO029846 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 10 Aug 2023 09:56:30 GMT Received: from varda-linux.qualcomm.com (10.80.80.8) by nasanex01a.na.qualcomm.com (10.52.223.231) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.30; Thu, 10 Aug 2023 02:56:23 -0700 From: Varadarajan Narayanan To: , , , , , , , , , , , , , , , , , , , , , , Subject: [PATCH v7 1/5] dt-bindings: phy: qcom,m31: Document qcom,m31 USB phy Date: Thu, 10 Aug 2023 15:26:04 +0530 Message-ID: <0d42f556ab28123b2b508521a0c79c7597b8b0fd.1691660905.git.quic_varada@quicinc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: References: MIME-Version: 1.0 X-Originating-IP: [10.80.80.8] X-ClientProxiedBy: nasanex01a.na.qualcomm.com (10.52.223.231) To nasanex01a.na.qualcomm.com (10.52.223.231) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-ORIG-GUID: OqFjZX3V8m9m_WeS9qXeDYp9EefWxa9z X-Proofpoint-GUID: OqFjZX3V8m9m_WeS9qXeDYp9EefWxa9z X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.267,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-08-10_09,2023-08-09_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 bulkscore=0 malwarescore=0 lowpriorityscore=0 priorityscore=1501 impostorscore=0 spamscore=0 adultscore=0 clxscore=1015 mlxlogscore=999 phishscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2306200000 definitions=main-2308100085 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_BLOCKED, SPF_HELO_NONE,SPF_PASS autolearn=ham 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: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1773837512764900933 X-GMAIL-MSGID: 1773837512764900933 Document the M31 USB2 phy present in IPQ5332. Reviewed-by: Krzysztof Kozlowski Co-developed-by: Sricharan Ramabadhran Signed-off-by: Sricharan Ramabadhran Signed-off-by: Varadarajan Narayanan --- v7: Move 'compatible' to be the first entry In the example have 'usb-phy' instead of 'usb2-phy' Add 'Reviewed-by: Krzysztof Kozlowski' 'make dt_binding_check DT_SCHEMA_FILES=qcom,ipq5332-usb-hsphy.yaml' passed 'make CHECK_DTBS=y DT_SCHEMA_FILES=qcom,ipq5332-usb-hsphy.yaml dtbs_check' passed v6: Add 'Co-developed-by: Sricharan' Add 'const' to compatible, vdd-supply Remove label and use usb2-phy for nodename in the example v5: Add '#phy-cells', to be able to use generic phy Remove 'Reviewed-by: Krzysztof Kozlowski' due to above change v4: Move M31 URL to description Remove maxItems and relevant content from clock-names Change node name to generic name 'make dt_binding_check DT_SCHEMA_FILES=qcom' passed v3: Incorporate review comments. Will bring in ipq5018 compatible string while posting ipq5018 usb patchset. v1: Rename qcom,m31.yaml -> qcom,ipq5332-usb-hsphy.yaml Drop default binding "m31,usb-hsphy" Add clock Remove 'oneOf' from compatible Remove 'qscratch' region from register space as it is not needed Remove reset-names Fix the example definition --- .../bindings/phy/qcom,ipq5332-usb-hsphy.yaml | 59 ++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 Documentation/devicetree/bindings/phy/qcom,ipq5332-usb-hsphy.yaml diff --git a/Documentation/devicetree/bindings/phy/qcom,ipq5332-usb-hsphy.yaml b/Documentation/devicetree/bindings/phy/qcom,ipq5332-usb-hsphy.yaml new file mode 100644 index 0000000..2671a04 --- /dev/null +++ b/Documentation/devicetree/bindings/phy/qcom,ipq5332-usb-hsphy.yaml @@ -0,0 +1,59 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/phy/qcom,ipq5332-usb-hsphy.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: M31 USB PHY + +maintainers: + - Sricharan Ramabadhran + - Varadarajan Narayanan + +description: + USB M31 PHY (https://www.m31tech.com) found in Qualcomm + IPQ5018, IPQ5332 SoCs. + +properties: + compatible: + items: + - const: qcom,ipq5332-usb-hsphy + + "#phy-cells": + const: 0 + + reg: + maxItems: 1 + + clocks: + maxItems: 1 + + clock-names: + items: + - const: cfg_ahb + + resets: + maxItems: 1 + + vdd-supply: + description: + Phandle to 5V regulator supply to PHY digital circuit. + +additionalProperties: false + +examples: + - | + #include + usb-phy@7b000 { + compatible = "qcom,ipq5332-usb-hsphy"; + reg = <0x0007b000 0x12c>; + + clocks = <&gcc GCC_USB0_PHY_CFG_AHB_CLK>; + clock-names = "cfg_ahb"; + + #phy-cells = <0>; + + resets = <&gcc GCC_QUSB2_0_PHY_BCR>; + + vdd-supply = <®ulator_fixed_5p0>; + }; From patchwork Thu Aug 10 09:56:05 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Varadarajan Narayanan X-Patchwork-Id: 133850 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b824:0:b0:3f2:4152:657d with SMTP id z4csp315310vqi; Thu, 10 Aug 2023 03:19:37 -0700 (PDT) X-Google-Smtp-Source: AGHT+IE8lFzTQO81gqOpgGDLn3vJAbCZ2h0vTQaqBKnZ0UrRycZ54Nd0ra34CSZ5Vk1Cgxpf10e/ X-Received: by 2002:a05:651c:42:b0:2b9:3db7:322f with SMTP id d2-20020a05651c004200b002b93db7322fmr1460077ljd.18.1691662777203; Thu, 10 Aug 2023 03:19:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1691662777; cv=none; d=google.com; s=arc-20160816; b=lWUUtQAc5htn8YddpKGfyHlOoMve5uQzwSxhixCmZmIc3xBtePslVyhW39IYUMRVV4 eutg3Hu4wopEjgsluAz/tzatZIV9zC7sSvkUR4Zisa8fa7VgwcVtLaw66FLjPZHMicAt PapenAhyU48QylcXsxF8Dzgy7m3oy1C0S0jCC/AyG80EpwP/5ltIhq6VklycFk7obZLh sIa6nbwqSvzuN26kexzol0g9TnW3k0QVH2MB6YvQoatZWDaSzxga8fHtrUJTltv/Gwle cRUtl8k1+0V+Pfn4aIo9iTbvLe0yLLb7y3e2qjhriKCml4n4YCaaF80H/QLgvAm6zypT WmTw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:to:from:dkim-signature; bh=KU+4Q2s1497g3SHP38qNUcCPl71jlIaBprjPUFm6oSs=; fh=0k2HJcQX94dKFWJ5tuN/W9uwe9Rj3tjxabABZ2i+WP0=; b=kwj1BU2f3hopXg6NPqyDxc3g78cim6rN4X3b1/OlRXPmO/6UiMQ0QeEkBtuA3nTlgL lWEb5rVd/Y5kO/9M8tOgQ3cNuD3pqnGo6alIv4dNUZ/sCTtfiFFPSSjhNY+6Z8+of8AE kgkli62RNXwP4GpXfblGBVgulSXK6R3BponnJBG1Q7GoZGJIOIf6Q++vlvggtr457igC UJ6OCHNw8ntMWn1CN+rSMBm1ICLxj21z2cKI/i9kSiXGFW/8BYpntZQ4GUXcppIN2KNR IJNPnG9aEIrghXIXUpoV/TYBj7flEeg8CAilvqxl9Wjl1dyR0ceGBrjCO0CAkFxtWOaO wERA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=Ca8JhZrV; 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 ck13-20020a170906c44d00b0099b92d054e3si1204646ejb.930.2023.08.10.03.19.09; Thu, 10 Aug 2023 03:19:37 -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=Ca8JhZrV; 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 S235023AbjHJJ5R (ORCPT + 99 others); Thu, 10 Aug 2023 05:57:17 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34036 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234900AbjHJJ5I (ORCPT ); Thu, 10 Aug 2023 05:57:08 -0400 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0B2A410CF; Thu, 10 Aug 2023 02:57:08 -0700 (PDT) Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 37A6G8Cp012243; Thu, 10 Aug 2023 09:56:37 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=from : to : subject : date : message-id : in-reply-to : references : mime-version : content-type; s=qcppdkim1; bh=KU+4Q2s1497g3SHP38qNUcCPl71jlIaBprjPUFm6oSs=; b=Ca8JhZrVlknmjS52SUhsTGii+dK5WjmYsfbjKDxTyBv4qh248N0C1/wC3fWZfVQ30DMQ lUPbwDjok4pFFu9VaGJq6alKq20BkPgVgIrQlul3onFd9uz8NU+nPyLMFEhFym6xxcOQ jxpQ1AbYEp759Ws/b6eNgLFpKjlbyR6I5mMA8DzxAcSWC1/2Jd/nfoYguLaH/avw6t9x UKTqQI2Y9ASHK5EjtHjcRdOADbKBDvIPB0MiIqNIpDQFPm1pKWuvS7J/4BxaIA2Bzvo1 C/OUi9lQ9NLjWCGd+Cn6/IwgB9p+WE/Xppm8LacWqQFOLCF2F5I7W1D4U6gHRjv2PpUm tA== Received: from nasanppmta05.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3sc1ny3dvm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 10 Aug 2023 09:56:37 +0000 Received: from nasanex01a.na.qualcomm.com (nasanex01a.na.qualcomm.com [10.52.223.231]) by NASANPPMTA05.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 37A9ua3x019989 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 10 Aug 2023 09:56:36 GMT Received: from varda-linux.qualcomm.com (10.80.80.8) by nasanex01a.na.qualcomm.com (10.52.223.231) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.30; Thu, 10 Aug 2023 02:56:30 -0700 From: Varadarajan Narayanan To: , , , , , , , , , , , , , , , , , , , , , , Subject: [PATCH v7 2/5] phy: qcom-m31: Introduce qcom,m31 USB phy driver Date: Thu, 10 Aug 2023 15:26:05 +0530 Message-ID: X-Mailer: git-send-email 2.7.4 In-Reply-To: References: MIME-Version: 1.0 X-Originating-IP: [10.80.80.8] X-ClientProxiedBy: nasanex01a.na.qualcomm.com (10.52.223.231) To nasanex01a.na.qualcomm.com (10.52.223.231) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-GUID: C3ttlCIMWpzPMyYTR6lzam9JHAxBYxqF X-Proofpoint-ORIG-GUID: C3ttlCIMWpzPMyYTR6lzam9JHAxBYxqF X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.267,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-08-10_09,2023-08-09_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 mlxscore=0 spamscore=0 bulkscore=0 adultscore=0 suspectscore=0 lowpriorityscore=0 impostorscore=0 malwarescore=0 mlxlogscore=999 phishscore=0 priorityscore=1501 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2306200000 definitions=main-2308100085 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_BLOCKED, SPF_HELO_NONE,SPF_PASS autolearn=ham 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: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1773836988036343067 X-GMAIL-MSGID: 1773836988036343067 Add the M31 USB2 phy driver. Signed-off-by: Varadarajan Narayanan --- v6: Kconfig:Add COMPILE_TEST and remove USB_GADGET from 'depends' Change 'selects' USB_PHY -> GENERIC_PHY Driver: Use correct headers const int -> unsigned int for 'nregs' in private data Use generic names for clk, phy in m31 phy structure Init register details directly instead of using macro Use dev_err_probe in the error paths of driver probe v5: Kconfig and Makefile:- place snippet according to sorted order Use generic phy instead of usb-phy Use ARRAY_SIZE for reg init instead of blank last entry Fix copyright year v4: Remove unused enum Error handling for devm_clk_get v1: Combine driver, makefile and kconfig into 1 patch Remove 'qscratch' region and its usage. The controller driver takes care of those settings Use compatible/data to handle ipq5332 init Drop the default case Get resources by index instead of name as there is only one resource Add clock Fix review comments in the driver --- drivers/phy/qualcomm/Kconfig | 11 ++ drivers/phy/qualcomm/Makefile | 1 + drivers/phy/qualcomm/phy-qcom-m31.c | 248 ++++++++++++++++++++++++++++++++++++ 3 files changed, 260 insertions(+) create mode 100644 drivers/phy/qualcomm/phy-qcom-m31.c diff --git a/drivers/phy/qualcomm/Kconfig b/drivers/phy/qualcomm/Kconfig index ced6038..d891058 100644 --- a/drivers/phy/qualcomm/Kconfig +++ b/drivers/phy/qualcomm/Kconfig @@ -143,6 +143,17 @@ config PHY_QCOM_EUSB2_REPEATER PMICs. The repeater is paired with a Synopsys eUSB2 Phy on Qualcomm SOCs. +config PHY_QCOM_M31_USB + tristate "Qualcomm M31 HS PHY driver support" + depends on USB && (ARCH_QCOM || COMPILE_TEST) + select GENERIC_PHY + help + Enable this to support M31 HS PHY transceivers on Qualcomm chips + with DWC3 USB core. It handles PHY initialization, clock + management required after resetting the hardware and power + management. This driver is required even for peripheral only or + host only mode configurations. + config PHY_QCOM_USB_HS tristate "Qualcomm USB HS PHY module" depends on USB_ULPI_BUS diff --git a/drivers/phy/qualcomm/Makefile b/drivers/phy/qualcomm/Makefile index df94581..ffd609a 100644 --- a/drivers/phy/qualcomm/Makefile +++ b/drivers/phy/qualcomm/Makefile @@ -4,6 +4,7 @@ obj-$(CONFIG_PHY_QCOM_APQ8064_SATA) += phy-qcom-apq8064-sata.o obj-$(CONFIG_PHY_QCOM_EDP) += phy-qcom-edp.o obj-$(CONFIG_PHY_QCOM_IPQ4019_USB) += phy-qcom-ipq4019-usb.o obj-$(CONFIG_PHY_QCOM_IPQ806X_SATA) += phy-qcom-ipq806x-sata.o +obj-$(CONFIG_PHY_QCOM_M31_USB) += phy-qcom-m31.o obj-$(CONFIG_PHY_QCOM_PCIE2) += phy-qcom-pcie2.o obj-$(CONFIG_PHY_QCOM_QMP_COMBO) += phy-qcom-qmp-combo.o diff --git a/drivers/phy/qualcomm/phy-qcom-m31.c b/drivers/phy/qualcomm/phy-qcom-m31.c new file mode 100644 index 0000000..d6a8d06 --- /dev/null +++ b/drivers/phy/qualcomm/phy-qcom-m31.c @@ -0,0 +1,248 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (c) 2014-2023, The Linux Foundation. All rights reserved. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define USB2PHY_PORT_UTMI_CTRL1 0x40 + +#define USB2PHY_PORT_UTMI_CTRL2 0x44 + #define UTMI_ULPI_SEL BIT(7) + #define UTMI_TEST_MUX_SEL BIT(6) + +#define HS_PHY_CTRL_REG 0x10 + #define UTMI_OTG_VBUS_VALID BIT(20) + #define SW_SESSVLD_SEL BIT(28) + +#define USB_PHY_UTMI_CTRL0 0x3c + +#define USB_PHY_UTMI_CTRL5 0x50 + #define POR_EN BIT(1) + +#define USB_PHY_HS_PHY_CTRL_COMMON0 0x54 + #define COMMONONN BIT(7) + #define FSEL BIT(4) + #define RETENABLEN BIT(3) + #define FREQ_24MHZ (GENMASK(6, 6) | GENMASK(4, 4)) + +#define USB_PHY_HS_PHY_CTRL2 0x64 + #define USB2_SUSPEND_N_SEL BIT(3) + #define USB2_SUSPEND_N BIT(2) + #define USB2_UTMI_CLK_EN BIT(1) + +#define USB_PHY_CFG0 0x94 + #define UTMI_PHY_OVERRIDE_EN BIT(1) + +#define USB_PHY_REFCLK_CTRL 0xa0 + #define CLKCORE BIT(1) + +#define USB2PHY_PORT_POWERDOWN 0xa4 + #define POWER_UP BIT(0) + #define POWER_DOWN 0 + +#define USB_PHY_FSEL_SEL 0xb8 + #define FREQ_SEL BIT(0) + +#define USB2PHY_USB_PHY_M31_XCFGI_1 0xbc + #define USB2_0_TX_ENABLE BIT(2) + +#define USB2PHY_USB_PHY_M31_XCFGI_4 0xc8 + #define HSTX_SLEW_RATE_565PS GENMASK(1, 0) + #define PLL_CHARGING_PUMP_CURRENT_35UA GENMASK(4, 3) + #define ODT_VALUE_38_02_OHM GENMASK(7, 6) + +#define USB2PHY_USB_PHY_M31_XCFGI_5 0xcc + #define ODT_VALUE_45_02_OHM BIT(2) + #define HSTX_PRE_EMPHASIS_LEVEL_0_55MA BIT(0) + +#define USB2PHY_USB_PHY_M31_XCFGI_11 0xe4 + #define XCFG_COARSE_TUNE_NUM BIT(1) + #define XCFG_FINE_TUNE_NUM BIT(3) + +struct m31_phy_regs { + u32 off; + u32 val; + u32 delay; +}; + +struct m31_priv_data { + bool ulpi_mode; + const struct m31_phy_regs *regs; + unsigned int nregs; +}; + +struct m31_phy_regs m31_ipq5332_regs[] = { + { USB_PHY_CFG0, UTMI_PHY_OVERRIDE_EN, 0 }, + { USB_PHY_UTMI_CTRL5, POR_EN, 15 }, + { USB_PHY_FSEL_SEL, FREQ_SEL, 0 }, + { USB_PHY_HS_PHY_CTRL_COMMON0, COMMONONN | FREQ_24MHZ | RETENABLEN, 0 }, + { USB_PHY_UTMI_CTRL5, POR_EN, 0 }, + { USB_PHY_HS_PHY_CTRL2, USB2_SUSPEND_N_SEL | USB2_SUSPEND_N | USB2_UTMI_CLK_EN, 0 }, + { USB2PHY_USB_PHY_M31_XCFGI_11, XCFG_COARSE_TUNE_NUM | XCFG_FINE_TUNE_NUM, 0 }, + { USB2PHY_USB_PHY_M31_XCFGI_4, HSTX_SLEW_RATE_565PS | PLL_CHARGING_PUMP_CURRENT_35UA | + ODT_VALUE_38_02_OHM, 0 }, + { USB2PHY_USB_PHY_M31_XCFGI_1, USB2_0_TX_ENABLE, 0 }, + { USB2PHY_USB_PHY_M31_XCFGI_5, ODT_VALUE_45_02_OHM | HSTX_PRE_EMPHASIS_LEVEL_0_55MA, 4 }, + { USB_PHY_UTMI_CTRL5, 0x0, 0 }, + { USB_PHY_HS_PHY_CTRL2, USB2_SUSPEND_N | USB2_UTMI_CLK_EN, 0 }, +}; + +struct m31usb_phy { + struct phy *phy; + void __iomem *base; + const struct m31_phy_regs *regs; + int nregs; + + struct regulator *vreg; + struct clk *clk; + struct reset_control *reset; + + bool ulpi_mode; +}; + +static int m31usb_phy_init(struct phy *phy) +{ + struct m31usb_phy *qphy = phy_get_drvdata(phy); + const struct m31_phy_regs *regs = qphy->regs; + int i, ret; + + ret = regulator_enable(qphy->vreg); + if (ret) { + dev_err(&phy->dev, "failed to enable regulator, %d\n", ret); + return ret; + } + + ret = clk_prepare_enable(qphy->clk); + if (ret) { + if (qphy->vreg) + regulator_disable(qphy->vreg); + dev_err(&phy->dev, "failed to enable cfg ahb clock, %d\n", ret); + return ret; + } + + /* Perform phy reset */ + reset_control_assert(qphy->reset); + udelay(5); + reset_control_deassert(qphy->reset); + + /* configure for ULPI mode if requested */ + if (qphy->ulpi_mode) + writel(0x0, qphy->base + USB2PHY_PORT_UTMI_CTRL2); + + /* Enable the PHY */ + writel(POWER_UP, qphy->base + USB2PHY_PORT_POWERDOWN); + + /* Turn on phy ref clock */ + for (i = 0; i < qphy->nregs; i++) { + writel(regs[i].val, qphy->base + regs[i].off); + if (regs[i].delay) + udelay(regs[i].delay); + } + + return 0; +} + +static int m31usb_phy_shutdown(struct phy *phy) +{ + struct m31usb_phy *qphy = phy_get_drvdata(phy); + + /* Disable the PHY */ + writel_relaxed(POWER_DOWN, qphy->base + USB2PHY_PORT_POWERDOWN); + + clk_disable_unprepare(qphy->clk); + + regulator_disable(qphy->vreg); + + return 0; +} + +static const struct phy_ops m31usb_phy_gen_ops = { + .power_on = m31usb_phy_init, + .power_off = m31usb_phy_shutdown, + .owner = THIS_MODULE, +}; + +static int m31usb_phy_probe(struct platform_device *pdev) +{ + struct phy_provider *phy_provider; + const struct m31_priv_data *data; + struct device *dev = &pdev->dev; + struct m31usb_phy *qphy; + + qphy = devm_kzalloc(dev, sizeof(*qphy), GFP_KERNEL); + if (!qphy) + return -ENOMEM; + + qphy->base = devm_platform_ioremap_resource(pdev, 0); + if (IS_ERR(qphy->base)) + return PTR_ERR(qphy->base); + + qphy->reset = devm_reset_control_get_exclusive_by_index(dev, 0); + if (IS_ERR(qphy->reset)) + return PTR_ERR(qphy->reset); + + qphy->clk = devm_clk_get(dev, NULL); + if (IS_ERR(qphy->clk)) + return dev_err_probe(dev, PTR_ERR(qphy->clk), + "failed to get clk\n"); + + data = of_device_get_match_data(dev); + qphy->regs = data->regs; + qphy->nregs = data->nregs; + qphy->ulpi_mode = data->ulpi_mode; + + qphy->phy = devm_phy_create(dev, NULL, &m31usb_phy_gen_ops); + if (IS_ERR(qphy->phy)) + return dev_err_probe(dev, PTR_ERR(qphy->phy), + "failed to create phy\n"); + + qphy->vreg = devm_regulator_get(dev, "vdda-phy"); + if (IS_ERR(qphy->vreg)) + return dev_err_probe(dev, PTR_ERR(qphy->phy), + "failed to get vreg\n"); + + phy_set_drvdata(qphy->phy, qphy); + + phy_provider = devm_of_phy_provider_register(dev, of_phy_simple_xlate); + if (!IS_ERR(phy_provider)) + dev_info(dev, "Registered M31 USB phy\n"); + + return PTR_ERR_OR_ZERO(phy_provider); +} + +static const struct m31_priv_data m31_ipq5332_data = { + .ulpi_mode = false, + .regs = m31_ipq5332_regs, + .nregs = ARRAY_SIZE(m31_ipq5332_regs), +}; + +static const struct of_device_id m31usb_phy_id_table[] = { + { .compatible = "qcom,ipq5332-usb-hsphy", .data = &m31_ipq5332_data }, + { }, +}; +MODULE_DEVICE_TABLE(of, m31usb_phy_id_table); + +static struct platform_driver m31usb_phy_driver = { + .probe = m31usb_phy_probe, + .driver = { + .name = "qcom-m31usb-phy", + .of_match_table = m31usb_phy_id_table, + }, +}; + +module_platform_driver(m31usb_phy_driver); + +MODULE_DESCRIPTION("USB2 Qualcomm M31 HSPHY driver"); +MODULE_LICENSE("GPL"); From patchwork Thu Aug 10 09:56:06 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Varadarajan Narayanan X-Patchwork-Id: 133860 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b824:0:b0:3f2:4152:657d with SMTP id z4csp319161vqi; Thu, 10 Aug 2023 03:29:16 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFSYZfz6cgbMsVU/ox+q+727aX8MRjQlD2+3X1Jz27Fi3MsygpwEfviPDYVVuSGYydh7snT X-Received: by 2002:a05:6402:57:b0:51e:4439:f474 with SMTP id f23-20020a056402005700b0051e4439f474mr1524873edu.35.1691663356067; Thu, 10 Aug 2023 03:29:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1691663356; cv=none; d=google.com; s=arc-20160816; b=OOeZmyK4zMJuNKDNrktJ6ZXUFJgTRGwpza7zjmA3w3h84knT/6HYOQ2bzXVN4sAE0R qGH6ULJ5iYAN+u4x9ny5GNojEN7KQ8ClZn5pkLAVpZ9tanF71efnXNDa0L4+uv+kv5mJ PpP/y5++5swmHcBLoit6KbuPLLb9hSPyFBmbz3pNQ1QqvSFspJAZVydqtzKKIizDOOoQ QbQT95rwAcRZ/AimJ61Mog0jESApnaq5VOkvm4bgDgJatTnn851tSszYzKt9ssoogFGM m/bY0FXSVw1GDM+2S2VIhv6lMhD7ABvZWLAHy/GzRYJyePssLaLnYqhqLVFWeUuHjs9e +5/Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:to:from:dkim-signature; bh=P3mfiVOWQA2fBdEjUhjCQ7cZSWURZE9yDZZmYFLaL7g=; fh=0k2HJcQX94dKFWJ5tuN/W9uwe9Rj3tjxabABZ2i+WP0=; b=OEHXtStJ1ieOVZHqlN0h2LMH+ENIqAM+IROidnSB1BcflycxnJv73NeRSqM4q7AWfl Sb9F1SZuwdxlfQDIEOGnhvdoGNQv+LF42QGlOUuPk5gCNiGjr4jjPjZ+MT91TrJFBk3/ zrbnpmG4As+oUKLyTLerme3tmgo9qqBPje2+V5RtPTeUUPCiczrTs73VsmzmycrcsjNT 522en1juqezbNONd50rNBPMEF36xoAqoizL/PUnGiSkK+zKcqwcPAzmijn9gYYmTUnOw GWxL9iue+z/TVlug5Qe/azcjUlFYkWPdvBjpqs5AwSBnQZ6FKRQPnifm+XrlJRMF3E1I dRNQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b="aAJA/DF7"; 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 s24-20020a056402165800b00522de43270dsi1238403edx.437.2023.08.10.03.28.45; Thu, 10 Aug 2023 03:29:16 -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="aAJA/DF7"; 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 S235018AbjHJJ5U (ORCPT + 99 others); Thu, 10 Aug 2023 05:57:20 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54940 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235003AbjHJJ5P (ORCPT ); Thu, 10 Aug 2023 05:57:15 -0400 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6F457213F; Thu, 10 Aug 2023 02:57:14 -0700 (PDT) Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 37A9nC9M018489; Thu, 10 Aug 2023 09:56:45 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=from : to : subject : date : message-id : in-reply-to : references : mime-version : content-type; s=qcppdkim1; bh=P3mfiVOWQA2fBdEjUhjCQ7cZSWURZE9yDZZmYFLaL7g=; b=aAJA/DF7rlfK7XPeD32PwVRSMZ8eIJdkCBurwGJb9J96nuAuvFsjkKBXg3Wni9IZ8mvy 1lGUz3m0YHzv3iXx6pCYixuZxU0Dkh6g9ZIVjneDpzNp2PptdhZOOO9gCJgmQ4NINaj/ BBPvzuo1G8cywyh7QCqzHTHQHb4XojlLFe0hJ4OSet1H70Cqyof2+1PqIILurvQaYJb5 JWP8k4xXLMtLYuOgOELZVwK0Ip79OxpQDyOHisDBbQyY4L9TU+B13bsU+oy5UMf43o10 22Pgk/k150swOz/F1CtYLtKnhAuXsBbfFZLECbFSrDC5pItkhItsXiT/WbKdwhj/6p8L qg== Received: from nasanppmta04.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3scw2ur2q0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 10 Aug 2023 09:56:44 +0000 Received: from nasanex01a.na.qualcomm.com (nasanex01a.na.qualcomm.com [10.52.223.231]) by NASANPPMTA04.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 37A9uhvd019111 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 10 Aug 2023 09:56:43 GMT Received: from varda-linux.qualcomm.com (10.80.80.8) by nasanex01a.na.qualcomm.com (10.52.223.231) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.30; Thu, 10 Aug 2023 02:56:36 -0700 From: Varadarajan Narayanan To: , , , , , , , , , , , , , , , , , , , , , , Subject: [PATCH v7 3/5] arm64: dts: qcom: ipq5332: Add USB related nodes Date: Thu, 10 Aug 2023 15:26:06 +0530 Message-ID: <066299506138ffcf1a3135b6f1a4609eee46ddf9.1691660905.git.quic_varada@quicinc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: References: MIME-Version: 1.0 X-Originating-IP: [10.80.80.8] X-ClientProxiedBy: nasanex01a.na.qualcomm.com (10.52.223.231) To nasanex01a.na.qualcomm.com (10.52.223.231) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-GUID: 2FZZdGLbRI8C0Pw7hxskLdtzc0yW9MR7 X-Proofpoint-ORIG-GUID: 2FZZdGLbRI8C0Pw7hxskLdtzc0yW9MR7 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.267,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-08-10_09,2023-08-09_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 spamscore=0 suspectscore=0 mlxlogscore=845 priorityscore=1501 adultscore=0 bulkscore=0 phishscore=0 clxscore=1015 impostorscore=0 lowpriorityscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2306200000 definitions=main-2308100085 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_BLOCKED, SPF_HELO_NONE,SPF_PASS autolearn=ham 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: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1773837595455499456 X-GMAIL-MSGID: 1773837595455499456 Add USB phy and controller nodes. Signed-off-by: Varadarajan Narayanan --- v6: Remove clock names Move the nodes to address sorted location v5: Use generic phy instead of usb-phy 'make CHECK_DTBS=y DT_SCHEMA_FILES=qcom dtbs_check' passed 'DT_CHECKER_FLAGS='-v -m' DT_SCHEMA_FILES=qcom dt_binding_check' passed v4: Change node name Remove blank line 'make CHECK_DTBS=y DT_SCHEMA_FILES=qcom qcom/ipq5332-rdp441.dtb' passed v1: Rename phy node Change compatible from m31,ipq5332-usb-hsphy -> qcom,ipq5332-usb-hsphy Remove 'qscratch' from phy node Fix alignment and upper-case hex no.s Add clock definition for the phy Remove snps,ref-clock-period-ns as it is not used. dwc3_ref_clk_period() in dwc3/core.c takes the frequency from ref clock and calculates fladj as appropriate. --- arch/arm64/boot/dts/qcom/ipq5332.dtsi | 55 +++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/ipq5332.dtsi b/arch/arm64/boot/dts/qcom/ipq5332.dtsi index 8bfc2db..c45d9d4 100644 --- a/arch/arm64/boot/dts/qcom/ipq5332.dtsi +++ b/arch/arm64/boot/dts/qcom/ipq5332.dtsi @@ -145,6 +145,19 @@ #size-cells = <1>; ranges = <0 0 0 0xffffffff>; + usbphy0: phy@7b000 { + compatible = "qcom,ipq5332-usb-hsphy"; + reg = <0x0007b000 0x12c>; + + clocks = <&gcc GCC_USB0_PHY_CFG_AHB_CLK>; + + resets = <&gcc GCC_QUSB2_0_PHY_BCR>; + + #phy-cells = <0>; + + status = "disabled"; + }; + qfprom: efuse@a4000 { compatible = "qcom,ipq5332-qfprom", "qcom,qfprom"; reg = <0x000a4000 0x721>; @@ -290,6 +303,48 @@ status = "disabled"; }; + usb: usb2@8a00000 { + compatible = "qcom,ipq5332-dwc3", "qcom,dwc3"; + reg = <0x08af8800 0x400>; + + interrupts = ; + interrupt-names = "hs_phy_irq"; + + clocks = <&gcc GCC_USB0_MASTER_CLK>, + <&gcc GCC_SNOC_USB_CLK>, + <&gcc GCC_USB0_SLEEP_CLK>, + <&gcc GCC_USB0_MOCK_UTMI_CLK>; + clock-names = "core", + "iface", + "sleep", + "mock_utmi"; + + resets = <&gcc GCC_USB_BCR>; + + qcom,select-utmi-as-pipe-clk; + + #address-cells = <1>; + #size-cells = <1>; + ranges; + + status = "disabled"; + + usb2_0_dwc: usb@8a00000 { + compatible = "snps,dwc3"; + reg = <0x08a00000 0xe000>; + clocks = <&gcc GCC_USB0_MOCK_UTMI_CLK>; + clock-names = "ref"; + interrupts = ; + phy-names = "usb2-phy"; + phys = <&usbphy0>; + tx-fifo-resize; + snps,is-utmi-l1-suspend; + snps,hird-threshold = /bits/ 8 <0x0>; + snps,dis_u2_susphy_quirk; + snps,dis_u3_susphy_quirk; + }; + }; + intc: interrupt-controller@b000000 { compatible = "qcom,msm-qgic2"; reg = <0x0b000000 0x1000>, /* GICD */ From patchwork Thu Aug 10 09:56:07 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Varadarajan Narayanan X-Patchwork-Id: 133861 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b824:0:b0:3f2:4152:657d with SMTP id z4csp320152vqi; Thu, 10 Aug 2023 03:31:13 -0700 (PDT) X-Google-Smtp-Source: AGHT+IE+VikWQLEI8xfqZzVCWM6E70df5pNXtnwj5p7XHqjHc5QQyJ+MSFO1b7QXAhaggTKRpspy X-Received: by 2002:a17:907:7f15:b0:991:d414:d889 with SMTP id qf21-20020a1709077f1500b00991d414d889mr2166351ejc.15.1691663473306; Thu, 10 Aug 2023 03:31:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1691663473; cv=none; d=google.com; s=arc-20160816; b=eLFezR7Wlp35EZ9qH59IV239gRPau1LzUl5P5iEgaZT74ZCEX7RyzyS1Gm0DCqzg9A HUODpsSwO2lyWXyyC4AH5k9dmQT1FgEZwscuX2I63jgd+xdC+c2XaV9TQlJ9NsXtBThm 3rCmARyZff3chfFiqF9oEQz4GCpsznUSu+WeZKaWqaRKBqAWVXBdxOXwoy3o2LZkOvz5 qEIFEoTZ2784BnU8Hx1+aHDH0Z/kOsoYfKU8PDd+u1XeqCQxRoZInxVJn7YNnAWXPbKi XhOKTp3EB5/pIKYwWdZQJHyrZ/noOZKf/DVHDOpwFrj0zBDHvTrjzUMBEopH1LN4Glk+ M/tA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:to:from:dkim-signature; bh=qs9N8rfFTVwVbHCl3QcliIEoiN2bxMMKsoxhS6BMiLo=; fh=0k2HJcQX94dKFWJ5tuN/W9uwe9Rj3tjxabABZ2i+WP0=; b=uy23SWGqJXiuAUfdgWaFwTCcdIxgqV90Dseh9DpcKBVHTZKBNagvucsSX6KpMRgsqq zRb2mLnJXDSVkWFe21aCSd6fVjYDgACKj1pBENoRSs4sbngtPKPxp6UwO1fcgTLXULPM To4GCaCuEphoz385kZbAoaS+wn2c+eJ6C9UaVd4tts3S/Uy8LQiW9okDiIjDpTLKzzhK rPAy7ei92hInYqng1gYX5EKsufX1eb+tuFBG9U18fv3ylMzfzfQEKK8crrx3d5MON/re sB3FiccB/H9By1/Czj9KUIdfv8WIHe7pvW2QrY0sBbmRzJxARHtF+jdjs0zbgA4gQJsC 5/Ww== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=UH59NrWu; 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 qq18-20020a17090720d200b0099bc9dfa042si1285599ejb.470.2023.08.10.03.30.49; Thu, 10 Aug 2023 03:31:13 -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=UH59NrWu; 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 S235068AbjHJJ5X (ORCPT + 99 others); Thu, 10 Aug 2023 05:57:23 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54944 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235006AbjHJJ5P (ORCPT ); Thu, 10 Aug 2023 05:57:15 -0400 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 135082684; Thu, 10 Aug 2023 02:57:15 -0700 (PDT) Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 37A86utO017063; Thu, 10 Aug 2023 09:56:50 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=from : to : subject : date : message-id : in-reply-to : references : mime-version : content-type; s=qcppdkim1; bh=qs9N8rfFTVwVbHCl3QcliIEoiN2bxMMKsoxhS6BMiLo=; b=UH59NrWucHbXvn35iGG5Wr9gdH+lxm3lomO9OX6vhML1H4Ju52RYrVnUmsqKHSI5leIg E5z/NXShUFSsDhG05RIFexYL5R0JgzNnZAFxNcxDkmMGkR4wU2oCKfU5UeQlPXCYeh27 bYU8fXVi9rbYdtUxOd1Vuyzx7WOXZZsQbb2kjH1nR1bQPOC4NLdBlwaYCi6x4jWLoaqQ DqMS+Ih3spxeMiJozES0d+5A5ErStGICKUQYWLtYlrJlkpknuBjHOySgM3XsNw5mKQ9e zr34+vmBQ/dh4BebXqP4IwmcXQiYO5HcjZb0qCVfcVOO+VbDaG65AdvQvkZ5bVXJS4wX CA== Received: from nasanppmta04.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3scsty0fpf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 10 Aug 2023 09:56:50 +0000 Received: from nasanex01a.na.qualcomm.com (nasanex01a.na.qualcomm.com [10.52.223.231]) by NASANPPMTA04.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 37A9unIk019181 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 10 Aug 2023 09:56:49 GMT Received: from varda-linux.qualcomm.com (10.80.80.8) by nasanex01a.na.qualcomm.com (10.52.223.231) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.30; Thu, 10 Aug 2023 02:56:42 -0700 From: Varadarajan Narayanan To: , , , , , , , , , , , , , , , , , , , , , , Subject: [PATCH v7 4/5] arm64: dts: qcom: ipq5332: Enable USB Date: Thu, 10 Aug 2023 15:26:07 +0530 Message-ID: <02317e86c1c8838e66a852b3576988719df8028e.1691660905.git.quic_varada@quicinc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: References: MIME-Version: 1.0 X-Originating-IP: [10.80.80.8] X-ClientProxiedBy: nasanex01a.na.qualcomm.com (10.52.223.231) To nasanex01a.na.qualcomm.com (10.52.223.231) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-ORIG-GUID: btCA9ZfKmqO4QBfex235ZIF2smhd9BsG X-Proofpoint-GUID: btCA9ZfKmqO4QBfex235ZIF2smhd9BsG X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.267,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-08-10_09,2023-08-09_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 phishscore=0 impostorscore=0 lowpriorityscore=0 mlxscore=0 suspectscore=0 priorityscore=1501 clxscore=1015 adultscore=0 bulkscore=0 spamscore=0 mlxlogscore=638 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2306200000 definitions=main-2308100085 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_BLOCKED, SPF_HELO_NONE,SPF_PASS autolearn=ham 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: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1773837718126369882 X-GMAIL-MSGID: 1773837718126369882 Enable USB2 in host mode. Signed-off-by: Varadarajan Narayanan --- v6: Add vdd-supply and corresponding regulator v1: Enable usb-phy node --- arch/arm64/boot/dts/qcom/ipq5332-rdp468.dts | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/ipq5332-rdp468.dts b/arch/arm64/boot/dts/qcom/ipq5332-rdp468.dts index f96b0c8..b4099a2f 100644 --- a/arch/arm64/boot/dts/qcom/ipq5332-rdp468.dts +++ b/arch/arm64/boot/dts/qcom/ipq5332-rdp468.dts @@ -12,6 +12,15 @@ / { model = "Qualcomm Technologies, Inc. IPQ5332 MI01.6"; compatible = "qcom,ipq5332-ap-mi01.6", "qcom,ipq5332"; + + regulator_fixed_5p0: s0500 { + compatible = "regulator-fixed"; + regulator-min-microvolt = <500000>; + regulator-max-microvolt = <500000>; + regulator-boot-on; + regulator-always-on; + regulator-name = "fixed_5p0"; + }; }; &blsp1_spi0 { @@ -79,3 +88,17 @@ bias-pull-up; }; }; + +&usbphy0 { + vdd-supply = <®ulator_fixed_5p0>; + + status = "okay"; +}; + +&usb { + status = "okay"; +}; + +&usb2_0_dwc { + dr_mode = "host"; +}; From patchwork Thu Aug 10 09:56:08 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Varadarajan Narayanan X-Patchwork-Id: 133876 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b824:0:b0:3f2:4152:657d with SMTP id z4csp330570vqi; Thu, 10 Aug 2023 03:55:58 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEzFUoXnHWu/jIq9XeYy5JDpu97t66/b0gV/sqpxCnOY8MORi1r7kp/D07vWt8mxFGNbhmZ X-Received: by 2002:a05:6a00:b8d:b0:687:82a4:49f8 with SMTP id g13-20020a056a000b8d00b0068782a449f8mr2107695pfj.30.1691664958405; Thu, 10 Aug 2023 03:55:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1691664958; cv=none; d=google.com; s=arc-20160816; b=IwMyFGOwm5/am9mP2chznXlv2k5KYBA5HrKGfFXhU++zVtak2u1joosGa4k+KBLWr0 mjcSfIi+KVa9VHTMdX6EgcfQfiVp+FYGgV9QDEGWOXOO0vQz8/H+cqAL/3wfhXHJ3BgK z+H7AKiUaBt79Xmwy/fWYV+Qu0Hn5kPtM5TXs0G30OeMMis3cgZF5LS4KE6ZIfNwy65N mNafoSmGLbMffUqWRNc2djDgjMEoydDOjxKkgTQDgR+6sn23SSbsQNGYJsdjKs2xPQUd c6TFydm2TOebYrbZwJFA+YiKz0I7hClxAL4g29YJrkWf3ewW57JzmVJVML8wntGj1GC6 665A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:to:from:dkim-signature; bh=i62uhHykeo0dVzCMO8QhNLNMVqEDeRoKE1YJQDPMeQk=; fh=0k2HJcQX94dKFWJ5tuN/W9uwe9Rj3tjxabABZ2i+WP0=; b=ZEQPqP2ceXQX4Qli/oayq9MZdood3C13tjjFDLTSggqbbNjA5PAqpZwY9a+GqQQTA6 3QaQNhxtEF2Vo/RUve3EPNf3oE2stnOg7PS/LEQ76uISknkXkgqH4nS93ytn3uVKZGGI YK5P+csS0rztlrxmSQPJcMNpDwC1ZiiW7vTVlH/uzwfg8QAg+QA91Rqc6pMTIZBUmj2N etQru54zKJ8+HV8NFpOcCidfQRzs4rwoCImtCQTpprIm1PL50aV2zK9aL+xMUfBRcuJc KfNk7VEkLOS4mAdBjHQcJrLlX0+PoqXAVRW39ScXREefX02655Se3piHgBPlUWGyPO9a d/5w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=E+J6zMn2; 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 a20-20020a63e854000000b005641dfc74casi1327688pgk.745.2023.08.10.03.55.44; Thu, 10 Aug 2023 03:55:58 -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=E+J6zMn2; 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 S235084AbjHJJ5s (ORCPT + 99 others); Thu, 10 Aug 2023 05:57:48 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41458 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235081AbjHJJ5f (ORCPT ); Thu, 10 Aug 2023 05:57:35 -0400 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9734F26BA; Thu, 10 Aug 2023 02:57:25 -0700 (PDT) Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 37A6RXiu020773; Thu, 10 Aug 2023 09:56:56 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=from : to : subject : date : message-id : in-reply-to : references : mime-version : content-type; s=qcppdkim1; bh=i62uhHykeo0dVzCMO8QhNLNMVqEDeRoKE1YJQDPMeQk=; b=E+J6zMn2IHEYlnb1N4l53tGsZUFhXCh1w6xlViKazO1GC1q5RQ/gmHuxl9SEzHnxXr1O 4TBTeAJuDs2LhodNFjzT/f401yBmayYovdlaEO4mGw51SMWywbHnYyKqpE5+NhCdUcui UojyMaxFhoNNg/wsk7fjvwpBkhl9yF+sgQVk0Qqpy6qVSvU2tg9WK5xEbon+OYkMts0Q RsqFo4tXR0B2vI2OzwDfjScmyaa1OIoyDcIXqyd3SGp8pB04zS9qlRtfduqWFwt2j28l HB3TOtJgnifw0rMTrfIL4NN60BC6ogs5jyHbVVdoGQ7aecKg6NYXVv32DcdQNGBsJXCd tQ== Received: from nasanppmta02.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3scsurrgh1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 10 Aug 2023 09:56:56 +0000 Received: from nasanex01a.na.qualcomm.com (nasanex01a.na.qualcomm.com [10.52.223.231]) by NASANPPMTA02.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 37A9utTX001405 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 10 Aug 2023 09:56:55 GMT Received: from varda-linux.qualcomm.com (10.80.80.8) by nasanex01a.na.qualcomm.com (10.52.223.231) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.30; Thu, 10 Aug 2023 02:56:49 -0700 From: Varadarajan Narayanan To: , , , , , , , , , , , , , , , , , , , , , , Subject: [PATCH v7 5/5] arm64: defconfig: Enable M31 USB phy driver Date: Thu, 10 Aug 2023 15:26:08 +0530 Message-ID: <5f7de161a730f89f0773d99fbfd08e15291dadc6.1691660905.git.quic_varada@quicinc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: References: MIME-Version: 1.0 X-Originating-IP: [10.80.80.8] X-ClientProxiedBy: nasanex01a.na.qualcomm.com (10.52.223.231) To nasanex01a.na.qualcomm.com (10.52.223.231) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-ORIG-GUID: olOuXENs6_2lyrVawm1Rtg_wOdkftkEG X-Proofpoint-GUID: olOuXENs6_2lyrVawm1Rtg_wOdkftkEG X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.267,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-08-10_09,2023-08-09_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 bulkscore=0 malwarescore=0 lowpriorityscore=0 priorityscore=1501 impostorscore=0 spamscore=0 adultscore=0 clxscore=1015 mlxlogscore=562 phishscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2306200000 definitions=main-2308100085 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_BLOCKED, SPF_HELO_NONE,SPF_PASS autolearn=ham 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: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1773839275234062032 X-GMAIL-MSGID: 1773839275234062032 Enable M31 USB phy driver present in IPQ5332. Signed-off-by: Varadarajan Narayanan --- v2: Add full stop to commit log. --- arch/arm64/configs/defconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig index bf13d5c..04daaac 100644 --- a/arch/arm64/configs/defconfig +++ b/arch/arm64/configs/defconfig @@ -1416,6 +1416,7 @@ CONFIG_PHY_QCOM_USB_SNPS_FEMTO_V2=m CONFIG_PHY_QCOM_USB_HS_28NM=m CONFIG_PHY_QCOM_USB_SS=m CONFIG_PHY_QCOM_SGMII_ETH=m +CONFIG_PHY_QCOM_M31_USB=m CONFIG_PHY_R8A779F0_ETHERNET_SERDES=y CONFIG_PHY_RCAR_GEN3_PCIE=y CONFIG_PHY_RCAR_GEN3_USB2=y