All of lore.kernel.org
 help / color / mirror / Atom feed
From: "H. Nikolaus Schaller" <hns@goldelico.com>
To: Sam Ravnborg <sam@ravnborg.org>
Cc: Paul Cercueil <paul@crapouillou.net>,
	Paul Boddie <paul@boddie.org.uk>, David Airlie <airlied@linux.ie>,
	Daniel Vetter <daniel@ffwll.ch>, Rob Herring <robh+dt@kernel.org>,
	Mark Rutland <mark.rutland@arm.com>,
	Ralf Baechle <ralf@linux-mips.org>,
	Paul Burton <paulburton@kernel.org>,
	Linus Walleij <linus.walleij@linaro.org>,
	Andi Kleen <ak@linux.intel.com>,
	Krzysztof Kozlowski <krzk@kernel.org>,
	Geert Uytterhoeven <geert+renesas@glider.be>,
	"Eric W. Biederman" <ebiederm@xmission.com>,
	Miquel Raynal <miquel.raynal@bootlin.com>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Kees Cook <keescook@chromium.org>,
	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
Date: Thu, 9 Apr 2020 09:35:53 +0200	[thread overview]
Message-ID: <F4F5D267-A538-444B-9DCA-EA87AC798FB3@goldelico.com> (raw)
In-Reply-To: <20200409072559.GB12367@ravnborg.org>

Hi Sam,

> Am 09.04.2020 um 09:25 schrieb Sam Ravnborg <sam@ravnborg.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 <paul@crapouillou.net> and
>> Sam Ravnborg <sam@ravnborg.org>
>> 
>> Signed-off-by: H. Nikolaus Schaller <hns@goldelico.com>
>> Cc: Rob Herring <robh@kernel.org>
>> 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 <paul@crapouillou.net>
>> +
>> +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 <dt-bindings/clock/jz4725b-cgu.h>
>> +
>> +    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.

Well, it is needed to fulfill the remote-endpoint below.

> 
> 
>> +
>> +    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,

Paul already reported that it only wants to see one clock.

> then the binding
> needs to be updated.

Yes, I have that on my to-do list to update the binding to reflect
this minItems/maxItems thing but I am not yet sure about how
to handle the clock-names in that case. I.e. make "lcd" optional
and enforce "lcd_pclk" only.

> 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 <dt-bindings/clock/jz4780-cgu.h>
>> +
>> +    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.

Well, it demonstrates how to add a second lcdc which is disabled.

Showing that it is possible to do so is IMHO the most important
part of the example because it is not at all obvious.

I have also added both SoC to show how differently they can
and should be.

>> +    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

BR and thanks,
Nikolaus



  reply	other threads:[~2020-04-09  7:36 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-29 17:35 [RFC v3 0/8] MIPS: CI20: add HDMI out support H. Nikolaus Schaller
2020-03-29 17:35 ` H. Nikolaus Schaller
2020-03-29 17:35 ` [RFC v3 1/8] dt-bindings: display: convert ingenic,lcd.txt to ingenic,lcd.yaml H. Nikolaus Schaller
2020-03-29 17:35   ` [RFC v3 1/8] dt-bindings: display: convert ingenic, lcd.txt to ingenic, lcd.yaml H. Nikolaus Schaller
2020-03-30 15:42   ` [RFC v3 1/8] dt-bindings: display: convert ingenic,lcd.txt to ingenic,lcd.yaml Rob Herring
2020-03-30 15:42     ` Rob Herring
2020-03-30 16:33     ` H. Nikolaus Schaller
2020-03-30 16:33       ` [RFC v3 1/8] dt-bindings: display: convert ingenic, lcd.txt to ingenic, lcd.yaml H. Nikolaus Schaller
     [not found]       ` <PGM08Q.HSFQKBTIA4ZJ1@crapouillou.net>
     [not found]         ` <9F25715B-3C06-4302-9393-3440E9D54470@goldelico.com>
     [not found]           ` <9LN08Q.J1LY4QL3MG9B3@crapouillou.net>
2020-03-30 17:18             ` [RFC v3 1/8] dt-bindings: display: convert ingenic,lcd.txt to ingenic,lcd.yaml H. Nikolaus Schaller
2020-04-09  7:25   ` [RFC v3 1/8] dt-bindings: display: convert ingenic, lcd.txt to ingenic, lcd.yaml Sam Ravnborg
2020-04-09  7:25     ` Sam Ravnborg
2020-04-09  7:35     ` H. Nikolaus Schaller [this message]
2020-04-09 12:20       ` Sam Ravnborg
2020-04-09 12:20         ` Sam Ravnborg
2020-04-09 12:41         ` H. Nikolaus Schaller
2020-03-29 17:35 ` [RFC v3 2/8] drm: ingenic-drm: add MODULE_DEVICE_TABLE H. Nikolaus Schaller
2020-03-29 17:35   ` H. Nikolaus Schaller
2020-05-04  1:32   ` Paul Cercueil
2020-05-04  1:32     ` Paul Cercueil
2020-03-29 17:35 ` [RFC v3 3/8] drm: ingenic-drm: add support for ingenic,jz4780-lcd H. Nikolaus Schaller
2020-03-29 17:35   ` H. Nikolaus Schaller
2020-03-29 17:35 ` [RFC v3 4/8] dt-bindings: display: add ingenic-jz4780-hdmi DT Schema H. Nikolaus Schaller
2020-03-29 17:35   ` H. Nikolaus Schaller
2020-04-09  7:12   ` Sam Ravnborg
2020-04-09  7:12     ` Sam Ravnborg
2020-03-29 17:35 ` [RFC v3 5/8] drm: ingenic: add jz4780 Synopsys HDMI driver H. Nikolaus Schaller
2020-03-29 17:35   ` H. Nikolaus Schaller
2020-03-29 17:35 ` [RFC v3 6/8] MIPS: DTS: jz4780: account for Synopsys HDMI driver and LCD controller H. Nikolaus Schaller
2020-03-29 17:35   ` H. Nikolaus Schaller
2020-03-29 17:35 ` [RFC v3 7/8] MIPS: DTS: CI20: add HDMI setup H. Nikolaus Schaller
2020-03-29 17:35   ` H. Nikolaus Schaller
2020-03-29 17:35 ` [RFC v3 8/8] MIPS: CI20: defconfig: configure for DRM_DW_HDMI_JZ4780 H. Nikolaus Schaller
2020-03-29 17:35   ` H. Nikolaus Schaller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=F4F5D267-A538-444B-9DCA-EA87AC798FB3@goldelico.com \
    --to=hns@goldelico.com \
    --cc=airlied@linux.ie \
    --cc=ak@linux.intel.com \
    --cc=daniel@ffwll.ch \
    --cc=devicetree@vger.kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=ebiederm@xmission.com \
    --cc=geert+renesas@glider.be \
    --cc=keescook@chromium.org \
    --cc=krzk@kernel.org \
    --cc=letux-kernel@openphoenux.org \
    --cc=linus.walleij@linaro.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mips@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=mips-creator-ci20-dev@googlegroups.com \
    --cc=miquel.raynal@bootlin.com \
    --cc=paul@boddie.org.uk \
    --cc=paul@crapouillou.net \
    --cc=paulburton@kernel.org \
    --cc=ralf@linux-mips.org \
    --cc=robh+dt@kernel.org \
    --cc=sam@ravnborg.org \
    --cc=tsbogend@alpha.franken.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.