Message ID | 20230502050452.27276-2-stanley_chang@realtek.com |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp365533vqo; Mon, 1 May 2023 22:09:32 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ76vot03jS8MLSY6IiAbbx/RIgEdSWXExc1mH2Tt3fZxxNEdk4wHT0Xwp4Vx8OvivlvSZhg X-Received: by 2002:a05:6a00:2451:b0:627:f0e1:4fbf with SMTP id d17-20020a056a00245100b00627f0e14fbfmr22768897pfj.33.1683004172171; Mon, 01 May 2023 22:09:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1683004172; cv=none; d=google.com; s=arc-20160816; b=uHbQzqUdqOw7V3sykQhTQ6rsEcDsNlwvf0E8b0gkz1CG10Pd+mX4tamkQAxhKgAvso QUSJW5r7LQDMeoC5KwnJnybSP2WOrfK5GT/2IgsBmSObEjhkR2Prytd/yiCqqxKgvBqb Xg7QbpdFUM4iV87aUAGIVYjSL5ymRyvgpkCcsclsseMhRjOhPwqnoW2q87Pt399H0S9v K5CR9CgnpUHLZOOTAUbKtMfk8XqHBQ0GMqdQgZhMuanI5Ncgs3cS2/jQlX/B2y0QwApE MH9kg/7oyO3fum1s4rjON0CMz6zKogBayubRd4A4JOEgWAmwqvBCCVCg+jJrFF0zrIBh j6xg== 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=vjL0vcoZeaHXCWFY1qW/90IvygdwExHzpBx3LWJZUN4=; b=Nlx1y7a6BpmJeysUHgDeRY437bW5eBHoFpAM8WlflUKyGpnI01Hyv32zpl4/gzmBqO BJPOZPWlItiExS1YezgJOTisyQAZ5A1DtwtFxpMvdK3HPacTGbmUwtkVfoMJRZk1MmmZ ci45l9l3eTMiH4lI2wgAkqBpwlFewsNrU8cAoWMiYMpMHy3LTTaIZQWodXy348aIfMX9 LFlSeddYzIUlHGtXRW1cTVOJGspHxt4ZT2pu7+L8+lmUAD5UiAWkeoj8O3uc76raCoKi XBL3d8kNYMUd/vYzTUbgPKLAdU5i3REcqYUFmVvqH51DmRRDmeGb5E2uyR2kzACC+NyB sHVQ== 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 e11-20020aa7980b000000b0063b68fa0803si30537736pfl.268.2023.05.01.22.09.17; Mon, 01 May 2023 22:09:32 -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 S233481AbjEBFFP (ORCPT <rfc822;rbbytesnap@gmail.com> + 99 others); Tue, 2 May 2023 01:05:15 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49344 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229379AbjEBFFK (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Tue, 2 May 2023 01:05:10 -0400 Received: from rtits2.realtek.com.tw (rtits2.realtek.com [211.75.126.72]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F13F03ABB; Mon, 1 May 2023 22:05:07 -0700 (PDT) Authenticated-By: X-SpamFilter-By: ArmorX SpamTrap 5.77 with qID 34254n3G2007207, This message is accepted by code: ctloc85258 Received: from mail.realtek.com (rtexh36506.realtek.com.tw[172.21.6.27]) by rtits2.realtek.com.tw (8.15.2/2.81/5.90) with ESMTPS id 34254n3G2007207 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=OK); Tue, 2 May 2023 13:04:50 +0800 Received: from RTEXMBS03.realtek.com.tw (172.21.6.96) by RTEXH36506.realtek.com.tw (172.21.6.27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.17; Tue, 2 May 2023 13:04:53 +0800 Received: from RTEXH36506.realtek.com.tw (172.21.6.27) by RTEXMBS03.realtek.com.tw (172.21.6.96) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.7; Tue, 2 May 2023 13:04:53 +0800 Received: from localhost.localdomain (172.21.252.101) by RTEXH36506.realtek.com.tw (172.21.6.27) with Microsoft SMTP Server id 15.1.2507.17 via Frontend Transport; Tue, 2 May 2023 13:04:53 +0800 From: Stanley Chang <stanley_chang@realtek.com> To: Thinh Nguyen <Thinh.Nguyen@synopsys.com> CC: Stanley Chang <stanley_chang@realtek.com>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Rob Herring <robh+dt@kernel.org>, "Krzysztof Kozlowski" <krzysztof.kozlowski+dt@linaro.org>, Felipe Balbi <balbi@kernel.org>, <linux-usb@vger.kernel.org>, <devicetree@vger.kernel.org>, <linux-kernel@vger.kernel.org> Subject: [PATCH v4 2/2] dt-bindings: usb: snps,dwc3: Add the compatible name 'snps,dwc3-rtk-soc' Date: Tue, 2 May 2023 13:04:47 +0800 Message-ID: <20230502050452.27276-2-stanley_chang@realtek.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230502050452.27276-1-stanley_chang@realtek.com> References: <20230502050452.27276-1-stanley_chang@realtek.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7BIT Content-Type: text/plain; charset=US-ASCII X-KSE-ServerInfo: RTEXMBS03.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 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: <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?1764757782907595755?= X-GMAIL-MSGID: =?utf-8?q?1764757782907595755?= |
Series |
[v4,1/2] usb: dwc3: core: add support for RTK SoC custom's global register start address
|
|
Commit Message
Stanley Chang[昌育德]
May 2, 2023, 5:04 a.m. UTC
Add a new compatible name 'snps,dwc3-rtk-soc' of DT for realtek dwc3
core to adjust the global register start address
The RTK DHC SoCs were designed, the global register address offset at
0x8100. The default address offset is constant at DWC3_GLOBALS_REGS_START
(0xc100). Therefore, add the compatible name of device-tree to specify
the SoC custom's global register start address.
Signed-off-by: Stanley Chang <stanley_chang@realtek.com>
---
v3 to v4 change:
Use the compatible name to specify the global register address offset.
If the compatible name is "snps,dwc3-rtk-soc", then the offset use 0x8100.
Otherwise, the offset is default value 0xc100.
v2 to v3 change:
1. Fix the dtschema validation error.
v1 to v2 change:
1. Change the name of the property "snps,global-regs-starting-offset".
2. Adjust the format of comment.
3. Add initial value of the global_regs_starting_offset
4. Remove the log of dev_info.
---
Documentation/devicetree/bindings/usb/snps,dwc3.yaml | 1 +
1 file changed, 1 insertion(+)
Comments
On 02/05/2023 07:04, Stanley Chang wrote: > Add a new compatible name 'snps,dwc3-rtk-soc' of DT for realtek dwc3 > core to adjust the global register start address > > The RTK DHC SoCs were designed, the global register address offset at What are: "RTK" and "DHC"? These are manufactured by Synopsys as you suggest in the patch? > 0x8100. The default address offset is constant at DWC3_GLOBALS_REGS_START > (0xc100). Therefore, add the compatible name of device-tree to specify > the SoC custom's global register start address. > > Signed-off-by: Stanley Chang <stanley_chang@realtek.com> Based on your email, rtk could mean Realtek, so the compatible is clearly wrong. > --- > v3 to v4 change: > Use the compatible name to specify the global register address offset. > If the compatible name is "snps,dwc3-rtk-soc", then the offset use 0x8100. > Otherwise, the offset is default value 0xc100. > Best regards, Krzysztof
Hi Krzysztof, > On 02/05/2023 07:04, Stanley Chang wrote: > > Add a new compatible name 'snps,dwc3-rtk-soc' of DT for realtek dwc3 > > core to adjust the global register start address > > > > The RTK DHC SoCs were designed, the global register address offset at > > What are: "RTK" and "DHC"? These are manufactured by Synopsys as you > suggest in the patch? RTK is Realtek. DHC is the department name in Realtek and the abbreviation of the Digital Home Center. The USB controller of RTK DHC SoCs used the DWC3 IP of Synopsys. > > 0x8100. The default address offset is constant at > > DWC3_GLOBALS_REGS_START (0xc100). Therefore, add the compatible > name > > of device-tree to specify the SoC custom's global register start address. > > > > Signed-off-by: Stanley Chang <stanley_chang@realtek.com> > > Based on your email, rtk could mean Realtek, so the compatible is clearly > wrong. The compatible name "snps,dwc3-rtk-soc" wants to represent the dwc3 driver, which requires a different offset for Realtek SoCs > > --- > > v3 to v4 change: > > Use the compatible name to specify the global register address offset. > > If the compatible name is "snps,dwc3-rtk-soc", then the offset use 0x8100. > > Otherwise, the offset is default value 0xc100. > > > > Best regards, > Krzysztof > > > ------Please consider the environment before printing this e-mail.
On 02/05/2023 10:05, Stanley Chang[昌育德] wrote: > Hi Krzysztof, > >> On 02/05/2023 07:04, Stanley Chang wrote: >>> Add a new compatible name 'snps,dwc3-rtk-soc' of DT for realtek dwc3 >>> core to adjust the global register start address >>> >>> The RTK DHC SoCs were designed, the global register address offset at >> >> What are: "RTK" and "DHC"? These are manufactured by Synopsys as you >> suggest in the patch? > > RTK is Realtek. > DHC is the department name in Realtek and the abbreviation of the Digital Home Center. > The USB controller of RTK DHC SoCs used the DWC3 IP of Synopsys. Then entire compatible is not correct. Vendor is Realtek not Synopsys. DHC is not even device name. Use real device names. > >>> 0x8100. The default address offset is constant at >>> DWC3_GLOBALS_REGS_START (0xc100). Therefore, add the compatible >> name >>> of device-tree to specify the SoC custom's global register start address. >>> >>> Signed-off-by: Stanley Chang <stanley_chang@realtek.com> >> >> Based on your email, rtk could mean Realtek, so the compatible is clearly >> wrong. > > The compatible name "snps,dwc3-rtk-soc" wants to represent the dwc3 driver, which requires a different offset for Realtek SoCs No. The compatible represents hardware, not driver. Use compatible matching real hardware. Best regards, Krzysztof
Hi Krzysztof, > >> On 02/05/2023 07:04, Stanley Chang wrote: > >>> Add a new compatible name 'snps,dwc3-rtk-soc' of DT for realtek dwc3 > >>> core to adjust the global register start address > >>> > >>> The RTK DHC SoCs were designed, the global register address offset > >>> at > >> > >> What are: "RTK" and "DHC"? These are manufactured by Synopsys as you > >> suggest in the patch? > > > > RTK is Realtek. > > DHC is the department name in Realtek and the abbreviation of the Digital > Home Center. > > The USB controller of RTK DHC SoCs used the DWC3 IP of Synopsys. > > Then entire compatible is not correct. Vendor is Realtek not Synopsys. > DHC is not even device name. Use real device names. So, can we use the compatible name as 'realtek,dwc3' ? For example, @@ -2224,10 +2230,16 @@ static const struct dev_pm_ops dwc3_dev_pm_ops = { #ifdef CONFIG_OF static const struct of_device_id of_dwc3_match[] = { { - .compatible = "snps,dwc3" + .compatible = "snps,dwc3", + .data = (void *)DWC3_GLOBALS_REGS_START, + }, + { + .compatible = "realtek,dwc3", + .data = (void *)DWC3_GLOBALS_REGS_START_FOR_RTK, }, { - .compatible = "synopsys,dwc3" + .compatible = "synopsys,dwc3", + .data = (void *)DWC3_GLOBALS_REGS_START, }, { }, }; > > > >>> 0x8100. The default address offset is constant at > >>> DWC3_GLOBALS_REGS_START (0xc100). Therefore, add the compatible > >> name > >>> of device-tree to specify the SoC custom's global register start address. > >>> > >>> Signed-off-by: Stanley Chang <stanley_chang@realtek.com> > >> > >> Based on your email, rtk could mean Realtek, so the compatible is > >> clearly wrong. > > > > The compatible name "snps,dwc3-rtk-soc" wants to represent the dwc3 > > driver, which requires a different offset for Realtek SoCs > > No. The compatible represents hardware, not driver. Use compatible matching > real hardware. > > Best regards, > Krzysztof > > > ------Please consider the environment before printing this e-mail.
On 02/05/2023 10:56, Stanley Chang[昌育德] wrote: > Hi Krzysztof, > >>>> On 02/05/2023 07:04, Stanley Chang wrote: >>>>> Add a new compatible name 'snps,dwc3-rtk-soc' of DT for realtek dwc3 >>>>> core to adjust the global register start address >>>>> >>>>> The RTK DHC SoCs were designed, the global register address offset >>>>> at >>>> >>>> What are: "RTK" and "DHC"? These are manufactured by Synopsys as you >>>> suggest in the patch? >>> >>> RTK is Realtek. >>> DHC is the department name in Realtek and the abbreviation of the Digital >> Home Center. >>> The USB controller of RTK DHC SoCs used the DWC3 IP of Synopsys. >> >> Then entire compatible is not correct. Vendor is Realtek not Synopsys. >> DHC is not even device name. Use real device names. > > So, can we use the compatible name as 'realtek,dwc3' ? dwc3 is not a real device name for Realtek. Best regards, Krzysztof
Hi Krzysztof, > >>>> On 02/05/2023 07:04, Stanley Chang wrote: > >>>>> Add a new compatible name 'snps,dwc3-rtk-soc' of DT for realtek > >>>>> dwc3 core to adjust the global register start address > >>>>> > >>>>> The RTK DHC SoCs were designed, the global register address offset > >>>>> at > >>>> > >>>> What are: "RTK" and "DHC"? These are manufactured by Synopsys as > >>>> you suggest in the patch? > >>> > >>> RTK is Realtek. > >>> DHC is the department name in Realtek and the abbreviation of the > >>> Digital > >> Home Center. > >>> The USB controller of RTK DHC SoCs used the DWC3 IP of Synopsys. > >> > >> Then entire compatible is not correct. Vendor is Realtek not Synopsys. > >> DHC is not even device name. Use real device names. > > > > So, can we use the compatible name as 'realtek,dwc3' ? > > dwc3 is not a real device name for Realtek. We still use dwc3 IP in Realtek's SoC. Why is the name "dwc3" inappropriate? Should compatibility names use the SoC name? For example, our SoC name RTD129x, RTD139x, RTD161x, RTD161xB, etc. Should we use these names in compatible names? "realtek, rtd129x", "realtek, rtd139x", "realtek, rtd161x"...etc. Thanks, Stanley
On 02/05/2023 12:37, Stanley Chang[昌育德] wrote: > Hi Krzysztof, > >>>>>> On 02/05/2023 07:04, Stanley Chang wrote: >>>>>>> Add a new compatible name 'snps,dwc3-rtk-soc' of DT for realtek >>>>>>> dwc3 core to adjust the global register start address >>>>>>> >>>>>>> The RTK DHC SoCs were designed, the global register address offset >>>>>>> at >>>>>> >>>>>> What are: "RTK" and "DHC"? These are manufactured by Synopsys as >>>>>> you suggest in the patch? >>>>> >>>>> RTK is Realtek. >>>>> DHC is the department name in Realtek and the abbreviation of the >>>>> Digital >>>> Home Center. >>>>> The USB controller of RTK DHC SoCs used the DWC3 IP of Synopsys. >>>> >>>> Then entire compatible is not correct. Vendor is Realtek not Synopsys. >>>> DHC is not even device name. Use real device names. >>> >>> So, can we use the compatible name as 'realtek,dwc3' ? >> >> dwc3 is not a real device name for Realtek. > > We still use dwc3 IP in Realtek's SoC. Why is the name "dwc3" inappropriate? dwc3 is the name of design coming from Synopsys. Your device is probably called differently. Why it is inappropriate? Because your device is not called DWC3, even though you use IP from Synopsys. Although vendor,dwc3 is already used as compatible in several cases, I don't think it is a good pattern. > > Should compatibility names use the SoC name? > For example, our SoC name > RTD129x, RTD139x, RTD161x, RTD161xB, etc. > Should we use these names in compatible names? > "realtek, rtd129x", "realtek, rtd139x", "realtek, rtd161x"...etc. Regular rules apply, because your device is not special. https://elixir.bootlin.com/linux/v6.1-rc1/source/Documentation/devicetree/bindings/writing-bindings.rst#L42 Therefore either SoC-based device specific name or followed by: 1. SoC-based device specific fallback, 2. Family-device generic fallback, Best regards, Krzysztof
Hi Krzysztof, > Regular rules apply, because your device is not special. > https://elixir.bootlin.com/linux/v6.1-rc1/source/Documentation/devicetree/bin > dings/writing-bindings.rst#L42 > > Therefore either SoC-based device specific name or followed by: > 1. SoC-based device specific fallback, > 2. Family-device generic fallback, > Thanks for your suggestion. I will follow these rules. Thinh has a good suggestion for this problem. His solution is simply. And no modify the compatible name and property of dwc3. Thanks, Stanley
diff --git a/Documentation/devicetree/bindings/usb/snps,dwc3.yaml b/Documentation/devicetree/bindings/usb/snps,dwc3.yaml index 50edc4da780e..40d9a461ed93 100644 --- a/Documentation/devicetree/bindings/usb/snps,dwc3.yaml +++ b/Documentation/devicetree/bindings/usb/snps,dwc3.yaml @@ -33,6 +33,7 @@ properties: contains: oneOf: - const: snps,dwc3 + - const: snps,dwc3-rtk-soc - const: synopsys,dwc3 deprecated: true