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=-8.2 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, USER_AGENT_SANE_1 autolearn=unavailable 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 45E44C2BB55 for ; Thu, 9 Apr 2020 07:26:42 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 25DED20757 for ; Thu, 9 Apr 2020 07:26:42 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726650AbgDIH0h (ORCPT ); Thu, 9 Apr 2020 03:26:37 -0400 Received: from asavdk4.altibox.net ([109.247.116.15]:57112 "EHLO asavdk4.altibox.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725985AbgDIH0h (ORCPT ); Thu, 9 Apr 2020 03:26:37 -0400 Received: from ravnborg.org (unknown [158.248.194.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by asavdk4.altibox.net (Postfix) with ESMTPS id 67894804E6; Thu, 9 Apr 2020 09:26:00 +0200 (CEST) Date: Thu, 9 Apr 2020 09:25:59 +0200 From: Sam Ravnborg To: "H. Nikolaus Schaller" Cc: Paul Cercueil , Paul Boddie , David Airlie , Daniel Vetter , Rob Herring , Mark Rutland , Ralf Baechle , Paul Burton , Linus Walleij , Andi Kleen , Krzysztof Kozlowski , Geert Uytterhoeven , "Eric W. Biederman" , Miquel Raynal , Thomas Bogendoerfer , Kees Cook , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-mips@vger.kernel.org, linux-gpio@vger.kernel.org, mips-creator-ci20-dev@googlegroups.com, letux-kernel@openphoenux.org Subject: Re: [RFC v3 1/8] dt-bindings: display: convert ingenic, lcd.txt to ingenic, lcd.yaml Message-ID: <20200409072559.GB12367@ravnborg.org> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.10.1 (2018-07-13) X-CMAE-Score: 0 X-CMAE-Analysis: v=2.3 cv=XpTUx2N9 c=1 sm=1 tr=0 a=UWs3HLbX/2nnQ3s7vZ42gw==:117 a=UWs3HLbX/2nnQ3s7vZ42gw==:17 a=jpOVt7BSZ2e4Z31A5e1TngXxSK0=:19 a=kj9zAlcOel0A:10 a=ER_8r6IbAAAA:8 a=7gkXJVJtAAAA:8 a=ztCEdXhiAAAA:8 a=VwQbUJbxAAAA:8 a=gEfo2CItAAAA:8 a=EOonHDGkKxT7KvGTIpcA:9 a=gAFmQjLz7WC3uhn-:21 a=lEZKnLxH932zqgqy:21 a=CjuIK1q_8ugA:10 a=9LHmKk7ezEChjTCyhBa9:22 a=E9Po1WZjFZOl8hwRPBS3:22 a=nCm3ceeH17rKjHWsMeRo:22 a=AjGcO6oz07-iQ99wixmX:22 a=sptkURWiP4Gy88Gu7hUp:22 Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org Hi Nikolaus Some comments below that will result in a simplee binding that passes the checks. Thanks for pushing this. Sam On Sun, Mar 29, 2020 at 07:35:47PM +0200, H. Nikolaus Schaller wrote: > and add compatible: jz4780-lcd, including an example how to > configure both lcd controllers. > > Also fix the clock names and examples. > > Based on work by Paul Cercueil and > Sam Ravnborg > > Signed-off-by: H. Nikolaus Schaller > Cc: Rob Herring > Cc: devicetree@vger.kernel.org > --- > .../bindings/display/ingenic,lcd.txt | 45 ------ > .../bindings/display/ingenic,lcd.yaml | 128 ++++++++++++++++++ > 2 files changed, 128 insertions(+), 45 deletions(-) > delete mode 100644 Documentation/devicetree/bindings/display/ingenic,lcd.txt > create mode 100644 Documentation/devicetree/bindings/display/ingenic,lcd.yaml > > diff --git a/Documentation/devicetree/bindings/display/ingenic,lcd.txt b/Documentation/devicetree/bindings/display/ingenic,lcd.txt > deleted file mode 100644 > index 01e3261defb6..000000000000 > --- a/Documentation/devicetree/bindings/display/ingenic,lcd.txt > +++ /dev/null > @@ -1,45 +0,0 @@ > -Ingenic JZ47xx LCD driver > - > -Required properties: > -- compatible: one of: > - * ingenic,jz4740-lcd > - * ingenic,jz4725b-lcd > - * ingenic,jz4770-lcd > -- reg: LCD registers location and length > -- clocks: LCD pixclock and device clock specifiers. > - The device clock is only required on the JZ4740. > -- clock-names: "lcd_pclk" and "lcd" > -- interrupts: Specifies the interrupt line the LCD controller is connected to. > - > -Example: > - > -panel { > - compatible = "sharp,ls020b1dd01d"; > - > - backlight = <&backlight>; > - power-supply = <&vcc>; > - > - port { > - panel_input: endpoint { > - remote-endpoint = <&panel_output>; > - }; > - }; > -}; > - > - > -lcd: lcd-controller@13050000 { > - compatible = "ingenic,jz4725b-lcd"; > - reg = <0x13050000 0x1000>; > - > - interrupt-parent = <&intc>; > - interrupts = <31>; > - > - clocks = <&cgu JZ4725B_CLK_LCD>; > - clock-names = "lcd"; > - > - port { > - panel_output: endpoint { > - remote-endpoint = <&panel_input>; > - }; > - }; > -}; > diff --git a/Documentation/devicetree/bindings/display/ingenic,lcd.yaml b/Documentation/devicetree/bindings/display/ingenic,lcd.yaml > new file mode 100644 > index 000000000000..8b6467cfc191 > --- /dev/null > +++ b/Documentation/devicetree/bindings/display/ingenic,lcd.yaml > @@ -0,0 +1,128 @@ > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/display/ingenic,lcd.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Bindings for Ingenic JZ4780 LCD Controller > + > +maintainers: > + - Paul Cercueil > + > +description: | > + LCD Controller is the Display Controller for the Ingenic JZ47xx SoC > + > +properties: > + compatible: > + oneOf: > + - const: ingenic,jz4725b-lcd > + - const: ingenic,jz4740-lcd > + - const: ingenic,jz4770-lcd > + - const: ingenic,jz4780-lcd > + > + reg: > + maxItems: 1 > + description: LCD registers location and length > + > + interrupts: > + maxItems: 1 > + description: Specifies the interrupt provided by parent > + > + clocks: > + maxItems: 2 > + description: Clock specifiers for LCD pixclock and device clock. > + The device clock is only required on the JZ4740 and JZ4780 > + > + clock-names: > + items: > + - const: lcd > + - const: lcd_pclk > + > + port: > + type: object > + description: | > + A port node with endpoint definitions as defined in > + Documentation/devicetree/bindings/media/video-interfaces.txt > + > +required: > + - compatible > + - reg > + - interrupts > + - clocks > + - clock-names > + - port > + > +additionalProperties: false > + > +examples: > + - | > + #include > + > + panel { > + compatible = "sharp,ls020b1dd01d"; > + > + backlight = <&backlight>; > + power-supply = <&vcc>; > + > + port { > + panel_input: endpoint { > + remote-endpoint = <&panel_output>; > + }; > + }; > + }; The panel part is not needed - better to drop it. > + > + lcd: lcd-controller@13050000 { > + compatible = "ingenic,jz4725b-lcd"; > + reg = <0x13050000 0x1000>; > + > + interrupt-parent = <&intc>; > + interrupts = <31>; > + > + clocks = <&cgu JZ4725B_CLK_LCD>; > + clock-names = "lcd", "lcd_pclk"; > + > + port { > + panel_output: endpoint { > + remote-endpoint = <&panel_input>; > + }; > + }; > + }; We know this example will not pass the check, as there is only one clock specified. I suggest to drop this example. If it later turns out that jz4725b only have one clock, then the binding needs to be updated. But the best guess is that the example is wrong. The example below for jz4780-lcd cover all relevant parts - so just keep it as the only example. > + > + - | > + #include > + > + lcdc0: lcdc0@13050000 { Name this lcdc And drop "lcdc0@13050000" as this is not relevant for this example. Remember - the examples exist to explain the binding. They are just examples. > + compatible = "ingenic,jz4780-lcd"; > + reg = <0x13050000 0x1800>; > + > + clocks = <&cgu JZ4780_CLK_TVE>, <&cgu JZ4780_CLK_LCD0PIXCLK>; > + clock-names = "lcd", "lcd_pclk"; > + > + interrupt-parent = <&intc>; > + interrupts = <31>; > + > + jz4780_lcd_out: port { > + #address-cells = <1>; > + #size-cells = <0>; > + > + jz4780_out_hdmi: endpoint@0 { > + reg = <0>; > + remote-endpoint = <&hdmi_in_lcd>; > + }; > + }; > + }; > + And drop this as it does not add anything extra. > + lcdc1: lcdc1@130a0000 { > + compatible = "ingenic,jz4780-lcd"; > + reg = <0x130a0000 0x1800>; > + > + clocks = <&cgu JZ4780_CLK_TVE>, <&cgu JZ4780_CLK_LCD1PIXCLK>; > + clock-names = "lcd", "lcd_pclk"; > + > + interrupt-parent = <&intc>; > + interrupts = <31>; > + > + status = "disabled"; > + }; Sam 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=-8.2 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, USER_AGENT_SANE_1 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 983E7C2D0EA for ; Thu, 9 Apr 2020 07:26:06 +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 726FC20753 for ; Thu, 9 Apr 2020 07:26:06 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 726FC20753 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ravnborg.org 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 C18126EB57; Thu, 9 Apr 2020 07:26:05 +0000 (UTC) Received: from asavdk4.altibox.net (asavdk4.altibox.net [109.247.116.15]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5591C6EB57 for ; Thu, 9 Apr 2020 07:26:04 +0000 (UTC) Received: from ravnborg.org (unknown [158.248.194.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by asavdk4.altibox.net (Postfix) with ESMTPS id 67894804E6; Thu, 9 Apr 2020 09:26:00 +0200 (CEST) Date: Thu, 9 Apr 2020 09:25:59 +0200 From: Sam Ravnborg To: "H. Nikolaus Schaller" Subject: Re: [RFC v3 1/8] dt-bindings: display: convert ingenic, lcd.txt to ingenic, lcd.yaml Message-ID: <20200409072559.GB12367@ravnborg.org> References: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.10.1 (2018-07-13) X-CMAE-Score: 0 X-CMAE-Analysis: v=2.3 cv=XpTUx2N9 c=1 sm=1 tr=0 a=UWs3HLbX/2nnQ3s7vZ42gw==:117 a=UWs3HLbX/2nnQ3s7vZ42gw==:17 a=jpOVt7BSZ2e4Z31A5e1TngXxSK0=:19 a=kj9zAlcOel0A:10 a=ER_8r6IbAAAA:8 a=7gkXJVJtAAAA:8 a=ztCEdXhiAAAA:8 a=VwQbUJbxAAAA:8 a=gEfo2CItAAAA:8 a=EOonHDGkKxT7KvGTIpcA:9 a=gAFmQjLz7WC3uhn-:21 a=lEZKnLxH932zqgqy:21 a=CjuIK1q_8ugA:10 a=9LHmKk7ezEChjTCyhBa9:22 a=E9Po1WZjFZOl8hwRPBS3:22 a=nCm3ceeH17rKjHWsMeRo:22 a=AjGcO6oz07-iQ99wixmX:22 a=sptkURWiP4Gy88Gu7hUp:22 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: Mark Rutland , Paul Boddie , Geert Uytterhoeven , David Airlie , dri-devel@lists.freedesktop.org, linux-mips@vger.kernel.org, Paul Cercueil , Miquel Raynal , Andi Kleen , Paul Burton , Krzysztof Kozlowski , mips-creator-ci20-dev@googlegroups.com, devicetree@vger.kernel.org, Kees Cook , linux-gpio@vger.kernel.org, Rob Herring , letux-kernel@openphoenux.org, Thomas Bogendoerfer , linux-kernel@vger.kernel.org, Ralf Baechle , "Eric W. Biederman" Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Hi Nikolaus Some comments below that will result in a simplee binding that passes the checks. Thanks for pushing this. Sam On Sun, Mar 29, 2020 at 07:35:47PM +0200, H. Nikolaus Schaller wrote: > and add compatible: jz4780-lcd, including an example how to > configure both lcd controllers. > > Also fix the clock names and examples. > > Based on work by Paul Cercueil and > Sam Ravnborg > > Signed-off-by: H. Nikolaus Schaller > Cc: Rob Herring > Cc: devicetree@vger.kernel.org > --- > .../bindings/display/ingenic,lcd.txt | 45 ------ > .../bindings/display/ingenic,lcd.yaml | 128 ++++++++++++++++++ > 2 files changed, 128 insertions(+), 45 deletions(-) > delete mode 100644 Documentation/devicetree/bindings/display/ingenic,lcd.txt > create mode 100644 Documentation/devicetree/bindings/display/ingenic,lcd.yaml > > diff --git a/Documentation/devicetree/bindings/display/ingenic,lcd.txt b/Documentation/devicetree/bindings/display/ingenic,lcd.txt > deleted file mode 100644 > index 01e3261defb6..000000000000 > --- a/Documentation/devicetree/bindings/display/ingenic,lcd.txt > +++ /dev/null > @@ -1,45 +0,0 @@ > -Ingenic JZ47xx LCD driver > - > -Required properties: > -- compatible: one of: > - * ingenic,jz4740-lcd > - * ingenic,jz4725b-lcd > - * ingenic,jz4770-lcd > -- reg: LCD registers location and length > -- clocks: LCD pixclock and device clock specifiers. > - The device clock is only required on the JZ4740. > -- clock-names: "lcd_pclk" and "lcd" > -- interrupts: Specifies the interrupt line the LCD controller is connected to. > - > -Example: > - > -panel { > - compatible = "sharp,ls020b1dd01d"; > - > - backlight = <&backlight>; > - power-supply = <&vcc>; > - > - port { > - panel_input: endpoint { > - remote-endpoint = <&panel_output>; > - }; > - }; > -}; > - > - > -lcd: lcd-controller@13050000 { > - compatible = "ingenic,jz4725b-lcd"; > - reg = <0x13050000 0x1000>; > - > - interrupt-parent = <&intc>; > - interrupts = <31>; > - > - clocks = <&cgu JZ4725B_CLK_LCD>; > - clock-names = "lcd"; > - > - port { > - panel_output: endpoint { > - remote-endpoint = <&panel_input>; > - }; > - }; > -}; > diff --git a/Documentation/devicetree/bindings/display/ingenic,lcd.yaml b/Documentation/devicetree/bindings/display/ingenic,lcd.yaml > new file mode 100644 > index 000000000000..8b6467cfc191 > --- /dev/null > +++ b/Documentation/devicetree/bindings/display/ingenic,lcd.yaml > @@ -0,0 +1,128 @@ > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/display/ingenic,lcd.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Bindings for Ingenic JZ4780 LCD Controller > + > +maintainers: > + - Paul Cercueil > + > +description: | > + LCD Controller is the Display Controller for the Ingenic JZ47xx SoC > + > +properties: > + compatible: > + oneOf: > + - const: ingenic,jz4725b-lcd > + - const: ingenic,jz4740-lcd > + - const: ingenic,jz4770-lcd > + - const: ingenic,jz4780-lcd > + > + reg: > + maxItems: 1 > + description: LCD registers location and length > + > + interrupts: > + maxItems: 1 > + description: Specifies the interrupt provided by parent > + > + clocks: > + maxItems: 2 > + description: Clock specifiers for LCD pixclock and device clock. > + The device clock is only required on the JZ4740 and JZ4780 > + > + clock-names: > + items: > + - const: lcd > + - const: lcd_pclk > + > + port: > + type: object > + description: | > + A port node with endpoint definitions as defined in > + Documentation/devicetree/bindings/media/video-interfaces.txt > + > +required: > + - compatible > + - reg > + - interrupts > + - clocks > + - clock-names > + - port > + > +additionalProperties: false > + > +examples: > + - | > + #include > + > + panel { > + compatible = "sharp,ls020b1dd01d"; > + > + backlight = <&backlight>; > + power-supply = <&vcc>; > + > + port { > + panel_input: endpoint { > + remote-endpoint = <&panel_output>; > + }; > + }; > + }; The panel part is not needed - better to drop it. > + > + lcd: lcd-controller@13050000 { > + compatible = "ingenic,jz4725b-lcd"; > + reg = <0x13050000 0x1000>; > + > + interrupt-parent = <&intc>; > + interrupts = <31>; > + > + clocks = <&cgu JZ4725B_CLK_LCD>; > + clock-names = "lcd", "lcd_pclk"; > + > + port { > + panel_output: endpoint { > + remote-endpoint = <&panel_input>; > + }; > + }; > + }; We know this example will not pass the check, as there is only one clock specified. I suggest to drop this example. If it later turns out that jz4725b only have one clock, then the binding needs to be updated. But the best guess is that the example is wrong. The example below for jz4780-lcd cover all relevant parts - so just keep it as the only example. > + > + - | > + #include > + > + lcdc0: lcdc0@13050000 { Name this lcdc And drop "lcdc0@13050000" as this is not relevant for this example. Remember - the examples exist to explain the binding. They are just examples. > + compatible = "ingenic,jz4780-lcd"; > + reg = <0x13050000 0x1800>; > + > + clocks = <&cgu JZ4780_CLK_TVE>, <&cgu JZ4780_CLK_LCD0PIXCLK>; > + clock-names = "lcd", "lcd_pclk"; > + > + interrupt-parent = <&intc>; > + interrupts = <31>; > + > + jz4780_lcd_out: port { > + #address-cells = <1>; > + #size-cells = <0>; > + > + jz4780_out_hdmi: endpoint@0 { > + reg = <0>; > + remote-endpoint = <&hdmi_in_lcd>; > + }; > + }; > + }; > + And drop this as it does not add anything extra. > + lcdc1: lcdc1@130a0000 { > + compatible = "ingenic,jz4780-lcd"; > + reg = <0x130a0000 0x1800>; > + > + clocks = <&cgu JZ4780_CLK_TVE>, <&cgu JZ4780_CLK_LCD1PIXCLK>; > + clock-names = "lcd", "lcd_pclk"; > + > + interrupt-parent = <&intc>; > + interrupts = <31>; > + > + status = "disabled"; > + }; Sam _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel