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 |
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 > >
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 --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 */