diff mbox series

[v2,1/3] dt-bindings: display: add new bus-format property for panel-dpi

Message ID 20220518115541.38407-2-max.oss.09@gmail.com (mailing list archive)
State New, archived
Headers show
Series drm/panel: simple: add bus-format support for panel-dpi | expand

Commit Message

Max Krummenacher May 18, 2022, 11:55 a.m. UTC
From: Max Krummenacher <max.krummenacher@toradex.com>

The property is used to set the enum bus_format and infer the bpc
for a panel defined by 'panel-dpi'.
This specifies how the panel is connected to the display interface.

Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>

---

Changes in v2:
    - Fix errors found by dt_binding_check

 .../bindings/display/panel/panel-dpi.yaml     | 11 +++++++++
 .../dt-bindings/display/dt-media-bus-format.h | 23 +++++++++++++++++++
 2 files changed, 34 insertions(+)
 create mode 100644 include/dt-bindings/display/dt-media-bus-format.h

Comments

Rob Herring (Arm) June 1, 2022, 8:16 p.m. UTC | #1
On Wed, May 18, 2022 at 01:55:38PM +0200, Max Krummenacher wrote:
> From: Max Krummenacher <max.krummenacher@toradex.com>
> 
> The property is used to set the enum bus_format and infer the bpc
> for a panel defined by 'panel-dpi'.
> This specifies how the panel is connected to the display interface.
> 
> Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
> 
> ---
> 
> Changes in v2:
>     - Fix errors found by dt_binding_check
> 
>  .../bindings/display/panel/panel-dpi.yaml     | 11 +++++++++
>  .../dt-bindings/display/dt-media-bus-format.h | 23 +++++++++++++++++++
>  2 files changed, 34 insertions(+)
>  create mode 100644 include/dt-bindings/display/dt-media-bus-format.h
> 
> diff --git a/Documentation/devicetree/bindings/display/panel/panel-dpi.yaml b/Documentation/devicetree/bindings/display/panel/panel-dpi.yaml
> index dae0676b5c6e..a20b5898941e 100644
> --- a/Documentation/devicetree/bindings/display/panel/panel-dpi.yaml
> +++ b/Documentation/devicetree/bindings/display/panel/panel-dpi.yaml
> @@ -21,6 +21,14 @@ properties:
>        - {}
>        - const: panel-dpi
>  
> +  bus-format:
> +    $ref: /schemas/types.yaml#/definitions/uint32

Constraints?

> +    description: |
> +      Describes how the display panel is connected to the display interface.
> +      Valid values are defined in <dt-bindings/display/dt-media-bus-format.h>.
> +      The mapping between the color/significance of the panel lines to the
> +      parallel data lines are defined in [1].

Just drop the [1] and use a colon.

> +      [1] https://www.kernel.org/doc/html/v5.17/userspace-api/media/v4l/subdev-formats.html#packed-rgb-formats

Why not just use the V4L number space rather than invent yet another 
number space?

Need a blank line here too.

