Received: by 2002:a5b:505:0:0:0:0:0 with SMTP id o5csp5793499ybp; Tue, 15 Oct 2019 05:15:11 -0700 (PDT) X-Google-Smtp-Source: APXvYqxaYqbqiLKyu0Luz9xE1dM5jKlPPhE1+lqn9ApBVTiK1hU9UB80N+gcl5iXAxXQIBvnek5b X-Received: by 2002:a17:906:520a:: with SMTP id g10mr33447125ejm.85.1571141711389; Tue, 15 Oct 2019 05:15:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1571141711; cv=none; d=google.com; s=arc-20160816; b=yeIZi8pEI6T+u2xWO6Rr4vejHibgWRS+TqJd2M/IP9u674UtM+pO4bULt3fhZvMKsv LKlsc4VJeHk6iWo7Qwbgucxmzmi8z9BIGXfyBEeXNPs4s4ldWTn/9NFQN48hL1pHkYtJ ZymDWDEuFJ1SsK+TCgX84Slp7jGfpkd/YJNyY+TL1HtEL7NJ+60JVQpLKfLbV+Pw8qQe yogdKGx+y9vZWuh4ofccfwswt6Opr3bVOgJzv35ha/oEW7IEgDuxne5z4ifCURpSAG8B ozWpVCv3JbTsLgmK45k2vx3zdy4MQOl2+6rt2irVMjwW1XO2J36oOt7Q3E3Y6qnEHlDN kO8g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=a3Ypwy/WTvZWrft3TuW17HqdcwoDOh5rI/7jZZRsaA0=; b=I1WMC9oyr4rBHz0jNMAXTa4sJU4ZCp0dguBcNoAsB0YV25oFUYehF7ckLUSRFQAkfQ RFOqNOyDYbR8Sn2sZ+BHYYQ1MIr3njx1CPoVoKWljGUNQq1h1Y/6/6jY/PI3JlFEPrHm s99CE1UzveAmYCmuH+Hh0FENh7YMghdMWXQUahQqooQHxKRrFjk/raXsNSMb4tH5Q0aw 8vWbl4E/0BWq5AoUAf6v47bXY1sDWTdNSg9zYI5VG3GxEVrWT+r39Ooqj0qH2sq1p0gs GOskXY0kX2lC+eTwyxtroqJywIlF3UrJlKOGE9SDoy6elc2DeNFZlY/0TkzHD5jBpqtV aH6Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=IuhXmlHj; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id v20si12778884edq.195.2019.10.15.05.14.46; Tue, 15 Oct 2019 05:15:11 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=IuhXmlHj; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729036AbfJOLkc (ORCPT + 99 others); Tue, 15 Oct 2019 07:40:32 -0400 Received: from mail.kernel.org ([198.145.29.99]:32854 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726472AbfJOLkb (ORCPT ); Tue, 15 Oct 2019 07:40:31 -0400 Received: from mail-qt1-f177.google.com (mail-qt1-f177.google.com [209.85.160.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 09A4821A49; Tue, 15 Oct 2019 11:40:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1571139631; bh=oGPUs6ScsKBWjiqXvGtsLhcAYD8CQlphpe25WiR9FGY=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=IuhXmlHj2PRLsBZj2269HsoFFYUJrFjAzqKrBXSsQ2lsXfxkAooLORx/ALjRhk/av ERpKqQNIxKws3tEloX9E5mfprd62BzVlhogQ3aOrpQrb9cxxE3XPXOK00XeBGl973Y lVbRtilHoNYYolWIarpI02u6whi0mzrqQRS4oax4= Received: by mail-qt1-f177.google.com with SMTP id m15so30074401qtq.2; Tue, 15 Oct 2019 04:40:31 -0700 (PDT) X-Gm-Message-State: APjAAAWhL/rI0qhYBfHM8DEWfMzO3/NGgv2BBnIN9oadhCsnWZsUElaV kUZYni865pnk1Tn40DT44LkSodXNUr2N3MsQyg== X-Received: by 2002:ac8:44d9:: with SMTP id b25mr39160131qto.300.1571139630214; Tue, 15 Oct 2019 04:40:30 -0700 (PDT) MIME-Version: 1.0 References: <20191007175553.66940-1-john.stultz@linaro.org> <20191007175553.66940-5-john.stultz@linaro.org> <20191011155123.GA14272@bogus> In-Reply-To: From: Rob Herring Date: Tue, 15 Oct 2019 06:40:18 -0500 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [RFC][PATCH v2 4/5] dt-bindings: usb: dwc3: of-simple: add compatible for HiSi To: John Stultz Cc: lkml , Greg Kroah-Hartman , Felipe Balbi , Andy Shevchenko , Mark Rutland , Yu Chen , Matthias Brugger , Chunfeng Yun , Linux USB List , "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" , Masahiro Yamada Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Oct 14, 2019 at 10:57 PM John Stultz wrote: > > On Fri, Oct 11, 2019 at 8:51 AM Rob Herring wrote: > > > > On Mon, Oct 07, 2019 at 04:00:24PM -0700, John Stultz wrote: > > > On Mon, Oct 7, 2019 at 2:11 PM Rob Herring wrote: > > > > > > > > On Mon, Oct 7, 2019 at 2:07 PM John Stultz wrote: > > > > > > > > > > On Mon, Oct 7, 2019 at 11:38 AM Rob Herring wrote: > > > > > > > > > > > > On Mon, Oct 7, 2019 at 12:56 PM John Stultz wrote: > > > > > > > > > > > > > > Add necessary compatible flag for HiSi's DWC3 so > > > > > > > dwc3-of-simple will probe. > > > > > > > > > > > > > > Cc: Greg Kroah-Hartman > > > > > > > Cc: Felipe Balbi > > > > > > > Cc: Andy Shevchenko > > > > > > > Cc: Rob Herring > > > > > > > Cc: Mark Rutland > > > > > > > Cc: Yu Chen > > > > > > > Cc: Matthias Brugger > > > > > > > Cc: Chunfeng Yun > > > > > > > Cc: linux-usb@vger.kernel.org > > > > > > > Cc: devicetree@vger.kernel.org > > > > > > > Signed-off-by: John Stultz > > > > > > > --- > > > > > > > v2: Tweaked clock names as clk_usb3phy_ref didn't seem right. > > > > > > > --- > > > > > > > .../devicetree/bindings/usb/hisi,dwc3.txt | 52 +++++++++++++++++++ > > > > > > > 1 file changed, 52 insertions(+) > > > > > > > create mode 100644 Documentation/devicetree/bindings/usb/hisi,dwc3.txt > > > > > > > > > > > > Can you make this a schema. > > > > > > > > > > Sorry, I'm not sure exactly what you're asking. I'm guessing from > > > > > grepping around you want the bindings in yaml instead (I see a few > > > > > examples)? > > > > > > > > Yes. > > > > > > > > > Is there some pointer to documentation? The > > > > > Documentation/devicetree/bindings/writing-bindings.txt file doesn't > > > > > seem to say much on it. > > > > > > > > You mean Documentation/devicetree/writing-schemas.rst? There's that > > > > and Documentation/devicetree/bindings/example-schema.yaml which has a > > > > bunch of annotations on what each part means. > > > > > > Ah! Sorry for missing that. Thanks for the pointer, though I may get > > > away with dropping this one. > > > > > > > > > If it's only clocks and resets for the wrapper node, just make this > > > > > > all one node. > > > > > > > > > > Just to make sure I'm following, you're suggesting I put all the > > > > > clocks/resets in the dwc3 node (renamed to usb for the node name) and > > > > > not add the wrapper? > > > > > > > > Yes. > > > > > > > > > I'll have to see if that's possible. The generic dwc3 binding wants 3 > > > > > clocks, but I only have two in the code I've worked with (similarly it > > > > > seems to only want two resets, not 4) so I'll have to see if I can > > > > > figure out how to adapt that. > > > > > > > > Possible since commit fe8abf332b8f ("usb: dwc3: support clocks and > > > > resets for DWC3 core"). > > > > > > Ok. It *seems* like I can get it working with the existing binding > > > then. There's a little funkiness with the core expecting three clocks > > > while I only have two (currently I'm duplicating the "bus_early" clk > > > for "suspend". Is there a preferred way to do this sort of hack?), and > > > I'm a little worried that only the first reset is being used (instead > > > of the 4 specified), but it seems to work so far. > > > > I would assume that you simply don't know how the 'suspend' clock is > > connected rather than you don't have one. But that's maybe not a > > problem you can fix. > > > > I would make dwc3 use devm_clk_bulk_get_all and allow for less than 3 > > clocks. And do a similar change for resets. > > So got a chance to start implementing this and it seems like it will > work. That said, it feels like I'm duplicating logic already in the > dwc-of-simple.c implementation (which already handles arbitrary clks > and resets), particularly if I try to implement the device specific > need_reset quirk used by HiKey960 (and rk3399). > > Do you feel having that logic copied is worth avoiding the extra > bindings? Or is it too duplicative? We already have reset and clock setup in 2 places, so it's already kind of duplicated. Why not refactor into a helper that both can use? Rob