From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.5 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 27775C2BABC for ; Tue, 7 Apr 2020 08:10:30 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id F05D1206F7 for ; Tue, 7 Apr 2020 08:10:29 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=cerno.tech header.i=@cerno.tech header.b="ibq8DtWC"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="gDAM6Us5" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org F05D1206F7 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=cerno.tech Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id C428F6E5CA; Tue, 7 Apr 2020 08:09:36 +0000 (UTC) Received: from wout4-smtp.messagingengine.com (wout4-smtp.messagingengine.com [64.147.123.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 90DED6E525 for ; Tue, 7 Apr 2020 07:12:57 +0000 (UTC) Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.west.internal (Postfix) with ESMTP id 41E5569F; Tue, 7 Apr 2020 03:12:56 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute4.internal (MEProxy); Tue, 07 Apr 2020 03:12:56 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cerno.tech; h= date:from:to:cc:subject:message-id:references:mime-version :content-type:in-reply-to; s=fm2; bh=I3/Di80PJiQMVee28CsWJsRHUhM 5QeBlnEv3CyCX3cw=; b=ibq8DtWCdfm0bHWwPbVCXibtbNlIJqxKxTD84rikqV3 7pnZHivzEgJ53yosvfy20zRHODxKBEl5UdXvui/if9DmAK47dFrOTB+nkx7oNwJe MWlDfwK4WTEl+tft1p84vd9Bd6jouxGOCvJGS+BxLJRuE6Kwst+X0yVrHyyz4HQU Ndiop1XNpX66ywiP3fcoHY0bqGnI4K8J8upUH4/TQ/xeJD8RLxVv/VUAAtSzOapk weTJD8Vrw4gx2gHeRpTh5UcwlMAChl2uz2Yn0H9azOcQ4iC2nC/JkoBtlDag5zMJ uDc771Jnni174T7ug8Saw3nAKcBmpY7Q8nInnD/vPNw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; bh=I3/Di8 0PJiQMVee28CsWJsRHUhM5QeBlnEv3CyCX3cw=; b=gDAM6Us5rJhFwmxx+jS3YE ooZtFWM0Ie99/lwBFa97V5tm+EUFlo8+4EzyUF3FiEqgaFQ1WMbzK6l9nbUdWu1q 9FCkRYs4hfXMr5oMF4efv675XtkK6e2rcN85hudKC1At+O1oYo8ZVfNRsiQET1YR qnToFkGqvs4b1HnxdPdPY/jhPwi0OBhpZDWjDmRSzdeRokC0x27gFbYX+kwAaeXM lGQH69KO7ICso6Dya2F+yzao4vmRulB0jteWPthFE6Vv+2U2DIHGhhMUy1bXGWpL lWpPcROGGgXCmlhLhdAzSdRBp5HrBGgltUOWX/PJtPfJ0PRC64TVBdsezL4Xajqw == X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduhedrudeggdduudehucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepfffhvffukfhfgggtuggjsehgtderredttddvnecuhfhrohhmpeforgigihhm vgcutfhiphgrrhguuceomhgrgihimhgvsegtvghrnhhordhtvggthheqnecuffhomhgrih hnpeguvghvihgtvghtrhgvvgdrohhrghenucfkphepledtrdekledrieekrdejieenucev lhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrgigihhmvg estggvrhhnohdrthgvtghh X-ME-Proxy: Received: from localhost (lfbn-tou-1-1502-76.w90-89.abo.wanadoo.fr [90.89.68.76]) by mail.messagingengine.com (Postfix) with ESMTPA id C3EAE3280060; Tue, 7 Apr 2020 03:12:53 -0400 (EDT) Date: Tue, 7 Apr 2020 09:12:51 +0200 From: Maxime Ripard To: Laurent Pinchart Subject: Re: [PATCH/RFC 4/6] dt-bindings: display: rockchip: dw-hdmi: Convert binding to YAML Message-ID: <20200407071251.npibrmzywiyigu2a@gilmour.lan> References: <20200405233935.27599-1-laurent.pinchart+renesas@ideasonboard.com> <20200405233935.27599-5-laurent.pinchart+renesas@ideasonboard.com> <20200406080032.zlszhkjqmjeoa4ti@gilmour.lan> <20200406111927.GD4757@pendragon.ideasonboard.com> <20200406170915.x2ztz4q446h6vx2y@gilmour.lan> <20200406175028.GI16885@pendragon.ideasonboard.com> MIME-Version: 1.0 In-Reply-To: <20200406175028.GI16885@pendragon.ideasonboard.com> X-Mailman-Approved-At: Tue, 07 Apr 2020 08:09:32 +0000 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devicetree@vger.kernel.org, Laurent Pinchart , Sandy Huang , dri-devel@lists.freedesktop.org, linux-renesas-soc@vger.kernel.org, Chen-Yu Tsai , Rob Herring , Mark Yao Content-Type: multipart/mixed; boundary="===============2138319444==" Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" --===============2138319444== Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="dwn2vvpqb3gq7irh" Content-Disposition: inline --dwn2vvpqb3gq7irh Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Mon, Apr 06, 2020 at 08:50:28PM +0300, Laurent Pinchart wrote: > Hi Maxime, > > On Mon, Apr 06, 2020 at 07:09:15PM +0200, Maxime Ripard wrote: > > On Mon, Apr 06, 2020 at 02:19:27PM +0300, Laurent Pinchart wrote: > > > On Mon, Apr 06, 2020 at 10:00:32AM +0200, Maxime Ripard wrote: > > > > On Mon, Apr 06, 2020 at 02:39:33AM +0300, Laurent Pinchart wrote: > > > > > Convert the Rockchip HDMI TX text binding to YAML. > > > > > > > > > > Signed-off-by: Laurent Pinchart > > > > > --- > > > > > .../display/rockchip/dw_hdmi-rockchip.txt | 74 -------- > > > > > .../display/rockchip/rockchip,dw-hdmi.yaml | 178 ++++++++++++++++++ > > > > > 2 files changed, 178 insertions(+), 74 deletions(-) > > > > > delete mode 100644 Documentation/devicetree/bindings/display/rockchip/dw_hdmi-rockchip.txt > > > > > create mode 100644 Documentation/devicetree/bindings/display/rockchip/rockchip,dw-hdmi.yaml > > > > > > > > > > diff --git a/Documentation/devicetree/bindings/display/rockchip/dw_hdmi-rockchip.txt b/Documentation/devicetree/bindings/display/rockchip/dw_hdmi-rockchip.txt > > > > > deleted file mode 100644 > > > > > index 3d32ce137e7f..000000000000 > > > > > --- a/Documentation/devicetree/bindings/display/rockchip/dw_hdmi-rockchip.txt > > > > > +++ /dev/null > > > > > @@ -1,74 +0,0 @@ > > > > > -Rockchip DWC HDMI TX Encoder > > > > > -============================ > > > > > - > > > > > -The HDMI transmitter is a Synopsys DesignWare HDMI 1.4 TX controller IP > > > > > -with a companion PHY IP. > > > > > - > > > > > -These DT bindings follow the Synopsys DWC HDMI TX bindings defined in > > > > > -Documentation/devicetree/bindings/display/bridge/dw_hdmi.txt with the > > > > > -following device-specific properties. > > > > > - > > > > > - > > > > > -Required properties: > > > > > - > > > > > -- compatible: should be one of the following: > > > > > - "rockchip,rk3228-dw-hdmi" > > > > > - "rockchip,rk3288-dw-hdmi" > > > > > - "rockchip,rk3328-dw-hdmi" > > > > > - "rockchip,rk3399-dw-hdmi" > > > > > -- reg: See dw_hdmi.txt. > > > > > -- reg-io-width: See dw_hdmi.txt. Shall be 4. > > > > > -- interrupts: HDMI interrupt number > > > > > -- clocks: See dw_hdmi.txt. > > > > > -- clock-names: Shall contain "iahb" and "isfr" as defined in dw_hdmi.txt. > > > > > -- ports: See dw_hdmi.txt. The DWC HDMI shall have a single port numbered 0 > > > > > - corresponding to the video input of the controller. The port shall have two > > > > > - endpoints, numbered 0 and 1, connected respectively to the vopb and vopl. > > > > > -- rockchip,grf: Shall reference the GRF to mux vopl/vopb. > > > > > - > > > > > -Optional properties > > > > > - > > > > > -- ddc-i2c-bus: The HDMI DDC bus can be connected to either a system I2C master > > > > > - or the functionally-reduced I2C master contained in the DWC HDMI. When > > > > > - connected to a system I2C master this property contains a phandle to that > > > > > - I2C master controller. > > > > > -- clock-names: See dw_hdmi.txt. The "cec" clock is optional. > > > > > -- clock-names: May contain "cec" as defined in dw_hdmi.txt. > > > > > -- clock-names: May contain "grf", power for grf io. > > > > > -- clock-names: May contain "vpll", external clock for some hdmi phy. > > > > > -- phys: from general PHY binding: the phandle for the PHY device. > > > > > -- phy-names: Should be "hdmi" if phys references an external phy. > > > > > - > > > > > -Optional pinctrl entry: > > > > > -- If you have both a "unwedge" and "default" pinctrl entry, dw_hdmi > > > > > - will switch to the unwedge pinctrl state for 10ms if it ever gets an > > > > > - i2c timeout. It's intended that this unwedge pinctrl entry will > > > > > - cause the SDA line to be driven low to work around a hardware > > > > > - errata. > > > > > - > > > > > -Example: > > > > > - > > > > > -hdmi: hdmi@ff980000 { > > > > > - compatible = "rockchip,rk3288-dw-hdmi"; > > > > > - reg = <0xff980000 0x20000>; > > > > > - reg-io-width = <4>; > > > > > - ddc-i2c-bus = <&i2c5>; > > > > > - rockchip,grf = <&grf>; > > > > > - interrupts = ; > > > > > - clocks = <&cru PCLK_HDMI_CTRL>, <&cru SCLK_HDMI_HDCP>; > > > > > - clock-names = "iahb", "isfr"; > > > > > - ports { > > > > > - hdmi_in: port { > > > > > - #address-cells = <1>; > > > > > - #size-cells = <0>; > > > > > - hdmi_in_vopb: endpoint@0 { > > > > > - reg = <0>; > > > > > - remote-endpoint = <&vopb_out_hdmi>; > > > > > - }; > > > > > - hdmi_in_vopl: endpoint@1 { > > > > > - reg = <1>; > > > > > - remote-endpoint = <&vopl_out_hdmi>; > > > > > - }; > > > > > - }; > > > > > - }; > > > > > -}; > > > > > diff --git a/Documentation/devicetree/bindings/display/rockchip/rockchip,dw-hdmi.yaml b/Documentation/devicetree/bindings/display/rockchip/rockchip,dw-hdmi.yaml > > > > > new file mode 100644 > > > > > index 000000000000..8ff544ae0ac2 > > > > > --- /dev/null > > > > > +++ b/Documentation/devicetree/bindings/display/rockchip/rockchip,dw-hdmi.yaml > > > > > @@ -0,0 +1,178 @@ > > > > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > > > > +%YAML 1.2 > > > > > +--- > > > > > +$id: http://devicetree.org/schemas/display/rockchip/rockchip,dw-hdmi.yaml# > > > > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > > > > + > > > > > +title: Rockchip DWC HDMI TX Encoder > > > > > + > > > > > +maintainers: > > > > > + - Mark Yao > > > > > + > > > > > +description: | > > > > > + The HDMI transmitter is a Synopsys DesignWare HDMI 1.4 TX controller IP > > > > > + with a companion PHY IP. > > > > > + > > > > > +allOf: > > > > > + - $ref: ../bridge/synopsys,dw-hdmi.yaml# > > > > > + > > > > > +properties: > > > > > + compatible: > > > > > + enum: > > > > > + - rockchip,rk3228-dw-hdmi > > > > > + - rockchip,rk3288-dw-hdmi > > > > > + - rockchip,rk3328-dw-hdmi > > > > > + - rockchip,rk3399-dw-hdmi > > > > > + > > > > > + reg: true > > > > > + > > > > > + reg-io-width: > > > > > + const: 4 > > > > > + > > > > > + clocks: > > > > > + minItems: 2 > > > > > + maxItems: 5 > > > > > + items: > > > > > + - description: The bus clock for either AHB and APB > > > > > + - description: The internal register configuration clock > > > > > + - description: The HDMI CEC controller main clock > > > > > + - description: Power for GRF IO > > > > > + - description: External clock for some HDMI PHY > > > > > + > > > > > + clock-names: > > > > > + minItems: 2 > > > > > + maxItems: 5 > > > > > + items: > > > > > + - const: iahb > > > > > + - const: isfr > > > > > + - enum: > > > > > + - cec > > > > > + - grf > > > > > + - vpll > > > > > + - enum: > > > > > + - cec > > > > > + - grf > > > > > + - vpll > > > > > + - enum: > > > > > + - cec > > > > > + - grf > > > > > + - vpll > > > > > > > > IIRC Rob wanted us to standardize the order of the clocks if possible, > > > > since it's a pain to support properly here, and your description won't > > > > match what you describe here either (and in general it's just a best > > > > practice), so if all your DTs have the same order you should just set > > > > that order in stone. > > > > > > But how do we handle the case where any of the cec, grf and vpll clocks > > > can be set ? Assuming, for instance, that > > > > > > clock-names = "iahb", "isfr", "cec"; > > > clock-names = "iahb", "isfr", "vpll"; > > > clock-names = "iahb", "isfr", "cec", "vpll"; > > > > > > would all be valid. > > > > It would be painful then... > > > > The easiest way to do so would be to simply use an enum there, and not > > bother checking the array at all. You'll get a warning if there's > > multiple occurences of the same string, and I guess that's what you > > would be really concerned about. > > > > However, now that I think about it, what's the interaction between the > > generic binding and this one when it comes to the third clock? The > > generic one expects it to be cec, and here you have other options? > > I'm not too familiar with the platform, but as far as I understand, any > of the cec, grf and vpll clock is optional (if someone could confirm > that, it would be useful). I don't care so much about the order, but > iahb and isfr are mandatory, and thus need to be specified as two const > items in the beginning as far as I understand. It would be nice to set > something along the lines of > > minItems: 2 > maxItems: 5 > items: > - const: iahb > - const: isfr > - enum: > - cec > - grf > - vpll I guess you could do something like: in the generic schema: clock-names: allOf: - minItems: 2 - enum: - iahb - isfr - cec additonalItems: true - items: - iahb - isfr Or something along those lines, I haven't tested it, but the basic idea is that you want to enforce that: a) there's a minimum of two clocks b) valid clock names are iahb, isfr and cec, but we will allow more c) the first two clocks are iahb and isfr Now, on the rockchip binding, we can simply have: clock-names: enum: - iahb - isfr - cec - grf - vpll This way, here we enforce the available clock names, while keeping the constraints set in the generic binding. Maxime --dwn2vvpqb3gq7irh Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iHUEABYIAB0WIQRcEzekXsqa64kGDp7j7w1vZxhRxQUCXown8wAKCRDj7w1vZxhR xbzqAP0b7YMyvbvLZHLqcSAfIdp0wf5sIUH6pAKOI1Xkaa2pNgEAukMeyr8RlQG5 rHcRboMkeq2Ukf9PhorHisDa8FtteA0= =2hD7 -----END PGP SIGNATURE----- --dwn2vvpqb3gq7irh-- --===============2138319444== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel --===============2138319444==--