[PATCH v3 1/3] dt-binding: display: Add ITE IT61620 MIPI DSI to HDMI bridge

Pet Weng posted 3 patches 2 months, 1 week ago
There is a newer version of this series
[PATCH v3 1/3] dt-binding: display: Add ITE IT61620 MIPI DSI to HDMI bridge
Posted by Pet Weng 2 months, 1 week ago
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
Re: [PATCH v3 1/3] dt-binding: display: Add ITE IT61620 MIPI DSI to HDMI bridge
Posted by Krzysztof Kozlowski 2 months, 1 week ago
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
Re: [PATCH v3 1/3] dt-binding: display: Add ITE IT61620 MIPI DSI to HDMI bridge
Posted by Krzysztof Kozlowski 2 months, 1 week ago
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
RE: [PATCH v3 1/3] dt-binding: display: Add ITE IT61620 MIPI DSI to HDMI bridge
Posted by Pet.Weng@ite.com.tw 2 months, 1 week ago
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