mbox series

[RFC,0/8] MIPS: CI20: add HDMI out support

Message ID cover.1582744379.git.hns@goldelico.com (mailing list archive)
Headers show
Series MIPS: CI20: add HDMI out support | expand

Message

H. Nikolaus Schaller Feb. 26, 2020, 7:12 p.m. UTC
This patch series adds HDMI output to the jz4780/CI20 board.

It is based on taking the old 3.18 vendor kernel and trying
to achieve the same with modern DTS setup and new/modified
drivers.

Unfortunately, in this first RFC, only EDID and creation of
/dev/fb0 are working. Also, HDMI hot plugging is detected.

But there is no HDMI output signal. So some tiny piece seems
to be missing to enable/configure the Synposys HDMI controller.

We need help from the community to fix this.

Note: device tree bindings are from 2015 and still seem to
fit - except they are not in yaml format.

Original authors of most patches are
* Paul Boddie <paul@boddie.org.uk>
* Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com>


H. Nikolaus Schaller (2):
  drm: ingenic-drm: add MODULE_DEVICE_TABLE
  MIPS: CI20: defconfig: configure for DRM_DW_HDMI_JZ4780

Paul Boddie (4):
  drm: ingenic: add jz4780 Synopsys HDMI driver.
  pinctrl: ingenic: add hdmi-ddc pin control group
  MIPS: DTS: jz4780: account for Synopsys HDMI driver and LCD controller
  MIPS: DTS: CI20: add HDMI setup

Zubair Lutfullah Kakakhel (2):
  dt-bindings: video: Add jz4780-lcd binding
  dt-bindings: video: Add jz4780-hdmi binding

 .../bindings/display/ingenic-jz4780-hdmi.txt  |  41 ++++++
 .../bindings/display/ingenic-jz4780-lcd.txt   |  39 ++++++
 arch/mips/boot/dts/ingenic/ci20.dts           |  64 ++++++++++
 arch/mips/boot/dts/ingenic/jz4780.dtsi        |  32 +++++
 arch/mips/configs/ci20_defconfig              |   3 +
 drivers/gpu/drm/ingenic/Kconfig               |   8 ++
 drivers/gpu/drm/ingenic/Makefile              |   1 +
 drivers/gpu/drm/ingenic/dw_hdmi-jz4780.c      | 120 ++++++++++++++++++
 drivers/gpu/drm/ingenic/ingenic-drm.c         |   2 +
 drivers/pinctrl/pinctrl-ingenic.c             |   7 +
 10 files changed, 317 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/display/ingenic-jz4780-hdmi.txt
 create mode 100644 Documentation/devicetree/bindings/display/ingenic-jz4780-lcd.txt
 create mode 100644 drivers/gpu/drm/ingenic/dw_hdmi-jz4780.c

Comments

Sam Ravnborg Feb. 27, 2020, 12:23 p.m. UTC | #1
Hi Nikolaus.

On Wed, Feb 26, 2020 at 08:12:52PM +0100, H. Nikolaus Schaller wrote:
> This patch series adds HDMI output to the jz4780/CI20 board.
> 
> It is based on taking the old 3.18 vendor kernel and trying
> to achieve the same with modern DTS setup and new/modified
> drivers.
> 
> Unfortunately, in this first RFC, only EDID and creation of
> /dev/fb0 are working. Also, HDMI hot plugging is detected.
> 
> But there is no HDMI output signal. So some tiny piece seems
> to be missing to enable/configure the Synposys HDMI controller.
> 
> We need help from the community to fix this.
> 
> Note: device tree bindings are from 2015 and still seem to
> fit - except they are not in yaml format.
> 
> Original authors of most patches are
> * Paul Boddie <paul@boddie.org.uk>
> * Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com>
> 
> 
> H. Nikolaus Schaller (2):
>   drm: ingenic-drm: add MODULE_DEVICE_TABLE
>   MIPS: CI20: defconfig: configure for DRM_DW_HDMI_JZ4780
> 
> Paul Boddie (4):
>   drm: ingenic: add jz4780 Synopsys HDMI driver.
>   pinctrl: ingenic: add hdmi-ddc pin control group
>   MIPS: DTS: jz4780: account for Synopsys HDMI driver and LCD controller
>   MIPS: DTS: CI20: add HDMI setup
> 
> Zubair Lutfullah Kakakhel (2):
>   dt-bindings: video: Add jz4780-lcd binding
>   dt-bindings: video: Add jz4780-hdmi binding
> 
>  .../bindings/display/ingenic-jz4780-hdmi.txt  |  41 ++++++
>  .../bindings/display/ingenic-jz4780-lcd.txt   |  39 ++++++
New bindings in DT Schema format please...
We want to have then in a formal launguage so we can use these
to verify the DT files.

	Sam
