Skip to contentSkip to conversation

drm/panel: simple: Add Logic PD Type 28 display support

PATCH Superseded Adam Ford 2 participants 5 messages Sep 25, 2019 – Sep 27, 2019

Subsystems (4)

v3 of 5 Superseded Latest is v5 →

lore
Share & tools
lore

Adam Ford

author
#0 lore raw

PATCH v3 1/3 drm/panel: simple: Add Logic PD Type 28 display support

Previously, there was an omap panel-dpi driver that would read generic timings from the device tree and set the display timing accordingly. This driver was removed so the screen no longer functions. This patch modifies the panel-simple file to setup the timings to the same values previously used.

Fixes 8bf4b1621178 ("drm/omap: Remove panel-dpi driver")

---

V3:  No change
V2:  No change
drivers/gpu/drm/panel/panel-simple.c +37 -0
index 28fa6ba7b767..8abb31f83ffc 100644
@@ -2048,6 +2048,40 @@ static const struct drm_display_mode mitsubishi_aa070mc01_mode = {
 	.flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC,
 };
 
+static const struct drm_display_mode logicpd_type_28_mode = {
+	.clock = 9000,
+	.hdisplay = 480,
+	.hsync_start = 480 + 3,
+	.hsync_end = 480 + 3 + 42,
+	.htotal = 480 + 3 + 42 + 2,
+
+	.vdisplay = 272,
+	.vsync_start = 272 + 2,
+	.vsync_end = 272 + 2 + 11,
+	.vtotal = 272 + 2 + 11 + 3,
+	.vrefresh = 60,
+	.flags = DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC,
+};
+
+static const struct panel_desc logicpd_type_28 = {
+	.modes = &logicpd_type_28_mode,
+	.num_modes = 1,
+	.bpc = 8,
+	.size = {
+		.width = 105,
+		.height = 67,
+	},
+	.delay = {
+		.prepare = 200,
+		.enable = 200,
+		.unprepare = 200,
+		.disable = 200,
+	},
+	.bus_format = MEDIA_BUS_FMT_RGB888_1X24,
+	.bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE |
+		     DRM_BUS_FLAG_SYNC_DRIVE_NEGEDGE,
+};
+
 static const struct panel_desc mitsubishi_aa070mc01 = {
 	.modes = &mitsubishi_aa070mc01_mode,
 	.num_modes = 1,
@@ -3264,6 +3298,9 @@ static const struct of_device_id platform_of_match[] = {
 	}, {
 		.compatible = "lg,lp129qe",
 		.data = &lg_lp129qe,
+	}, {
+		.compatible = "logicpd,type28",
+		.data = &logicpd_type_28,
 	}, {
 		.compatible = "mitsubishi,aa070mc01-ca1",
 		.data = &mitsubishi_aa070mc01,
Signature · 1 line
2.17.1
author
#1 lore raw

PATCH v3 2/3 dt-bindings: Add Logic PD Type 28 display panel

This patch adds documentation of device tree bindings for the WVGA panel Logic PD Type 28 display.

---

V3:  Correct build errors from 'make dt_binding_check'
V2:  Use YAML instead of TXT for binding
Documentation/devicetree/bindings/display/panel/logicpd,type28.yaml new file +31 -0
new file mode 100644
index 000000000000..74ba650ea7a0
@@ -0,0 +1,31 @@
+# SPDX-License-Identifier: (GPL-2.0+ OR X11)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/panel/logicpd,type28.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Logic PD Type 28 4.3" WQVGA TFT LCD panel
+
+maintainers:
+  - Adam Ford <[email protected]>
+
+properties:
+  compatible:
+    const: logicpd,type28
+
+  power-supply:
+    description: Regulator to provide the supply voltage
+    maxItems: 1
+
+  enable-gpios:
+    description: GPIO pin to enable or disable the panel
+    maxItems: 1
+
+  backlight:
+    description: Backlight used by the panel
+    $ref: "/schemas/types.yaml#/definitions/phandle"
+
+required:
+  - compatible
+
+additionalProperties: false
Signature · 1 line
2.17.1
maintainer
#2 lore raw

Re: [PATCH V3 2/3] dt-bindings: Add Logic PD Type 28 display panel

Quoted 14 lines · Adam Ford

This patch adds documentation of device tree bindings for the WVGA panel Logic PD Type 28 display.

---

V3:  Correct build errors from 'make dt_binding_check'
V2:  Use YAML instead of TXT for binding
Documentation/devicetree/bindings/display/panel/logicpd,type28.yaml new file +0 -0
new file mode 100644
index 000000000000..74ba650ea7a0

Documentation/devicetree/bindings/display/panel/logicpd,type28.yaml line 1

Quoted 1 line
Documentation/devicetree/bindings/display/panel/logicpd,type28.yaml new file +1 -0
@@ -0,0 +1,31 @@
+# SPDX-License-Identifier: (GPL-2.0+ OR X11)

(GPL-2.0-only OR BSD-2-Clause) please.

X11 is pretty much never right unless this is copyright X Consortium.

Documentation/devicetree/bindings/display/panel/logicpd,type28.yaml line 11

Quoted 10 lines
Documentation/devicetree/bindings/display/panel/logicpd,type28.yaml new file +10 -0
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/panel/logicpd,type28.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Logic PD Type 28 4.3" WQVGA TFT LCD panel
+
+maintainers:
+  - Adam Ford <[email protected]>
+

You need:

allOf:
- $ref: panel-common.yaml#

Quoted 6 lines
Documentation/devicetree/bindings/display/panel/logicpd,type28.yaml new file +5 -0
+properties:
+  compatible:
+    const: logicpd,type28
+
 
+  power-supply:

Documentation/devicetree/bindings/display/panel/logicpd,type28.yaml line 26

Quoted 10 lines
Documentation/devicetree/bindings/display/panel/logicpd,type28.yaml new file +10 -0
+    description: Regulator to provide the supply voltage
+    maxItems: 1
+
+  enable-gpios:
+    description: GPIO pin to enable or disable the panel
+    maxItems: 1
+
+  backlight:
+    description: Backlight used by the panel
+    $ref: "/schemas/types.yaml#/definitions/phandle"

These 3 are all defined in the common schema, so you just need 'true' for the value to indicate they apply to this panel and to make 'additionalProperties: false' happy.

Documentation/devicetree/bindings/display/panel/logicpd,type28.yaml line 29

Quoted 3 lines
Documentation/devicetree/bindings/display/panel/logicpd,type28.yaml new file +3 -0
+
+required:
+  - compatible

Are the rest really optional?

Quoted 5 lines
Documentation/devicetree/bindings/display/panel/logicpd,type28.yaml new file +2 -0
+
+additionalProperties: false
Signature · 1 line
2.17.1
author
#3 lore raw

Re: [PATCH V3 2/3] dt-bindings: Add Logic PD Type 28 display panel

Quoted 20 lines · Rob Herring
Quoted 14 lines · Adam Ford

This patch adds documentation of device tree bindings for the WVGA panel Logic PD Type 28 display.

---

V3:  Correct build errors from 'make dt_binding_check'
V2:  Use YAML instead of TXT for binding
Documentation/devicetree/bindings/display/panel/logicpd,type28.yaml new file +0 -0
new file mode 100644
index 000000000000..74ba650ea7a0

Documentation/devicetree/bindings/display/panel/logicpd,type28.yaml line 1

Quoted 1 line
Documentation/devicetree/bindings/display/panel/logicpd,type28.yaml new file +1 -0
@@ -0,0 +1,31 @@
+# SPDX-License-Identifier: (GPL-2.0+ OR X11)

(GPL-2.0-only OR BSD-2-Clause) please.

Quoted 2 lines

X11 is pretty much never right unless this is copyright X Consortium.

I copied the example from Documentation/devicetree/bindings/display/panel/ronbo,rb070d30.yaml

Is there a better example I can use? If what I did is wrong, then it seems like that board is wrong too.

Quoted 21 lines

Documentation/devicetree/bindings/display/panel/logicpd,type28.yaml line 11

Quoted 10 lines
Documentation/devicetree/bindings/display/panel/logicpd,type28.yaml new file +10 -0
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/panel/logicpd,type28.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Logic PD Type 28 4.3" WQVGA TFT LCD panel
+
+maintainers:
+  - Adam Ford <[email protected]>
+

You need:

allOf:
- $ref: panel-common.yaml#

Quoted 4 lines
Documentation/devicetree/bindings/display/panel/logicpd,type28.yaml new file +4 -0
+properties:
+  compatible:
+    const: logicpd,type28
+
Quoted 15 lines

Documentation/devicetree/bindings/display/panel/logicpd,type28.yaml line 26

Quoted 11 lines
Documentation/devicetree/bindings/display/panel/logicpd,type28.yaml new file +11 -0
+  power-supply:
+    description: Regulator to provide the supply voltage
+    maxItems: 1
+
+  enable-gpios:
+    description: GPIO pin to enable or disable the panel
+    maxItems: 1
+
+  backlight:
+    description: Backlight used by the panel
+    $ref: "/schemas/types.yaml#/definitions/phandle"

These 3 are all defined in the common schema, so you just need 'true' for the value to indicate they apply to this panel and to make 'additionalProperties: false' happy.

Sorry for my ignorance, but I am not familiar with the syntax here, nor do I understand what is required. Since there aren't many display panels with yaml docs, I don't know what is expected and clearly the one I used as a template didn't do it right either.

Is there a branch where this stuff is located? I am just using the latest linux-stable branch.

Quoted 8 lines

Documentation/devicetree/bindings/display/panel/logicpd,type28.yaml line 29

Quoted 4 lines
Documentation/devicetree/bindings/display/panel/logicpd,type28.yaml new file +3 -0
+
+required:
+  - compatible

Are the rest really optional?

From what I can tell, they are optional. I am just adding some timing

info to an already existing driver. It's not my driver.

Quoted 6 lines
Quoted 6 lines
Documentation/devicetree/bindings/display/panel/logicpd,type28.yaml new file +2 -1
+
+additionalProperties: false
--

2.17.1

author
#4 lore raw

PATCH v3 3/3 ARM: logicpd-torpedo-37xx-devkit-28: Reference new DRM panel

In reply to Adam Ford

With the removal of the panel-dpi from the omap drivers, the LCD no longer works. This patch points the device tree to a newly created panel named "logicpd,type28"

Fixes 8bf4b1621178 ("drm/omap: Remove panel-dpi driver")

---

V3:  No change
V2:  Remove legacy 'label' from binding
arch/arm/boot/dts/logicpd-torpedo-37xx-devkit-28.dts +2 -18
index 07ac99b9cda6..cdb89b3e2a9b 100644
@@ -11,22 +11,6 @@
 #include "logicpd-torpedo-37xx-devkit.dts"
 
 &lcd0 {
-
-	label = "28";
-
-	panel-timing {
-		clock-frequency = <9000000>;
-		hactive = <480>;
-		vactive = <272>;
-		hfront-porch = <3>;
-		hback-porch = <2>;
-		hsync-len = <42>;
-		vback-porch = <3>;
-		vfront-porch = <2>;
-		vsync-len = <11>;
-		hsync-active = <1>;
-		vsync-active = <1>;
-		de-active = <1>;
-		pixelclk-active = <0>;
-	};
+	/* To make it work, set CONFIG_OMAP2_DSS_MIN_FCK_PER_PCK=4 */
+	compatible = "logicpd,type28";
 };
Signature · 1 line
2.17.1