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