HDMI-DDC for unknown reasons doesn't work with Exynos I2C
controllers. Fortunately i2c-gpio comes to the rescue.

Signed-off-by: Andrzej Hajda <a.ha...@samsung.com>
---
 arch/arm/boot/dts/exynos5250-arndale.dts  | 24 +++++++++++++++--------
 arch/arm/boot/dts/exynos5250-pinctrl.dtsi |  6 ++++++
 2 files changed, 22 insertions(+), 8 deletions(-)

diff --git a/arch/arm/boot/dts/exynos5250-arndale.dts 
b/arch/arm/boot/dts/exynos5250-arndale.dts
index 816d89d4cefd..591023391f7d 100644
--- a/arch/arm/boot/dts/exynos5250-arndale.dts
+++ b/arch/arm/boot/dts/exynos5250-arndale.dts
@@ -211,7 +211,7 @@
 
 &hdmi {
        status = "okay";
-       ddc = <&i2c_2>;
+       ddc = <&i2c_ddc>;
        hpd-gpios = <&gpx3 7 GPIO_ACTIVE_LOW>;
        vdd_osc-supply = <&ldo10_reg>;
        vdd_pll-supply = <&ldo8_reg>;
@@ -513,13 +513,6 @@
        };
 };
 
-&i2c_2 {
-       status = "okay";
-       /* used by HDMI DDC */
-       samsung,i2c-sda-delay = <100>;
-       samsung,i2c-max-bus-freq = <66000>;
-};
-
 &i2c_3 {
        status = "okay";
 
@@ -608,3 +601,18 @@
        status = "okay";
        samsung,exynos-sataphy-i2c-phandle = <&sata_phy_i2c>;
 };
+
+&soc {
+       i2c_ddc: i2c-gpio {
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2c2_gpio_bus>;
+               status = "okay";
+               compatible = "i2c-gpio";
+               gpios = <&gpa0 6 0 /* sda */
+                        &gpa0 7 0 /* scl */
+                       >;
+               i2c-gpio,delay-us = <2>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+       };
+};
diff --git a/arch/arm/boot/dts/exynos5250-pinctrl.dtsi 
b/arch/arm/boot/dts/exynos5250-pinctrl.dtsi
index 6ff6dea29d44..b25d520393b8 100644
--- a/arch/arm/boot/dts/exynos5250-pinctrl.dtsi
+++ b/arch/arm/boot/dts/exynos5250-pinctrl.dtsi
@@ -225,6 +225,12 @@
                samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
        };
 
+       i2c2_gpio_bus: i2c2-gpio-bus {
+               samsung,pins = "gpa0-6", "gpa0-7";
+               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
+               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
+       };
+
        uart2_data: uart2-data {
                samsung,pins = "gpa1-0", "gpa1-1";
                samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
-- 
2.18.0

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to