Re: [PATCH 1/2] ARM: dts: exynos: arndale: use i2c-gpio for HDMI-DDC

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 26 July 2018 at 12:12, Andrzej Hajda <a.hajda@xxxxxxxxxxx> 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...

Best regards,
Krzysztof

> Signed-off-by: Andrzej Hajda <a.hajda@xxxxxxxxxxx>
> ---
>  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 devicetree" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux