drm/panel: simple: Add Logic PD Type 28 display support
Subsystems (4)
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.
---
V3: No change V2: No change
drivers/gpu/drm/panel/panel-simple.c +37 -0
@@ -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
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
@@ -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
Rob Herring
maintainerRe: [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.
Signed-off-by Adam Ford <[email protected]>---
V3: Correct build errors from 'make dt_binding_check' V2: Use YAML instead of TXT for bindingDocumentation/devicetree/bindings/display/panel/logicpd,type28.yaml new file +0
-0
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: falseSignature · 1 line
2.17.1
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.
Signed-off-by Adam Ford <[email protected]>---
V3: Correct build errors from 'make dt_binding_check' V2: Use YAML instead of TXT for bindingDocumentation/devicetree/bindings/display/panel/logicpd,type28.yaml new file +0
-0Documentation/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: + - compatibleAre 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
PATCH v3 3/3 ARM: logicpd-torpedo-37xx-devkit-28: Reference new DRM panel
In reply to Adam FordWith 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"
---
V3: No change V2: Remove legacy 'label' from binding
arch/arm/boot/dts/logicpd-torpedo-37xx-devkit-28.dts +2 -18
@@ -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