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
diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c index 5a93c4edf1e4..c86c30f3a8a1 100644 --- a/drivers/gpu/drm/panel/panel-simple.c +++ b/drivers/gpu/drm/panel/panel-simple.c @@ -1900,6 +1900,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, @@ -2948,6 +2982,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
diff --git a/Documentation/devicetree/bindings/display/panel/logicpd,type28.txt b/Documentation/devicetree/bindings/display/panel/logicpd,type28.txt new file mode 100644 index 000000000000..829fc5210e06 --- /dev/null +++ b/Documentation/devicetree/bindings/display/panel/logicpd,type28.txt @@ -0,0 +1,26 @@ +Logic PD Type 28 4.3" WQVGA TFT LCD panel + +This binding is compatible with the simple-panel binding, which is specified +in simple-panel.txt in this directory. + +Required properties: +- compatible: should be "logicpd,type28" + +Optional properties: +- power-supply: regulator to provide the supply voltage +- enable-gpios: GPIO pin to enable or disable the panel +- backlight: phandle of the backlight device attached to the panel + +Optional nodes: +- Video port for RGB input. + +Example: + lcd0: display { + compatible = "logicpd,type28"; + enable-gpios = <&gpio5 27 GPIO_ACTIVE_HIGH>; + port { + lcd_in: endpoint { + remote-endpoint = <&dpi_out>; + }; + }; + };
Hi Adam.
Good with even more panels. But for new bindings please use meta-schema (.yaml) format. This is what we use for new bindings as it allows better validation.
Sam
On Tue, Sep 17, 2019 at 11:12:12AM -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
diff --git a/Documentation/devicetree/bindings/display/panel/logicpd,type28.txt b/Documentation/devicetree/bindings/display/panel/logicpd,type28.txt new file mode 100644 index 000000000000..829fc5210e06 --- /dev/null +++ b/Documentation/devicetree/bindings/display/panel/logicpd,type28.txt @@ -0,0 +1,26 @@ +Logic PD Type 28 4.3" WQVGA TFT LCD panel
+This binding is compatible with the simple-panel binding, which is specified +in simple-panel.txt in this directory.
+Required properties: +- compatible: should be "logicpd,type28"
+Optional properties: +- power-supply: regulator to provide the supply voltage +- enable-gpios: GPIO pin to enable or disable the panel +- backlight: phandle of the backlight device attached to the panel
Is it correct that these are optional for the descrivbed panel?
+Optional nodes: +- Video port for RGB input.
+Example:
- lcd0: display {
compatible = "logicpd,type28";
enable-gpios = <&gpio5 27 GPIO_ACTIVE_HIGH>;
port {
lcd_in: endpoint {
remote-endpoint = <&dpi_out>;
};
};
- };
-- 2.17.1
On Sat, Sep 21, 2019 at 2:07 PM Sam Ravnborg sam@ravnborg.org wrote:
Hi Adam.
Good with even more panels. But for new bindings please use meta-schema (.yaml) format. This is what we use for new bindings as it allows better validation.
I don't know that syntax, but I'll try to piece together a few different examples to come up with something. I should have a V2 today.
adam
Sam
On Tue, Sep 17, 2019 at 11:12:12AM -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
diff --git a/Documentation/devicetree/bindings/display/panel/logicpd,type28.txt b/Documentation/devicetree/bindings/display/panel/logicpd,type28.txt new file mode 100644 index 000000000000..829fc5210e06 --- /dev/null +++ b/Documentation/devicetree/bindings/display/panel/logicpd,type28.txt @@ -0,0 +1,26 @@ +Logic PD Type 28 4.3" WQVGA TFT LCD panel
+This binding is compatible with the simple-panel binding, which is specified +in simple-panel.txt in this directory.
+Required properties: +- compatible: should be "logicpd,type28"
+Optional properties: +- power-supply: regulator to provide the supply voltage +- enable-gpios: GPIO pin to enable or disable the panel +- backlight: phandle of the backlight device attached to the panel
Is it correct that these are optional for the descrivbed panel?
+Optional nodes: +- Video port for RGB input.
+Example:
lcd0: display {
compatible = "logicpd,type28";
enable-gpios = <&gpio5 27 GPIO_ACTIVE_HIGH>;
port {
lcd_in: endpoint {
remote-endpoint = <&dpi_out>;
};
};
};
-- 2.17.1
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
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..00c426bd51a0 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,8 @@ #include "logicpd-torpedo-37xx-devkit.dts"
&lcd0 { - + /* This isn't the exact LCD, but the timings meet spec */ + /* To make it work, set CONFIG_OMAP2_DSS_MIN_FCK_PER_PCK=4 */ + compatible = "logicpd,type28"; 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>; - }; };
Hi Adam.
On Tue, Sep 17, 2019 at 11:12:13AM -0500, Adam Ford wrote:
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
Looks good. One nit below.
With this addressed:
Acked-by: Sam Ravnborg sam@ravnborg.org
Sam
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..00c426bd51a0 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,8 @@ #include "logicpd-torpedo-37xx-devkit.dts"
&lcd0 {
- /* This isn't the exact LCD, but the timings meet spec */
- /* To make it work, set CONFIG_OMAP2_DSS_MIN_FCK_PER_PCK=4 */
- compatible = "logicpd,type28"; label = "28";
You left this property - but us it documented and what use has it?
- 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>;
- };
};
2.17.1
On Sat, Sep 21, 2019 at 2:09 PM Sam Ravnborg sam@ravnborg.org wrote:
Hi Adam.
On Tue, Sep 17, 2019 at 11:12:13AM -0500, Adam Ford wrote:
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
Looks good. One nit below.
With this addressed:
Acked-by: Sam Ravnborg sam@ravnborg.org
Sam
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..00c426bd51a0 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,8 @@ #include "logicpd-torpedo-37xx-devkit.dts"
&lcd0 {
/* This isn't the exact LCD, but the timings meet spec */
/* To make it work, set CONFIG_OMAP2_DSS_MIN_FCK_PER_PCK=4 */
compatible = "logicpd,type28"; label = "28";
You left this property - but us it documented and what use has it?
Good catch, I'll remove it and post a V2 today once I can figure out the yaml stuff.
adam
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>;
};
};
2.17.1
Hi Adam.
On Tue, Sep 17, 2019 at 11:12:11AM -0500, Adam Ford wrote:
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
Patch looks good. Reviewed-by: Sam Ravnborg sam@ravnborg.org
diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c index 5a93c4edf1e4..c86c30f3a8a1 100644 --- a/drivers/gpu/drm/panel/panel-simple.c +++ b/drivers/gpu/drm/panel/panel-simple.c @@ -1900,6 +1900,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, @@ -2948,6 +2982,9 @@ static const struct of_device_id platform_of_match[] = { }, { .compatible = "lg,lp129qe", .data = &lg_lp129qe,
- }, {
.compatible = "logicpd,type28",
}, { .compatible = "mitsubishi,aa070mc01-ca1", .data = &mitsubishi_aa070mc01,.data = &logicpd_type_28,
-- 2.17.1
dri-devel@lists.freedesktop.org