[PATCH RFC 0/9] drm: panel: Add support for Epson Moverio BT 200 display

From: Andreas Kemnade

Date: Tue Sep 22 2026 - 02:24:03 EST


This series depends on
https://lore.kernel.org/lkml/20260907-tc358762-fixes-v4-0-e3fc3ab5cd83@xxxxxxxxxxxxxxxx/.
That series is still v7.2 based, but this needs -next material, to work.
It compiles on -rc.

The Epson Moverio BT200 AR glasses have two displays. Each is behind a
TC358762. As disassembly of that unit is not feasible, not much can be
found out about the display chip itself, so no good compatible name for
the panel can be found. Also I do not have access to a full datasheet
for the bridge, so my knowledge is based to values found in vendor
kernel. So more magic numbers than I wanted.
As the panel needs to be configured via SPI, add support in the bridge
for that, also the initialisation needs to be moved to pre_enable()
to be able to use SPI in the panel driver alse in prepare(). To be able
to properly narrow down any issues, add some read checks. Since two
lanes are in use, the intenal PLL needs to be configured to derive
proper clocks. Check for success there. Configuration of the PLL is
too tailored to the BT200, it needs proper divider calculation
derived from the input clock rate.
I did not find any sane looking value for the input clock producing
the known constant for SYSPLL3.

Issues / Limitations:
- SPI only works if bridge is pre-enabled, probably does not matter
as the main use case is to control the display behind it and
SPI transactions are properly rejected if the bridge is not ready.
- SYSPLL3 tailored to BT200.
- error messages on first read in reinitialisation without reset,
no practical problems seem to be connected to this, will
probably went away in most cases if shared reset is enabled.
- some lines missing in output, so the picture gets around
10% smaller vertially, with the upper 10% repeating at
the button. I have a standalone variant of the panel driver
which does not have that issue. I did not find any significant
differences in omapdss registers per debugfs yet.

Signed-off-by: Andreas Kemnade <andreas@xxxxxxxxxxxx>
---
Andreas Kemnade (9):
dt-bindings: display: panel: Add panel for Epson Moverio BT-200
drm: panel: Add panel for Epson Moverio BT200
dt-bindings: display: bridge: tc358762: Add some missing properties
drm/bridge: tc358762: Move initialisation to pre_enable
drm/bridge: tc358762: add SPI master support to control panels
drm/bridge: tc358762: read back ID register
drm/bridge: tc358762: make LPTXTIMECNT configurable
drm/bridge: tc358762: Basic support for 2 lanes
ARM: dts: ti/omap: omap4-embt2ws: Add displays

.../bindings/display/bridge/toshiba,tc358762.yaml | 14 ++
.../bindings/display/panel/epson,panel-bt200.yaml | 48 ++++
arch/arm/boot/dts/ti/omap/omap4-epson-embt2ws.dts | 120 ++++++++++
drivers/gpu/drm/bridge/tc358762.c | 234 ++++++++++++++++---
drivers/gpu/drm/panel/Kconfig | 10 +
drivers/gpu/drm/panel/Makefile | 1 +
drivers/gpu/drm/panel/panel-epson-bt200.c | 251 +++++++++++++++++++++
7 files changed, 651 insertions(+), 27 deletions(-)
---
base-commit: ae05b821e09ca387eab7441be8c82fd521f7a42c
change-id: 20260921-b2-panel-via-bridge-ba42974b612f
prerequisite-change-id: 20260326-tc358762-fixes-6f666500da9e:v4
prerequisite-patch-id: df4c4c2ab36f4504f08fd89804c91ecf1bbc5b85
prerequisite-patch-id: d270eb332c88f888f628b2cf751517500024b12c
prerequisite-patch-id: 6050aad2a160d9e85b176e8118f4ac4247de1355
prerequisite-patch-id: a7b3986c944f62156da6b368e6251b29451feaf2
prerequisite-patch-id: eb52b7ed89c1d44539bc7eef61f242dd444d3171
prerequisite-patch-id: e1a953467d847bea6bc9847134c0199e4702423b
prerequisite-patch-id: 538b6e710dcc07bd70eed2795d9e463e91bf0b48
prerequisite-patch-id: 6636bdd386becb3622944e57653e4fd1502527cc
prerequisite-patch-id: 84cf0fc416da9a016ebbd586020cb67b18aa84b7
prerequisite-patch-id: 64ff4472fe4467e9da0a11f69fe30d50db12204d
prerequisite-patch-id: 88939d8af6eef5fea65b7883909856e692c29cfa
prerequisite-patch-id: c6c3d34380425f4ee21411e860726786b56c8236
prerequisite-patch-id: ac1f5d7bc054cf7a0d84cb343f4b1d1e393a7956

Best regards,
--
Andreas Kemnade <andreas@xxxxxxxxxxxx>