From: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
To: Marek Vasut <marex@denx.de>,
Andrzej Hajda <andrzej.hajda@intel.com>,
Neil Armstrong <neil.armstrong@linaro.org>,
Robert Foss <rfoss@kernel.org>,
Laurent Pinchart <Laurent.pinchart@ideasonboard.com>,
Jonas Karlman <jonas@kwiboo.se>,
Jernej Skrabec <jernej.skrabec@gmail.com>,
Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
Maxime Ripard <mripard@kernel.org>,
Thomas Zimmermann <tzimmermann@suse.de>,
David Airlie <airlied@gmail.com>,
Simona Vetter <simona@ffwll.ch>
Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org,
Dave Stevenson <dave.stevenson@raspberrypi.com>,
Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Subject: [PATCH v4 03/13] drm/bridge: tc358762: Improve LCDCTRL defines
Date: Mon, 07 Sep 2026 14:27:58 +0300 [thread overview]
Message-ID: <20260907-tc358762-fixes-v4-3-e3fc3ab5cd83@ideasonboard.com> (raw)
In-Reply-To: <20260907-tc358762-fixes-v4-0-e3fc3ab5cd83@ideasonboard.com>
LCDCTRL fields are quite wrong in the driver. Fix the field defines.
A few notes about the wrong fields:
LCDCTRL_VSDELAY(1) actually sets LCDCTRL_DCLK_POL
LCDCTRL_UNK6 | LCDCTRL_VTGEN actually set LCDCTRL_PXLFORM_RGB888
LCDCTRL_RGB888 actually sets LCDCTRL_DPI_EN
The total still resulted in a working display even if the defines were
quite wrong.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
---
drivers/gpu/drm/bridge/tc358762.c | 33 ++++++++++++++++++++-------------
1 file changed, 20 insertions(+), 13 deletions(-)
diff --git a/drivers/gpu/drm/bridge/tc358762.c b/drivers/gpu/drm/bridge/tc358762.c
index 5630cead7cd8..fcd741f5765d 100644
--- a/drivers/gpu/drm/bridge/tc358762.c
+++ b/drivers/gpu/drm/bridge/tc358762.c
@@ -46,17 +46,22 @@
#define DSI_LANEENABLE_L0EN BIT(1)
#define DSI_LANEENABLE_L1EN BIT(2)
-/* LCDC/DPI Host Registers, based on guesswork that this matches TC358764 */
+/* LCDC/DPI Registers */
#define LCDCTRL 0x0420 /* Video Path Control */
#define LCDCTRL_MSF BIT(0) /* Magic square in RGB666 */
-#define LCDCTRL_VTGEN BIT(4)/* Use chip clock for timing */
-#define LCDCTRL_UNK6 BIT(6) /* Unknown */
-#define LCDCTRL_EVTMODE BIT(5) /* Event mode */
-#define LCDCTRL_RGB888 BIT(8) /* RGB888 mode */
-#define LCDCTRL_HSPOL BIT(17) /* Polarity of HSYNC signal */
-#define LCDCTRL_DEPOL BIT(18) /* Polarity of DE signal */
-#define LCDCTRL_VSPOL BIT(19) /* Polarity of VSYNC signal */
-#define LCDCTRL_VSDELAY(v) (((v) & 0xfff) << 20) /* VSYNC delay */
+#define LCDCTRL_VTGEN BIT(1) /* Use chip clock for timing */
+#define LCDCTRL_PXLFORM GENMASK_U32(6, 4)
+#define LCDCTRL_PXLFORM_RGB666 0 /* x:R:G:B 6:8:8:8 */
+#define LCDCTRL_PXLFORM_RGB666_24 1 /* x:R:x:G:x:B 2:6:2:6:2:6 */
+#define LCDCTRL_PXLFORM_RGB565 2 /* x:R:G:B 8:5:6:5 */
+#define LCDCTRL_PXLFORM_RGB565_1 3 /* x:R:x:G:x:B 3:5:2:6:3:5 */
+#define LCDCTRL_PXLFORM_RGB565_2 4 /* x:R:x:G:x:B:x 2:5:3:6:2:5:1 */
+#define LCDCTRL_PXLFORM_RGB888 5 /* R:G:B 8:8:8 */
+#define LCDCTRL_DPI_EN BIT(8)
+#define LCDCTRL_HSYNC_POL BIT(17) /* Polarity of HSYNC signal */
+#define LCDCTRL_DE_POL BIT(18) /* Polarity of DE signal */
+#define LCDCTRL_VSYNC_POL BIT(19) /* Polarity of VSYNC signal */
+#define LCDCTRL_DCLK_POL BIT(20) /* Polarity of pixel clock */
/* SPI Master Registers */
#define SPICMR 0x0450
@@ -139,14 +144,16 @@ static int tc358762_init(struct tc358762 *ctx)
tc358762_write(ctx, SPICMR, 0x00);
- lcdctrl = LCDCTRL_VSDELAY(1) | LCDCTRL_RGB888 |
- LCDCTRL_UNK6 | LCDCTRL_VTGEN;
+ lcdctrl = FIELD_PREP(LCDCTRL_PXLFORM, LCDCTRL_PXLFORM_RGB888) |
+ LCDCTRL_DPI_EN;
+
+ lcdctrl |= LCDCTRL_DCLK_POL;
if (ctx->mode.flags & DRM_MODE_FLAG_NHSYNC)
- lcdctrl |= LCDCTRL_HSPOL;
+ lcdctrl |= LCDCTRL_HSYNC_POL;
if (ctx->mode.flags & DRM_MODE_FLAG_NVSYNC)
- lcdctrl |= LCDCTRL_VSPOL;
+ lcdctrl |= LCDCTRL_VSYNC_POL;
tc358762_write(ctx, LCDCTRL, lcdctrl);
--
2.43.0
next prev parent reply other threads:[~2026-09-07 11:28 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-07 11:27 [PATCH v4 00/13] drm/bridge: tc358762: Various small fixes Tomi Valkeinen
2026-09-07 11:27 ` [PATCH v4 01/13] drm/bridge: tc358762: Clean up register defines Tomi Valkeinen
2026-09-07 11:27 ` [PATCH v4 02/13] drm/bridge: tc358762: Improve SYSCTRL " Tomi Valkeinen
2026-09-07 11:27 ` Tomi Valkeinen [this message]
2026-09-07 11:27 ` [PATCH v4 04/13] drm/bridge: tc358762: Configure SYSCTRL first Tomi Valkeinen
2026-09-07 11:28 ` [PATCH v4 05/13] drm/bridge: tc358762: Drop SPICMR write Tomi Valkeinen
2026-09-07 11:28 ` [PATCH v4 06/13] drm/bridge: tc358762: Improve DPI enable handling Tomi Valkeinen
2026-09-07 11:36 ` sashiko-bot
2026-09-07 11:28 ` [PATCH v4 07/13] drm/bridge: tc358762: Update comment about the number of lanes Tomi Valkeinen
2026-09-07 11:28 ` [PATCH v4 08/13] drm/bridge: tc358762: Support VTG Tomi Valkeinen
2026-09-07 11:28 ` [PATCH v4 09/13] drm/bridge: tc358762: Fix sync polarities Tomi Valkeinen
2026-09-07 11:28 ` [PATCH v4 10/13] drm/bridge: tc358762: Move tc358762_init() into tc358762_enable() Tomi Valkeinen
2026-09-07 11:38 ` sashiko-bot
2026-09-07 11:28 ` [PATCH v4 11/13] drm/bridge: tc358762: Drop drm_bridge_funcs.mode_set Tomi Valkeinen
2026-09-07 11:28 ` [PATCH v4 12/13] drm/bridge: tc358762: Set DE_POL and DCLK_POL properly Tomi Valkeinen
2026-09-07 11:44 ` sashiko-bot
2026-09-07 11:28 ` [PATCH v4 13/13] drm/panel-simple: Fix powertip,ph800480t013-idf02 timings Tomi Valkeinen
2026-09-10 12:20 ` [PATCH v4 00/13] drm/bridge: tc358762: Various small fixes Andreas Kemnade
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260907-tc358762-fixes-v4-3-e3fc3ab5cd83@ideasonboard.com \
--to=tomi.valkeinen@ideasonboard.com \
--cc=Laurent.pinchart@ideasonboard.com \
--cc=airlied@gmail.com \
--cc=andrzej.hajda@intel.com \
--cc=dave.stevenson@raspberrypi.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=jernej.skrabec@gmail.com \
--cc=jonas@kwiboo.se \
--cc=linux-kernel@vger.kernel.org \
--cc=maarten.lankhorst@linux.intel.com \
--cc=marex@denx.de \
--cc=mripard@kernel.org \
--cc=neil.armstrong@linaro.org \
--cc=rfoss@kernel.org \
--cc=simona@ffwll.ch \
--cc=tzimmermann@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.