This chip receives MIPI DSI input and outputs HDMI, and is commonly
connected to SoCs via I2C and DSI.
Signed-off-by: Pet Weng <pet.weng@ite.com.tw>
---
.../bindings/display/bridge/ite,it61620.yaml | 155 +++++++++++++++++++++
1 file changed, 155 insertions(+)
diff --git a/Documentation/devicetree/bindings/display/bridge/ite,it61620.yaml b/Documentation/devicetree/bindings/display/bridge/ite,it61620.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..60e1bd771c7c0767da2092c8dd6803f2b9c34358
--- /dev/null
+++ b/Documentation/devicetree/bindings/display/bridge/ite,it61620.yaml
@@ -0,0 +1,155 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/bridge/ite,it61620.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: ITE IT61620 MIPI DSI to HDMI Bridge
+
+maintainers:
+ - Pet Weng <pet.weng@ite.com.tw>
+
+description: |
+ The ITE IT61620 is a high-performance, low-power HDMI bridge that converts
+ MIPI DSI input to HDMI 1.4b TMDS output. It supports up to 4 lanes of MIPI
+ D-PHY 2.0 input at 2.5Gbps per lane (10Gbps total), compatible with DSI-2
+ v2.0.
+
+ The HDMI transmitter side supports up to 4Kx2K@30Hz resolutions, and is
+ compliant with HDMI 1.4b and HDCP 1.4.
+
+ For audio, the IT61620 supports up to 8-channel LPCM via I2S (multi-line or
+ TDM mode), with optional S/PDIF or DSD (for SACD). It supports audio
+ sampling rates up to 192kHz.
+
+allOf:
+ - $ref: /schemas/sound/dai-common.yaml#
+
+properties:
+ compatible:
+ const: ite,it61620
+
+ reg:
+ maxItems: 1
+
+ interrupts:
+ maxItems: 1
+ description: interrupt specifier of INT pin
+
+ reset-gpios:
+ maxItems: 1
+ description: GPIO specifier of RESET pin
+
+ ivdd-supply:
+ description: core voltage
+
+ ovdd-supply:
+ description: I/O voltage
+
+ ovdd1833-supply:
+ description: flexible I/O votage
+
+ pinctrl-names:
+ items:
+ - const: default
+
+ pinctrl-0:
+ maxItems: 1
+
+ "#sound-dai-cells":
+ const: 0
+
+ ports:
+ $ref: /schemas/graph.yaml#/properties/ports
+
+ properties:
+ port@0:
+ $ref: /schemas/graph.yaml#/$defs/port-base
+ unevaluatedProperties: false
+ description: Input port for MIPI DSI
+
+ properties:
+ endpoint:
+ $ref: /schemas/media/video-interfaces.yaml#
+ unevaluatedProperties: false
+
+ properties:
+ data-lanes: true
+
+ required:
+ - data-lanes
+
+ port@1:
+ $ref: /schemas/graph.yaml#/properties/port
+ description: Output port for HDMI output
+
+ port@2:
+ $ref: /schemas/graph.yaml#/properties/port
+ description: Audio input port (I2S)
+
+ required:
+ - port@0
+ - port@1
+
+required:
+ - compatible
+ - reg
+ - interrupts
+ - reset-gpios
+ - ivdd-supply
+ - ovdd-supply
+ - ovdd1833-supply
+ - ports
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/gpio/gpio.h>
+ #include <dt-bindings/interrupt-controller/irq.h>
+
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ bridge@58 {
+ compatible = "ite,it61620";
+ reg = <0x58>;
+ #sound-dai-cells = <0>;
+ interrupt-parent = <&pio>;
+ interrupts = <128 IRQ_TYPE_LEVEL_LOW>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&it61620_pins>;
+ reset-gpios = <&pio 127 GPIO_ACTIVE_LOW>;
+ ivdd-supply = <&pp1000_hdmi_x>;
+ ovdd-supply = <&pp3300_vio28_x>;
+ ovdd1833-supply = <&pp1800_vcamio_x>;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+ it61620_dsi_in: endpoint {
+ data-lanes = <0 1 2 3>;
+ remote-endpoint = <&dsi_out>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+ it61620_hdmi_out: endpoint {
+ remote-endpoint = <&hdmi_connector_in>;
+ };
+ };
+
+ port@2 {
+ reg = <2>;
+ it61620_audio_in: endpoint {
+ remote-endpoint = <&i2s0_out>;
+ };
+ };
+ };
+ };
+ };
--
2.34.1
On 09/10/2025 17:02, Pet Weng wrote:
> + The HDMI transmitter side supports up to 4Kx2K@30Hz resolutions, and is
> + compliant with HDMI 1.4b and HDCP 1.4.
> +
> + For audio, the IT61620 supports up to 8-channel LPCM via I2S (multi-line or
> + TDM mode), with optional S/PDIF or DSD (for SACD). It supports audio
> + sampling rates up to 192kHz.
> +
> +allOf:
> + - $ref: /schemas/sound/dai-common.yaml#
> +
> +properties:
> + compatible:
> + const: ite,it61620
> +
> + reg:
> + maxItems: 1
> +
> + interrupts:
> + maxItems: 1
> + description: interrupt specifier of INT pin
> +
> + reset-gpios:
> + maxItems: 1
> + description: GPIO specifier of RESET pin
If you are going to send new version: drop description, pretty
redundant. Cannot be anything else.
> +
> + ivdd-supply:
> + description: core voltage
> +
> + ovdd-supply:
> + description: I/O voltage
> +
> + ovdd1833-supply:
> + description: flexible I/O votage
> +
> + pinctrl-names:
> + items:
> + - const: default
> +
> + pinctrl-0:
> + maxItems: 1
Both pinctrl properties are usually redundant here. Does your driver
actually require them?
> +
> + "#sound-dai-cells":
> + const: 0
> +
> + ports:
> + $ref: /schemas/graph.yaml#/properties/ports
> +
> + properties:
> + port@0:
> + $ref: /schemas/graph.yaml#/$defs/port-base
> + unevaluatedProperties: false
> + description: Input port for MIPI DSI
> +
> + properties:
> + endpoint:
> + $ref: /schemas/media/video-interfaces.yaml#
> + unevaluatedProperties: false
> +
> + properties:
> + data-lanes: true
Drop properties, already part of video interfaces.
> +
> + required:
> + - data-lanes
> +
> + port@1:
> + $ref: /schemas/graph.yaml#/properties/port
> + description: Output port for HDMI output
> +
> + port@2:
> + $ref: /schemas/graph.yaml#/properties/port
> + description: Audio input port (I2S)
> +
> + required:
> + - port@0
> + - port@1
> +
> +required:
> + - compatible
> + - reg
> + - interrupts
> + - reset-gpios
> + - ivdd-supply
> + - ovdd-supply
> + - ovdd1833-supply
> + - ports
> +
> +unevaluatedProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/gpio/gpio.h>
> + #include <dt-bindings/interrupt-controller/irq.h>
> +
> + i2c {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + bridge@58 {
> + compatible = "ite,it61620";
Pretty messed indentation.
Use 4 spaces for example indentation.
Best regards,
Krzysztof
On 09/10/2025 23:13, Krzysztof Kozlowski wrote: > On 09/10/2025 17:02, Pet Weng wrote: >> + The HDMI transmitter side supports up to 4Kx2K@30Hz resolutions, and is >> + compliant with HDMI 1.4b and HDCP 1.4. >> + >> + For audio, the IT61620 supports up to 8-channel LPCM via I2S (multi-line or >> + TDM mode), with optional S/PDIF or DSD (for SACD). It supports audio >> + sampling rates up to 192kHz. >> + >> +allOf: >> + - $ref: /schemas/sound/dai-common.yaml# >> + >> +properties: >> + compatible: >> + const: ite,it61620 >> + >> + reg: >> + maxItems: 1 >> + >> + interrupts: >> + maxItems: 1 >> + description: interrupt specifier of INT pin >> + >> + reset-gpios: >> + maxItems: 1 >> + description: GPIO specifier of RESET pin > > > If you are going to send new version: drop description, pretty > redundant. Cannot be anything else. > >> + >> + ivdd-supply: >> + description: core voltage >> + >> + ovdd-supply: >> + description: I/O voltage >> + >> + ovdd1833-supply: >> + description: flexible I/O votage >> + >> + pinctrl-names: >> + items: >> + - const: default >> + >> + pinctrl-0: >> + maxItems: 1 > > > Both pinctrl properties are usually redundant here. Does your driver > actually require them? And now I checked and I do not see direct usage in the driver or did I miss something? Best regards, Krzysztof
Hi Krzysztof, > On 09/10/2025 23:13, Krzysztof Kozlowski wrote: > > On 09/10/2025 17:02, Pet Weng wrote: > >> + The HDMI transmitter side supports up to 4Kx2K@30Hz resolutions, and is > >> + compliant with HDMI 1.4b and HDCP 1.4. > >> + > >> + For audio, the IT61620 supports up to 8-channel LPCM via I2S (multi-line or > >> + TDM mode), with optional S/PDIF or DSD (for SACD). It supports audio > >> + sampling rates up to 192kHz. > >> + > >> +allOf: > >> + - $ref: /schemas/sound/dai-common.yaml# > >> + > >> +properties: > >> + compatible: > >> + const: ite,it61620 > >> + > >> + reg: > >> + maxItems: 1 > >> + > >> + interrupts: > >> + maxItems: 1 > >> + description: interrupt specifier of INT pin > >> + > >> + reset-gpios: > >> + maxItems: 1 > >> + description: GPIO specifier of RESET pin > > > > > > If you are going to send new version: drop description, pretty > > redundant. Cannot be anything else. > > > >> + > >> + ivdd-supply: > >> + description: core voltage > >> + > >> + ovdd-supply: > >> + description: I/O voltage > >> + > >> + ovdd1833-supply: > >> + description: flexible I/O votage > >> + > >> + pinctrl-names: > >> + items: > >> + - const: default > >> + > >> + pinctrl-0: > >> + maxItems: 1 > > > > > > Both pinctrl properties are usually redundant here. Does your driver > > actually require them? > > And now I checked and I do not see direct usage in the driver or did I > miss something? Acknowledged. Will drop `pinctrl-names` and `pinctrl-0` in the next version. Thanks for the review. > > Best regards, > Krzysztof Best regards, Pet
© 2016 - 2025 Red Hat, Inc.