From: Pet Weng <pet.weng@ite.com.tw>
To: 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>,
Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>
Cc: <dri-devel@lists.freedesktop.org>, <devicetree@vger.kernel.org>,
<linux-kernel@vger.kernel.org>, Hermes Wu <hermes.Wu@ite.com.tw>,
Kenneth Hung <kenneth.Hung@ite.com.tw>,
Pet Weng <pet.weng@ite.com.tw>,
Jau-chih Tseng <jau-chih.tseng@ite.com.tw>,
Pin-yen Lin <treapking@google.com>,
Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Subject: [PATCH v7 0/2] Add ITE IT61620 MIPI DSI to HDMI bridge driver
Date: Fri, 13 Mar 2026 14:48:14 +0800 [thread overview]
Message-ID: <20260313-it61620-0714-v7-0-36a16dc036d6@ite.com.tw> (raw)
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
Signed-off-by: Pet Weng <pet.weng@ite.com.tw>
---
Changes in v7:
- The dt-bindings were previously reviewed by Krzysztof Kozlowski.
- drm/bridge: [Dmitry]
1. drop redundant register access wrappers and use regmap APIs directly
2. use drm_dbg_kms() instead of drm_dbg() when printing display timing information
3. use drm_display_mode directly for video timing
4. add helper for writing 16-bit timing registers
5. simplify HDMI interrupt handling
6. add mono audio support
7. program audio parameters directly
8. inline audio infoframe disable logic
- MAINTAINERS: squash to driver patch [Dmitry]
- Link to v6: https://lore.kernel.org/r/20260130-it61620-0714-v6-0-70afa65923b5@ite.com.tw
Changes in v6:
- In patch 1 [Luca]
1. Fix a typo in the commit message.
2. Remove redundant assignment of bridge.funcs, which is already set by
devm_drm_bridge_alloc().
- Link to v5: https://lore.kernel.org/r/20251222-it61620-0714-v5-0-afb6479ad3ca@ite.com.tw
Changes in v5:
- Fix dt_binding_check errors by adding missing unevaluatedProperties constraints
for port and endpoint nodes in the device tree binding. [Rob]
- Link to v4: https://lore.kernel.org/r/20251216-it61620-0714-v4-0-9d2fea7847ae@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 (2):
dt-binding: display: Add ITE IT61620 MIPI DSI to HDMI bridge
drm/bridge: Add ITE IT61620 MIPI DSI to HDMI bridge driver
.../bindings/display/bridge/ite,it61620.yaml | 142 ++
MAINTAINERS | 7 +
drivers/gpu/drm/bridge/Kconfig | 18 +
drivers/gpu/drm/bridge/Makefile | 1 +
drivers/gpu/drm/bridge/ite-it61620.c | 2590 ++++++++++++++++++++
5 files changed, 2758 insertions(+)
---
base-commit: 9e9498106dde4293e1bfdad8e546a88ff3cf5508
change-id: 20250714-it61620-0714-ab4ab4ceff29
Best regards,
--
Pet Weng <pet.weng@ite.com.tw>
next reply other threads:[~2026-03-13 6:47 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-13 6:48 Pet Weng [this message]
2026-03-13 6:48 ` [PATCH v7 1/2] dt-binding: display: Add ITE IT61620 MIPI DSI to HDMI bridge Pet Weng
2026-03-13 21:20 ` Claude review: " Claude Code Review Bot
2026-03-13 6:48 ` [PATCH v7 2/2] drm/bridge: Add ITE IT61620 MIPI DSI to HDMI bridge driver Pet Weng
2026-03-13 21:20 ` Claude review: " Claude Code Review Bot
2026-03-13 21:20 ` Claude review: " Claude Code Review Bot
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=20260313-it61620-0714-v7-0-36a16dc036d6@ite.com.tw \
--to=pet.weng@ite.com.tw \
--cc=Laurent.pinchart@ideasonboard.com \
--cc=airlied@gmail.com \
--cc=andrzej.hajda@intel.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=hermes.Wu@ite.com.tw \
--cc=jau-chih.tseng@ite.com.tw \
--cc=jernej.skrabec@gmail.com \
--cc=jonas@kwiboo.se \
--cc=kenneth.Hung@ite.com.tw \
--cc=krzk+dt@kernel.org \
--cc=krzysztof.kozlowski@oss.qualcomm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=maarten.lankhorst@linux.intel.com \
--cc=mripard@kernel.org \
--cc=neil.armstrong@linaro.org \
--cc=rfoss@kernel.org \
--cc=robh@kernel.org \
--cc=simona@ffwll.ch \
--cc=treapking@google.com \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox