lkml.org 
[lkml]   [2019]   [Nov]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 4.19 040/205] ARM: dts: exynos: Use i2c-gpio for HDMI-DDC on Arndale
    Date
    From: Andrzej Hajda <a.hajda@samsung.com>

    [ Upstream commit 620375c8fdf2f9f5110ed48d6c407cc4b7554f86 ]

    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.hajda@samsung.com>
    Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    arch/arm/boot/dts/exynos5250-arndale.dts | 28 ++++++++++++++++-------
    arch/arm/boot/dts/exynos5250-pinctrl.dtsi | 6 +++++
    2 files changed, 26 insertions(+), 8 deletions(-)

    diff --git a/arch/arm/boot/dts/exynos5250-arndale.dts b/arch/arm/boot/dts/exynos5250-arndale.dts
    index 7a8a5c55701a8..bb3fcd652b5d7 100644
    --- a/arch/arm/boot/dts/exynos5250-arndale.dts
    +++ b/arch/arm/boot/dts/exynos5250-arndale.dts
    @@ -150,7 +150,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>;
    @@ -452,13 +452,6 @@
    };
    };

    -&i2c_2 {
    - status = "okay";
    - /* used by HDMI DDC */
    - samsung,i2c-sda-delay = <100>;
    - samsung,i2c-max-bus-freq = <66000>;
    -};
    -
    &i2c_3 {
    status = "okay";

    @@ -547,3 +540,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>;
    + };
    +};
    diff --git a/arch/arm/boot/dts/exynos5250-pinctrl.dtsi b/arch/arm/boot/dts/exynos5250-pinctrl.dtsi
    index 6ff6dea29d449..b25d520393b8b 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.20.1
    \
     
     \ /
      Last update: 2019-11-08 13:13    [W:3.119 / U:0.060 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site