This patch series adds support for the ITE IT61620 MIPI DSI to HDMI
bridge chip.
The IT61620 is an I2C-controlled bridge that receives MIPI DSI input
and outputs HDMI signals. A single-port MIPI DSI input is converted to
an HDMI 1.4 output. This series introduces:
- A device tree binding YAML file describing the hardware
- A new DRM bridge driver implementing the basic functionality
- A MAINTAINERS entry for the driver
Signed-off-by: Pet Weng <pet.weng@ite.com.tw>
---
Changes in v4:
- In patch 1 [Krzysztof]
1. Remove redundant "description" fields from interrupts and regulators
2. Drop pinctrl-names and pinctrl-0; driver does not require them
3. Remove port/endpoint properties already covered by video interfaces schema
4. Fix example indentation to 4 spaces for readability
- In patch 2 [Jani]
1. Use connector->display_info from DRM helper instead of parsing EDID manually
- In patch 2 [Dmitry]
1. Remove redundant powered check in reg access
2. Use TMDS character rate instead of pixel clock for N/CTS
3. Use consistent lowercase naming for tmds.
4. Use test_bit() instead of custom bit-test helper
5. Use tmds_char_rate_valid instead of custom mode_valid
6. Use custom EDID read instead of DDC bus for segment handling
7. Drop redundant atomic feature check
8. Pass flags directly to drm_bridge_attach()
9. Check DRM_BRIDGE_ATTACH_NO_CONNECTOR flag before drm_bridge_attach()
10. Short-circuit HPD update if connector status unchanged
11. Remove unnecessary NULL check for connector state
12. Rename cached_edid to edid since it's no longer cached
13. Remove redundant sample rate checks; rely on hdmi-codec validation
14. Remove unsupported 18-bit audio sample size; rely on hdmi-codec
15. Remove unnecessary fmt switch; rely on hdmi-codec defaults
16. Check and propagate errors from it61620_audio_update_hw_params instead of
ignoring them
- In patch 3 [Krzysztof]
1. Remove unnecessary T: field pointing to git; subsystem already defines it
- Link to v3: https://lore.kernel.org/r/20251009-it61620-0714-v3-0-5d682d028441@ite.com.tw
Changes in v3:
- Wrapped description lines to comply with 80-character line length limit
in patch 1. [Rob]
- Renamed node from "it61620@58" to "bridge@58" in patch 1. [Rob]
- Add port@2 for I2S audio input in patch 1. [Dmitry]
- Updated the Kconfig dependency from CRYPTO and CRYPTO_HASH to
CRYPTO_LIB_SHA1 in patch 2. [Eric]
- In patch 2 [Dmitry]
1. Audio and InfoFrame
- Rename audfmt to i2s_input_format for clarity.
- Remove unused infoframe[HDMI_INFOFRAME_SIZE(AUDIO)].
2. Platform data and structure
- Drop platform data usage; migrate members into struct it61620
3. Code organization
- Reorder functions to avoid the need for forward declarations.
- Add static inline to small helper functions
(e.g. bridge_to_it61620()).
4. HDCP handling
- Make HDCP enable/disable conditional on conn_state->content_protection.
- Report authentication result using drm_hdcp_update_content_protection().
5. Error handling
- Replace manual error path with dev_err_probe().
6. Power management
- Inline suspend/resume callbacks.
- Use DEFINE_RUNTIME_DEV_PM_OPS() instead of explicit struct definition.
7. Bridge callbacks
- Drop empty bridge_detach().
- Inline it61620_bridge_mode_valid().
8. EDID handling
- Remove unnecessary cached EDID duplication.
9. Mode set and pixel clock
- Move mode handling to atomic_enable().
- Keep only pixelclock for future N/CTS audio calculations.
10. Logging
- Replace noisy drm_err() calls with drm_dbg().
11. InfoFrame support
- Add support for SPD and Vendor InfoFrames.
- Link to v2: https://lore.kernel.org/r/20250828-it61620-0714-v2-0-586f5934d5f8@ite.com.tw
Changes in v2:
- Call the sha1() library function instead of using the crypto_shash
"sha1" in patch 2.
- Rewrite it61620_hdmi_ddc_wait() with readx_poll_timeout() in patch 2. [Pin-yen]
- Rewrite it61620_hdmi_hdcp_wait_ksv_list() with readx_poll_timeout() in
patch 2.
- Replace interrupts-extended with interrupts in patch 1. [Rob]
- Replace dsi-lanes with the standard property data-lanes from the graph
binding. [Rob]
- Replace "#/$defs/port-base" with "#/properties/port" in patch 1. [Rob]
- Drop unused labels and "hdmi" for the node name. [Rob]
- Drop status in patch 1. [Rob]
- Link to v1: https://lore.kernel.org/r/20250714-it61620-0714-v1-0-3761164d0b98@ite.com.tw
---
Pet Weng (3):
dt-binding: display: Add ITE IT61620 MIPI DSI to HDMI bridge
drm/bridge: Add ITE IT61620 MIPI DSI to HDMI bridge driver
MAINTAINERS: Add entry for ITE IT61620 MIPI to HDMI bridge driver
.../bindings/display/bridge/ite,it61620.yaml | 140 +
MAINTAINERS | 7 +
drivers/gpu/drm/bridge/Kconfig | 18 +
drivers/gpu/drm/bridge/Makefile | 1 +
drivers/gpu/drm/bridge/ite-it61620.c | 2787 ++++++++++++++++++++
5 files changed, 2953 insertions(+)
---
base-commit: 34bd4deba1e55e93c74977dee31783ebdf68d8ba
change-id: 20250714-it61620-0714-ab4ab4ceff29
Best regards,
--
Pet Weng <pet.weng@ite.com.tw>