From patchwork Wed Jun 7 06:24:40 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?b?U3RhbmxleSBDaGFuZ1vmmIzogrLlvrdd?= X-Patchwork-Id: 104264 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp46051vqr; Tue, 6 Jun 2023 23:28:03 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7OqTO21D9rfAuC9kpP305aD8lhUzu4dp35XNNvaYRgFMKtoRn0uvroDfGi5zS51xleAuwe X-Received: by 2002:a05:6a00:8d6:b0:654:ab4:305 with SMTP id s22-20020a056a0008d600b006540ab40305mr5934255pfu.2.1686119283075; Tue, 06 Jun 2023 23:28:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1686119283; cv=none; d=google.com; s=arc-20160816; b=pXq5Vr3ZaUAd+7gec/r6OrnVQqeCEXGPAkYZI8w8rVQsBED8QqkgdEW6QmqSpGaPDm GtVPq1+UE2vLTehzUat2A7PXb86LOoLK8Zpx2gLpxsX3i3HrtIQiEKPYeagWYDADdTm4 kwXegQK6u1ljZrzv7YuYukfXlw+gf9BItVL/b65CNadRNysiwDi4OMJ0kftmEwh6DhX2 EKTewCdIwhR1dsu4dOfP2TghIvCBC0NrM4B3QBX3+6GmqFObI9oKgJQYRZrXzNdaH2XT 3ei0gGMV8z3v+UAgByykV9FSGol18+FGvjgn6rA1mS4Yvn8PC1HxmAEK8BuoFrcYMAuN j36w== 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 :authenticated-by; bh=b7++PkYHL9tgKvy9vKL5/xYN9+E03skvkyV2ntXLlHU=; b=rlKMobgbIQfVR00thn9jOsi0QwG2UBSpDNQr4qpMuMVflaFEsvTd3+gE8sg84zCEbH RBb3zLdSf8hSx4HqwMCZQOx/dsTe8bB9TLF4Le7l0iQaQNki0+dzbjtXN75egsphB93a gxqsaTxBW5e+pxiMsQNXRtu+mCX+VyG+UmjLpuY9oUvUNQgJ5EApTJ2PT5AVf9rMdgz1 clozrQ5dEeSAMGpIYxipUWmS+2DRuox2l4xYrT/RrhMvZ3yMeuReKGlikAzYRJWWtoZs Up1Fe+8Z6a6Vs5if7GrvLPvQ7UTgdD37/Urz5AEkkrnaJRCqpRzp94RK1sW6CXOIEyru yFzA== ARC-Authentication-Results: i=1; mx.google.com; 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 Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id z6-20020aa79e46000000b0064d72c6eab6si859137pfq.274.2023.06.06.23.27.50; Tue, 06 Jun 2023 23:28:03 -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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235053AbjFGG0b (ORCPT + 99 others); Wed, 7 Jun 2023 02:26:31 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50550 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234352AbjFGG03 (ORCPT ); Wed, 7 Jun 2023 02:26:29 -0400 Received: from rtits2.realtek.com.tw (rtits2.realtek.com [211.75.126.72]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 427641725; Tue, 6 Jun 2023 23:26:25 -0700 (PDT) Authenticated-By: X-SpamFilter-By: ArmorX SpamTrap 5.77 with qID 3576PJQ20024705, This message is accepted by code: ctloc85258 Received: from mail.realtek.com (rtexh36505.realtek.com.tw[172.21.6.25]) by rtits2.realtek.com.tw (8.15.2/2.81/5.90) with ESMTPS id 3576PJQ20024705 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=OK); Wed, 7 Jun 2023 14:25:19 +0800 Received: from RTEXMBS02.realtek.com.tw (172.21.6.95) by RTEXH36505.realtek.com.tw (172.21.6.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.32; Wed, 7 Jun 2023 14:25:34 +0800 Received: from RTEXH36505.realtek.com.tw (172.21.6.25) by RTEXMBS02.realtek.com.tw (172.21.6.95) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.7; Wed, 7 Jun 2023 14:25:33 +0800 Received: from localhost.localdomain (172.21.252.101) by RTEXH36505.realtek.com.tw (172.21.6.25) with Microsoft SMTP Server id 15.1.2375.32 via Frontend Transport; Wed, 7 Jun 2023 14:25:33 +0800 From: Stanley Chang To: Greg Kroah-Hartman CC: Stanley Chang , Vinod Koul , Kishon Vijay Abraham I , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Alan Stern , Ray Chi , Matthias Kaehlcke , Douglas Anderson , Michael Grzeschik , Mathias Nyman , Flavio Suligoi , , , , Subject: [PATCH v3 4/5] dt-bindings: phy: realtek: Add the doc about the Realtek SoC USB 2.0 PHY Date: Wed, 7 Jun 2023 14:24:40 +0800 Message-ID: <20230607062500.24669-4-stanley_chang@realtek.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230607062500.24669-1-stanley_chang@realtek.com> References: <20230607062500.24669-1-stanley_chang@realtek.com> MIME-Version: 1.0 X-KSE-ServerInfo: RTEXMBS02.realtek.com.tw, 9 X-KSE-AntiSpam-Interceptor-Info: fallback X-KSE-Antivirus-Interceptor-Info: fallback X-KSE-AntiSpam-Interceptor-Info: fallback X-KSE-ServerInfo: RTEXH36505.realtek.com.tw, 9 X-KSE-AntiSpam-Interceptor-Info: fallback X-KSE-Antivirus-Interceptor-Info: fallback X-KSE-AntiSpam-Interceptor-Info: fallback X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED 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: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1768024213255230530?= X-GMAIL-MSGID: =?utf-8?q?1768024213255230530?= Add the documentation explain the property about Realtek USB PHY driver. Realtek DHC (digital home center) RTD SoCs support DWC3 XHCI USB controller. Added the driver to drive the USB 2.0 PHY transceivers. Signed-off-by: Stanley Chang --- v2 to v3 change: 1. Broken down into two patches, one for each of USB 2 & 3. 2. Add more description about Realtek RTD SoCs architecture. 3. Removed parameter v1 support for simplification. 4. Revised the compatible name for fallback compatible. 5. Remove some properties that can be set in the driver. v1 to v2 change: Add phy-cells for generic phy driver --- .../bindings/phy/realtek,usb2phy.yaml | 213 ++++++++++++++++++ 1 file changed, 213 insertions(+) create mode 100644 Documentation/devicetree/bindings/phy/realtek,usb2phy.yaml diff --git a/Documentation/devicetree/bindings/phy/realtek,usb2phy.yaml b/Documentation/devicetree/bindings/phy/realtek,usb2phy.yaml new file mode 100644 index 000000000000..69911e20a561 --- /dev/null +++ b/Documentation/devicetree/bindings/phy/realtek,usb2phy.yaml @@ -0,0 +1,213 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +# Copyright 2023 Realtek Semiconductor Corporation +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/phy/realtek,usb2phy.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Realtek DHC SoCs USB 2.0 PHY + +maintainers: + - Stanley Chang + +description: + Realtek USB 2.0 PHY support the digital home center (DHC) RTD series SoCs. + The USB 2.0 PHY driver is designed to support the XHCI controller. The SoCs + support multiple XHCI controllers. One PHY device node maps to one XHCI + controller. + + RTD1295/RTD1619 SoCs USB + The USB architecture includes three XHCI controllers. + Each XHCI maps to one USB 2.0 PHY and map one USB 3.0 PHY on some + controllers. + XHCI controller#0 -- usb2phy -- phy#0 + |- usb3phy -- phy#0 + XHCI controller#1 -- usb2phy -- phy#0 + XHCI controller#2 -- usb2phy -- phy#0 + |- usb3phy -- phy#0 + + RTD1395 SoCs USB + The USB architecture includes two XHCI controllers. + The controller#0 has one USB 2.0 PHY. The controller#1 includes two USB 2.0 + PHY. + XHCI controller#0 -- usb2phy -- phy#0 + XHCI controller#1 -- usb2phy -- phy#0 + |- phy#1 + + RTD1319/RTD1619b SoCs USB + The USB architecture includes three XHCI controllers. + Each XHCI maps to one USB 2.0 PHY and map one USB 3.0 PHY on controllers#2. + XHCI controller#0 -- usb2phy -- phy#0 + XHCI controller#1 -- usb2phy -- phy#0 + XHCI controller#2 -- usb2phy -- phy#0 + |- usb3phy -- phy#0 + + RTD1319d SoCs USB + The USB architecture includes three XHCI controllers. + Each xhci maps to one USB 2.0 PHY and map one USB 3.0 PHY on controllers#0. + XHCI controller#0 -- usb2phy -- phy#0 + |- usb3phy -- phy#0 + XHCI controller#1 -- usb2phy -- phy#0 + XHCI controller#2 -- usb2phy -- phy#0 + + RTD1312c/RTD1315e SoCs USB + The USB architecture includes three XHCI controllers. + Each XHCI maps to one USB 2.0 PHY. + XHCI controller#0 -- usb2phy -- phy#0 + XHCI controller#1 -- usb2phy -- phy#0 + XHCI controller#2 -- usb2phy -- phy#0 + +properties: + compatible: + items: + - enum: + - realtek,rtd1295-usb2phy + - realtek,rtd1395-usb2phy + - realtek,rtd1619-usb2phy + - realtek,rtd1319-usb2phy + - realtek,rtd1619b-usb2phy + - realtek,rtd1312c-usb2phy + - realtek,rtd1319d-usb2phy + - realtek,rtd1315e-usb2phy + - const: realtek,usb2phy + + reg: + items: + - description: PHY data registers + - description: PHY control registers + + "#address-cells": + const: 1 + + "#size-cells": + const: 0 + + "#phy-cells": + const: 0 + + realtek,usb-ctrl: + description: The phandle of syscon used to control USB PHY power domain. + $ref: /schemas/types.yaml#/definitions/phandle + +patternProperties: + "^phy@[0-3]+$": + type: object + description: + Each sub-node is a PHY device for one XHCI controller. + For most Relatek SoCs, one XHCI controller only support one the USB 2.0 + phy. For RTD1395 SoC, the one XHCI controller has two USB 2.0 PHYs. + properties: + realtek,page0-param: + description: PHY parameter at page 0. The data are the pair of the + offset and value. + $ref: /schemas/types.yaml#/definitions/uint32-array + + realtek,page1-param: + description: PHY parameter at page 1. The data are the pair of the + offset and value. + $ref: /schemas/types.yaml#/definitions/uint32-array + + realtek,page2-param: + description: PHY parameter at page 2. The data are the pair of the + offset and value. If the PHY support the page 2 parameter. + $ref: /schemas/types.yaml#/definitions/uint32-array + + realtek,support-page2-param: + description: Set this flag if PHY support page 2 parameter. + type: boolean + + realtek,do-toggle: + description: Set this flag to enable PHY parameter toggle when port + status change. + type: boolean + + realtek,do-toggle-driving: + description: Set this flag to enable PHY parameter toggle for adjust + the driving when port status change. + type: boolean + + realtek,check-efuse: + description: Enable to update PHY parameter from reading otp table. + type: boolean + + realtek,use-default-parameter: + description: Don't set parameter and use default value in hardware. + type: boolean + + realtek,is-double-sensitivity-mode: + description: Set this flag to enable double sensitivity mode. + type: boolean + + realtek,ldo-force-enable: + description: Set this flag to force enable ldo mode. + type: boolean + + realtek,ldo-driving-compensate: + description: Set the value for adjust the PHY driving for ldo mode. + $ref: /schemas/types.yaml#/definitions/uint32 + + realtek,driving-compensate: + description: Set the value for adjust the PHY driving for efuse + table v2. + $ref: /schemas/types.yaml#/definitions/uint32 + +required: + - compatible + - reg + - "#address-cells" + - "#size-cells" + - "#phy-cells" + +additionalProperties: false + +examples: + - | + usb_port0_usb2phy: usb-phy@13214 { + compatible = "realtek,rtd1319d-usb2phy", "realtek,usb2phy"; + reg = <0x13214 0x4>, <0x28280 0x4>; + #address-cells = <1>; + #size-cells = <0>; + #phy-cells = <0>; + realtek,usb-ctrl = <&usb_ctrl>; + + phy@0 { + reg = <0>; + realtek,page0-param = + <0xe0 0xa3>, <0xe4 0xb2>, <0xe5 0x4e>, <0xe6 0x42>; + realtek,page1-param = <0xe3 0x64>; + realtek,page2-param = <0xe7 0x45>; + realtek,support-page2-param; + realtek,do-toggle; + realtek.do-toggle-driving; + realtek,check-efuse; + realtek,is-double-sensitivity-mode; + realtek,ldo-force-enable; + }; + }; + + - | + usb_port1_usb2phy: usb-phy@13c14 { + compatible = "realtek,rtd1395-usb2phy", "realtek,usb2phy"; + reg = <0x132c4 0x4>, <0x31280 0x8>; + #address-cells = <1>; + #size-cells = <0>; + #phy-cells = <0>; + realtek,usb-ctrl = <&usb_ctrl>; + + phy@0 { + reg = <0>; + realtek,page0-param = + <0xe0 0xa3>, <0xe4 0xb2>, <0xe5 0x4e>, <0xe6 0x42>; + realtek,page1-param = <0xe3 0x00>; + realtek,do-toggle; + realtek,check-efuse; + }; + phy@1 { + reg = <1>; + realtek,page0-param = + <0xe0 0xe0>, <0xe4 0xb2>, <0xe5 0x4e>, <0xe6 0x42>; + realtek,page1-param = <0xe3 0x00>; + realtek,do-toggle; + realtek,check-efuse; + }; + };