On 05/31/17 13:00, Marek Szyprowski wrote:
> Exynos5250 and Exynos542x SoCs have the same CEC hardware module as
> Exynos4 SoC series, so enable support for it using the same compatible
> string.
> 
> Tested on Odroid XU3 (Exynos5422) and Google Snow (Exynos5250) boards.

Thanks!

Do you know if the CEC block is always on for these devices or only if there
is a hotplug signal? That was a problem with the exynos4 odroid.

I have made a patch (not posted yet) to signal this in the device tree and
added a CEC capability to signal this to the user.

This capability will be added to 4.13 (see my patch 'cec: add CEC_CAP_NEEDS_HPD'
from May 25th) since the DisplayPort CEC tunneling feature needs it as well.

It's easy to test: don't connect an HDMI cable and run:

cec-ctl --playback
cec-ctl -t0 --image-view-on

If this returns with a NACK error, then it is OK. If you get a kernel message
that the transmit timed out, then you need this capability since CEC is disabled
without HPD.

Regards,

        Hans

> 
> Signed-off-by: Marek Szyprowski <m.szyprow...@samsung.com>
> ---
>  arch/arm/boot/dts/exynos5250-pinctrl.dtsi          |  7 +++++++
>  arch/arm/boot/dts/exynos5250-snow-common.dtsi      |  4 ++++
>  arch/arm/boot/dts/exynos5250.dtsi                  | 13 +++++++++++++
>  arch/arm/boot/dts/exynos5420-pinctrl.dtsi          |  7 +++++++
>  arch/arm/boot/dts/exynos5420.dtsi                  | 13 +++++++++++++
>  arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi |  4 ++++
>  6 files changed, 48 insertions(+)
> 
> diff --git a/arch/arm/boot/dts/exynos5250-pinctrl.dtsi 
> b/arch/arm/boot/dts/exynos5250-pinctrl.dtsi
> index 2f6ab32b5954..1fd122db18e6 100644
> --- a/arch/arm/boot/dts/exynos5250-pinctrl.dtsi
> +++ b/arch/arm/boot/dts/exynos5250-pinctrl.dtsi
> @@ -589,6 +589,13 @@
>               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
>               samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
>       };
> +
> +     hdmi_cec: hdmi-cec {
> +             samsung,pins = "gpx3-6";
> +             samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
> +             samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
> +             samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
> +     };
>  };
>  
>  &pinctrl_1 {
> diff --git a/arch/arm/boot/dts/exynos5250-snow-common.dtsi 
> b/arch/arm/boot/dts/exynos5250-snow-common.dtsi
> index 8f3a80430748..e1d293dbbe5d 100644
> --- a/arch/arm/boot/dts/exynos5250-snow-common.dtsi
> +++ b/arch/arm/boot/dts/exynos5250-snow-common.dtsi
> @@ -272,6 +272,10 @@
>       vdd_pll-supply = <&ldo8_reg>;
>  };
>  
> +&hdmicec {
> +     status = "okay";
> +};
> +
>  &i2c_0 {
>       status = "okay";
>       samsung,i2c-sda-delay = <100>;
> diff --git a/arch/arm/boot/dts/exynos5250.dtsi 
> b/arch/arm/boot/dts/exynos5250.dtsi
> index 79c9c885613a..fbdc1d53a2ce 100644
> --- a/arch/arm/boot/dts/exynos5250.dtsi
> +++ b/arch/arm/boot/dts/exynos5250.dtsi
> @@ -689,6 +689,19 @@
>                       samsung,syscon-phandle = <&pmu_system_controller>;
>               };
>  
> +             hdmicec: cec@101B0000 {
> +                     compatible = "samsung,s5p-cec";
> +                     reg = <0x101B0000 0x200>;
> +                     interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
> +                     clocks = <&clock CLK_HDMI_CEC>;
> +                     clock-names = "hdmicec";
> +                     samsung,syscon-phandle = <&pmu_system_controller>;
> +                     hdmi-phandle = <&hdmi>;
> +                     pinctrl-names = "default";
> +                     pinctrl-0 = <&hdmi_cec>;
> +                     status = "disabled";
> +             };
> +
>               mixer@14450000 {
>                       compatible = "samsung,exynos5250-mixer";
>                       reg = <0x14450000 0x10000>;
> diff --git a/arch/arm/boot/dts/exynos5420-pinctrl.dtsi 
> b/arch/arm/boot/dts/exynos5420-pinctrl.dtsi
> index 3924b4fafe72..65aa0e300c23 100644
> --- a/arch/arm/boot/dts/exynos5420-pinctrl.dtsi
> +++ b/arch/arm/boot/dts/exynos5420-pinctrl.dtsi
> @@ -67,6 +67,13 @@
>               samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
>               samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
>       };
> +
> +     hdmi_cec: hdmi-cec {
> +             samsung,pins = "gpx3-6";
> +             samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
> +             samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
> +             samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
> +     };
>  };
>  
>  &pinctrl_1 {
> diff --git a/arch/arm/boot/dts/exynos5420.dtsi 
> b/arch/arm/boot/dts/exynos5420.dtsi
> index 0db0bcf8da36..acd77b10b3df 100644
> --- a/arch/arm/boot/dts/exynos5420.dtsi
> +++ b/arch/arm/boot/dts/exynos5420.dtsi
> @@ -624,6 +624,19 @@
>                       reg = <0x145D0000 0x20>;
>               };
>  
> +             hdmicec: cec@101B0000 {
> +                     compatible = "samsung,s5p-cec";
> +                     reg = <0x101B0000 0x200>;
> +                     interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
> +                     clocks = <&clock CLK_HDMI_CEC>;
> +                     clock-names = "hdmicec";
> +                     samsung,syscon-phandle = <&pmu_system_controller>;
> +                     hdmi-phandle = <&hdmi>;
> +                     pinctrl-names = "default";
> +                     pinctrl-0 = <&hdmi_cec>;
> +                     status = "disabled";
> +             };
> +
>               mixer: mixer@14450000 {
>                       compatible = "samsung,exynos5420-mixer";
>                       reg = <0x14450000 0x10000>;
> diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi 
> b/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
> index 05b9afdd6757..01d6ac99e974 100644
> --- a/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
> +++ b/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
> @@ -265,6 +265,10 @@
>       vdd-supply = <&ldo6_reg>;
>  };
>  
> +&hdmicec {
> +     status = "okay";
> +};
> +
>  &hsi2c_4 {
>       status = "okay";
>  
> 

Reply via email to