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")
Signed-off-by: Adam Ford aford173@gmail.com Reviewed-by: Sam Ravnborg sam@ravnborg.org --- V4: No Change V3: No Change V2: No Change
diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c index 28fa6ba7b767..8abb31f83ffc 100644 --- a/drivers/gpu/drm/panel/panel-simple.c +++ b/drivers/gpu/drm/panel/panel-simple.c @@ -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,
This patch adds documentation of device tree bindings for the WVGA panel Logic PD Type 28 display.
Signed-off-by: Adam Ford aford173@gmail.com --- V4: Update per Rob H's suggestions and copy other panel yaml example from 5.4-rc1 V3: Correct build errors from 'make dt_binding_check' V2: Use YAML instead of TXT for binding
diff --git a/Documentation/devicetree/bindings/display/panel/logicpd,type28.yaml b/Documentation/devicetree/bindings/display/panel/logicpd,type28.yaml new file mode 100644 index 000000000000..e2c62e8f1db4 --- /dev/null +++ b/Documentation/devicetree/bindings/display/panel/logicpd,type28.yaml @@ -0,0 +1,42 @@ +# SPDX-License-Identifier: GPL-2.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 aford173@gmail.com + +allOf: + - $ref: panel-common.yaml# + +properties: + compatible: + const: logicpd,type28 + + power-supply: true + enable-gpios: true + backlight: true + port: true + +required: + - compatible + +additionalProperties: false + +examples: + - | + lcd0: display { + compatible = "logicpd,type28"; + enable-gpios = <&gpio5 27 GPIO_ACTIVE_HIGH>; + backlight = <&backlight>; + port { + lcd_in: endpoint { + remote-endpoint = <&dpi_out>; + }; + }; + }; + +...
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")
Signed-off-by: Adam Ford aford173@gmail.com Acked-by: Sam Ravnborg sam@ravnborg.org --- V4: No Change V3: No change V2: Remove legacy 'label' from binding
diff --git a/arch/arm/boot/dts/logicpd-torpedo-37xx-devkit-28.dts b/arch/arm/boot/dts/logicpd-torpedo-37xx-devkit-28.dts index 07ac99b9cda6..cdb89b3e2a9b 100644 --- a/arch/arm/boot/dts/logicpd-torpedo-37xx-devkit-28.dts +++ b/arch/arm/boot/dts/logicpd-torpedo-37xx-devkit-28.dts @@ -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"; };
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")
Signed-off-by: Adam Ford aford173@gmail.com Reviewed-by: Sam Ravnborg sam@ravnborg.org --- V4: No Change V3: No Change V2: No Change
diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c index 28fa6ba7b767..8abb31f83ffc 100644 --- a/drivers/gpu/drm/panel/panel-simple.c +++ b/drivers/gpu/drm/panel/panel-simple.c @@ -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,
This patch adds documentation of device tree bindings for the WVGA panel Logic PD Type 28 display.
Signed-off-by: Adam Ford aford173@gmail.com --- V4: Update per Rob H's suggestions and copy other panel yaml example from 5.4-rc1 V3: Correct build errors from 'make dt_binding_check' V2: Use YAML instead of TXT for binding
diff --git a/Documentation/devicetree/bindings/display/panel/logicpd,type28.yaml b/Documentation/devicetree/bindings/display/panel/logicpd,type28.yaml new file mode 100644 index 000000000000..e2c62e8f1db4 --- /dev/null +++ b/Documentation/devicetree/bindings/display/panel/logicpd,type28.yaml @@ -0,0 +1,42 @@ +# SPDX-License-Identifier: GPL-2.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 aford173@gmail.com + +allOf: + - $ref: panel-common.yaml# + +properties: + compatible: + const: logicpd,type28 + + power-supply: true + enable-gpios: true + backlight: true + port: true + +required: + - compatible + +additionalProperties: false + +examples: + - | + lcd0: display { + compatible = "logicpd,type28"; + enable-gpios = <&gpio5 27 GPIO_ACTIVE_HIGH>; + backlight = <&backlight>; + port { + lcd_in: endpoint { + remote-endpoint = <&dpi_out>; + }; + }; + }; + +...
On Tue, Oct 01, 2019 at 06:39:22PM -0500, Adam Ford wrote:
This patch adds documentation of device tree bindings for the WVGA panel Logic PD Type 28 display.
Signed-off-by: Adam Ford aford173@gmail.com
V4: Update per Rob H's suggestions and copy other panel yaml example from 5.4-rc1 V3: Correct build errors from 'make dt_binding_check'
The example still fails to build here.
V2: Use YAML instead of TXT for binding
diff --git a/Documentation/devicetree/bindings/display/panel/logicpd,type28.yaml b/Documentation/devicetree/bindings/display/panel/logicpd,type28.yaml new file mode 100644 index 000000000000..e2c62e8f1db4 --- /dev/null +++ b/Documentation/devicetree/bindings/display/panel/logicpd,type28.yaml @@ -0,0 +1,42 @@ +# SPDX-License-Identifier: GPL-2.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 aford173@gmail.com
+allOf:
- $ref: panel-common.yaml#
+properties:
- compatible:
- const: logicpd,type28
- power-supply: true
- enable-gpios: true
- backlight: true
- port: true
+required:
- compatible
+additionalProperties: false
+examples:
- |
- lcd0: display {
compatible = "logicpd,type28";
enable-gpios = <&gpio5 27 GPIO_ACTIVE_HIGH>;
backlight = <&backlight>;
port {
lcd_in: endpoint {
remote-endpoint = <&dpi_out>;
};
};
- };
+...
2.17.1
On Wed, Oct 9, 2019 at 6:31 PM Rob Herring robh@kernel.org wrote:
On Tue, Oct 01, 2019 at 06:39:22PM -0500, Adam Ford wrote:
This patch adds documentation of device tree bindings for the WVGA panel Logic PD Type 28 display.
Signed-off-by: Adam Ford aford173@gmail.com
V4: Update per Rob H's suggestions and copy other panel yaml example from 5.4-rc1 V3: Correct build errors from 'make dt_binding_check'
The example still fails to build here.
I cannot replicate the build error on 5.4-RC3 at least for this binding on V4 of the patch. I get build error on other bindings.
$ make dt_binding_check ARCH=arm scripts/kconfig/conf --syncconfig Kconfig SCHEMA Documentation/devicetree/bindings/processed-schema.yaml /home/aford/src/linux/Documentation/devicetree/bindings/net/adi,adin.yaml: ignoring, error in schema 'adi,rx-internal-delay-ps' warning: no schema found in file: Documentation/devicetree/bindings/net/adi,adin.yaml /home/aford/src/linux/Documentation/devicetree/bindings/regulator/fixed-regulator.yaml: ignoring, error in schema '0' warning: no schema found in file: Documentation/devicetree/bindings/regulator/fixed-regulator.yaml CHKDT Documentation/devicetree/bindings/arm/amlogic/amlogic,meson-gx-ao-secure.yaml .... CHKDT Documentation/devicetree/bindings/display/panel/tpo,tpg110.yaml CHKDT Documentation/devicetree/bindings/display/panel/ampire,am-480272h3tmqw-t01h.yaml CHKDT Documentation/devicetree/bindings/display/panel/logicpd,type28.yaml CHKDT Documentation/devicetree/bindings/display/panel/ronbo,rb070d30.yaml ... CHKDT Documentation/devicetree/bindings/media/allwinner,sun4i-a10-ir.yaml CHKDT Documentation/devicetree/bindings/media/allwinner,sun4i-a10-csi.yaml Documentation/devicetree/bindings/media/allwinner,sun4i-a10-csi.yaml: $id: path/filename 'arm/allwinner,sun4i-a10-csi.yaml' doesn't match actual filename Documentation/devicetree/bindings/Makefile:12: recipe for target 'Documentation/devicetree/bindings/media/allwinner,sun4i-a10-csi.example.dts' failed make[1]: *** [Documentation/devicetree/bindings/media/allwinner,sun4i-a10-csi.example.dts] Error 1 Makefile:1263: recipe for target 'dt_binding_check' failed make: *** [dt_binding_check] Error 2
I took out some of the logs to make it less chatty. I don't know anything about yaml or what the expectations are, so if there is a test beyond 'make dt_binding_check' please let me know.
Thank you,
adam
V2: Use YAML instead of TXT for binding
diff --git a/Documentation/devicetree/bindings/display/panel/logicpd,type28.yaml b/Documentation/devicetree/bindings/display/panel/logicpd,type28.yaml new file mode 100644 index 000000000000..e2c62e8f1db4 --- /dev/null +++ b/Documentation/devicetree/bindings/display/panel/logicpd,type28.yaml @@ -0,0 +1,42 @@ +# SPDX-License-Identifier: GPL-2.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 aford173@gmail.com
+allOf:
- $ref: panel-common.yaml#
+properties:
- compatible:
- const: logicpd,type28
- power-supply: true
- enable-gpios: true
- backlight: true
- port: true
+required:
- compatible
+additionalProperties: false
+examples:
- |
- lcd0: display {
compatible = "logicpd,type28";
enable-gpios = <&gpio5 27 GPIO_ACTIVE_HIGH>;
backlight = <&backlight>;
port {
lcd_in: endpoint {
remote-endpoint = <&dpi_out>;
};
};
- };
+...
2.17.1
On Tue, Oct 15, 2019 at 6:04 PM Adam Ford aford173@gmail.com wrote:
On Wed, Oct 9, 2019 at 6:31 PM Rob Herring robh@kernel.org wrote:
On Tue, Oct 01, 2019 at 06:39:22PM -0500, Adam Ford wrote:
This patch adds documentation of device tree bindings for the WVGA panel Logic PD Type 28 display.
Signed-off-by: Adam Ford aford173@gmail.com
V4: Update per Rob H's suggestions and copy other panel yaml example from 5.4-rc1 V3: Correct build errors from 'make dt_binding_check'
The example still fails to build here.
I cannot replicate the build error on 5.4-RC3 at least for this binding on V4 of the patch. I get build error on other bindings.
$ make dt_binding_check ARCH=arm scripts/kconfig/conf --syncconfig Kconfig SCHEMA Documentation/devicetree/bindings/processed-schema.yaml /home/aford/src/linux/Documentation/devicetree/bindings/net/adi,adin.yaml: ignoring, error in schema 'adi,rx-internal-delay-ps' warning: no schema found in file: Documentation/devicetree/bindings/net/adi,adin.yaml /home/aford/src/linux/Documentation/devicetree/bindings/regulator/fixed-regulator.yaml: ignoring, error in schema '0' warning: no schema found in file: Documentation/devicetree/bindings/regulator/fixed-regulator.yaml CHKDT Documentation/devicetree/bindings/arm/amlogic/amlogic,meson-gx-ao-secure.yaml .... CHKDT Documentation/devicetree/bindings/display/panel/tpo,tpg110.yaml CHKDT Documentation/devicetree/bindings/display/panel/ampire,am-480272h3tmqw-t01h.yaml CHKDT Documentation/devicetree/bindings/display/panel/logicpd,type28.yaml CHKDT Documentation/devicetree/bindings/display/panel/ronbo,rb070d30.yaml ... CHKDT Documentation/devicetree/bindings/media/allwinner,sun4i-a10-ir.yaml CHKDT Documentation/devicetree/bindings/media/allwinner,sun4i-a10-csi.yaml Documentation/devicetree/bindings/media/allwinner,sun4i-a10-csi.yaml: $id: path/filename 'arm/allwinner,sun4i-a10-csi.yaml' doesn't match actual filename Documentation/devicetree/bindings/Makefile:12: recipe for target 'Documentation/devicetree/bindings/media/allwinner,sun4i-a10-csi.example.dts' failed make[1]: *** [Documentation/devicetree/bindings/media/allwinner,sun4i-a10-csi.example.dts] Error 1 Makefile:1263: recipe for target 'dt_binding_check' failed make: *** [dt_binding_check] Error 2
I took out some of the logs to make it less chatty. I don't know anything about yaml or what the expectations are, so if there is a test beyond 'make dt_binding_check' please let me know.
Perhaps 'make -k' is needed because of the other failures. Or try on top of linux-next which should all be fixed.
Rob
On Wed, Oct 16, 2019 at 8:15 AM Rob Herring robh@kernel.org wrote:
On Tue, Oct 15, 2019 at 6:04 PM Adam Ford aford173@gmail.com wrote:
On Wed, Oct 9, 2019 at 6:31 PM Rob Herring robh@kernel.org wrote:
On Tue, Oct 01, 2019 at 06:39:22PM -0500, Adam Ford wrote:
This patch adds documentation of device tree bindings for the WVGA panel Logic PD Type 28 display.
Signed-off-by: Adam Ford aford173@gmail.com
V4: Update per Rob H's suggestions and copy other panel yaml example from 5.4-rc1 V3: Correct build errors from 'make dt_binding_check'
The example still fails to build here.
I cannot replicate the build error on 5.4-RC3 at least for this binding on V4 of the patch. I get build error on other bindings.
$ make dt_binding_check ARCH=arm scripts/kconfig/conf --syncconfig Kconfig SCHEMA Documentation/devicetree/bindings/processed-schema.yaml /home/aford/src/linux/Documentation/devicetree/bindings/net/adi,adin.yaml: ignoring, error in schema 'adi,rx-internal-delay-ps' warning: no schema found in file: Documentation/devicetree/bindings/net/adi,adin.yaml /home/aford/src/linux/Documentation/devicetree/bindings/regulator/fixed-regulator.yaml: ignoring, error in schema '0' warning: no schema found in file: Documentation/devicetree/bindings/regulator/fixed-regulator.yaml CHKDT Documentation/devicetree/bindings/arm/amlogic/amlogic,meson-gx-ao-secure.yaml .... CHKDT Documentation/devicetree/bindings/display/panel/tpo,tpg110.yaml CHKDT Documentation/devicetree/bindings/display/panel/ampire,am-480272h3tmqw-t01h.yaml CHKDT Documentation/devicetree/bindings/display/panel/logicpd,type28.yaml CHKDT Documentation/devicetree/bindings/display/panel/ronbo,rb070d30.yaml ... CHKDT Documentation/devicetree/bindings/media/allwinner,sun4i-a10-ir.yaml CHKDT Documentation/devicetree/bindings/media/allwinner,sun4i-a10-csi.yaml Documentation/devicetree/bindings/media/allwinner,sun4i-a10-csi.yaml: $id: path/filename 'arm/allwinner,sun4i-a10-csi.yaml' doesn't match actual filename Documentation/devicetree/bindings/Makefile:12: recipe for target 'Documentation/devicetree/bindings/media/allwinner,sun4i-a10-csi.example.dts' failed make[1]: *** [Documentation/devicetree/bindings/media/allwinner,sun4i-a10-csi.example.dts] Error 1 Makefile:1263: recipe for target 'dt_binding_check' failed make: *** [dt_binding_check] Error 2
I took out some of the logs to make it less chatty. I don't know anything about yaml or what the expectations are, so if there is a test beyond 'make dt_binding_check' please let me know.
Perhaps 'make -k' is needed because of the other failures. Or try on top of linux-next which should all be fixed.
Thanks. I didn't know about the '-k' I replaced GPIO_ACTIVE_HIGH with 0 and it seems to have fixed the error. Sorry about all the noise. Hopefully I did it right. There is a V5 patch waiting now starting at [1]
[1] - https://patchwork.kernel.org/patch/11193399/
adam
Rob
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")
Signed-off-by: Adam Ford aford173@gmail.com Acked-by: Sam Ravnborg sam@ravnborg.org --- V4: No Change V3: No change V2: Remove legacy 'label' from binding
diff --git a/arch/arm/boot/dts/logicpd-torpedo-37xx-devkit-28.dts b/arch/arm/boot/dts/logicpd-torpedo-37xx-devkit-28.dts index 07ac99b9cda6..cdb89b3e2a9b 100644 --- a/arch/arm/boot/dts/logicpd-torpedo-37xx-devkit-28.dts +++ b/arch/arm/boot/dts/logicpd-torpedo-37xx-devkit-28.dts @@ -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"; };
dri-devel@lists.freedesktop.org