H. Nikolaus Schaller Feb. 27, 2020, 12:56 p.m. UTC | #2
Hi Sam,

> Am 27.02.2020 um 13:23 schrieb Sam Ravnborg <sam@ravnborg.org>:
> 
> Hi Nikolaus.
> 
> On Wed, Feb 26, 2020 at 08:12:52PM +0100, H. Nikolaus Schaller wrote:
>> This patch series adds HDMI output to the jz4780/CI20 board.
>> 
>> It is based on taking the old 3.18 vendor kernel and trying
>> to achieve the same with modern DTS setup and new/modified
>> drivers.
>> 
>> Unfortunately, in this first RFC, only EDID and creation of
>> /dev/fb0 are working. Also, HDMI hot plugging is detected.
>> 
>> But there is no HDMI output signal. So some tiny piece seems
>> to be missing to enable/configure the Synposys HDMI controller.
>> 
>> We need help from the community to fix this.
>> 
>> Note: device tree bindings are from 2015 and still seem to
>> fit - except they are not in yaml format.
>> 
>> Original authors of most patches are
>> * Paul Boddie <paul@boddie.org.uk>
>> * Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com>
>> 
>> 
>> H. Nikolaus Schaller (2):
>>  drm: ingenic-drm: add MODULE_DEVICE_TABLE
>>  MIPS: CI20: defconfig: configure for DRM_DW_HDMI_JZ4780
>> 
>> Paul Boddie (4):
>>  drm: ingenic: add jz4780 Synopsys HDMI driver.
>>  pinctrl: ingenic: add hdmi-ddc pin control group
>>  MIPS: DTS: jz4780: account for Synopsys HDMI driver and LCD controller
>>  MIPS: DTS: CI20: add HDMI setup
>> 
>> Zubair Lutfullah Kakakhel (2):
>>  dt-bindings: video: Add jz4780-lcd binding
>>  dt-bindings: video: Add jz4780-hdmi binding
>> 
>> .../bindings/display/ingenic-jz4780-hdmi.txt  |  41 ++++++
>> .../bindings/display/ingenic-jz4780-lcd.txt   |  39 ++++++
> New bindings in DT Schema format please...
> We want to have then in a formal launguage so we can use these
> to verify the DT files.

Yes, I know. And I fully support the goal.

But I personally do not have the time to learn the (IMHO brain-twisting)
way the Schema format is working. Especially, I am not interested
in becoming volunteer translator for .txt based schemas developed
by someone else.

So I hope that someone from the community can and is willing to do
that.

Or that there will appear good tools soon. E.g. some GUI
based editor tool would be very helpful so that you don't have
to fight with the yaml indentation rules. Like there are XML
and DTD editors. And even HTML is rarely written manually any more.

IMHO such tools should have been developed and in place *before*
the rule to provide DT schemata is enforced.

Anyways, I have requested for comments (and did expect this one).

BR and thanks,
Nikolaus
Sam Ravnborg Feb. 27, 2020, 4:57 p.m. UTC | #3
Hi Nikolaus.

> >> Zubair Lutfullah Kakakhel (2):
> >>  dt-bindings: video: Add jz4780-lcd binding
> >>  dt-bindings: video: Add jz4780-hdmi binding
> >> 
> >> .../bindings/display/ingenic-jz4780-hdmi.txt  |  41 ++++++
> >> .../bindings/display/ingenic-jz4780-lcd.txt   |  39 ++++++
> > New bindings in DT Schema format please...
> > We want to have then in a formal launguage so we can use these
> > to verify the DT files.
> 
> Yes, I know. And I fully support the goal.
> 
> But I personally do not have the time to learn the (IMHO brain-twisting)
> way the Schema format is working. Especially, I am not interested
> in becoming volunteer translator for .txt based schemas developed
> by someone else.
> 
> So I hope that someone from the community can and is willing to do
> that.

I went ahead and typed them - please review and use these if OK.

	Sam

From 6fee276807dfe4a502ff760e7c7840480d275052 Mon Sep 17 00:00:00 2001
From: Sam Ravnborg <sam@ravnborg.org>
Date: Thu, 27 Feb 2020 17:18:29 +0100
Subject: [PATCH 1/2] dt-bindings: display: add ingenic-jz4780-lcd DT Schema

Add DT bindings for the LCD controller on the jz4780 SoC
Based on .txt binding from Zubair Lutfullah Kakakhel

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com>
Cc: H. Nikolaus Schaller <hns@goldelico.com>
Cc: Rob Herring <robh@kernel.org>
Cc: devicetree@vger.kernel.org
---
 .../bindings/display/ingenic-jz4780-lcd.yaml  | 78 +++++++++++++++++++
 1 file changed, 78 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/display/ingenic-jz4780-lcd.yaml

diff --git a/Documentation/devicetree/bindings/display/ingenic-jz4780-lcd.yaml b/Documentation/devicetree/bindings/display/ingenic-jz4780-lcd.yaml
new file mode 100644
index 000000000000..c71415a3a342
--- /dev/null
+++ b/Documentation/devicetree/bindings/display/ingenic-jz4780-lcd.yaml
@@ -0,0 +1,78 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/ingenic-jz4780-lcd.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Bindings for Ingenic JZ4780 LCD Controller
+
+maintainers:
+  - Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com>
+  - H. Nikolaus Schaller <hns@goldelico.com>
+
+description: |
+  LCD Controller is the Display Controller for the Ingenic JZ4780 SoC
+
+properties:
+  compatible:
+    items:
+      - const: ingenic,jz4780-lcd
+
+  reg:
+    maxItems: 1
+    description: the address & size of the LCD controller registers
+
+  interrupts:
+    maxItems: 1
+    description: Specifies the interrupt provided by parent
+
+  clocks:
+    maxItems: 2
+    description: Clock specifiers for the JZ4780_CLK_TVE JZ4780_CLK_LCD0PIXCLK
+
+  clock-names:
+    items:
+      - const: lcd_clk
+      - const: lcd_pixclk
+
+  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/jz4780-cgu.h>
+    lcd: jz4780-lcdk@0x13050000 {
+        compatible = "ingenic,jz4780-lcd";
+        reg = <0x13050000 0x1800>;
+
+        clocks = <&cgu JZ4780_CLK_TVE>, <&cgu JZ4780_CLK_LCD0PIXCLK>;
+        clock-names = "lcd_clk", "lcd_pixclk";
+
+        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>;
+            };
+        };
+    };
+
+...
H. Nikolaus Schaller Feb. 27, 2020, 5:02 p.m. UTC | #4
Hi Sam,
great. Thank you very much!

