All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/3] drm/panel: simple: add bus-format support for panel-dpi
@ 2022-05-18 11:55 ` Max Krummenacher
  0 siblings, 0 replies; 12+ messages in thread
From: Max Krummenacher @ 2022-05-18 11:55 UTC (permalink / raw)
  To: max.krummenacher
  Cc: Marek Vasut, Laurent Pinchart, Francesco Dolcini, Maxime Ripard,
	Christoph Niedermaier, Dave Stevenson, Daniel Vetter,
	David Airlie, Krzysztof Kozlowski, Nikita Kiryanov, Rob Herring,
	Sam Ravnborg, Thierry Reding, devicetree, dri-devel,
	linux-kernel

From: Max Krummenacher <max.krummenacher@toradex.com>


Commit 4a1d0dbc8332 ("drm/panel: simple: add panel-dpi support") added
support for defining a panel from device tree provided data.

However support for setting the bus format is missing, so that with
the current implementation a 'panel-dpi' panel can only be used
if the driver of the display interface connected can cope with a
missing bus_format.

This patch series defines the new property bus-format and adds it to
the panel-dpi implementation.

Check initial discussions [1] and [2].
[1] https://lore.kernel.org/all/20220201110717.3585-1-cniedermaier@dh-electronics.com/
[2] https://lore.kernel.org/all/20220222084723.14310-1-max.krummenacher@toradex.com/


Changes in v2:
    - Fix errors found by dt_binding_check

Max Krummenacher (3):
  dt-bindings: display: add new bus-format property for panel-dpi
  dt-bindings: display: startek,startek-kd050c: allow bus-format
    property
  drm/panel: simple: add bus-format support for panel-dpi

 .../bindings/display/panel/panel-dpi.yaml     | 11 +++++
 .../display/panel/startek,startek-kd050c.yaml |  1 +
 drivers/gpu/drm/panel/panel-simple.c          | 43 +++++++++++++++++++
 .../dt-bindings/display/dt-media-bus-format.h | 23 ++++++++++
 4 files changed, 78 insertions(+)
 create mode 100644 include/dt-bindings/display/dt-media-bus-format.h

-- 
2.20.1


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH v2 0/3] drm/panel: simple: add bus-format support for panel-dpi
@ 2022-05-18 11:55 ` Max Krummenacher
  0 siblings, 0 replies; 12+ messages in thread
From: Max Krummenacher @ 2022-05-18 11:55 UTC (permalink / raw)
  To: max.krummenacher
  Cc: Marek Vasut, Christoph Niedermaier, Nikita Kiryanov,
	Dave Stevenson, David Airlie, dri-devel, linux-kernel,
	devicetree, Rob Herring, Thierry Reding, Laurent Pinchart,
	Francesco Dolcini, Krzysztof Kozlowski, Sam Ravnborg

From: Max Krummenacher <max.krummenacher@toradex.com>


Commit 4a1d0dbc8332 ("drm/panel: simple: add panel-dpi support") added
support for defining a panel from device tree provided data.

However support for setting the bus format is missing, so that with
the current implementation a 'panel-dpi' panel can only be used
if the driver of the display interface connected can cope with a
missing bus_format.

This patch series defines the new property bus-format and adds it to
the panel-dpi implementation.

Check initial discussions [1] and [2].
[1] https://lore.kernel.org/all/20220201110717.3585-1-cniedermaier@dh-electronics.com/
[2] https://lore.kernel.org/all/20220222084723.14310-1-max.krummenacher@toradex.com/


Changes in v2:
    - Fix errors found by dt_binding_check

Max Krummenacher (3):
  dt-bindings: display: add new bus-format property for panel-dpi
  dt-bindings: display: startek,startek-kd050c: allow bus-format
    property
  drm/panel: simple: add bus-format support for panel-dpi

 .../bindings/display/panel/panel-dpi.yaml     | 11 +++++
 .../display/panel/startek,startek-kd050c.yaml |  1 +
 drivers/gpu/drm/panel/panel-simple.c          | 43 +++++++++++++++++++
 .../dt-bindings/display/dt-media-bus-format.h | 23 ++++++++++
 4 files changed, 78 insertions(+)
 create mode 100644 include/dt-bindings/display/dt-media-bus-format.h

-- 
2.20.1


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH v2 1/3] dt-bindings: display: add new bus-format property for panel-dpi
  2022-05-18 11:55 ` Max Krummenacher
@ 2022-05-18 11:55   ` Max Krummenacher
  -1 siblings, 0 replies; 12+ messages in thread
From: Max Krummenacher @ 2022-05-18 11:55 UTC (permalink / raw)
  To: max.krummenacher
  Cc: Marek Vasut, Laurent Pinchart, Francesco Dolcini, Maxime Ripard,
	Christoph Niedermaier, Dave Stevenson, Daniel Vetter,
	David Airlie, Krzysztof Kozlowski, Rob Herring, Sam Ravnborg,
	Thierry Reding, devicetree, dri-devel, linux-kernel

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


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH v2 1/3] dt-bindings: display: add new bus-format property for panel-dpi
@ 2022-05-18 11:55   ` Max Krummenacher
  0 siblings, 0 replies; 12+ messages in thread
From: Max Krummenacher @ 2022-05-18 11:55 UTC (permalink / raw)
  To: max.krummenacher
  Cc: Marek Vasut, Christoph Niedermaier, Dave Stevenson, David Airlie,
	dri-devel, linux-kernel, devicetree, Rob Herring, Thierry Reding,
	Laurent Pinchart, Francesco Dolcini, Krzysztof Kozlowski,
	Sam Ravnborg

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


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH v2 2/3] dt-bindings: display: startek,startek-kd050c: allow bus-format property
  2022-05-18 11:55 ` Max Krummenacher
@ 2022-05-18 11:55   ` Max Krummenacher
  -1 siblings, 0 replies; 12+ messages in thread
From: Max Krummenacher @ 2022-05-18 11:55 UTC (permalink / raw)
  To: max.krummenacher
  Cc: Marek Vasut, Laurent Pinchart, Francesco Dolcini, Maxime Ripard,
	Christoph Niedermaier, Dave Stevenson, Daniel Vetter,
	David Airlie, Krzysztof Kozlowski, Nikita Kiryanov, Rob Herring,
	Sam Ravnborg, Thierry Reding, devicetree, dri-devel,
	linux-kernel

From: Max Krummenacher <max.krummenacher@toradex.com>

Allow to specify the optional bus-format property newly added to
panel-dpi.

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

---

Changes in v2:
- New commit

 .../bindings/display/panel/startek,startek-kd050c.yaml           | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/display/panel/startek,startek-kd050c.yaml b/Documentation/devicetree/bindings/display/panel/startek,startek-kd050c.yaml
index fd668640afd1..05306713044e 100644
--- a/Documentation/devicetree/bindings/display/panel/startek,startek-kd050c.yaml
+++ b/Documentation/devicetree/bindings/display/panel/startek,startek-kd050c.yaml
@@ -19,6 +19,7 @@ properties:
       - {} # panel-dpi, but not listed here to avoid false select
 
   backlight: true
+  bus-format: true
   enable-gpios: true
   height-mm: true
   label: true
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH v2 2/3] dt-bindings: display: startek, startek-kd050c: allow bus-format property
@ 2022-05-18 11:55   ` Max Krummenacher
  0 siblings, 0 replies; 12+ messages in thread
From: Max Krummenacher @ 2022-05-18 11:55 UTC (permalink / raw)
  To: max.krummenacher
  Cc: Marek Vasut, Christoph Niedermaier, Nikita Kiryanov,
	Dave Stevenson, David Airlie, dri-devel, linux-kernel,
	devicetree, Rob Herring, Thierry Reding, Laurent Pinchart,
	Francesco Dolcini, Krzysztof Kozlowski, Sam Ravnborg

From: Max Krummenacher <max.krummenacher@toradex.com>

Allow to specify the optional bus-format property newly added to
panel-dpi.

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

---

Changes in v2:
- New commit

 .../bindings/display/panel/startek,startek-kd050c.yaml           | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/display/panel/startek,startek-kd050c.yaml b/Documentation/devicetree/bindings/display/panel/startek,startek-kd050c.yaml
