Commit 620375c8 authored by Andrzej Hajda's avatar Andrzej Hajda Committed by Krzysztof Kozlowski
Browse files

ARM: dts: exynos: Use i2c-gpio for HDMI-DDC on Arndale



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

Signed-off-by: default avatarAndrzej Hajda <a.hajda@samsung.com>
Signed-off-by: default avatarKrzysztof Kozlowski <krzk@kernel.org>
parent 0772cf58
Loading
Loading
Loading
Loading
+20 −8
Original line number Diff line number Diff line
@@ -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,22 @@
	status = "okay";
	samsung,exynos-sataphy-i2c-phandle = <&sata_phy_i2c>;
};

&soc {
	/*
	 * For unknown reasons HDMI-DDC does not work with Exynos I2C
	 * controllers. Lets use software I2C over GPIO pins as a workaround.
	 */
	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>;
	};
};
+6 −0
Original line number Diff line number Diff line
@@ -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>;