> Am 27.02.2020 um 17:57 schrieb Sam Ravnborg <sam@ravnborg.org>:
> 
> Hi Nikolaus.
> 
>>>> Zubair Lutfullah Kakakhel (2):
>>>> dt-bindings: video: Add jz4780-lcd binding
>>>> dt-bindings: video: Add jz4780-hdmi binding
>>>> 
>>>> .../bindings/display/ingenic-jz4780-hdmi.txt  |  41 ++++++
>>>> .../bindings/display/ingenic-jz4780-lcd.txt   |  39 ++++++
>>> New bindings in DT Schema format please...
>>> We want to have then in a formal launguage so we can use these
>>> to verify the DT files.
>> 
>> Yes, I know. And I fully support the goal.
>> 
>> But I personally do not have the time to learn the (IMHO brain-twisting)
>> way the Schema format is working. Especially, I am not interested
>> in becoming volunteer translator for .txt based schemas developed
>> by someone else.
>> 
>> So I hope that someone from the community can and is willing to do
>> that.
> 
> I went ahead and typed them - please review and use these if OK.
> 
> 	Sam
> 
> From 6fee276807dfe4a502ff760e7c7840480d275052 Mon Sep 17 00:00:00 2001
> From: Sam Ravnborg <sam@ravnborg.org>
> Date: Thu, 27 Feb 2020 17:18:29 +0100
> Subject: [PATCH 1/2] dt-bindings: display: add ingenic-jz4780-lcd DT Schema
> 
> Add DT bindings for the LCD controller on the jz4780 SoC
> Based on .txt binding from Zubair Lutfullah Kakakhel
> 
> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
> Cc: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com>
> Cc: H. Nikolaus Schaller <hns@goldelico.com>
> Cc: Rob Herring <robh@kernel.org>
> Cc: devicetree@vger.kernel.org
> ---
> .../bindings/display/ingenic-jz4780-lcd.yaml  | 78 +++++++++++++++++++
> 1 file changed, 78 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/display/ingenic-jz4780-lcd.yaml
> 
> diff --git a/Documentation/devicetree/bindings/display/ingenic-jz4780-lcd.yaml b/Documentation/devicetree/bindings/display/ingenic-jz4780-lcd.yaml
> new file mode 100644
> index 000000000000..c71415a3a342
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/display/ingenic-jz4780-lcd.yaml
> @@ -0,0 +1,78 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/display/ingenic-jz4780-lcd.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Bindings for Ingenic JZ4780 LCD Controller
> +
> +maintainers:
> +  - Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com>
> +  - H. Nikolaus Schaller <hns@goldelico.com>
> +
> +description: |
> +  LCD Controller is the Display Controller for the Ingenic JZ4780 SoC
> +
> +properties:
> +  compatible:
> +    items:
> +      - const: ingenic,jz4780-lcd
> +
> +  reg:
> +    maxItems: 1
> +    description: the address & size of the LCD controller registers
> +
> +  interrupts:
> +    maxItems: 1
> +    description: Specifies the interrupt provided by parent
> +
> +  clocks:
> +    maxItems: 2
> +    description: Clock specifiers for the JZ4780_CLK_TVE JZ4780_CLK_LCD0PIXCLK
> +
> +  clock-names:
> +    items:
> +      - const: lcd_clk
> +      - const: lcd_pixclk
> +
> +  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/jz4780-cgu.h>
> +    lcd: jz4780-lcdk@0x13050000 {
> +        compatible = "ingenic,jz4780-lcd";
> +        reg = <0x13050000 0x1800>;
> +
> +        clocks = <&cgu JZ4780_CLK_TVE>, <&cgu JZ4780_CLK_LCD0PIXCLK>;
> +        clock-names = "lcd_clk", "lcd_pixclk";
> +
> +        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>;
> +            };
> +        };
> +    };
> +
> +...
> -- 
> 2.20.1
> 
> From f4d01a657e07d468eb0bc811ed8edae0b58d66d7 Mon Sep 17 00:00:00 2001
> From: Sam Ravnborg <sam@ravnborg.org>
> Date: Thu, 27 Feb 2020 17:52:34 +0100
> Subject: [PATCH 2/2] dt-bindings: display: add ingenic-jz4780-ihdmi DT Schema
> 
> Add DT bindings for the hdmi driver for the Ingenic JZ4780 SoC.
> Based on .txt binding from Zubair Lutfullah Kakakhel
> 
> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
> Cc: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com>
> Cc: H. Nikolaus Schaller <hns@goldelico.com>
> Cc: Rob Herring <robh@kernel.org>
> Cc: devicetree@vger.kernel.org
> ---
> .../bindings/display/ingenic-jz4780-hdmi.yaml | 83 +++++++++++++++++++
> 1 file changed, 83 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/display/ingenic-jz4780-hdmi.yaml
> 
> diff --git a/Documentation/devicetree/bindings/display/ingenic-jz4780-hdmi.yaml b/Documentation/devicetree/bindings/display/ingenic-jz4780-hdmi.yaml
> new file mode 100644
> index 000000000000..9b71c427bd69
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/display/ingenic-jz4780-hdmi.yaml
> @@ -0,0 +1,83 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/display/ingenic-jz4780-hdmi.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Bindings for Ingenic JZ4780 HDMI Transmitter
> +
> +maintainers:
> +  - Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com>
> +  - H. Nikolaus Schaller <hns@goldelico.com>
> +
> +description: |
> +  The HDMI Transmitter in the Ingenic JZ4780 is a Synopsys DesignWare HDMI 1.4
> +  TX controller IP with accompanying PHY IP.
> +
> +allOf:
> +  - $ref: panel/panel-common.yaml#
> +
> +properties:
> +  compatible:
> +    items:
> +      - const: ingenic,jz4780-hdmi
> +
> +  reg:
> +    maxItems: 1
> +    description: the address & size of the LCD controller registers
> +
> +  reg-io-width:
> +    const: 4
> +
> +  interrupts:
> +    maxItems: 1
> +    description: Specifies the interrupt provided by parent
> +
> +  clocks:
> +    maxItems: 2
> +    description: Clock specifiers for isrf and iahb clocks
> +
> +  clock-names:
> +    items:
> +      - const: isfr
> +      - const: iahb
> +
> +  ddc-i2c-bus: true
> +  ports: true
> +
> +required:
> +    - compatible
> +    - clocks
> +    - clock-names
> +    - ports
> +    - reg-io-width
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    #include <dt-bindings/clock/jz4780-cgu.h>
> +
> +    hdmi: hdmi@10180000 {
> +        compatible = "ingenic,jz4780-hdmi";
> +        reg = <0x10180000 0x8000>;
> +        reg-io-width = <4>;
> +        ddc-i2c-bus = <&i2c4>;
> +        interrupt-parent = <&intc>;
> +        interrupts = <3>;
> +        clocks = <&cgu JZ4780_CLK_HDMI>, <&cgu JZ4780_CLK_AHB0>;
> +        clock-names = "isfr", "iahb";
> +
> +        ports {
> +            hdmi_in: port {
> +                #address-cells = <1>;
> +                #size-cells = <0>;
> +                hdmi_in_lcd: endpoint@0 {
> +                    reg = <0>;
> +                    remote-endpoint = <&jz4780_out_hdmi>;
> +                };
> +            };
> +        };
> +    };
> +
> +...
> -- 
> 2.20.1
> 