index fd668640afd1..05306713044e 100644
--- a/Documentation/devicetree/bindings/display/panel/startek,startek-kd050c.yaml
+++ b/Documentation/devicetree/bindings/display/panel/startek,startek-kd050c.yaml
@@ -19,6 +19,7 @@ properties:
       - {} # panel-dpi, but not listed here to avoid false select
 
   backlight: true
+  bus-format: true
   enable-gpios: true
   height-mm: true
   label: true
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH v2 3/3] drm/panel: simple: add bus-format support for panel-dpi
  2022-05-18 11:55 ` Max Krummenacher
@ 2022-05-18 11:55   ` Max Krummenacher
  -1 siblings, 0 replies; 12+ messages in thread
From: Max Krummenacher @ 2022-05-18 11:55 UTC (permalink / raw)
  To: max.krummenacher
  Cc: Marek Vasut, Laurent Pinchart, Francesco Dolcini, Maxime Ripard,
	Christoph Niedermaier, Dave Stevenson, Daniel Vetter,
	David Airlie, Sam Ravnborg, Thierry Reding, dri-devel,
	linux-kernel

From: Max Krummenacher <max.krummenacher@toradex.com>

Evaluate the device tree bus-format property to set bus_format for
a 'panel-dpi' panel. Additionally infer the bpc value from the
given bus-format.

Valid values for bus-format are found in:
<include/dt-bindings/display/dt-media-bus-format.h>

This completes the addition of panel-dpi to completely specify
a panel-simple panel from the device tree.

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

---

Changes in v2:
    None

 drivers/gpu/drm/panel/panel-simple.c | 43 ++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)

diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
index a34f4198a534..090c60abb014 100644
--- a/drivers/gpu/drm/panel/panel-simple.c
+++ b/drivers/gpu/drm/panel/panel-simple.c
@@ -21,6 +21,7 @@
  * DEALINGS IN THE SOFTWARE.
  */
 
+#include <dt-bindings/display/dt-media-bus-format.h>
 #include <linux/delay.h>
 #include <linux/gpio/consumer.h>
 #include <linux/module.h>
