[PATCH v8 0/2] Add ITE IT61620 MIPI DSI to HDMI bridge driver

Pet Weng posted 2 patches 2 weeks ago
There is a newer version of this series
.../bindings/display/bridge/ite,it61620.yaml       |  151 ++
MAINTAINERS                                        |    7 +
drivers/gpu/drm/bridge/Kconfig                     |   18 +
drivers/gpu/drm/bridge/Makefile                    |    1 +
drivers/gpu/drm/bridge/ite-it61620.c               | 2592 ++++++++++++++++++++
5 files changed, 2769 insertions(+)
[PATCH v8 0/2] Add ITE IT61620 MIPI DSI to HDMI bridge driver
Posted by Pet Weng 2 weeks ago
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 v8:
- dt-binding:
 1. Clarify the hardware differences between IT6162 and IT61620 in the
    description (IT61620 is single-port and lacks an internal MCU). 	[Krzysztof]
 2. Dropped Reviewed-by from Krzysztof due to description changes.
- Call drm_atomic_helper_connector_hdmi_clear_audio_infoframe() in audio
  shutdown path								[Dmitry]
- Link to v7: https://lore.kernel.org/r/20260313-it61620-0714-v7-0-36a16dc036d6@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       |  151 ++
 MAINTAINERS                                        |    7 +
 drivers/gpu/drm/bridge/Kconfig                     |   18 +
 drivers/gpu/drm/bridge/Makefile                    |    1 +
 drivers/gpu/drm/bridge/ite-it61620.c               | 2592 ++++++++++++++++++++
 5 files changed, 2769 insertions(+)
---
base-commit: 392ecd7b982f1c8289aacb2c0ece18fc283fd77a
change-id: 20250714-it61620-0714-ab4ab4ceff29

Best regards,
-- 
Pet Weng <pet.weng@ite.com.tw>
Re: [PATCH v8 0/2] Add ITE IT61620 MIPI DSI to HDMI bridge driver
Posted by Krzysztof Kozlowski 1 week, 6 days ago
On Fri, Mar 20, 2026 at 03:50:40PM +0800, Pet Weng wrote:
> 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 v8:
> - dt-binding:
>  1. Clarify the hardware differences between IT6162 and IT61620 in the
>     description (IT61620 is single-port and lacks an internal MCU). 	[Krzysztof]
>  2. Dropped Reviewed-by from Krzysztof due to description changes.

Description? Like text? That is the reason to drop someone's review?

You ask us to perform the work twice, just because irrelevant thing
changed. Read carefulyl the docs.

Please read:
https://elixir.bootlin.com/linux/v6.12-rc3/source/Documentation/process/submitting-patches.rst#L577

If a tag was not added on purpose, please state why and what changed.

Best regards,
Krzysztof
RE: [PATCH v8 0/2] Add ITE IT61620 MIPI DSI to HDMI bridge driver
Posted by Pet.Weng@ite.com.tw 1 week, 2 days ago
Hi Krzysztof, 
> 
> On Fri, Mar 20, 2026 at 03:50:40PM +0800, Pet Weng wrote:
> > 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 v8:
> > - dt-binding:
> >  1. Clarify the hardware differences between IT6162 and IT61620 in the
> >     description (IT61620 is single-port and lacks an internal MCU). 	[Krzysztof]
> >  2. Dropped Reviewed-by from Krzysztof due to description changes.
> 
> Description? Like text? That is the reason to drop someone's review?
> 
> You ask us to perform the work twice, just because irrelevant thing
> changed. Read carefulyl the docs.
> 
> Please read:
> https://elixir.bootlin.com/linux/v6.12-rc3/source/Documentation/process/submitting-patches.rst#L577
> 
> If a tag was not added on purpose, please state why and what changed.
> 
> Best regards,
> Krzysztof

Thanks for the clarification.

The update only refines the description to clarify the hardware
differences and does not change the binding itself.

I will keep the Reviewed-by tag in the next version unless there are
objections.

Best regards,
Pet