I'll integrate into v2.

Now we need to make the HDMI output show something...

BR,
Nikolaus
Rob Herring March 3, 2020, 2:58 p.m. UTC | #5
On Thu, Feb 27, 2020 at 01:56:56PM +0100, H. Nikolaus Schaller wrote:
> Hi Sam,
> 
> > Am 27.02.2020 um 13:23 schrieb Sam Ravnborg <sam@ravnborg.org>:
> > 
> > Hi Nikolaus.
> > 
> > On Wed, Feb 26, 2020 at 08:12:52PM +0100, H. Nikolaus Schaller wrote:
> >> This patch series adds HDMI output to the jz4780/CI20 board.
> >> 
> >> It is based on taking the old 3.18 vendor kernel and trying
> >> to achieve the same with modern DTS setup and new/modified
> >> drivers.
> >> 
> >> Unfortunately, in this first RFC, only EDID and creation of
> >> /dev/fb0 are working. Also, HDMI hot plugging is detected.
> >> 
> >> But there is no HDMI output signal. So some tiny piece seems
> >> to be missing to enable/configure the Synposys HDMI controller.
> >> 
> >> We need help from the community to fix this.
> >> 
> >> Note: device tree bindings are from 2015 and still seem to
> >> fit - except they are not in yaml format.
> >> 
> >> Original authors of most patches are
> >> * Paul Boddie <paul@boddie.org.uk>
> >> * Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com>
> >> 
> >> 
> >> H. Nikolaus Schaller (2):
> >>  drm: ingenic-drm: add MODULE_DEVICE_TABLE
> >>  MIPS: CI20: defconfig: configure for DRM_DW_HDMI_JZ4780
> >> 
> >> Paul Boddie (4):
> >>  drm: ingenic: add jz4780 Synopsys HDMI driver.
> >>  pinctrl: ingenic: add hdmi-ddc pin control group
> >>  MIPS: DTS: jz4780: account for Synopsys HDMI driver and LCD controller
> >>  MIPS: DTS: CI20: add HDMI setup
> >> 
> >> Zubair Lutfullah Kakakhel (2):
> >>  dt-bindings: video: Add jz4780-lcd binding
> >>  dt-bindings: video: Add jz4780-hdmi binding
> >> 
> >> .../bindings/display/ingenic-jz4780-hdmi.txt  |  41 ++++++
> >> .../bindings/display/ingenic-jz4780-lcd.txt   |  39 ++++++
> > New bindings in DT Schema format please...
> > We want to have then in a formal launguage so we can use these
> > to verify the DT files.
> 
> Yes, I know. And I fully support the goal.
> 
> But I personally do not have the time to learn the (IMHO brain-twisting)
> way the Schema format is working. Especially, I am not interested
> in becoming volunteer translator for .txt based schemas developed
> by someone else.
> 
> So I hope that someone from the community can and is willing to do
> that.
> 
> Or that there will appear good tools soon. E.g. some GUI
> based editor tool would be very helpful so that you don't have
> to fight with the yaml indentation rules. Like there are XML
> and DTD editors. And even HTML is rarely written manually any more.
> 
> IMHO such tools should have been developed and in place *before*
> the rule to provide DT schemata is enforced.

