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
next prev parent reply other threads:[~2020-04-09 7:36 UTC|newest]
Thread overview: 17+ 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 ` [RFC v3 1/8] dt-bindings: display: convert ingenic,lcd.txt to ingenic,lcd.yaml H. Nikolaus Schaller
2020-03-30 15:42 ` Rob Herring
2020-03-30 16:33 ` 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:35 ` H. Nikolaus Schaller [this message]
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-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 ` [RFC v3 4/8] dt-bindings: display: add ingenic-jz4780-hdmi DT Schema H. Nikolaus Schaller
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 ` [RFC v3 6/8] MIPS: DTS: jz4780: account for Synopsys HDMI driver and LCD controller 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 ` [RFC v3 8/8] MIPS: CI20: defconfig: configure for DRM_DW_HDMI_JZ4780 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).