[PATCH 1/2] ARM: dts: exynos: arndale: use i2c-gpio for HDMI-DDC
Andrzej Hajda
a.hajda at samsung.com
Thu Jul 26 11:04:49 UTC 2018
On 26.07.2018 12:23, Krzysztof Kozlowski wrote:
> On 26 July 2018 at 12:12, Andrzej Hajda <a.hajda at samsung.com> wrote:
>> HDMI-DDC for unknown reasons doesn't work with Exynos I2C
>> controllers. Fortunately i2c-gpio comes to the rescue.
> Wait... what? The I2C controller on SoC (or its driver) is buggy in
> some way and we need to use these pins as GPIO to run i2c-gpio driver
> there? It looks like workaround not a proper solution...
But at least working one :) Better solutions are welcome.
This seems to be not uncommon issue, if you for example look into odroid
vendor kernel you can even find hardcoded EDIDs :)
Regards
Andrzej
>
> Best regards,
> Krzysztof
>
>> Signed-off-by: Andrzej Hajda <a.hajda at 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
>>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
>
More information about the dri-devel
mailing list