* [PATCH v1 0/3] dt-bindings: convert timing + panel-dpi to DT schema
@ 2020-01-20 20:06 Sam Ravnborg
2020-01-20 20:06 ` [PATCH v1 1/3] dt-bindings: display: add panel-timing.yaml Sam Ravnborg
` (2 more replies)
0 siblings, 3 replies; 12+ messages in thread
From: Sam Ravnborg @ 2020-01-20 20:06 UTC (permalink / raw)
To: Rob Herring, dri-devel, devicetree
Cc: Oleksandr Suvorov, Thierry Reding, Laurent Pinchart
This set of patches convert display-timing.txt to DT schema.
To do that add a panel-timing.yaml file that include all the
panel-timing properties and use this in panel-common and in display-timings.
panel-dpi was also converted so we have no .txt users left of panel-timing
in panel/
Everything passed dt_binding_check - and the trivial errors I tried in
the examples was all catched during validation.
This work was triggered by a patch-set from Oleksandr Suvorov aiming
at updating panel-lvds to support panel-dpi too.
This will make it simple to add additional properties to panel-dpi.
The .yaml file are all (GPL-2.0-only OR BSD-2-Clause).
There are some parts copied or inspired from other files,
but there is also a lot of content written by me.
The license can be questioned - and I just used
the default for new bindings.
Feedback welcome!
Sam
Sam Ravnborg (3):
dt-bindings: display: add panel-timing.yaml
dt-bindings: display: convert display-timings to DT schema
dt-bindings: display: convert panel-dpi to DT schema
.../bindings/display/panel/display-timing.txt | 124 +---------
.../bindings/display/panel/display-timings.yaml | 67 ++++++
.../bindings/display/panel/panel-common.yaml | 7 +-
.../bindings/display/panel/panel-dpi.txt | 50 ----
.../bindings/display/panel/panel-dpi.yaml | 71 ++++++
.../bindings/display/panel/panel-timing.yaml | 253 +++++++++++++++++++++
6 files changed, 395 insertions(+), 177 deletions(-)
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH v1 1/3] dt-bindings: display: add panel-timing.yaml
2020-01-20 20:06 [PATCH v1 0/3] dt-bindings: convert timing + panel-dpi to DT schema Sam Ravnborg
@ 2020-01-20 20:06 ` Sam Ravnborg
2020-01-20 20:54 ` Oleksandr Suvorov
` (2 more replies)
2020-01-20 20:06 ` [PATCH v1 2/3] dt-bindings: display: convert display-timings to DT schema Sam Ravnborg
2020-01-20 20:06 ` [PATCH v1 3/3] dt-bindings: display: convert panel-dpi " Sam Ravnborg
2 siblings, 3 replies; 12+ messages in thread
From: Sam Ravnborg @ 2020-01-20 20:06 UTC (permalink / raw)
To: Rob Herring, dri-devel, devicetree
Cc: Oleksandr Suvorov, Thierry Reding, Sam Ravnborg, Laurent Pinchart
Add meta-schema variant of panel-timing and
reference it from panel-common.yaml.
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Thierry Reding <thierry.reding@gmail.com>
Cc: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
Cc: devicetree@vger.kernel.org
---
.../bindings/display/panel/panel-common.yaml | 7 +-
.../bindings/display/panel/panel-timing.yaml | 253 ++++++++++++++++++
2 files changed, 256 insertions(+), 4 deletions(-)
create mode 100644 Documentation/devicetree/bindings/display/panel/panel-timing.yaml
diff --git a/Documentation/devicetree/bindings/display/panel/panel-common.yaml b/Documentation/devicetree/bindings/display/panel/panel-common.yaml
index ef8d8cdfcede..8070c439adbd 100644
--- a/Documentation/devicetree/bindings/display/panel/panel-common.yaml
+++ b/Documentation/devicetree/bindings/display/panel/panel-common.yaml
@@ -54,13 +54,12 @@ properties:
# Display Timings
panel-timing:
- type: object
description:
Most display panels are restricted to a single resolution and
require specific display timings. The panel-timing subnode expresses those
- timings as specified in the timing subnode section of the display timing
- bindings defined in
- Documentation/devicetree/bindings/display/panel/display-timing.txt.
+ timings.
+ allOf:
+ - $ref: panel-timing.yaml#
# Connectivity
port:
diff --git a/Documentation/devicetree/bindings/display/panel/panel-timing.yaml b/Documentation/devicetree/bindings/display/panel/panel-timing.yaml
new file mode 100644
index 000000000000..59891c7a58ee
--- /dev/null
+++ b/Documentation/devicetree/bindings/display/panel/panel-timing.yaml
@@ -0,0 +1,253 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/panel/panel-timing.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: panel timing bindings
+
+maintainers:
+ - Thierry Reding <thierry.reding@gmail.com>
+ - Sam Ravnborg <sam@ravnborg.org>
+
+description: |
+ There are different ways of describing the timing data data of a panel. The
+ devicetree representation corresponds to the one commonly found in datasheets
+ for panels. If a panel supports multiple signal timings, the native-mode
+ can be specified.
+
+ The parameters are defined as seen in the following illustration.
+
+ +----------+-------------------------------------+----------+-------+
+ | | ^ | | |
+ | | |vback_porch | | |
+ | | v | | |
+ +----------#######################################----------+-------+
+ | # ^ # | |
+ | # | # | |
+ | hback # | # hfront | hsync |
+ | porch # | hactive # porch | len |
+ |<-------->#<-------+--------------------------->#<-------->|<----->|
+ | # | # | |
+ | # |vactive # | |
+ | # | # | |
+ | # v # | |
+ +----------#######################################----------+-------+
+ | | ^ | | |
+ | | |vfront_porch | | |
+ | | v | | |
+ +----------+-------------------------------------+----------+-------+
+ | | ^ | | |
+ | | |vsync_len | | |
+ | | v | | |
+ +----------+-------------------------------------+----------+-------+
+
+
+ The following is the panel timings shown with time on the x-axis.
+ This matches the timing diagrams often found in data sheets.
+
+ Active Front Sync Back
+ Region Porch Porch
+ <-----------------------><----------------><-------------><-------------->
+ //////////////////////|
+ ////////////////////// |
+ ////////////////////// |.................. ................
+ _______________
+
+ Timing can be specified either as a typical value or as a tuple
+ of min, typ, max values.
+
+properties:
+
+ clock-frequency:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description: |
+ Panel clock in Hz
+
+ hactive:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description: |
+ Horizontal panel resolution in pixels
+
+ vactive:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description: |
+ Verical panel resolution in pixels
+
+ hfront-porch:
+ description: |
+ Horizontal front porch panel timing
+ oneOf:
+ - allOf:
+ - $ref: /schemas/types.yaml#/definitions/uint32-array
+ - maxItems: 1
+ items:
+ description: typical number of pixels
+ - allOf:
+ - $ref: /schemas/types.yaml#/definitions/uint32-array
+ - minItems: 3
+ maxItems: 3
+ items:
+ description: min, typ, max number of pixels
+
+ hback-porch:
+ description: |
+ Horizontal back porch timing
+ oneOf:
+ - allOf:
+ - $ref: /schemas/types.yaml#/definitions/uint32-array
+ - maxItems: 1
+ items:
+ description: typical number of pixels
+ - allOf:
+ - $ref: /schemas/types.yaml#/definitions/uint32-array
+ - minItems: 3
+ maxItems: 3
+ items:
+ description: min, typ, max number of pixels
+
+ hsync-len:
+ description: |
+ Horizontal sync length panel timing
+ oneOf:
+ - allOf:
+ - $ref: /schemas/types.yaml#/definitions/uint32-array
+ - maxItems: 1
+ items:
+ description: typical number of pixels
+ - allOf:
+ - $ref: /schemas/types.yaml#/definitions/uint32-array
+ - minItems: 3
+ maxItems: 3
+ items:
+ description: min, typ, max number of pixels
+
+ vfront-porch:
+ description: |
+ Vertical front porch panel timing
+ oneOf:
+ - allOf:
+ - $ref: /schemas/types.yaml#/definitions/uint32-array
+ - maxItems: 1
+ items:
+ description: typical number of lines
+ - allOf:
+ - $ref: /schemas/types.yaml#/definitions/uint32-array
+ - minItems: 3
+ maxItems: 3
+ items:
+ description: min, typ, max number of lines
+
+ vback-porch:
+ description: |
+ Vertical back porch panel timing
+ oneOf:
+ - allOf:
+ - $ref: /schemas/types.yaml#/definitions/uint32-array
+ - maxItems: 1
+ items:
+ description: typical number of lines
+ - allOf:
+ - $ref: /schemas/types.yaml#/definitions/uint32-array
+ - minItems: 3
+ maxItems: 3
+ items:
+ description: min, typ, max number of lines
+
+ vsync-len:
+ description: |
+ Vertical sync length panel timing
+ oneOf:
+ - allOf:
+ - $ref: /schemas/types.yaml#/definitions/uint32-array
+ - maxItems: 1
+ items:
+ description: typical number of lines
+ - allOf:
+ - $ref: /schemas/types.yaml#/definitions/uint32-array
+ - minItems: 3
+ maxItems: 3
+ items:
+ description: min, typ, max number of lines
+
+ hsync-active:
+ description: |
+ Horizontal sync pulse.
+ If omitted then it is not used by the hardware
+ oneOf:
+ - const: 0
+ description: active low
+ - const: 1
+ description: active high
+
+ vsync-active:
+ description: |
+ Vertical sync pulse.
+ If omitted then it is not used by the hardware
+ oneOf:
+ - const: 0
+ description: active low
+ - const: 1
+ description: active high
+
+ de-active:
+ description: |
+ Data enable.
+ If omitted then it is not used by the hardware
+ oneOf:
+ - const: 0
+ description: active low
+ - const: 1
+ description: active high
+
+ pixelclk-active:
+ description: |
+ Data driving on rising or falling edge
+ oneOf:
+ - const: 0
+ description: |
+ Drive pixel data on falling edge and
+ sample data on rising edge
+ - const: 1
+ description: |
+ Drive pixel data on rising edge and
+ sample data on falling edge
+
+ syncclk-active:
+ description: |
+ Drive sync on rising or sample sync on falling edge.
+ If not specified then the same as pixelclk-active
+ oneOf:
+ - const: 0
+ description: |
+ Drive sync on falling edge and
+ sample sync on rising edge of pixel clock
+ - const: 1
+ description: |
+ Drive sync on rising edge and
+ sample sync on falling edge of pixel clock
+
+ interlaced:
+ type: boolean
+ description: Enable interlaced mode
+
+ doublescan:
+ type: boolean
+ description: Enable double scan mode
+
+ doubleclk:
+ type: boolean
+ description: Enable double clock mode
+
+required:
+ - clock-frequency
+ - hactive
+ - vactive
+ - hfront-porch
+ - hback-porch
+ - hsync-len
+ - vfront-porch
+ - vback-porch
+ - vsync-len
+
+additionalProperties: false
--
2.20.1
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v1 2/3] dt-bindings: display: convert display-timings to DT schema
2020-01-20 20:06 [PATCH v1 0/3] dt-bindings: convert timing + panel-dpi to DT schema Sam Ravnborg
2020-01-20 20:06 ` [PATCH v1 1/3] dt-bindings: display: add panel-timing.yaml Sam Ravnborg
@ 2020-01-20 20:06 ` Sam Ravnborg
2020-01-20 20:06 ` [PATCH v1 3/3] dt-bindings: display: convert panel-dpi " Sam Ravnborg
2 siblings, 0 replies; 12+ messages in thread
From: Sam Ravnborg @ 2020-01-20 20:06 UTC (permalink / raw)
To: Rob Herring, dri-devel, devicetree
Cc: Oleksandr Suvorov, Thierry Reding, Sam Ravnborg, Laurent Pinchart
Add display-timings.yaml - that references panel-timings.yaml.
display-timings.yaml will be used for display bindings
when they are converted to meta-schema format.
For now the old display-timing.txt points to the new
display-timings.yaml - and all users are left as-is.
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Rob Herring <robh@kernel.org>
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: Thierry Reding <thierry.reding@gmail.com>
Cc: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
Cc: devicetree@vger.kernel.org
---
.../bindings/display/panel/display-timing.txt | 124 +-----------------
.../display/panel/display-timings.yaml | 67 ++++++++++
2 files changed, 68 insertions(+), 123 deletions(-)
create mode 100644 Documentation/devicetree/bindings/display/panel/display-timings.yaml
diff --git a/Documentation/devicetree/bindings/display/panel/display-timing.txt b/Documentation/devicetree/bindings/display/panel/display-timing.txt
index 78222ced1874..7f55ad4a40c4 100644
--- a/Documentation/devicetree/bindings/display/panel/display-timing.txt
+++ b/Documentation/devicetree/bindings/display/panel/display-timing.txt
@@ -1,123 +1 @@
-display-timing bindings
-=======================
-
-display-timings node
---------------------
-
-required properties:
- - none
-
-optional properties:
- - native-mode: The native mode for the display, in case multiple modes are
- provided. When omitted, assume the first node is the native.
-
-timing subnode
---------------
-
-required properties:
- - hactive, vactive: display resolution
- - hfront-porch, hback-porch, hsync-len: horizontal display timing parameters
- in pixels
- vfront-porch, vback-porch, vsync-len: vertical display timing parameters in
- lines
- - clock-frequency: display clock in Hz
-
-optional properties:
- - hsync-active: hsync pulse is active low/high/ignored
- - vsync-active: vsync pulse is active low/high/ignored
- - de-active: data-enable pulse is active low/high/ignored
- - pixelclk-active: with
- - active high = drive pixel data on rising edge/
- sample data on falling edge
- - active low = drive pixel data on falling edge/
- sample data on rising edge
- - ignored = ignored
- - syncclk-active: with
- - active high = drive sync on rising edge/
- sample sync on falling edge of pixel
- clock
- - active low = drive sync on falling edge/
- sample sync on rising edge of pixel
- clock
- - omitted = same configuration as pixelclk-active
- - interlaced (bool): boolean to enable interlaced mode
- - doublescan (bool): boolean to enable doublescan mode
- - doubleclk (bool): boolean to enable doubleclock mode
-
-All the optional properties that are not bool follow the following logic:
- <1>: high active
- <0>: low active
- omitted: not used on hardware
-
-There are different ways of describing the capabilities of a display. The
-devicetree representation corresponds to the one commonly found in datasheets
-for displays. If a display supports multiple signal timings, the native-mode
-can be specified.
-
-The parameters are defined as:
-
- +----------+-------------------------------------+----------+-------+
- | | ^ | | |
- | | |vback_porch | | |
- | | v | | |
- +----------#######################################----------+-------+
- | # ^ # | |
- | # | # | |
- | hback # | # hfront | hsync |
- | porch # | hactive # porch | len |
- |<-------->#<-------+--------------------------->#<-------->|<----->|
- | # | # | |
- | # |vactive # | |
- | # | # | |
- | # v # | |
- +----------#######################################----------+-------+
- | | ^ | | |
- | | |vfront_porch | | |
- | | v | | |
- +----------+-------------------------------------+----------+-------+
- | | ^ | | |
- | | |vsync_len | | |
- | | v | | |
- +----------+-------------------------------------+----------+-------+
-
-Note: In addition to being used as subnode(s) of display-timings, the timing
- subnode may also be used on its own. This is appropriate if only one mode
- need be conveyed. In this case, the node should be named 'panel-timing'.
-
-
-Example:
-
- display-timings {
- native-mode = <&timing0>;
- timing0: 1080p24 {
- /* 1920x1080p24 */
- clock-frequency = <52000000>;
- hactive = <1920>;
- vactive = <1080>;
- hfront-porch = <25>;
- hback-porch = <25>;
- hsync-len = <25>;
- vback-porch = <2>;
- vfront-porch = <2>;
- vsync-len = <2>;
- hsync-active = <1>;
- };
- };
-
-Every required property also supports the use of ranges, so the commonly used
-datasheet description with minimum, typical and maximum values can be used.
-
-Example:
-
- timing1: timing {
- /* 1920x1080p24 */
- clock-frequency = <148500000>;
- hactive = <1920>;
- vactive = <1080>;
- hsync-len = <0 44 60>;
- hfront-porch = <80 88 95>;
- hback-porch = <100 148 160>;
- vfront-porch = <0 4 6>;
- vback-porch = <0 36 50>;
- vsync-len = <0 5 6>;
- };
+See display-timings.yaml in this directory.
diff --git a/Documentation/devicetree/bindings/display/panel/display-timings.yaml b/Documentation/devicetree/bindings/display/panel/display-timings.yaml
new file mode 100644
index 000000000000..4f93a4a287d3
--- /dev/null
+++ b/Documentation/devicetree/bindings/display/panel/display-timings.yaml
@@ -0,0 +1,67 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/panel/display-timings.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: display timing bindings
+
+maintainers:
+ - Thierry Reding <thierry.reding@gmail.com>
+ - Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
+ - Sam Ravnborg <sam@ravnborg.org>
+
+properties:
+ $nodename:
+ const: display-timings
+
+ native-mode:
+ $ref: /schemas/types.yaml#/definitions/phandle
+ description: |
+ The native mode for the display, in case multiple modes are
+ provided. When omitted, assume the first node is the native.
+
+patternProperties:
+ "^timing.*$":
+ allOf:
+ - $ref: panel-timing.yaml#
+
+additionalProperties: false
+
+examples:
+ - |+
+
+ /*
+ * Example that specifies panel timing using minimum, typical,
+ * maximum values as commonly used in datasheet description.
+ * timing1 is the native-mode.
+ */
+ display-timings {
+ native-mode = <&timing1>;
+ timing0 {
+ /* 1920x1080p24 */
+ clock-frequency = <148500000>;
+ hactive = <1920>;
+ vactive = <1080>;
+ hsync-len = <0 44 60>;
+ hfront-porch = <80 88 95>;
+ hback-porch = <100 148 160>;
+ vfront-porch = <0 4 6>;
+ vback-porch = <0 36 50>;
+ vsync-len = <0 5 6>;
+ };
+ timing1 {
+ /* 1920x1080p24 */
+ clock-frequency = <52000000>;
+ hactive = <1920>;
+ vactive = <1080>;
+ hfront-porch = <25>;
+ hback-porch = <25>;
+ hsync-len = <0 25 25>;
+ vback-porch = <2>;
+ vfront-porch = <2>;
+ vsync-len = <2>;
+ hsync-active = <1>;
+ pixelclk-active = <1>;
+ };
+ };
--
2.20.1
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v1 3/3] dt-bindings: display: convert panel-dpi to DT schema
2020-01-20 20:06 [PATCH v1 0/3] dt-bindings: convert timing + panel-dpi to DT schema Sam Ravnborg
2020-01-20 20:06 ` [PATCH v1 1/3] dt-bindings: display: add panel-timing.yaml Sam Ravnborg
2020-01-20 20:06 ` [PATCH v1 2/3] dt-bindings: display: convert display-timings to DT schema Sam Ravnborg
@ 2020-01-20 20:06 ` Sam Ravnborg
2020-01-21 14:50 ` Rob Herring
2 siblings, 1 reply; 12+ messages in thread
From: Sam Ravnborg @ 2020-01-20 20:06 UTC (permalink / raw)
To: Rob Herring, dri-devel, devicetree
Cc: Oleksandr Suvorov, Thierry Reding, Sam Ravnborg, Laurent Pinchart
With panel-timing converted, now convert the single
remaining .txt user in panel/ of panel-timing to DT schema.
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Rob Herring <robh@kernel.org>
Cc: Thierry Reding <thierry.reding@gmail.com>
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: Maxime Ripard <mripard@kernel.org>
---
.../bindings/display/panel/panel-dpi.txt | 50 -------------
.../bindings/display/panel/panel-dpi.yaml | 71 +++++++++++++++++++
2 files changed, 71 insertions(+), 50 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/display/panel/panel-dpi.txt
create mode 100644 Documentation/devicetree/bindings/display/panel/panel-dpi.yaml
diff --git a/Documentation/devicetree/bindings/display/panel/panel-dpi.txt b/Documentation/devicetree/bindings/display/panel/panel-dpi.txt
deleted file mode 100644
index 6b203bc4d932..000000000000
--- a/Documentation/devicetree/bindings/display/panel/panel-dpi.txt
+++ /dev/null
@@ -1,50 +0,0 @@
-Generic MIPI DPI Panel
-======================
-
-Required properties:
-- compatible: "panel-dpi"
-
-Optional properties:
-- label: a symbolic name for the panel
-- enable-gpios: panel enable gpio
-- reset-gpios: GPIO to control the RESET pin
-- vcc-supply: phandle of regulator that will be used to enable power to the display
-- backlight: phandle of the backlight device
-
-Required nodes:
-- "panel-timing" containing video timings
- (Documentation/devicetree/bindings/display/panel/display-timing.txt)
-- Video port for DPI input
-
-Example
--------
-
-lcd0: display@0 {
- compatible = "samsung,lte430wq-f0c", "panel-dpi";
- label = "lcd";
-
- backlight = <&backlight>;
-
- port {
- lcd_in: endpoint {
- remote-endpoint = <&dpi_out>;
- };
- };
-
- panel-timing {
- clock-frequency = <9200000>;
- hactive = <480>;
- vactive = <272>;
- hfront-porch = <8>;
- hback-porch = <4>;
- hsync-len = <41>;
- vback-porch = <2>;
- vfront-porch = <4>;
- vsync-len = <10>;
-
- hsync-active = <0>;
- vsync-active = <0>;
- de-active = <1>;
- pixelclk-active = <1>;
- };
-};
diff --git a/Documentation/devicetree/bindings/display/panel/panel-dpi.yaml b/Documentation/devicetree/bindings/display/panel/panel-dpi.yaml
new file mode 100644
index 000000000000..4e19c1fd52c3
--- /dev/null
+++ b/Documentation/devicetree/bindings/display/panel/panel-dpi.yaml
@@ -0,0 +1,71 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/panel/panel-dpi.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Generic MIPI DPI Panel
+
+maintainers:
+ - Sam Ravnborg <sam@ravnborg.org>
+ - Thierry Reding <thierry.reding@gmail.com>
+
+allOf:
+ - $ref: panel-common.yaml#
+
+properties:
+ compatible:
+ contains:
+ const: panel-dpi
+ description:
+ Shall contain "panel-dpi" in addition to a mandatory panel-specific
+ compatible string defined in individual panel bindings. The "panel-dpi"
+ value shall never be used on its own.
+
+ vcc-supply:
+ description: |
+ Regulator that will be used to enable power to the display
+
+ label: true
+ enable-gpios: true
+ reset-gpios: true
+ backlight: true
+ panel-timing: true
+ port: true
+
+required:
+ - panel-timing
+
+additionalProperties: false
+
+examples:
+ - |
+ panel@0 {
+ compatible = "samsung,lte430wq-f0c", "panel-dpi";
+ label = "lcd";
+ vcc-supply = <&vcc_supply>;
+
+ backlight = <&backlight>;
+
+ port {
+ lcd_in: endpoint {
+ remote-endpoint = <&dpi_out>;
+ };
+ };
+ panel-timing {
+ clock-frequency = <9200000>;
+ hactive = <480>;
+ vactive = <272>;
+ hfront-porch = <8>;
+ hback-porch = <4>;
+ hsync-len = <41>;
+ vback-porch = <2>;
+ vfront-porch = <4>;
+ vsync-len = <10>;
+
+ hsync-active = <0>;
+ vsync-active = <0>;
+ de-active = <1>;
+ pixelclk-active = <1>;
+ };
+ };
--
2.20.1
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH v1 1/3] dt-bindings: display: add panel-timing.yaml
2020-01-20 20:06 ` [PATCH v1 1/3] dt-bindings: display: add panel-timing.yaml Sam Ravnborg
@ 2020-01-20 20:54 ` Oleksandr Suvorov
2020-01-21 20:05 ` Sam Ravnborg
2020-01-25 18:29 ` Sam Ravnborg
2020-01-21 7:29 ` Maxime Ripard
2020-01-21 14:35 ` Rob Herring
2 siblings, 2 replies; 12+ messages in thread
From: Oleksandr Suvorov @ 2020-01-20 20:54 UTC (permalink / raw)
To: Sam Ravnborg
Cc: devicetree, dri-devel, Oleksandr Suvorov, Thierry Reding,
Laurent Pinchart
On Mon, Jan 20, 2020 at 10:07 PM Sam Ravnborg <sam@ravnborg.org> wrote:
>
> Add meta-schema variant of panel-timing and
> reference it from panel-common.yaml.
>
> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
> ---
>
There some typos:
> diff --git a/Documentation/devicetree/bindings/display/panel/panel-timing.yaml b/Documentation/devicetree/bindings/display/panel/panel-timing.yaml
> new file mode 100644
> index 000000000000..59891c7a58ee
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/display/panel/panel-timing.yaml
> @@ -0,0 +1,253 @@
...
> +description: |
> + There are different ways of describing the timing data data of a panel. The
-----------------------------------------------------------------------^^^^^^^^^
s/data data/data/
...
> + vactive:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description: |
> + Verical panel resolution in pixels
---------^^^^^^
Vertical
Anyway, those are minor issues, so
Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
--
Best regards
Oleksandr Suvorov
Toradex AG
Altsagenstrasse 5 | 6048 Horw/Luzern | Switzerland | T: +41 41 500
4800 (main line)
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v1 1/3] dt-bindings: display: add panel-timing.yaml
2020-01-20 20:06 ` [PATCH v1 1/3] dt-bindings: display: add panel-timing.yaml Sam Ravnborg
2020-01-20 20:54 ` Oleksandr Suvorov
@ 2020-01-21 7:29 ` Maxime Ripard
2020-01-25 18:26 ` Sam Ravnborg
2020-01-21 14:35 ` Rob Herring
2 siblings, 1 reply; 12+ messages in thread
From: Maxime Ripard @ 2020-01-21 7:29 UTC (permalink / raw)
To: Sam Ravnborg
Cc: devicetree, dri-devel, Oleksandr Suvorov, Thierry Reding,
Laurent Pinchart
Hi,
On Mon, Jan 20, 2020 at 09:06:39PM +0100, Sam Ravnborg wrote:
> Add meta-schema variant of panel-timing and
> reference it from panel-common.yaml.
>
> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> Cc: Rob Herring <robh@kernel.org>
> Cc: Thierry Reding <thierry.reding@gmail.com>
> Cc: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
> Cc: devicetree@vger.kernel.org
> ---
> .../bindings/display/panel/panel-common.yaml | 7 +-
> .../bindings/display/panel/panel-timing.yaml | 253 ++++++++++++++++++
> 2 files changed, 256 insertions(+), 4 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/display/panel/panel-timing.yaml
>
> diff --git a/Documentation/devicetree/bindings/display/panel/panel-common.yaml b/Documentation/devicetree/bindings/display/panel/panel-common.yaml
> index ef8d8cdfcede..8070c439adbd 100644
> --- a/Documentation/devicetree/bindings/display/panel/panel-common.yaml
> +++ b/Documentation/devicetree/bindings/display/panel/panel-common.yaml
> @@ -54,13 +54,12 @@ properties:
>
> # Display Timings
> panel-timing:
> - type: object
> description:
> Most display panels are restricted to a single resolution and
> require specific display timings. The panel-timing subnode expresses those
> - timings as specified in the timing subnode section of the display timing
> - bindings defined in
> - Documentation/devicetree/bindings/display/panel/display-timing.txt.
> + timings.
> + allOf:
> + - $ref: panel-timing.yaml#
>
> # Connectivity
> port:
> diff --git a/Documentation/devicetree/bindings/display/panel/panel-timing.yaml b/Documentation/devicetree/bindings/display/panel/panel-timing.yaml
> new file mode 100644
> index 000000000000..59891c7a58ee
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/display/panel/panel-timing.yaml
> @@ -0,0 +1,253 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/display/panel/panel-timing.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: panel timing bindings
> +
> +maintainers:
> + - Thierry Reding <thierry.reding@gmail.com>
> + - Sam Ravnborg <sam@ravnborg.org>
> +
> +description: |
> + There are different ways of describing the timing data data of a panel. The
> + devicetree representation corresponds to the one commonly found in datasheets
> + for panels. If a panel supports multiple signal timings, the native-mode
> + can be specified.
> +
> + The parameters are defined as seen in the following illustration.
> +
> + +----------+-------------------------------------+----------+-------+
> + | | ^ | | |
> + | | |vback_porch | | |
> + | | v | | |
> + +----------#######################################----------+-------+
> + | # ^ # | |
> + | # | # | |
> + | hback # | # hfront | hsync |
> + | porch # | hactive # porch | len |
> + |<-------->#<-------+--------------------------->#<-------->|<----->|
> + | # | # | |
> + | # |vactive # | |
> + | # | # | |
> + | # v # | |
> + +----------#######################################----------+-------+
> + | | ^ | | |
> + | | |vfront_porch | | |
> + | | v | | |
> + +----------+-------------------------------------+----------+-------+
> + | | ^ | | |
> + | | |vsync_len | | |
> + | | v | | |
> + +----------+-------------------------------------+----------+-------+
> +
> +
> + The following is the panel timings shown with time on the x-axis.
> + This matches the timing diagrams often found in data sheets.
> +
> + Active Front Sync Back
> + Region Porch Porch
> + <-----------------------><----------------><-------------><-------------->
> + //////////////////////|
> + ////////////////////// |
> + ////////////////////// |.................. ................
> + _______________
> +
> + Timing can be specified either as a typical value or as a tuple
> + of min, typ, max values.
> +
> +properties:
> +
> + clock-frequency:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description: |
> + Panel clock in Hz
> +
> + hactive:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description: |
> + Horizontal panel resolution in pixels
> +
> + vactive:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description: |
> + Verical panel resolution in pixels
> +
> + hfront-porch:
> + description: |
> + Horizontal front porch panel timing
> + oneOf:
> + - allOf:
> + - $ref: /schemas/types.yaml#/definitions/uint32-array
> + - maxItems: 1
> + items:
> + description: typical number of pixels
You have that on a number of occasions, but that could just be an
uint32, right?
> + - allOf:
> + - $ref: /schemas/types.yaml#/definitions/uint32-array
> + - minItems: 3
> + maxItems: 3
> + items:
> + description: min, typ, max number of pixels
When minItems and maxitems are equal, you can just set one, the other
one will be filled by the DT schemas tools.
> + hsync-active:
> + description: |
> + Horizontal sync pulse.
> + If omitted then it is not used by the hardware
> + oneOf:
> + - const: 0
> + description: active low
> + - const: 1
> + description: active high
You probably should use an enum here (and in other similar
places). oneOf / anyOf / allOF errors are pretty cryptic, while it
will it's really better with an enum.
Thanks!
Maxime
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v1 1/3] dt-bindings: display: add panel-timing.yaml
2020-01-20 20:06 ` [PATCH v1 1/3] dt-bindings: display: add panel-timing.yaml Sam Ravnborg
2020-01-20 20:54 ` Oleksandr Suvorov
2020-01-21 7:29 ` Maxime Ripard
@ 2020-01-21 14:35 ` Rob Herring
2 siblings, 0 replies; 12+ messages in thread
From: Rob Herring @ 2020-01-21 14:35 UTC (permalink / raw)
To: Sam Ravnborg
Cc: devicetree, Oleksandr Suvorov, Thierry Reding, dri-devel,
Laurent Pinchart
On Mon, Jan 20, 2020 at 2:07 PM Sam Ravnborg <sam@ravnborg.org> wrote:
>
> Add meta-schema variant of panel-timing and
> reference it from panel-common.yaml.
>
> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> Cc: Rob Herring <robh@kernel.org>
> Cc: Thierry Reding <thierry.reding@gmail.com>
> Cc: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
> Cc: devicetree@vger.kernel.org
> ---
> .../bindings/display/panel/panel-common.yaml | 7 +-
> .../bindings/display/panel/panel-timing.yaml | 253 ++++++++++++++++++
> 2 files changed, 256 insertions(+), 4 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/display/panel/panel-timing.yaml
>
> diff --git a/Documentation/devicetree/bindings/display/panel/panel-common.yaml b/Documentation/devicetree/bindings/display/panel/panel-common.yaml
> index ef8d8cdfcede..8070c439adbd 100644
> --- a/Documentation/devicetree/bindings/display/panel/panel-common.yaml
> +++ b/Documentation/devicetree/bindings/display/panel/panel-common.yaml
> @@ -54,13 +54,12 @@ properties:
>
> # Display Timings
> panel-timing:
> - type: object
> description:
> Most display panels are restricted to a single resolution and
> require specific display timings. The panel-timing subnode expresses those
> - timings as specified in the timing subnode section of the display timing
> - bindings defined in
> - Documentation/devicetree/bindings/display/panel/display-timing.txt.
> + timings.
> + allOf:
> + - $ref: panel-timing.yaml#
>
> # Connectivity
> port:
> diff --git a/Documentation/devicetree/bindings/display/panel/panel-timing.yaml b/Documentation/devicetree/bindings/display/panel/panel-timing.yaml
> new file mode 100644
> index 000000000000..59891c7a58ee
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/display/panel/panel-timing.yaml
> @@ -0,0 +1,253 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
Some of this comes from the existing binding files, do you have rights
to change the license (it would be nice to get it).
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/display/panel/panel-timing.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: panel timing bindings
> +
> +maintainers:
> + - Thierry Reding <thierry.reding@gmail.com>
> + - Sam Ravnborg <sam@ravnborg.org>
> +
> +description: |
> + There are different ways of describing the timing data data of a panel. The
> + devicetree representation corresponds to the one commonly found in datasheets
> + for panels. If a panel supports multiple signal timings, the native-mode
> + can be specified.
> +
> + The parameters are defined as seen in the following illustration.
> +
> + +----------+-------------------------------------+----------+-------+
> + | | ^ | | |
> + | | |vback_porch | | |
> + | | v | | |
> + +----------#######################################----------+-------+
> + | # ^ # | |
> + | # | # | |
> + | hback # | # hfront | hsync |
> + | porch # | hactive # porch | len |
> + |<-------->#<-------+--------------------------->#<-------->|<----->|
> + | # | # | |
> + | # |vactive # | |
> + | # | # | |
> + | # v # | |
> + +----------#######################################----------+-------+
> + | | ^ | | |
> + | | |vfront_porch | | |
> + | | v | | |
> + +----------+-------------------------------------+----------+-------+
> + | | ^ | | |
> + | | |vsync_len | | |
> + | | v | | |
> + +----------+-------------------------------------+----------+-------+
> +
> +
> + The following is the panel timings shown with time on the x-axis.
> + This matches the timing diagrams often found in data sheets.
> +
> + Active Front Sync Back
> + Region Porch Porch
> + <-----------------------><----------------><-------------><-------------->
> + //////////////////////|
> + ////////////////////// |
> + ////////////////////// |.................. ................
> + _______________
> +
> + Timing can be specified either as a typical value or as a tuple
> + of min, typ, max values.
> +
> +properties:
> +
> + clock-frequency:
> + $ref: /schemas/types.yaml#/definitions/uint32
There's already a type definition for this.
> + description: |
Drop '|' unless you have multiple paragraphs or need to maintain formatting.
> + Panel clock in Hz
> +
> + hactive:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description: |
> + Horizontal panel resolution in pixels
> +
> + vactive:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description: |
> + Verical panel resolution in pixels
typo
> +
> + hfront-porch:
> + description: |
> + Horizontal front porch panel timing
> + oneOf:
> + - allOf:
> + - $ref: /schemas/types.yaml#/definitions/uint32-array
> + - maxItems: 1
> + items:
> + description: typical number of pixels
> + - allOf:
> + - $ref: /schemas/types.yaml#/definitions/uint32-array
> + - minItems: 3
> + maxItems: 3
> + items:
> + description: min, typ, max number of pixels
I think you can describe it like this (test with 2 items though):
allOf:
- $ref: /schemas/types.yaml#/definitions/uint32-array
not:
maxItems: 2
items:
- description: ...
- description: ...
- description: ...
> +
> + hback-porch:
> + description: |
> + Horizontal back porch timing
> + oneOf:
> + - allOf:
> + - $ref: /schemas/types.yaml#/definitions/uint32-array
> + - maxItems: 1
> + items:
> + description: typical number of pixels
> + - allOf:
> + - $ref: /schemas/types.yaml#/definitions/uint32-array
> + - minItems: 3
> + maxItems: 3
> + items:
> + description: min, typ, max number of pixels
> +
> + hsync-len:
> + description: |
> + Horizontal sync length panel timing
> + oneOf:
> + - allOf:
> + - $ref: /schemas/types.yaml#/definitions/uint32-array
> + - maxItems: 1
> + items:
> + description: typical number of pixels
> + - allOf:
> + - $ref: /schemas/types.yaml#/definitions/uint32-array
> + - minItems: 3
> + maxItems: 3
> + items:
> + description: min, typ, max number of pixels
> +
> + vfront-porch:
> + description: |
> + Vertical front porch panel timing
> + oneOf:
> + - allOf:
> + - $ref: /schemas/types.yaml#/definitions/uint32-array
> + - maxItems: 1
> + items:
> + description: typical number of lines
> + - allOf:
> + - $ref: /schemas/types.yaml#/definitions/uint32-array
> + - minItems: 3
> + maxItems: 3
> + items:
> + description: min, typ, max number of lines
> +
> + vback-porch:
> + description: |
> + Vertical back porch panel timing
> + oneOf:
> + - allOf:
> + - $ref: /schemas/types.yaml#/definitions/uint32-array
> + - maxItems: 1
> + items:
> + description: typical number of lines
> + - allOf:
> + - $ref: /schemas/types.yaml#/definitions/uint32-array
> + - minItems: 3
> + maxItems: 3
> + items:
> + description: min, typ, max number of lines
> +
> + vsync-len:
> + description: |
> + Vertical sync length panel timing
> + oneOf:
> + - allOf:
> + - $ref: /schemas/types.yaml#/definitions/uint32-array
> + - maxItems: 1
> + items:
> + description: typical number of lines
> + - allOf:
> + - $ref: /schemas/types.yaml#/definitions/uint32-array
> + - minItems: 3
> + maxItems: 3
> + items:
> + description: min, typ, max number of lines
> +
> + hsync-active:
> + description: |
> + Horizontal sync pulse.
> + If omitted then it is not used by the hardware
> + oneOf:
> + - const: 0
> + description: active low
> + - const: 1
> + description: active high
> +
> + vsync-active:
> + description: |
> + Vertical sync pulse.
> + If omitted then it is not used by the hardware
> + oneOf:
> + - const: 0
> + description: active low
> + - const: 1
> + description: active high
> +
> + de-active:
> + description: |
> + Data enable.
> + If omitted then it is not used by the hardware
> + oneOf:
> + - const: 0
> + description: active low
> + - const: 1
> + description: active high
> +
> + pixelclk-active:
> + description: |
> + Data driving on rising or falling edge
> + oneOf:
> + - const: 0
> + description: |
> + Drive pixel data on falling edge and
> + sample data on rising edge
> + - const: 1
> + description: |
> + Drive pixel data on rising edge and
> + sample data on falling edge
> +
> + syncclk-active:
> + description: |
> + Drive sync on rising or sample sync on falling edge.
> + If not specified then the same as pixelclk-active
> + oneOf:
> + - const: 0
> + description: |
> + Drive sync on falling edge and
> + sample sync on rising edge of pixel clock
> + - const: 1
> + description: |
> + Drive sync on rising edge and
> + sample sync on falling edge of pixel clock
> +
> + interlaced:
> + type: boolean
> + description: Enable interlaced mode
> +
> + doublescan:
> + type: boolean
> + description: Enable double scan mode
> +
> + doubleclk:
> + type: boolean
> + description: Enable double clock mode
> +
> +required:
> + - clock-frequency
> + - hactive
> + - vactive
> + - hfront-porch
> + - hback-porch
> + - hsync-len
> + - vfront-porch
> + - vback-porch
> + - vsync-len
> +
> +additionalProperties: false
> --
> 2.20.1
>
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v1 3/3] dt-bindings: display: convert panel-dpi to DT schema
2020-01-20 20:06 ` [PATCH v1 3/3] dt-bindings: display: convert panel-dpi " Sam Ravnborg
@ 2020-01-21 14:50 ` Rob Herring
2020-01-25 19:39 ` Sam Ravnborg
0 siblings, 1 reply; 12+ messages in thread
From: Rob Herring @ 2020-01-21 14:50 UTC (permalink / raw)
To: Sam Ravnborg
Cc: devicetree, Oleksandr Suvorov, Thierry Reding, dri-devel,
Laurent Pinchart
On Mon, Jan 20, 2020 at 2:07 PM Sam Ravnborg <sam@ravnborg.org> wrote:
>
> With panel-timing converted, now convert the single
> remaining .txt user in panel/ of panel-timing to DT schema.
>
> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
> Cc: Rob Herring <robh@kernel.org>
> Cc: Thierry Reding <thierry.reding@gmail.com>
> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> Cc: Maxime Ripard <mripard@kernel.org>
> ---
> .../bindings/display/panel/panel-dpi.txt | 50 -------------
> .../bindings/display/panel/panel-dpi.yaml | 71 +++++++++++++++++++
> 2 files changed, 71 insertions(+), 50 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/display/panel/panel-dpi.txt
> create mode 100644 Documentation/devicetree/bindings/display/panel/panel-dpi.yaml
[...]
> diff --git a/Documentation/devicetree/bindings/display/panel/panel-dpi.yaml b/Documentation/devicetree/bindings/display/panel/panel-dpi.yaml
> new file mode 100644
> index 000000000000..4e19c1fd52c3
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/display/panel/panel-dpi.yaml
> @@ -0,0 +1,71 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/display/panel/panel-dpi.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Generic MIPI DPI Panel
> +
> +maintainers:
> + - Sam Ravnborg <sam@ravnborg.org>
> + - Thierry Reding <thierry.reding@gmail.com>
> +
> +allOf:
> + - $ref: panel-common.yaml#
> +
> +properties:
> + compatible:
> + contains:
> + const: panel-dpi
> + description:
> + Shall contain "panel-dpi" in addition to a mandatory panel-specific
> + compatible string defined in individual panel bindings. The "panel-dpi"
> + value shall never be used on its own.
Yet we have 3 cases where it is...
A 'minItems: 2' should be enough to catch these. Or do:
items:
- {}
- const: panel-dpi
Or list the panel compatible that's in the example. That way we'll get
errors for all the undocumented panel compatibles (that's most of
them).
> +
> + vcc-supply:
> + description: |
> + Regulator that will be used to enable power to the display
> +
> + label: true
> + enable-gpios: true
> + reset-gpios: true
> + backlight: true
> + panel-timing: true
> + port: true
> +
> +required:
> + - panel-timing
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + panel@0 {
> + compatible = "samsung,lte430wq-f0c", "panel-dpi";
> + label = "lcd";
> + vcc-supply = <&vcc_supply>;
> +
> + backlight = <&backlight>;
> +
> + port {
> + lcd_in: endpoint {
> + remote-endpoint = <&dpi_out>;
> + };
> + };
> + panel-timing {
> + clock-frequency = <9200000>;
> + hactive = <480>;
> + vactive = <272>;
> + hfront-porch = <8>;
> + hback-porch = <4>;
> + hsync-len = <41>;
> + vback-porch = <2>;
> + vfront-porch = <4>;
> + vsync-len = <10>;
> +
> + hsync-active = <0>;
> + vsync-active = <0>;
> + de-active = <1>;
> + pixelclk-active = <1>;
> + };
> + };
> --
> 2.20.1
>
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v1 1/3] dt-bindings: display: add panel-timing.yaml
2020-01-20 20:54 ` Oleksandr Suvorov
@ 2020-01-21 20:05 ` Sam Ravnborg
2020-01-25 18:29 ` Sam Ravnborg
1 sibling, 0 replies; 12+ messages in thread
From: Sam Ravnborg @ 2020-01-21 20:05 UTC (permalink / raw)
To: Oleksandr Suvorov; +Cc: Thierry Reding, Laurent Pinchart, dri-devel, devicetree
Hi Oleksandr.
>
> There some typos:
>
> > diff --git a/Documentation/devicetree/bindings/display/panel/panel-timing.yaml b/Documentation/devicetree/bindings/display/panel/panel-timing.yaml
> > new file mode 100644
> > index 000000000000..59891c7a58ee
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/display/panel/panel-timing.yaml
> > @@ -0,0 +1,253 @@
> ...
> > +description: |
> > + There are different ways of describing the timing data data of a panel. The
> -----------------------------------------------------------------------^^^^^^^^^
> s/data data/data/
>
> ...
> > + vactive:
> > + $ref: /schemas/types.yaml#/definitions/uint32
> > + description: |
> > + Verical panel resolution in pixels
> ---------^^^^^^
> Vertical
Fixed in v2 - thanks.
>
> Anyway, those are minor issues, so
>
> Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
Sam
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v1 1/3] dt-bindings: display: add panel-timing.yaml
2020-01-21 7:29 ` Maxime Ripard
@ 2020-01-25 18:26 ` Sam Ravnborg
0 siblings, 0 replies; 12+ messages in thread
From: Sam Ravnborg @ 2020-01-25 18:26 UTC (permalink / raw)
To: Maxime Ripard
Cc: devicetree, dri-devel, Oleksandr Suvorov, Thierry Reding,
Laurent Pinchart
Hi Maxime.
Thanks for your comments!
>
> > + - allOf:
> > + - $ref: /schemas/types.yaml#/definitions/uint32-array
> > + - minItems: 3
> > + maxItems: 3
> > + items:
> > + description: min, typ, max number of pixels
>
> When minItems and maxitems are equal, you can just set one, the other
> one will be filled by the DT schemas tools.
I tried to drop minItems: 3
But it just did not work - I could not make it
accept <xx> and <xx xx xx>.
And the schema should, and does, reject <xx xx> and <xx xx xx xx>
I do not know why - I just did a trial-and-error on this.
> > + hsync-active:
> > + description: |
> > + Horizontal sync pulse.
> > + If omitted then it is not used by the hardware
> > + oneOf:
> > + - const: 0
> > + description: active low
> > + - const: 1
> > + description: active high
>
> You probably should use an enum here (and in other similar
> places). oneOf / anyOf / allOF errors are pretty cryptic, while it
> will it's really better with an enum.
Yep - enum: [0, 1] is much nicer.
Sam
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v1 1/3] dt-bindings: display: add panel-timing.yaml
2020-01-20 20:54 ` Oleksandr Suvorov
2020-01-21 20:05 ` Sam Ravnborg
@ 2020-01-25 18:29 ` Sam Ravnborg
1 sibling, 0 replies; 12+ messages in thread
From: Sam Ravnborg @ 2020-01-25 18:29 UTC (permalink / raw)
To: Oleksandr Suvorov; +Cc: Thierry Reding, Laurent Pinchart, dri-devel, devicetree
Hi Oleksandr
Thanks for the feedback on the typos.
>
> Anyway, those are minor issues, so
>
> Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
I did a number of other changes so I dropped this r-b,
as you really did not review the v2 version.
v2 coming later today.
Sam
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v1 3/3] dt-bindings: display: convert panel-dpi to DT schema
2020-01-21 14:50 ` Rob Herring
@ 2020-01-25 19:39 ` Sam Ravnborg
0 siblings, 0 replies; 12+ messages in thread
From: Sam Ravnborg @ 2020-01-25 19:39 UTC (permalink / raw)
To: Rob Herring
Cc: devicetree, Oleksandr Suvorov, Thierry Reding, dri-devel,
Laurent Pinchart
Hi Rob.
On Tue, Jan 21, 2020 at 08:50:25AM -0600, Rob Herring wrote:
> On Mon, Jan 20, 2020 at 2:07 PM Sam Ravnborg <sam@ravnborg.org> wrote:
> >
> > With panel-timing converted, now convert the single
> > remaining .txt user in panel/ of panel-timing to DT schema.
> >
> > Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
> > Cc: Rob Herring <robh@kernel.org>
> > Cc: Thierry Reding <thierry.reding@gmail.com>
> > Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> > Cc: Maxime Ripard <mripard@kernel.org>
> > ---
> > .../bindings/display/panel/panel-dpi.txt | 50 -------------
> > .../bindings/display/panel/panel-dpi.yaml | 71 +++++++++++++++++++
> > 2 files changed, 71 insertions(+), 50 deletions(-)
> > delete mode 100644 Documentation/devicetree/bindings/display/panel/panel-dpi.txt
> > create mode 100644 Documentation/devicetree/bindings/display/panel/panel-dpi.yaml
>
> [...]
>
> > diff --git a/Documentation/devicetree/bindings/display/panel/panel-dpi.yaml b/Documentation/devicetree/bindings/display/panel/panel-dpi.yaml
> > new file mode 100644
> > index 000000000000..4e19c1fd52c3
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/display/panel/panel-dpi.yaml
> > @@ -0,0 +1,71 @@
> > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/display/panel/panel-dpi.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: Generic MIPI DPI Panel
> > +
> > +maintainers:
> > + - Sam Ravnborg <sam@ravnborg.org>
> > + - Thierry Reding <thierry.reding@gmail.com>
> > +
> > +allOf:
> > + - $ref: panel-common.yaml#
> > +
> > +properties:
> > + compatible:
> > + contains:
> > + const: panel-dpi
> > + description:
> > + Shall contain "panel-dpi" in addition to a mandatory panel-specific
> > + compatible string defined in individual panel bindings. The "panel-dpi"
> > + value shall never be used on its own.
>
> Yet we have 3 cases where it is...
>
> A 'minItems: 2' should be enough to catch these. Or do:
The above was a verbatim copy from another binding.
Thinking more about this I went with this:
compatible:
contains:
const: panel-dpi
description:
Shall contain "panel-dpi" in addition to an optional panel-specific
compatible string defined in individual panel bindings.
"panel-dpi" can be used alone, thus no dedicated binding file
is required for each and every panel.
So a DT file with:
panel@0 {
compatible = "panel-dpi";
...
panel-timing {
...
};
Is in many cases enough - and then people do not have
to either cheat or wait until their panel is included in the kernel.
The panel market i big, and there are new panels each and every day.
With panel-dpi we can support the dumb panels that
do not require any special delays etc.
Sam
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2020-01-25 19:39 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-01-20 20:06 [PATCH v1 0/3] dt-bindings: convert timing + panel-dpi to DT schema Sam Ravnborg
2020-01-20 20:06 ` [PATCH v1 1/3] dt-bindings: display: add panel-timing.yaml Sam Ravnborg
2020-01-20 20:54 ` Oleksandr Suvorov
2020-01-21 20:05 ` Sam Ravnborg
2020-01-25 18:29 ` Sam Ravnborg
2020-01-21 7:29 ` Maxime Ripard
2020-01-25 18:26 ` Sam Ravnborg
2020-01-21 14:35 ` Rob Herring
2020-01-20 20:06 ` [PATCH v1 2/3] dt-bindings: display: convert display-timings to DT schema Sam Ravnborg
2020-01-20 20:06 ` [PATCH v1 3/3] dt-bindings: display: convert panel-dpi " Sam Ravnborg
2020-01-21 14:50 ` Rob Herring
2020-01-25 19:39 ` Sam Ravnborg
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).