Received: by 2002:a05:6358:11c7:b0:104:8066:f915 with SMTP id i7csp5888200rwl; Wed, 22 Mar 2023 03:52:41 -0700 (PDT) X-Google-Smtp-Source: AKy350axqOxl71NsELzgnb4sLHsutRqnC6ytScePYA1I8odIbjAOvzrbwALUBCL/yaD2P246Pr3K X-Received: by 2002:a17:902:d0d4:b0:1a0:76e8:a4d with SMTP id n20-20020a170902d0d400b001a076e80a4dmr1265753pln.14.1679482361054; Wed, 22 Mar 2023 03:52:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679482361; cv=none; d=google.com; s=arc-20160816; b=TeuOizpNR3aNxm+ikvk07kRfsG8VjYRxIOEaVOwiS526Hbi30jenCA4v3traSiVsTO sgjzCExwzz1GXr2KOe3waeuvhs6pUPuH6D9VYHLXNT3cpdxpxsIP7n6TVV5GPFAT3EaR O+1JTRadGSteuYDMiwZRKt8ukkL4Js1WaXJqgE16FFcM92VEtA9rWe0MFn5pO9IspkOH MfjVUBQRR0ivy0v3Nn13+HSZYzsRwTnf46/7fYUaXHlFmJiZrW7tq4QfJfyddy7Z0FMt fw3z9sw3cQu9VYUhtJNLM9GYRUL56i6bqeHsZldG/S2RNe+MKBukruDCR/9+djgVCcXM t4Tg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:content-language:subject:user-agent:mime-version :date:message-id; bh=+73kWYXc79O93NB/w3cJ33a5hLeoaow0tt55scYXFPM=; b=bwaTKJ6UhnyY+78rs9fiMKpKaZ2nlyWha7+4afBs3ymeRlQ3hyVwmxMCgsPDKMFNgR +e4FRESm2OQFYjZv0+tjoE7CFz/HFEck5W6IYqAaJwwoJoDQ+QOQmakDim9o5HmPCIVv qgDETdk+NqD3ELt3IBnL1YGi/Fpgo7L9DM/L/c9EGoRR3+m3WmUnQAcytttU14cLul9n dCpZb9Z0pdG+d9t/+jKf7yTXxrgoEUR4cSclvtPcBPK7dnwsXLwI2opVWb4WmYjnDsYq vn6g52XNkKJopRi74xjcdH3kBBYnLdSCMnoSMdhNaVZV8f4yEr0Cehn8zNSiF+sYmWO7 uFnA== 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 Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id q38-20020a635066000000b0050c06cdfb7dsi14984615pgl.288.2023.03.22.03.52.28; Wed, 22 Mar 2023 03:52:41 -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 S230259AbjCVKvo convert rfc822-to-8bit (ORCPT + 99 others); Wed, 22 Mar 2023 06:51:44 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42128 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229807AbjCVKvf (ORCPT ); Wed, 22 Mar 2023 06:51:35 -0400 Received: from ex01.ufhost.com (ex01.ufhost.com [61.152.239.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BEBBD5FA71; Wed, 22 Mar 2023 03:51:15 -0700 (PDT) Received: from EXMBX166.cuchost.com (unknown [175.102.18.54]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "EXMBX166", Issuer "EXMBX166" (not verified)) by ex01.ufhost.com (Postfix) with ESMTP id ADB2F24E1FE; Wed, 22 Mar 2023 18:50:39 +0800 (CST) Received: from EXMBX171.cuchost.com (172.16.6.91) by EXMBX166.cuchost.com (172.16.6.76) with Microsoft SMTP Server (TLS) id 15.0.1497.42; Wed, 22 Mar 2023 18:50:39 +0800 Received: from [192.168.125.108] (183.27.97.64) by EXMBX171.cuchost.com (172.16.6.91) with Microsoft SMTP Server (TLS) id 15.0.1497.42; Wed, 22 Mar 2023 18:50:38 +0800 Message-ID: <6a223f1c-8c8b-8d07-1cf5-9a83949d0fd3@starfivetech.com> Date: Wed, 22 Mar 2023 18:50:38 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 Subject: Re: [PATCH v3 5/5] dts: usb: add StarFive JH7110 USB dts configuration. Content-Language: en-US To: Roger Quadros , Rob Herring , "Pawel Laszczak" CC: Emil Renner Berthing , Conor Dooley , Vinod Koul , Kishon Vijay Abraham I , Krzysztof Kozlowski , Greg Kroah-Hartman , Peter Chen , Philipp Zabel , , , , , , Paul Walmsley , Palmer Dabbelt , Albert Ou References: <20230315104411.73614-1-minda.chen@starfivetech.com> <20230315104411.73614-6-minda.chen@starfivetech.com> <20230320153419.GB1713196-robh@kernel.org> <2311a888-8861-ade6-d46f-caff4fc3ec73@starfivetech.com> From: Minda Chen In-Reply-To: Content-Type: text/plain; charset="UTF-8" X-Originating-IP: [183.27.97.64] X-ClientProxiedBy: EXCAS066.cuchost.com (172.16.6.26) To EXMBX171.cuchost.com (172.16.6.91) X-YovoleRuleAgent: yovoleflag Content-Transfer-Encoding: 8BIT X-Spam-Status: No, score=-0.0 required=5.0 tests=NICE_REPLY_A,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: X-Mailing-List: linux-kernel@vger.kernel.org On 2023/3/22 16:00, Roger Quadros wrote: > Hi Minda, > > On 21/03/2023 14:35, Minda Chen wrote: >> >> >> On 2023/3/20 23:34, Rob Herring wrote: >>> On Wed, Mar 15, 2023 at 06:44:11PM +0800, Minda Chen wrote: >>>> USB Glue layer and Cadence USB subnode configuration, >>>> also includes USB and PCIe phy dts configuration. >>>> >>>> Signed-off-by: Minda Chen >>>> --- >>>> .../jh7110-starfive-visionfive-2.dtsi | 7 +++ >>>> arch/riscv/boot/dts/starfive/jh7110.dtsi | 54 +++++++++++++++++++ >>>> 2 files changed, 61 insertions(+) >>>> >>>> diff --git a/arch/riscv/boot/dts/starfive/jh7110-starfive-visionfive-2.dtsi b/arch/riscv/boot/dts/starfive/jh7110-starfive-visionfive-2.dtsi >>>> index a132debb9b53..c64476aebc1a 100644 >>>> --- a/arch/riscv/boot/dts/starfive/jh7110-starfive-visionfive-2.dtsi >>>> +++ b/arch/riscv/boot/dts/starfive/jh7110-starfive-visionfive-2.dtsi >>>> @@ -236,3 +236,10 @@ >>>> pinctrl-0 = <&uart0_pins>; >>>> status = "okay"; >>>> }; >>>> + >>>> +&usb0 { >>>> + status = "okay"; >>>> + usbdrd_cdns3: usb@0 { >>>> + dr_mode = "peripheral"; >>>> + }; >>>> +}; >>>> diff --git a/arch/riscv/boot/dts/starfive/jh7110.dtsi b/arch/riscv/boot/dts/starfive/jh7110.dtsi >>>> index f70a4ed47eb4..17722fd1be62 100644 >>>> --- a/arch/riscv/boot/dts/starfive/jh7110.dtsi >>>> +++ b/arch/riscv/boot/dts/starfive/jh7110.dtsi >>>> @@ -362,6 +362,60 @@ >>>> status = "disabled"; >>>> }; >>>> >>>> + usb0: usb@10100000 { >>>> + compatible = "starfive,jh7110-usb"; >>>> + clocks = <&stgcrg JH7110_STGCLK_USB0_LPM>, >>>> + <&stgcrg JH7110_STGCLK_USB0_STB>, >>>> + <&stgcrg JH7110_STGCLK_USB0_APB>, >>>> + <&stgcrg JH7110_STGCLK_USB0_AXI>, >>>> + <&stgcrg JH7110_STGCLK_USB0_UTMI_APB>; >>>> + clock-names = "lpm", "stb", "apb", "axi", "utmi_apb"; >>>> + resets = <&stgcrg JH7110_STGRST_USB0_PWRUP>, >>>> + <&stgcrg JH7110_STGRST_USB0_APB>, >>>> + <&stgcrg JH7110_STGRST_USB0_AXI>, >>>> + <&stgcrg JH7110_STGRST_USB0_UTMI_APB>; >>>> + starfive,stg-syscon = <&stg_syscon 0x4 0xc4 0x148 0x1f4>; >>>> + starfive,sys-syscon = <&sys_syscon 0x18>; >>>> + status = "disabled"; >>>> + #address-cells = <1>; >>>> + #size-cells = <1>; >>>> + ranges = <0x0 0x0 0x10100000 0x100000>; >>>> + >>>> + usbdrd_cdns3: usb@0 { >>>> + compatible = "cdns,usb3"; >>> >>> This pattern of USB wrapper and then a "generic" IP node is discouraged >>> if it is just clocks, resets, power-domains, etc. IOW, unless there's an >>> actual wrapper h/w block with its own registers, then don't do this >>> split. Merge it all into a single node. >>> >> I am afraid it is difficult to merge in one single node. >> >> 1.If cadence3 usb device is still the sub device. All the dts setting are in >> StarFive node. This can not work. >> StarFive driver code Using platform_device_add generate cadenc3 usb platform device. >> Even IO memory space setting can be passed to cadence3 USB, PHY setting can not be passed. >> For the PHY driver using dts now. But in this case, Cadence3 USB no dts configure. >> >> 2. Just one USB Cadence platform device. >> Maybe this can work. But Cadence USB driver code cdns3-plat.c required to changed. >> >> Hi Peter Pawel and Roger >> There is a "platform_suspend" function pointer in "struct cdns3_platform_data", >> Add "platform_init" and "platform_exit" for our JH7110 platform. Maybe it can work. >> Is it OK? > > Once you move all the syscon register modifications from your wrapper driver > to your PHY driver, only clock and reset control are left in your wrapper driver. > This is generic enough to be done in the cdns3,usb driver itself so you don't need a > wrapper node. > > Pawel, do you agree? > move all the syscon codes to PHY driver is ok. I found dwc3/dwc3-of-simple.c is public codes and contain just clock and reset control codes. I can change the residual codes to public codes. But I found rockchip 3399 usb dts which is one of dwc3 simple platform still contain two nodes. See Documentation/devicetree/bindings/usb/rockchip,rk3399-dwc3.yaml >>>> + reg = <0x0 0x10000>, >>>> + <0x10000 0x10000>, >>>> + <0x20000 0x10000>; >>>> + reg-names = "otg", "xhci", "dev"; >>>> + interrupts = <100>, <108>, <110>; >>>> + interrupt-names = "host", "peripheral", "otg"; >>>> + phys = <&usbphy0>; >>>> + phy-names = "cdns3,usb2-phy"; >>> >>> No need for *-names when there is only 1 entry. Names are local to the >>> device and only to distinguish entries, so 'usb2' would be sufficient >>> here. >>> >> The PHY name 'cdns3,usb2-phy' is defined in cadence3 usb driver code. >> Cadence USB3 driver code using this name to get PHY instance. >> And all the PHY ops used in Cadence3 USB sub device. >>>> + maximum-speed = "super-speed"; >>>> + }; >>>> + }; >>>> + >>>> + usbphy0: phy@10200000 { >>>> + compatible = "starfive,jh7110-usb-phy"; >>>> + reg = <0x0 0x10200000 0x0 0x10000>; >>>> + clocks = <&syscrg JH7110_SYSCLK_USB_125M>, >>>> + <&stgcrg JH7110_STGCLK_USB0_APP_125>; >>>> + clock-names = "125m", "app_125"; >>>> + #phy-cells = <0>; >>>> + }; >>>> + >>>> + pciephy0: phy@10210000 { >>>> + compatible = "starfive,jh7110-pcie-phy"; >>>> + reg = <0x0 0x10210000 0x0 0x10000>; >>>> + #phy-cells = <0>; >>>> + }; >>>> + >>>> + pciephy1: phy@10220000 { >>>> + compatible = "starfive,jh7110-pcie-phy"; >>>> + reg = <0x0 0x10220000 0x0 0x10000>; >>>> + #phy-cells = <0>; >>>> + }; >>>> + >>>> stgcrg: clock-controller@10230000 { >>>> compatible = "starfive,jh7110-stgcrg"; >>>> reg = <0x0 0x10230000 0x0 0x10000>; >>>> -- >>>> 2.17.1 >>>> > > cheers, > -roger