Subject: [PATCH v5 05/10] ARM: dts: Move dp_hpd from exynos5250 into smdk5250 and snow

From: [email-masked] (Andreas Färber)
Date: Sun, 10 Aug 2014 10:15:19 +0100

Hi Jingoo,

Am 05.08.2014 13:16, schrieb Jingoo Han:
> On Saturday, August 02, 2014 5:57 AM, Tomasz Figa wrote:
>> On 01.08.2014 22:54, Andreas F?rber wrote:
>>> Am 01.08.2014 22:33, schrieb Doug Anderson:
>>>> On Thu, Jul 31, 2014 at 9:54 PM, Andreas F?rber <[email-masked]> wrote:
>>>>> Spring uses a different GPIO, so this is not a generic SoC piece.
>>>>>
>>>>> Suggested-by: Tomasz Figa <[email-masked]>
>>>>> Signed-off-by: Andreas F?rber <[email-masked]>
>>>>> ---
>>>>>  v5: New (Tomasz Figa)
>>>>>  Frees dp_hpd for Spring.
>>>>>
>>>>>  arch/arm/boot/dts/exynos5250-pinctrl.dtsi | 7 -------
>>>>>  arch/arm/boot/dts/exynos5250-smdk5250.dts | 9 +++++++++
>>>>>  arch/arm/boot/dts/exynos5250-snow.dts     | 7 +++++++
>>>>>  3 files changed, 16 insertions(+), 7 deletions(-)
>>>>>
>>>>> diff --git a/arch/arm/boot/dts/exynos5250-pinctrl.dtsi b/arch/arm/boot/dts/exynos5250-pinctrl.dtsi
>>>>> index 886cfca044ac..ed0e5230514b 100644
>>>>> --- a/arch/arm/boot/dts/exynos5250-pinctrl.dtsi
>>>>> +++ b/arch/arm/boot/dts/exynos5250-pinctrl.dtsi
>>>>> @@ -581,13 +581,6 @@
>>>>>                         samsung,pin-pud = <0>;
>>>>>                         samsung,pin-drv = <0>;
>>>>>                 };
>>>>> -
>>>>> -               dp_hpd: dp_hpd {
>>>>> -                       samsung,pins = "gpx0-7";
>>>>> -                       samsung,pin-function = <3>;
>>>>> -                       samsung,pin-pud = <0>;
>>>>> -                       samsung,pin-drv = <0>;
>>>>> -               };
>>>>>         };
>>>>>
>>>>>         pinctrl at 13400000 {
>>>>> diff --git a/arch/arm/boot/dts/exynos5250-smdk5250.dts b/arch/arm/boot/dts/exynos5250-smdk5250.dts
>>>>> index aaa055ac0fe3..5d30fe1dcda4 100644
>>>>> --- a/arch/arm/boot/dts/exynos5250-smdk5250.dts
>>>>> +++ b/arch/arm/boot/dts/exynos5250-smdk5250.dts
>>>>> @@ -414,3 +414,12 @@
>>>>>                 };
>>>>>         };
>>>>>  };
>>>>> +
>>>>> +&pinctrl_0 {
>>>>> +       dp_hpd: dp_hpd {
>>>>> +               samsung,pins = "gpx0-7";
>>>>> +               samsung,pin-function = <3>;
>>>>> +               samsung,pin-pud = <0>;
>>>>> +               samsung,pin-drv = <0>;
>>>>> +       };
>>>>> +};
>>>>> diff --git a/arch/arm/boot/dts/exynos5250-snow.dts b/arch/arm/boot/dts/exynos5250-snow.dts
>>>>> index c4b0c73c736d..a9a2f2743794 100644
>>>>> --- a/arch/arm/boot/dts/exynos5250-snow.dts
>>>>> +++ b/arch/arm/boot/dts/exynos5250-snow.dts
>>>>> @@ -547,6 +547,13 @@
>>>>>  };
>>>>>
>>>>>  &pinctrl_0 {
>>>>> +       dp_hpd: dp_hpd {
>>>>> +               samsung,pins = "gpx0-7";
>>>>> +               samsung,pin-function = <3>;
>>>>> +               samsung,pin-pud = <0>;
>>>>> +               samsung,pin-drv = <0>;
>>>>> +       };
>>>>> +
>>>>
>>>> NAK.  dp_hpd is a generic SoC piece.  Pin function 0 and 1 are GPIOs.
>>>> Pin function 3 is special function.  This pin _is_ the hot plug detect
>>>> pin for display port.  When it's set as special function 3 it goes
>>>> straight into the hot plug logic of the display port controller.
>>>>
>>>> Spring may have had its reasons to detect hot plug events on a GPIO
>>>> instead of using this pin, but that doesn't make this pin any less the
>>>> "hot plug pin".
>>>
>>> Please advise how to handle it then: Should there be two different
>>> pinctrl entries (if so, how should it be named?),
>>
>> IMHO this is the right way. Just name the GPIO variant dp_hpd_gpio.
> 
> Hi Andreas F?rber,
> 
> I agree with Tomasz Figa and Doug Anderson.
> Please refer to the following.
> 
> 1. case: Standard HPD pin is used. (smdk5420)
> arch/arm/boot/dts/exynos5420-pinctrl.dts
> 	pinctrl at 13400000 {
> 		dp_hpd: dp_hpd {
> 			samsung,pins = "gpx0-7";
> 			samsung,pin-function = <3>;
> 			samsung,pin-pud = <0>;
> 			samsung,pin-drv = <0>;
> 		};
> arch/arm/boot/dts/exynos5420-smdk5420.dts
> 	dp-controller at 145B0000 {
> 		pinctrl-names = "default";
> 		pinctrl-0 = <&dp_hpd>;
> 		...
> 
> 2. case: non-standard HPD pin such as GPIO is used. (peach pit)
> arch/arm/boot/dts/exynos5420-peach-pit.dts
> 	pinctrl at 13400000 {
> 		dp_hpd_gpio: dp_hpd_gpio {
> 			samsung,pins = "gpx2-6";
> 			samsung,pin-function = <0>;
> 			samsung,pin-pud = <3>;
> 			samsung,pin-drv = <0>;
> 		};
> 	dp-controller at 145B0000 {
> 		pinctrl-names = "default";
> 		pinctrl-0 = <&dp_hpd_gpio>;
> 		...
> 		samsung,hpd-gpio = <&gpx2 6 0>;
> 
> So, you need to follow the second case.
> "dp_hpd_gpio" can be used for Spring board.

I believe I already did so in v6 [0]? Please take a look there and let
me know if you still need anything changed. The label name seems
identical, whereas for the node name I adopted the dashes convention.

Thanks,
Andreas

[0] https://patchwork.kernel.org/patch/4664691/

-- 
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 N?rnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imend?rffer; HRB 16746 AG N?rnberg