int                     hpd_irq;
 
        struct regulator        *dp_pwr;
+       struct gpio_desc        *ddc_en;
 };
 
 static inline struct display_connector *
                }
        }
 
+       /* enable DDC */
+       if (type == DRM_MODE_CONNECTOR_HDMIA) {
+               conn->ddc_en = devm_gpiod_get_optional(&pdev->dev, "ddc-en",
+                                                      GPIOD_OUT_HIGH);
+
+               if (IS_ERR(conn->ddc_en)) {
+                       dev_err(&pdev->dev, "Couldn't get ddc-en gpio\n");
+                       return PTR_ERR(conn->ddc_en);
+               }
+       }
+
        conn->bridge.funcs = &display_connector_bridge_funcs;
        conn->bridge.of_node = pdev->dev.of_node;
 
 {
        struct display_connector *conn = platform_get_drvdata(pdev);
 
+       if (conn->ddc_en)
+               gpiod_set_value(conn->ddc_en, 0);
+
        if (conn->dp_pwr)
                regulator_disable(conn->dp_pwr);