@@ -453,6 +454,7 @@ static int panel_dpi_probe(struct device *dev,
 	struct panel_desc *desc;
 	unsigned int bus_flags;
 	struct videomode vm;
+	u32 bus_format;
 	int ret;
 
 	np = dev->of_node;
@@ -477,6 +479,47 @@ static int panel_dpi_probe(struct device *dev,
 	of_property_read_u32(np, "width-mm", &desc->size.width);
 	of_property_read_u32(np, "height-mm", &desc->size.height);
 
+	if (!of_property_read_u32(np, "bus-format", &bus_format)) {
+		/* infer bpc from bus-format */
+		switch (bus_format) {
+		case DT_MEDIA_BUS_FMT_RGB565_1X16:
+			desc->bus_format = MEDIA_BUS_FMT_RGB565_1X16;
+			desc->bpc = 6;
+			break;
+		case DT_MEDIA_BUS_FMT_RGB666_1X18:
+			desc->bus_format = MEDIA_BUS_FMT_RGB666_1X18;
+			desc->bpc = 6;
+			break;
+		case DT_MEDIA_BUS_FMT_RGB666_1X24_CPADHI:
+			desc->bus_format = MEDIA_BUS_FMT_RGB666_1X24_CPADHI;
+			desc->bpc = 6;
+			break;
+		case DT_MEDIA_BUS_FMT_BGR888_1X24:
+			desc->bus_format = MEDIA_BUS_FMT_BGR888_1X24;
+			desc->bpc = 8;
+			break;
+		case DT_MEDIA_BUS_FMT_GBR888_1X24:
+			desc->bus_format = MEDIA_BUS_FMT_GBR888_1X24;
+			desc->bpc = 8;
+			break;
+		case DT_MEDIA_BUS_FMT_RBG888_1X24:
+			desc->bus_format = MEDIA_BUS_FMT_RBG888_1X24;
+			desc->bpc = 8;
+			break;
+		case DT_MEDIA_BUS_FMT_RGB888_1X24:
+			desc->bus_format = MEDIA_BUS_FMT_RGB888_1X24;
+			desc->bpc = 8;
+			break;
+		case DT_MEDIA_BUS_FMT_RGB888_1X32_PADHI:
+			desc->bus_format = MEDIA_BUS_FMT_RGB888_1X32_PADHI;
+			desc->bpc = 8;
+			break;
+		default:
+			dev_err(dev, "%pOF: unknown bus-format property\n", np);
+			return -EINVAL;
+		}
+	}
+
 	/* Extract bus_flags from display_timing */
 	bus_flags = 0;
 	vm.flags = timing->flags;
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH v2 3/3] drm/panel: simple: add bus-format support for panel-dpi
@ 2022-05-18 11:55   ` Max Krummenacher
  0 siblings, 0 replies; 12+ messages in thread
From: Max Krummenacher @ 2022-05-18 11:55 UTC (permalink / raw)
  To: max.krummenacher
  Cc: Marek Vasut, Christoph Niedermaier, Dave Stevenson, David Airlie,
	dri-devel, linux-kernel, Thierry Reding, Laurent Pinchart,
	Francesco Dolcini, Sam Ravnborg

From: Max Krummenacher <max.krummenacher@toradex.com>

Evaluate the device tree bus-format property to set bus_format for
a 'panel-dpi' panel. Additionally infer the bpc value from the
given bus-format.

Valid values for bus-format are found in:
<include/dt-bindings/display/dt-media-bus-format.h>

This completes the addition of panel-dpi to completely specify
a panel-simple panel from the device tree.

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

---

Changes in v2:
    None

 drivers/gpu/drm/panel/panel-simple.c | 43 ++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)

diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
index a34f4198a534..090c60abb014 100644
--- a/drivers/gpu/drm/panel/panel-simple.c
+++ b/drivers/gpu/drm/panel/panel-simple.c
@@ -21,6 +21,7 @@
  * DEALINGS IN THE SOFTWARE.
  */
 
+#include <dt-bindings/display/dt-media-bus-format.h>
 #include <linux/delay.h>
 #include <linux/gpio/consumer.h>
 #include <linux/module.h>
@@ -453,6 +454,7 @@ static int panel_dpi_probe(struct device *dev,
 	struct panel_desc *desc;
 	unsigned int bus_flags;
 	struct videomode vm;
+	u32 bus_format;
 	int ret;
 
 	np = dev->of_node;
@@ -477,6 +479,47 @@ static int panel_dpi_probe(struct device *dev,
 	of_property_read_u32(np, "width-mm", &desc->size.width);
 	of_property_read_u32(np, "height-mm", &desc->size.height);
 
+	if (!of_property_read_u32(np, "bus-format", &bus_format)) {
+		/* infer bpc from bus-format */
+		switch (bus_format) {
+		case DT_MEDIA_BUS_FMT_RGB565_1X16:
+			desc->bus_format = MEDIA_BUS_FMT_RGB565_1X16;
+			desc->bpc = 6;
+			break;
+		case DT_MEDIA_BUS_FMT_RGB666_1X18:
+			desc->bus_format = MEDIA_BUS_FMT_RGB666_1X18;
+			desc->bpc = 6;
+			break;
+		case DT_MEDIA_BUS_FMT_RGB666_1X24_CPADHI:
+			desc->bus_format = MEDIA_BUS_FMT_RGB666_1X24_CPADHI;
+			desc->bpc = 6;
+			break;
+		case DT_MEDIA_BUS_FMT_BGR888_1X24:
+			desc->bus_format = MEDIA_BUS_FMT_BGR888_1X24;
+			desc->bpc = 8;
+			break;
+		case DT_MEDIA_BUS_FMT_GBR888_1X24:
+			desc->bus_format = MEDIA_BUS_FMT_GBR888_1X24;
+			desc->bpc = 8;
+			break;
+		case DT_MEDIA_BUS_FMT_RBG888_1X24:
+			desc->bus_format = MEDIA_BUS_FMT_RBG888_1X24;
+			desc->bpc = 8;
+			break;
+		case DT_MEDIA_BUS_FMT_RGB888_1X24:
+			desc->bus_format = MEDIA_BUS_FMT_RGB888_1X24;
+			desc->bpc = 8;
+			break;
+		case DT_MEDIA_BUS_FMT_RGB888_1X32_PADHI:
+			desc->bus_format = MEDIA_BUS_FMT_RGB888_1X32_PADHI;
+			desc->bpc = 8;
+			break;
+		default:
+			dev_err(dev, "%pOF: unknown bus-format property\n", np);
+			return -EINVAL;
+		}
+	}
+
 	/* Extract bus_flags from display_timing */
 	bus_flags = 0;
 	vm.flags = timing->flags;
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: [PATCH v2 1/3] dt-bindings: display: add new bus-format property for panel-dpi
  2022-05-18 11:55   ` Max Krummenacher
@ 2022-06-01 20:16     ` Rob Herring
  -1 siblings, 0 replies; 12+ messages in thread
From: Rob Herring @ 2022-06-01 20:16 UTC (permalink / raw)
  To: Max Krummenacher
  Cc: Marek Vasut, Christoph Niedermaier, Dave Stevenson, David Airlie,
	dri-devel, linux-kernel, devicetree, Thierry Reding,
	Laurent Pinchart, max.krummenacher, Francesco Dolcini,
	Krzysztof Kozlowski, Sam Ravnborg

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

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v2 1/3] dt-bindings: display: add new bus-format property for panel-dpi
@ 2022-06-01 20:16     ` Rob Herring
  0 siblings, 0 replies; 12+ messages in thread
From: Rob Herring @ 2022-06-01 20:16 UTC (permalink / raw)
  To: Max Krummenacher
  Cc: max.krummenacher, Marek Vasut, Laurent Pinchart,
	Francesco Dolcini, Maxime Ripard, Christoph Niedermaier,
	Dave Stevenson, Daniel Vetter, David Airlie, Krzysztof Kozlowski,
	Sam Ravnborg, Thierry Reding, devicetree, dri-devel,
	linux-kernel

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

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v2 1/3] dt-bindings: display: add new bus-format property for panel-dpi
  2022-06-01 20:16     ` Rob Herring
@ 2022-06-28 17:54       ` Max Krummenacher
  -1 siblings, 0 replies; 12+ messages in thread
