* [PATCH v3 0/4] video: simple_panel support for am335x evm panel
@ 2025-12-04 8:31 Markus Schneider-Pargmann (TI.com)
2025-12-04 8:31 ` [PATCH v3 1/4] panel: Add missing comment for the timing argument Markus Schneider-Pargmann (TI.com)
` (3 more replies)
0 siblings, 4 replies; 7+ messages in thread
From: Markus Schneider-Pargmann (TI.com) @ 2025-12-04 8:31 UTC (permalink / raw)
To: u-boot
Cc: Anatolij Gustschin, Tom Rini, Yannick Fertre, Patrice Chotard,
Raphael Gallais-Pou, Sukrut Bellary, Fabio Estevam,
Markus Schneider-Pargmann (TI.com)
Hi,
this series adds the capability to define hardcoded panel settings to
the simple_panel driver similar to the Linux Kernel and adds the panel
used on am335x evm. panel-uclass.c is extended to support get_modes()
for panels and drm_display_mode conversion. In a second step the tilcdc
is extended to support OF graph to be able to connect to the simple
panel devicetree node.
Best
Markus
Signed-off-by: Markus Schneider-Pargmann (TI.com) <msp@baylibre.com>
---
Changes in v3:
- Fix typo in first patch timining -> timing
- Link to v2: https://lore.kernel.org/r/20251203-topic-am33-evm-lcd-v2026-01-v2-0-262cf4f34eb5@baylibre.com
Changes in v2:
- Add support for struct drm_display_mode in u-boot and in particular
the simple panel driver to make copying definitions from Linux easier
as suggested by Fabio
- Link to v1: https://lore.kernel.org/r/20251128-topic-am33-evm-lcd-v2026-01-v1-0-ef75d4330d3d@baylibre.com
---
Markus Schneider-Pargmann (TI.com) (4):
panel: Add missing comment for the timing argument
panel: Lightweight support of get_modes()
video: simple_panel: Add tfc_s9700rtwv43tr_01b
video: ti: am335x: Support OF graph
drivers/video/panel-uclass.c | 38 +++++++++++++++++++++--
drivers/video/simple_panel.c | 62 ++++++++++++++++++++++++++++++++++----
drivers/video/ti/tilcdc.c | 46 +++++++++++++++++++++++-----
include/panel.h | 72 +++++++++++++++++++++++++++++++++++++++++++-
4 files changed, 200 insertions(+), 18 deletions(-)
---
base-commit: c5e6d2ab7eba68cbfb600cdc131c0c375ced2ec9
change-id: 20251128-topic-am33-evm-lcd-v2026-01-004f74a2ccfc
Best regards,
--
Markus Schneider-Pargmann (TI.com) <msp@baylibre.com>
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v3 1/4] panel: Add missing comment for the timing argument
2025-12-04 8:31 [PATCH v3 0/4] video: simple_panel support for am335x evm panel Markus Schneider-Pargmann (TI.com)
@ 2025-12-04 8:31 ` Markus Schneider-Pargmann (TI.com)
2025-12-04 8:31 ` [PATCH v3 2/4] panel: Lightweight support of get_modes() Markus Schneider-Pargmann (TI.com)
` (2 subsequent siblings)
3 siblings, 0 replies; 7+ messages in thread
From: Markus Schneider-Pargmann (TI.com) @ 2025-12-04 8:31 UTC (permalink / raw)
To: u-boot
Cc: Anatolij Gustschin, Tom Rini, Yannick Fertre, Patrice Chotard,
Raphael Gallais-Pou, Sukrut Bellary, Fabio Estevam,
Markus Schneider-Pargmann (TI.com)
For completeness add it.
Signed-off-by: Markus Schneider-Pargmann (TI.com) <msp@baylibre.com>
---
include/panel.h | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/include/panel.h b/include/panel.h
index ab417bc91ed1d23aadc64e861bb721418199fb0f..e2764d72c57dcc4ae11d5f1553f1bfcd98996138 100644
--- a/include/panel.h
+++ b/include/panel.h
@@ -29,7 +29,7 @@ struct panel_ops {
* get_timings() - Get display timings from panel.
*
* @dev: Panel device containing the display timings
- * @tim: Place to put timings
+ * @timing: Pointer to the timing for storing
* @return 0 if OK, -ve on error
*/
int (*get_display_timing)(struct udevice *dev,
@@ -60,6 +60,7 @@ int panel_set_backlight(struct udevice *dev, int percent);
* panel_get_display_timing() - Get display timings from panel.
*
* @dev: Panel device containing the display timings
+ * @timing: Pointer to the timing for storing
* Return: 0 if OK, -ve on error
*/
int panel_get_display_timing(struct udevice *dev,
--
2.51.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH v3 2/4] panel: Lightweight support of get_modes()
2025-12-04 8:31 [PATCH v3 0/4] video: simple_panel support for am335x evm panel Markus Schneider-Pargmann (TI.com)
2025-12-04 8:31 ` [PATCH v3 1/4] panel: Add missing comment for the timing argument Markus Schneider-Pargmann (TI.com)
@ 2025-12-04 8:31 ` Markus Schneider-Pargmann (TI.com)
2025-12-04 8:31 ` [PATCH v3 3/4] video: simple_panel: Add tfc_s9700rtwv43tr_01b Markus Schneider-Pargmann (TI.com)
2025-12-04 8:31 ` [PATCH v3 4/4] video: ti: am335x: Support OF graph Markus Schneider-Pargmann (TI.com)
3 siblings, 0 replies; 7+ messages in thread
From: Markus Schneider-Pargmann (TI.com) @ 2025-12-04 8:31 UTC (permalink / raw)
To: u-boot
Cc: Anatolij Gustschin, Tom Rini, Yannick Fertre, Patrice Chotard,
Raphael Gallais-Pou, Sukrut Bellary, Fabio Estevam,
Markus Schneider-Pargmann (TI.com)
Linux uses get_modes() to fetch all available panel modes from the
driver. This is also used to fetch the modes from Linux's simple panel
implementation where a list of drm_display_mode structs is used to
define the different possible panels.
To make our work easier, create a compatible way of fetching and
defining these modes in u-boot. get_modes() fetches the available modes
from the panel driver. The get_display_timing() call maps the
drm_display_mode properties to the display_timing struct. This call now
uses whatever panel operation is available, get_display_timing() or
get_modes().
Reviewed-by: Fabio Estevam <festevam@gmail.com>
Signed-off-by: Markus Schneider-Pargmann (TI.com) <msp@baylibre.com>
---
drivers/video/panel-uclass.c | 38 ++++++++++++++++++++++--
include/panel.h | 69 ++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 104 insertions(+), 3 deletions(-)
diff --git a/drivers/video/panel-uclass.c b/drivers/video/panel-uclass.c
index 52a3466dc8c1203731dfcb62ebf4e63ed390bbb4..82e8339dde1bcd2cb8d93c7f7d75a29790089fb3 100644
--- a/drivers/video/panel-uclass.c
+++ b/drivers/video/panel-uclass.c
@@ -37,15 +37,47 @@ int panel_set_backlight(struct udevice *dev, int percent)
return ops->set_backlight(dev, percent);
}
+static void drm_mode_to_display_timing(const struct drm_display_mode *mode,
+ struct display_timing *timing)
+{
+ timing->pixelclock.typ = mode->clock * 1000; /* kHz to Hz */
+ timing->hactive.typ = mode->hdisplay;
+ timing->hfront_porch.typ = mode->hsync_start - mode->hdisplay;
+ timing->hsync_len.typ = mode->hsync_end - mode->hsync_start;
+ timing->hback_porch.typ = mode->htotal - mode->hsync_end;
+ timing->vactive.typ = mode->vdisplay;
+ timing->vfront_porch.typ = mode->vsync_start - mode->vdisplay;
+ timing->vsync_len.typ = mode->vsync_end - mode->vsync_start;
+ timing->vback_porch.typ = mode->vtotal - mode->vsync_end;
+
+ /* DRM_MODE_FLAG_* defines are already mapped to u-boot DISPLAY_FLAGS */
+ timing->flags = mode->flags;
+}
+
int panel_get_display_timing(struct udevice *dev,
struct display_timing *timings)
{
struct panel_ops *ops = panel_get_ops(dev);
+ const struct drm_display_mode *modes;
+ int ret = -ENOSYS;
- if (!ops->get_display_timing)
- return -ENOSYS;
+ if (ops->get_display_timing) {
+ ret = ops->get_display_timing(dev, timings);
+ if (ret != -ENODEV)
+ return ret;
+ }
- return ops->get_display_timing(dev, timings);
+ if (!ops->get_modes)
+ return ret;
+
+ ret = ops->get_modes(dev, &modes);
+ if (ret < 0)
+ return ret;
+ else if (ret == 0)
+ return -ENODEV;
+
+ drm_mode_to_display_timing(&modes[0], timings);
+ return 0;
}
UCLASS_DRIVER(panel) = {
diff --git a/include/panel.h b/include/panel.h
index e2764d72c57dcc4ae11d5f1553f1bfcd98996138..8d46fb26a07c2b1886a38f922eb6a90c3762ca38 100644
--- a/include/panel.h
+++ b/include/panel.h
@@ -7,6 +7,62 @@
#ifndef _PANEL_H
#define _PANEL_H
+#include <video.h>
+#include <fdtdec.h>
+
+/* DRM mode flags mapped to U-Boot DISPLAY_FLAGS for direct compatibility */
+#define DRM_MODE_FLAG_NHSYNC DISPLAY_FLAGS_HSYNC_LOW
+#define DRM_MODE_FLAG_PHSYNC DISPLAY_FLAGS_HSYNC_HIGH
+#define DRM_MODE_FLAG_NVSYNC DISPLAY_FLAGS_VSYNC_LOW
+#define DRM_MODE_FLAG_PVSYNC DISPLAY_FLAGS_VSYNC_HIGH
+#define DRM_MODE_FLAG_INTERLACE DISPLAY_FLAGS_INTERLACED
+#define DRM_MODE_FLAG_DBLSCAN DISPLAY_FLAGS_DOUBLESCAN
+#define DRM_MODE_FLAG_DBLCLK DISPLAY_FLAGS_DOUBLECLK
+
+/**
+ * struct drm_display_mode - DRM kernel-internal display mode structure
+ * simplified for U-Boot
+ * @hdisplay: horizontal display size
+ * @hsync_start: horizontal sync start
+ * @hsync_end: horizontal sync end
+ * @htotal: horizontal total size
+ * @vdisplay: vertical display size
+ * @vsync_start: vertical sync start
+ * @vsync_end: vertical sync end
+ * @vtotal: vertical total size
+ *
+ * The horizontal and vertical timings are defined per the following diagram.
+ *
+ * ::
+ *
+ *
+ * Active Front Sync Back
+ * Region Porch Porch
+ * <-----------------------><----------------><-------------><-------------->
+ * //////////////////////|
+ * ////////////////////// |
+ * ////////////////////// |.................. ................
+ * _______________
+ * <----- [hv]display ----->
+ * <------------- [hv]sync_start ------------>
+ * <--------------------- [hv]sync_end --------------------->
+ * <-------------------------------- [hv]total ----------------------------->*
+ */
+struct drm_display_mode {
+ unsigned int clock; /* in kHz */
+
+ u16 hdisplay;
+ u16 hsync_start;
+ u16 hsync_end;
+ u16 htotal;
+ u16 vdisplay;
+ u16 vsync_start;
+ u16 vsync_end;
+ u16 vtotal;
+
+ u32 flags;
+};
+
struct panel_ops {
/**
* enable_backlight() - Enable the panel backlight
@@ -34,6 +90,19 @@ struct panel_ops {
*/
int (*get_display_timing)(struct udevice *dev,
struct display_timing *timing);
+
+ /**
+ * get_modes() - Get display modes from panel
+ *
+ * Returns an array of display modes supported by the panel.
+ * Similar to Linux's drm_panel_funcs->get_modes().
+ *
+ * @dev: Panel device
+ * @modes: Pointer to an array of modes
+ * @return number of modes if OK, -ve on error
+ */
+ int (*get_modes)(struct udevice *dev,
+ const struct drm_display_mode **modes);
};
#define panel_get_ops(dev) ((struct panel_ops *)(dev)->driver->ops)
--
2.51.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH v3 3/4] video: simple_panel: Add tfc_s9700rtwv43tr_01b
2025-12-04 8:31 [PATCH v3 0/4] video: simple_panel support for am335x evm panel Markus Schneider-Pargmann (TI.com)
2025-12-04 8:31 ` [PATCH v3 1/4] panel: Add missing comment for the timing argument Markus Schneider-Pargmann (TI.com)
2025-12-04 8:31 ` [PATCH v3 2/4] panel: Lightweight support of get_modes() Markus Schneider-Pargmann (TI.com)
@ 2025-12-04 8:31 ` Markus Schneider-Pargmann (TI.com)
2025-12-30 17:30 ` Tom Rini
2025-12-04 8:31 ` [PATCH v3 4/4] video: ti: am335x: Support OF graph Markus Schneider-Pargmann (TI.com)
3 siblings, 1 reply; 7+ messages in thread
From: Markus Schneider-Pargmann (TI.com) @ 2025-12-04 8:31 UTC (permalink / raw)
To: u-boot
Cc: Anatolij Gustschin, Tom Rini, Yannick Fertre, Patrice Chotard,
Raphael Gallais-Pou, Sukrut Bellary, Fabio Estevam,
Markus Schneider-Pargmann (TI.com)
Add timing data for tfc_s9700rtwv43tr_01b from Linux to the simple-panel
driver. To support hardcoded timing data as Linux does, add a new struct
simple_panel_drv_data which holds a struct display_timing pointer as
well. The hardcoded timing data is preferred over DT parsing.
Reviewed-by: Fabio Estevam <festevam@gmail.com>
Signed-off-by: Markus Schneider-Pargmann (TI.com) <msp@baylibre.com>
---
drivers/video/simple_panel.c | 62 +++++++++++++++++++++++++++++++++++++++-----
1 file changed, 56 insertions(+), 6 deletions(-)
diff --git a/drivers/video/simple_panel.c b/drivers/video/simple_panel.c
index 0f23df701bc3c40ea49380bbfa3743ee592d8bd3..987ad29995c9b0e30ec59fd56e52590b516fae52 100644
--- a/drivers/video/simple_panel.c
+++ b/drivers/video/simple_panel.c
@@ -22,6 +22,12 @@ struct simple_panel_priv {
struct gpio_desc enable;
};
+struct simple_panel_drv_data {
+ const struct drm_display_mode *modes;
+ unsigned int num_modes;
+ const struct mipi_dsi_panel_plat *mipi_dsi;
+};
+
static int simple_panel_enable_backlight(struct udevice *dev)
{
struct simple_panel_priv *priv = dev_get_priv(dev);
@@ -104,13 +110,32 @@ static int simple_panel_get_edid_timing(struct udevice *dev,
}
#endif
+static int simple_panel_get_modes(struct udevice *dev,
+ const struct drm_display_mode **modes)
+{
+ const struct simple_panel_drv_data *data =
+ (const struct simple_panel_drv_data *)dev_get_driver_data(dev);
+
+ if (!data || !data->modes || data->num_modes == 0)
+ return -ENODEV;
+
+ *modes = data->modes;
+ return data->num_modes;
+}
+
static int simple_panel_get_display_timing(struct udevice *dev,
struct display_timing *timings)
{
+ const struct simple_panel_drv_data *data =
+ (const struct simple_panel_drv_data *)dev_get_driver_data(dev);
const void *blob = gd->fdt_blob;
int ret;
- /* Check for timing subnode if panel node first */
+ /* Prefer the use of drm_display_mode if available */
+ if (data && data->modes && data->num_modes > 0)
+ return -ENODEV;
+
+ /* Check for timing subnode in panel node */
ret = fdtdec_decode_display_timing(blob, dev_of_offset(dev),
0, timings);
if (!ret)
@@ -158,9 +183,9 @@ static int simple_panel_of_to_plat(struct udevice *dev)
static int simple_panel_probe(struct udevice *dev)
{
struct simple_panel_priv *priv = dev_get_priv(dev);
+ const struct simple_panel_drv_data *data =
+ (const struct simple_panel_drv_data *)dev_get_driver_data(dev);
struct mipi_dsi_panel_plat *plat = dev_get_plat(dev);
- struct mipi_dsi_panel_plat *dsi_data =
- (struct mipi_dsi_panel_plat *)dev_get_driver_data(dev);
int ret;
ret = regulator_set_enable_if_allowed(priv->reg, true);
@@ -170,8 +195,8 @@ static int simple_panel_probe(struct udevice *dev)
return ret;
}
- if (dsi_data)
- memcpy(plat, dsi_data, sizeof(struct mipi_dsi_panel_plat));
+ if (data->mipi_dsi)
+ memcpy(plat, data->mipi_dsi, sizeof(struct mipi_dsi_panel_plat));
return 0;
}
@@ -180,6 +205,7 @@ static const struct panel_ops simple_panel_ops = {
.enable_backlight = simple_panel_enable_backlight,
.set_backlight = simple_panel_set_backlight,
.get_display_timing = simple_panel_get_display_timing,
+ .get_modes = simple_panel_get_modes,
};
static const struct mipi_dsi_panel_plat panasonic_vvx10f004b00 = {
@@ -189,6 +215,28 @@ static const struct mipi_dsi_panel_plat panasonic_vvx10f004b00 = {
.lanes = 4,
};
+static const struct simple_panel_drv_data panasonic_vvx10f004b00_data = {
+ .mipi_dsi = &panasonic_vvx10f004b00,
+};
+
+static const struct drm_display_mode tfc_s9700rtwv43tr_01b_mode = {
+ .clock = 30000,
+ .hdisplay = 800,
+ .hsync_start = 800 + 39,
+ .hsync_end = 800 + 39 + 47,
+ .htotal = 800 + 39 + 47 + 39,
+ .vdisplay = 480,
+ .vsync_start = 480 + 13,
+ .vsync_end = 480 + 13 + 2,
+ .vtotal = 480 + 13 + 2 + 29,
+ .flags = DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC,
+};
+
+static const struct simple_panel_drv_data tfc_s9700rtwv43tr_01b_data = {
+ .modes = &tfc_s9700rtwv43tr_01b_mode,
+ .num_modes = 1,
+};
+
static const struct udevice_id simple_panel_ids[] = {
{ .compatible = "simple-panel" },
{ .compatible = "panel-lvds" },
@@ -200,7 +248,9 @@ static const struct udevice_id simple_panel_ids[] = {
{ .compatible = "sharp,lq123p1jx31" },
{ .compatible = "boe,nv101wxmn51" },
{ .compatible = "panasonic,vvx10f004b00",
- .data = (ulong)&panasonic_vvx10f004b00 },
+ .data = (ulong)&panasonic_vvx10f004b00_data },
+ { .compatible = "tfc,s9700rtwv43tr-01b",
+ .data = (ulong)&tfc_s9700rtwv43tr_01b_data },
{ }
};
--
2.51.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH v3 4/4] video: ti: am335x: Support OF graph
2025-12-04 8:31 [PATCH v3 0/4] video: simple_panel support for am335x evm panel Markus Schneider-Pargmann (TI.com)
` (2 preceding siblings ...)
2025-12-04 8:31 ` [PATCH v3 3/4] video: simple_panel: Add tfc_s9700rtwv43tr_01b Markus Schneider-Pargmann (TI.com)
@ 2025-12-04 8:31 ` Markus Schneider-Pargmann (TI.com)
3 siblings, 0 replies; 7+ messages in thread
From: Markus Schneider-Pargmann (TI.com) @ 2025-12-04 8:31 UTC (permalink / raw)
To: u-boot
Cc: Anatolij Gustschin, Tom Rini, Yannick Fertre, Patrice Chotard,
Raphael Gallais-Pou, Sukrut Bellary, Fabio Estevam,
Markus Schneider-Pargmann (TI.com)
Add support for OF graph parsing. When using OF graph the default
tilcdc_panel_info is used which is the same as defined in Linux.
Signed-off-by: Markus Schneider-Pargmann (TI.com) <msp@baylibre.com>
---
drivers/video/ti/tilcdc.c | 46 ++++++++++++++++++++++++++++++++++++++--------
1 file changed, 38 insertions(+), 8 deletions(-)
diff --git a/drivers/video/ti/tilcdc.c b/drivers/video/ti/tilcdc.c
index 340c79299bacabc5a95dbeafbed3cb729afe7576..b498e81864b87464c00c1b23cb1d35394b06d9e8 100644
--- a/drivers/video/ti/tilcdc.c
+++ b/drivers/video/ti/tilcdc.c
@@ -6,6 +6,7 @@
#include <clk.h>
#include <dm.h>
#include <dm/device_compat.h>
+#include <dm/ofnode_graph.h>
#include <log.h>
#include <panel.h>
#include <video.h>
@@ -113,6 +114,18 @@ struct tilcdc_priv {
DECLARE_GLOBAL_DATA_PTR;
+static const struct tilcdc_panel_info tilcdc_panel_info_default = {
+ .ac_bias = 255,
+ .ac_bias_intrpt = 0,
+ .dma_burst_sz = 16,
+ .bpp = 16,
+ .fdd = 0x80,
+ .tft_alt_mode = 0,
+ .sync_edge = 0,
+ .sync_ctrl = 1,
+ .raster_order = 0,
+};
+
static ulong tilcdc_set_pixel_clk_rate(struct udevice *dev, ulong rate)
{
struct tilcdc_priv *priv = dev_get_priv(dev);
@@ -173,6 +186,8 @@ static int tilcdc_probe(struct udevice *dev)
struct udevice *panel, *clk_dev;
struct tilcdc_panel_info info;
struct display_timing timing;
+ bool is_legacy_panel = false;
+ ofnode remote;
ulong rate;
u32 reg;
int err;
@@ -181,10 +196,21 @@ static int tilcdc_probe(struct udevice *dev)
if (!(gd->flags & GD_FLG_RELOC))
return 0;
- err = uclass_get_device(UCLASS_PANEL, 0, &panel);
- if (err) {
- dev_err(dev, "failed to get panel\n");
- return err;
+ /* Try using remote node first, then fall back to using UCLASS_PANEL */
+ remote = ofnode_graph_get_remote_node(dev_ofnode(dev), -1, -1);
+ if (ofnode_valid(remote)) {
+ err = uclass_get_device_by_ofnode(UCLASS_PANEL, remote, &panel);
+ if (err) {
+ dev_err(dev, "failed to get panel via OF graph\n");
+ return err;
+ }
+ } else {
+ err = uclass_get_device(UCLASS_PANEL, 0, &panel);
+ if (err) {
+ dev_err(dev, "failed to get panel\n");
+ return err;
+ }
+ is_legacy_panel = true;
}
err = panel_get_display_timing(panel, &timing);
@@ -205,10 +231,14 @@ static int tilcdc_probe(struct udevice *dev)
if (timing.vactive.typ > LCDC_MAX_HEIGHT)
timing.vactive.typ = LCDC_MAX_HEIGHT;
- err = tilcdc_panel_get_display_info(panel, &info);
- if (err) {
- dev_err(dev, "failed to get panel info\n");
- return err;
+ if (is_legacy_panel) {
+ err = tilcdc_panel_get_display_info(panel, &info);
+ if (err) {
+ dev_err(dev, "failed to get panel info\n");
+ return err;
+ }
+ } else {
+ info = tilcdc_panel_info_default;
}
switch (info.bpp) {
--
2.51.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH v3 3/4] video: simple_panel: Add tfc_s9700rtwv43tr_01b
2025-12-04 8:31 ` [PATCH v3 3/4] video: simple_panel: Add tfc_s9700rtwv43tr_01b Markus Schneider-Pargmann (TI.com)
@ 2025-12-30 17:30 ` Tom Rini
2026-01-04 20:21 ` Markus Schneider-Pargmann
0 siblings, 1 reply; 7+ messages in thread
From: Tom Rini @ 2025-12-30 17:30 UTC (permalink / raw)
To: Markus Schneider-Pargmann (TI.com)
Cc: u-boot, Anatolij Gustschin, Yannick Fertre, Patrice Chotard,
Raphael Gallais-Pou, Sukrut Bellary, Fabio Estevam
[-- Attachment #1: Type: text/plain, Size: 754 bytes --]
On Thu, Dec 04, 2025 at 09:31:16AM +0100, Markus Schneider-Pargmann (TI.com) wrote:
> Add timing data for tfc_s9700rtwv43tr_01b from Linux to the simple-panel
> driver. To support hardcoded timing data as Linux does, add a new struct
> simple_panel_drv_data which holds a struct display_timing pointer as
> well. The hardcoded timing data is preferred over DT parsing.
>
> Reviewed-by: Fabio Estevam <festevam@gmail.com>
> Signed-off-by: Markus Schneider-Pargmann (TI.com) <msp@baylibre.com>
> ---
> drivers/video/simple_panel.c | 62 +++++++++++++++++++++++++++++++++++++++-----
> 1 file changed, 56 insertions(+), 6 deletions(-)
This leads to CI failures in test:
https://source.denx.de/u-boot/u-boot/-/jobs/1341980#L269
--
Tom
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v3 3/4] video: simple_panel: Add tfc_s9700rtwv43tr_01b
2025-12-30 17:30 ` Tom Rini
@ 2026-01-04 20:21 ` Markus Schneider-Pargmann
0 siblings, 0 replies; 7+ messages in thread
From: Markus Schneider-Pargmann @ 2026-01-04 20:21 UTC (permalink / raw)
To: Tom Rini, Markus Schneider-Pargmann (TI.com)
Cc: u-boot, Anatolij Gustschin, Yannick Fertre, Patrice Chotard,
Raphael Gallais-Pou, Sukrut Bellary, Fabio Estevam
[-- Attachment #1: Type: text/plain, Size: 967 bytes --]
Happy new year!
On Tue Dec 30, 2025 at 6:30 PM CET, Tom Rini wrote:
> On Thu, Dec 04, 2025 at 09:31:16AM +0100, Markus Schneider-Pargmann (TI.com) wrote:
>
>> Add timing data for tfc_s9700rtwv43tr_01b from Linux to the simple-panel
>> driver. To support hardcoded timing data as Linux does, add a new struct
>> simple_panel_drv_data which holds a struct display_timing pointer as
>> well. The hardcoded timing data is preferred over DT parsing.
>>
>> Reviewed-by: Fabio Estevam <festevam@gmail.com>
>> Signed-off-by: Markus Schneider-Pargmann (TI.com) <msp@baylibre.com>
>> ---
>> drivers/video/simple_panel.c | 62 +++++++++++++++++++++++++++++++++++++++-----
>> 1 file changed, 56 insertions(+), 6 deletions(-)
>
> This leads to CI failures in test:
> https://source.denx.de/u-boot/u-boot/-/jobs/1341980#L269
Thank you! I missed checking if the data pointer exists before checking
if data->mipi_dsi exists. Sorry, will fix!
Best
Markus
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 289 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2026-01-05 0:32 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-04 8:31 [PATCH v3 0/4] video: simple_panel support for am335x evm panel Markus Schneider-Pargmann (TI.com)
2025-12-04 8:31 ` [PATCH v3 1/4] panel: Add missing comment for the timing argument Markus Schneider-Pargmann (TI.com)
2025-12-04 8:31 ` [PATCH v3 2/4] panel: Lightweight support of get_modes() Markus Schneider-Pargmann (TI.com)
2025-12-04 8:31 ` [PATCH v3 3/4] video: simple_panel: Add tfc_s9700rtwv43tr_01b Markus Schneider-Pargmann (TI.com)
2025-12-30 17:30 ` Tom Rini
2026-01-04 20:21 ` Markus Schneider-Pargmann
2025-12-04 8:31 ` [PATCH v3 4/4] video: ti: am335x: Support OF graph Markus Schneider-Pargmann (TI.com)
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox