On 9/25/25 05:51, Dmitry Baryshkov wrote:
On Mon, Sep 22, 2025 at 02:18:45PM +0200, Mike Looijmans wrote:
The tmds181 and sn65dp159 are "retimers" and hence can be considered
HDMI-to-HDMI bridges. Typical usage is to convert the output of an
FPGA into a valid HDMI signal, and it will typically be inserted
between an encoder and hdmi-connector.

Signed-off-by: Mike Looijmans <[email protected]>
---

Changes in v6:
Add DRM_DISPLAY_HDMI_HELPER to Kconfig
Change "ti,mode" to "ti,retimer-mode"

Changes in v5:
Really added vcc/vdd regulator support
"oe" gpio is now "reset" (reversed logic)
devicetree enums ti,equalizer and ti,mode
Always disable HDMI_SEL (formerly "dvi-mode")

Changes in v4:
dev_err_probe, this_module, of_match_ptr
Use fallback compatible
Add vcc-supply and vdd-supply

Changes in v3:
Lower-case hex values and use defines for EYESCAN registers
Remove equalizer code (unlikely to be used)
Remove attributes (no longer useful, undocumented)
Fix build for 6.17 kernel
Use devm_drm_bridge_alloc
Sort includes and add linux/bitfield.h
Check chip type and complain on mismatch

Changes in v2:
Use atomic_enable/disable
Use #defines for bit fields in registers
Allow HDMI 2 compliance
Filter modes on clock range
Use cross-over pixel frequency instead of manual overides
Devicetree bindings according to standards

  drivers/gpu/drm/bridge/Kconfig      |  12 +
  drivers/gpu/drm/bridge/Makefile     |   1 +
  drivers/gpu/drm/bridge/ti-tmds181.c | 427 ++++++++++++++++++++++++++++
  3 files changed, 440 insertions(+)
  create mode 100644 drivers/gpu/drm/bridge/ti-tmds181.c

diff --git a/drivers/gpu/drm/bridge/Kconfig b/drivers/gpu/drm/bridge/Kconfig
index b9e0ca85226a..d679180b05b1 100644
--- a/drivers/gpu/drm/bridge/Kconfig
+++ b/drivers/gpu/drm/bridge/Kconfig
@@ -430,6 +430,18 @@ config DRM_TI_SN65DSI86
        help
          Texas Instruments SN65DSI86 DSI to eDP Bridge driver
+config DRM_TI_TMDS181
+        tristate "TI TMDS181 and SN65DP159 HDMI retimer bridge driver"
+       depends on OF
+       select DRM_KMS_HELPER
Do you need it here?

Yes, compiling a kernel without it results in:
ld: drivers/gpu/drm/bridge/ti-tmds181.o:(.rodata+0x2f8): undefined reference to `drm_atomic_helper_bridge_duplicate_state' ld: drivers/gpu/drm/bridge/ti-tmds181.o:(.rodata+0x2fc): undefined reference to `drm_atomic_helper_bridge_destroy_state' ld: drivers/gpu/drm/bridge/ti-tmds181.o:(.rodata+0x30c): undefined reference to `drm_atomic_helper_bridge_reset'


+       select DRM_DISPLAY_HDMI_HELPER
missing select DRM_DISPLAY_HELPER

Will add in v7



+       select REGMAP_I2C
+       help
+         Enable this to support the TI TMDS181 and SN65DP159 HDMI retimers.
+         The SN65DP159 provides output into a cable (source) whereas the
+         TMDS181 is meant to forward a cable signal into a PCB (sink). Either
+         can be set up as source or sink though.
+
  config DRM_TI_TPD12S015
        tristate "TI TPD12S015 HDMI level shifter and ESD protection"
        depends on OF


--
Mike Looijmans



Reply via email to