From: Max Krummenacher @ 2022-06-28 17:54 UTC (permalink / raw)
  To: Rob Herring
  Cc: Max Krummenacher, Marek Vasut, Laurent Pinchart,
	Francesco Dolcini, Maxime Ripard, Christoph Niedermaier,
	Dave Stevenson, Daniel Vetter, David Airlie, Krzysztof Kozlowski,
	Sam Ravnborg, Thierry Reding,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	DRI Development, Linux Kernel Mailing List

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

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v2 1/3] dt-bindings: display: add new bus-format property for panel-dpi
@ 2022-06-28 17:54       ` Max Krummenacher
  0 siblings, 0 replies; 12+ messages in thread
From: Max Krummenacher @ 2022-06-28 17:54 UTC (permalink / raw)
  To: Rob Herring
  Cc: Marek Vasut, Christoph Niedermaier, Dave Stevenson, David Airlie,
	DRI Development, Linux Kernel Mailing List,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	Thierry Reding, Laurent Pinchart, Max Krummenacher,
	Francesco Dolcini, Krzysztof Kozlowski, Sam Ravnborg

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

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2022-06-28 17:54 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-18 11:55 [PATCH v2 0/3] drm/panel: simple: add bus-format support for panel-dpi Max Krummenacher
2022-05-18 11:55 ` Max Krummenacher
2022-05-18 11:55 ` [PATCH v2 1/3] dt-bindings: display: add new bus-format property " Max Krummenacher
2022-05-18 11:55   ` Max Krummenacher
2022-06-01 20:16   ` Rob Herring
2022-06-01 20:16     ` Rob Herring
2022-06-28 17:54     ` Max Krummenacher
2022-06-28 17:54       ` Max Krummenacher
2022-05-18 11:55 ` [PATCH v2 2/3] dt-bindings: display: startek,startek-kd050c: allow bus-format property Max Krummenacher
2022-05-18 11:55   ` [PATCH v2 2/3] dt-bindings: display: startek, startek-kd050c: " Max Krummenacher
2022-05-18 11:55 ` [PATCH v2 3/3] drm/panel: simple: add bus-format support for panel-dpi Max Krummenacher
2022-05-18 11:55   ` Max Krummenacher

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.