>    backlight: true
>    enable-gpios: true
>    height-mm: true
> @@ -39,11 +47,14 @@ additionalProperties: false
>  
>  examples:
>    - |
> +    #include <dt-bindings/display/dt-media-bus-format.h>
> +
>      panel {
>          compatible = "startek,startek-kd050c", "panel-dpi";
>          label = "osddisplay";
>          power-supply = <&vcc_supply>;
>          backlight = <&backlight>;
> +        bus-format = <DT_MEDIA_BUS_FMT_RGB888_1X24>;

Other properties describing the interface have been put in the endpoint 
node. This should too I think.

>  
>          port {
>              lcd_in: endpoint {
> diff --git a/include/dt-bindings/display/dt-media-bus-format.h b/include/dt-bindings/display/dt-media-bus-format.h
> new file mode 100644
> index 000000000000..c0f2a7b59aa1
> --- /dev/null
> +++ b/include/dt-bindings/display/dt-media-bus-format.h
> @@ -0,0 +1,23 @@
> +/* SPDX-License-Identifier: GPL-2.0-only OR MIT */
> +/*
> + * Copyright 2022 Max Krummenacher <max.krummenacher@toradex.com>
> + */
> +
> +#ifndef __DT_BINDINGS_DT_MEDIA_BUS_FORMAT_H
> +#define __DT_BINDINGS_DT_MEDIA_BUS_FORMAT_H
> +
> +/*
> + * Attention: Keep these macro names in sync with
> + * include/uapi/linux/media-bus-format.h
> + */
> +
> +#define DT_MEDIA_BUS_FMT_RGB565_1X16		1
> +#define DT_MEDIA_BUS_FMT_RGB666_1X18		2
> +#define DT_MEDIA_BUS_FMT_RBG888_1X24		3
> +#define DT_MEDIA_BUS_FMT_RGB666_1X24_CPADHI	4
> +#define DT_MEDIA_BUS_FMT_BGR888_1X24		5
> +#define DT_MEDIA_BUS_FMT_GBR888_1X24		6
> +#define DT_MEDIA_BUS_FMT_RGB888_1X24		7
> +#define DT_MEDIA_BUS_FMT_RGB888_1X32_PADHI	8
> +
> +#endif /* __DT_BINDINGS_DT_MEDIA_BUS_FORMAT_H */
> -- 
> 2.20.1
> 
>
Max Krummenacher June 28, 2022, 5:54 p.m. UTC | #2
Hi Rob

Thanks for the feedback.

On Wed, Jun 1, 2022 at 10:17 PM Rob Herring <robh@kernel.org> wrote:
>
> On Wed, May 18, 2022 at 01:55:38PM +0200, Max Krummenacher wrote:
> > From: Max Krummenacher <max.krummenacher@toradex.com>
> >
> > The property is used to set the enum bus_format and infer the bpc
> > for a panel defined by 'panel-dpi'.
> > This specifies how the panel is connected to the display interface.
> >
> > Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
> >
> > ---
> >
> > Changes in v2:
> >     - Fix errors found by dt_binding_check
> >
> >  .../bindings/display/panel/panel-dpi.yaml     | 11 +++++++++
> >  .../dt-bindings/display/dt-media-bus-format.h | 23 +++++++++++++++++++
> >  2 files changed, 34 insertions(+)
> >  create mode 100644 include/dt-bindings/display/dt-media-bus-format.h
> >
> > diff --git a/Documentation/devicetree/bindings/display/panel/panel-dpi.yaml b/Documentation/devicetree/bindings/display/panel/panel-dpi.yaml
> > index dae0676b5c6e..a20b5898941e 100644
> > --- a/Documentation/devicetree/bindings/display/panel/panel-dpi.yaml
> > +++ b/Documentation/devicetree/bindings/display/panel/panel-dpi.yaml
> > @@ -21,6 +21,14 @@ properties:
> >        - {}
> >        - const: panel-dpi
> >
> > +  bus-format:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
>
> Constraints?

Will limit the range to the one used for RGB formats in v3.
>
> > +    description: |
> > +      Describes how the display panel is connected to the display interface.
> > +      Valid values are defined in <dt-bindings/display/dt-media-bus-format.h>.
> > +      The mapping between the color/significance of the panel lines to the
> > +      parallel data lines are defined in [1].
>
> Just drop the [1] and use a colon.

Done in v3.

>
> > +      [1] https://www.kernel.org/doc/html/v5.17/userspace-api/media/v4l/subdev-formats.html#packed-rgb-formats
>
> Why not just use the V4L number space rather than invent yet another
> number space?

That was a proposal from here:
https://lore.kernel.org/all/20220323155817.xcsqxothziot7ba3@houat/
But probably it makes more sense to use the number space as is, changed in v3.

>
> Need a blank line here too.
>
> >    backlight: true
> >    enable-gpios: true
> >    height-mm: true
> > @@ -39,11 +47,14 @@ additionalProperties: false
> >
> >  examples:
> >    - |
> > +    #include <dt-bindings/display/dt-media-bus-format.h>
> > +
> >      panel {
> >          compatible = "startek,startek-kd050c", "panel-dpi";
> >          label = "osddisplay";
> >          power-supply = <&vcc_supply>;
> >          backlight = <&backlight>;
> > +        bus-format = <DT_MEDIA_BUS_FMT_RGB888_1X24>;
>
> Other properties describing the interface have been put in the endpoint
> node. This should too I think.

That makes a lot of sense. Changed to be part of the endpoint node in v3.

Cheers
Max

>
> >
> >          port {
> >              lcd_in: endpoint {
> > diff --git a/include/dt-bindings/display/dt-media-bus-format.h b/include/dt-bindings/display/dt-media-bus-format.h
> > new file mode 100644
> > index 000000000000..c0f2a7b59aa1
> > --- /dev/null
> > +++ b/include/dt-bindings/display/dt-media-bus-format.h
> > @@ -0,0 +1,23 @@
> > +/* SPDX-License-Identifier: GPL-2.0-only OR MIT */
> > +/*
> > + * Copyright 2022 Max Krummenacher <max.krummenacher@toradex.com>
> > + */
> > +
> > +#ifndef __DT_BINDINGS_DT_MEDIA_BUS_FORMAT_H
> > +#define __DT_BINDINGS_DT_MEDIA_BUS_FORMAT_H
> > +
> > +/*
> > + * Attention: Keep these macro names in sync with
> > + * include/uapi/linux/media-bus-format.h
> > + */
> > +
> > +#define DT_MEDIA_BUS_FMT_RGB565_1X16         1
> > +#define DT_MEDIA_BUS_FMT_RGB666_1X18         2
> > +#define DT_MEDIA_BUS_FMT_RBG888_1X24         3
> > +#define DT_MEDIA_BUS_FMT_RGB666_1X24_CPADHI  4
> > +#define DT_MEDIA_BUS_FMT_BGR888_1X24         5
> > +#define DT_MEDIA_BUS_FMT_GBR888_1X24         6
> > +#define DT_MEDIA_BUS_FMT_RGB888_1X24         7
> > +#define DT_MEDIA_BUS_FMT_RGB888_1X32_PADHI   8
> > +
> > +#endif /* __DT_BINDINGS_DT_MEDIA_BUS_FORMAT_H */
> > --
> > 2.20.1
> >
> >
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/display/panel/panel-dpi.yaml b/Documentation/devicetree/bindings/display/panel/panel-dpi.yaml
index dae0676b5c6e..a20b5898941e 100644
--- a/Documentation/devicetree/bindings/display/panel/panel-dpi.yaml
+++ b/Documentation/devicetree/bindings/display/panel/panel-dpi.yaml
@@ -21,6 +21,14 @@  properties:
       - {}
       - const: panel-dpi
 
+  bus-format:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: |
+      Describes how the display panel is connected to the display interface.
+      Valid values are defined in <dt-bindings/display/dt-media-bus-format.h>.
+      The mapping between the color/significance of the panel lines to the
+      parallel data lines are defined in [1].
+      [1] https://www.kernel.org/doc/html/v5.17/userspace-api/media/v4l/subdev-formats.html#packed-rgb-formats
   backlight: true
   enable-gpios: true
   height-mm: true
@@ -39,11 +47,14 @@  additionalProperties: false
 
 examples:
   - |
+    #include <dt-bindings/display/dt-media-bus-format.h>
+
     panel {
         compatible = "startek,startek-kd050c", "panel-dpi";
         label = "osddisplay";
         power-supply = <&vcc_supply>;
         backlight = <&backlight>;
+        bus-format = <DT_MEDIA_BUS_FMT_RGB888_1X24>;
 
         port {
             lcd_in: endpoint {
diff --git a/include/dt-bindings/display/dt-media-bus-format.h b/include/dt-bindings/display/dt-media-bus-format.h
new file mode 100644
index 000000000000..c0f2a7b59aa1
--- /dev/null
+++ b/include/dt-bindings/display/dt-media-bus-format.h
@@ -0,0 +1,23 @@ 
+/* SPDX-License-Identifier: GPL-2.0-only OR MIT */
+/*
+ * Copyright 2022 Max Krummenacher <max.krummenacher@toradex.com>
+ */
+
+#ifndef __DT_BINDINGS_DT_MEDIA_BUS_FORMAT_H
+#define __DT_BINDINGS_DT_MEDIA_BUS_FORMAT_H
+
+/*
+ * Attention: Keep these macro names in sync with
+ * include/uapi/linux/media-bus-format.h
+ */
+
+#define DT_MEDIA_BUS_FMT_RGB565_1X16		1
+#define DT_MEDIA_BUS_FMT_RGB666_1X18		2
+#define DT_MEDIA_BUS_FMT_RBG888_1X24		3
+#define DT_MEDIA_BUS_FMT_RGB666_1X24_CPADHI	4
+#define DT_MEDIA_BUS_FMT_BGR888_1X24		5
+#define DT_MEDIA_BUS_FMT_GBR888_1X24		6
+#define DT_MEDIA_BUS_FMT_RGB888_1X24		7
+#define DT_MEDIA_BUS_FMT_RGB888_1X32_PADHI	8
+
+#endif /* __DT_BINDINGS_DT_MEDIA_BUS_FORMAT_H */