You mean tools like what is discussed here:

https://www.redhat.com/sysadmin/yaml-tips

There's also yaml-format in the dtschema repo which will reformat a file 
to the desired formatting. It is just a wrapper around ruamel yaml 
library.

Rob
H. Nikolaus Schaller March 3, 2020, 3:19 p.m. UTC | #6
Hi Rob,

> Am 03.03.2020 um 15:58 schrieb Rob Herring <robh@kernel.org>:
> 
> On Thu, Feb 27, 2020 at 01:56:56PM +0100, H. Nikolaus Schaller wrote:
>> Hi Sam,
>> 
>> 
>> Or that there will appear good tools soon. E.g. some GUI
>> based editor tool would be very helpful so that you don't have
>> to fight with the yaml indentation rules. Like there are XML
>> and DTD editors. And even HTML is rarely written manually any more.
>> 
>> IMHO such tools should have been developed and in place *before*
>> the rule to provide DT schemata is enforced.
> 
> You mean tools like what is discussed here:
> 
> https://www.redhat.com/sysadmin/yaml-tips
> 
> There's also yaml-format in the dtschema repo which will reformat a file 
> to the desired formatting. It is just a wrapper around ruamel yaml 
> library.

What I dream of is a higher level higher abstraction than a YAML
editor because the problems I face are not only YAML syntax but that
I don't know what should be where in a scheme file and why.

So I'd like to have a Schema editor. I.e. some editor where I
can edit a list of properties and can e.g. checkmark "required".
And simply type a description into some text field.

And the editor knows where to place the keywords -item -enum
-oneOf -description etc. when doing a Save operation.

Basically what I dream of is more like MarkDown where you write text,
titles paragraphs etc. and that gets magically translated into 
valid HTML. Or even better analogy: OpenOffice where you just
write and format your text and one does not have to edit PostScript
printer commands.

But it is likely to stay a dream.

BR and thanks,
Nikolaus