2016-11-21 07:10:38

by Jaehoon Chung

[permalink] [raw]
Subject: [PATCH] ARM: dts: exynos: remove the cd-gpios property for eMMC of odroid-xu3/4

Odroid-xu3/4 didn't need to use the cd-gpios for detecting card.
Because Host controller has the CDETECT register through SDx_CDN line.
Host controller can know whether card is inserted or not with this
register.

When i have checked the Odroid-xu3/4, they are using CDETECT register.
(Not using exteranl cd-gpio.)

Fixes: fb1aeedb61ad ("ARM: dts: add mmc detect gpio for exynos5422-odroidxu3")
Signed-off-by: Jaehoon Chung <[email protected]>
---
arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi | 1 -
1 file changed, 1 deletion(-)

diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi b/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
index 9e63328..05b9afdd 100644
--- a/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
+++ b/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
@@ -510,7 +510,6 @@
&mmc_0 {
status = "okay";
mmc-pwrseq = <&emmc_pwrseq>;
- cd-gpios = <&gpc0 2 GPIO_ACTIVE_LOW>;
card-detect-delay = <200>;
samsung,dw-mshc-ciu-div = <3>;
samsung,dw-mshc-sdr-timing = <0 4>;
--
2.10.1


2016-11-21 17:06:28

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH] ARM: dts: exynos: remove the cd-gpios property for eMMC of odroid-xu3/4

On Mon, Nov 21, 2016 at 04:10:32PM +0900, Jaehoon Chung wrote:
> Odroid-xu3/4 didn't need to use the cd-gpios for detecting card.
> Because Host controller has the CDETECT register through SDx_CDN line.
> Host controller can know whether card is inserted or not with this
> register.
>
> When i have checked the Odroid-xu3/4, they are using CDETECT register.
> (Not using exteranl cd-gpio.)

Makes sense. Just one question: the sd0_cd pinctrl setting should stay,
right?

Best regards,
Krzysztof

> Fixes: fb1aeedb61ad ("ARM: dts: add mmc detect gpio for exynos5422-odroidxu3")
> Signed-off-by: Jaehoon Chung <[email protected]>
> ---
> arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi b/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
> index 9e63328..05b9afdd 100644
> --- a/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
> +++ b/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
> @@ -510,7 +510,6 @@
> &mmc_0 {
> status = "okay";
> mmc-pwrseq = <&emmc_pwrseq>;
> - cd-gpios = <&gpc0 2 GPIO_ACTIVE_LOW>;
> card-detect-delay = <200>;
> samsung,dw-mshc-ciu-div = <3>;
> samsung,dw-mshc-sdr-timing = <0 4>;
> --
> 2.10.1
>

2016-11-22 01:24:27

by Jaehoon Chung

[permalink] [raw]
Subject: Re: [PATCH] ARM: dts: exynos: remove the cd-gpios property for eMMC of odroid-xu3/4

On 11/22/2016 02:06 AM, Krzysztof Kozlowski wrote:
> On Mon, Nov 21, 2016 at 04:10:32PM +0900, Jaehoon Chung wrote:
>> Odroid-xu3/4 didn't need to use the cd-gpios for detecting card.
>> Because Host controller has the CDETECT register through SDx_CDN line.
>> Host controller can know whether card is inserted or not with this
>> register.
>>
>> When i have checked the Odroid-xu3/4, they are using CDETECT register.
>> (Not using exteranl cd-gpio.)
>
> Makes sense. Just one question: the sd0_cd pinctrl setting should stay,
> right?

Right, It needs to use SD0_CD function.
I have tested on Odroid-XU3/XU4.

Tested with the below cases.

1) On boot with SD-card (without eMMC)
- Inserted eMMC : Detected
- Removed eMMC : Detected

2) On boot with Sd-card (with eMMC)
- Detected

3) On boot with eMMC
- Detected

Best Regards,
Jaehoon Chung

>
> Best regards,
> Krzysztof
>
>> Fixes: fb1aeedb61ad ("ARM: dts: add mmc detect gpio for exynos5422-odroidxu3")
>> Signed-off-by: Jaehoon Chung <[email protected]>
>> ---
>> arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi | 1 -
>> 1 file changed, 1 deletion(-)
>>
>> diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi b/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
>> index 9e63328..05b9afdd 100644
>> --- a/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
>> +++ b/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
>> @@ -510,7 +510,6 @@
>> &mmc_0 {
>> status = "okay";
>> mmc-pwrseq = <&emmc_pwrseq>;
>> - cd-gpios = <&gpc0 2 GPIO_ACTIVE_LOW>;
>> card-detect-delay = <200>;
>> samsung,dw-mshc-ciu-div = <3>;
>> samsung,dw-mshc-sdr-timing = <0 4>;
>> --
>> 2.10.1
>>
>
>
>

2016-11-22 07:51:24

by Andrzej Hajda

[permalink] [raw]
Subject: Re: [PATCH] ARM: dts: exynos: remove the cd-gpios property for eMMC of odroid-xu3/4

On 22.11.2016 02:24, Jaehoon Chung wrote:
> On 11/22/2016 02:06 AM, Krzysztof Kozlowski wrote:
>> On Mon, Nov 21, 2016 at 04:10:32PM +0900, Jaehoon Chung wrote:
>>> Odroid-xu3/4 didn't need to use the cd-gpios for detecting card.
>>> Because Host controller has the CDETECT register through SDx_CDN line.
>>> Host controller can know whether card is inserted or not with this
>>> register.
>>>
>>> When i have checked the Odroid-xu3/4, they are using CDETECT register.
>>> (Not using exteranl cd-gpio.)
>> Makes sense. Just one question: the sd0_cd pinctrl setting should stay,
>> right?
> Right, It needs to use SD0_CD function.
> I have tested on Odroid-XU3/XU4.
>
> Tested with the below cases.
>
> 1) On boot with SD-card (without eMMC)
> - Inserted eMMC : Detected
> - Removed eMMC : Detected
>
> 2) On boot with Sd-card (with eMMC)
> - Detected
>
> 3) On boot with eMMC
> - Detected

I suspect that MMC device (or its parts) should be always awake to keep
working CDETECT register. With cd-gpio it should be possible to power it
off when unused but still having detection working, am I right? I am not
familiar enough with the code to be certain that it improves PM but it
could be the case.

My other question is about polling thread, original patch was developed
to avoid polling thread which caused occasional hangs, crashes and
unnecessary work. Since then lot of mmc code changed and I do not follow
these changes. So my question is if this patch will not re-enable polling?

Regards
Andrzej

>
> Best Regards,
> Jaehoon Chung
>
>> Best regards,
>> Krzysztof
>>
>>> Fixes: fb1aeedb61ad ("ARM: dts: add mmc detect gpio for exynos5422-odroidxu3")
>>> Signed-off-by: Jaehoon Chung <[email protected]>
>>> ---
>>> arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi | 1 -
>>> 1 file changed, 1 deletion(-)
>>>
>>> diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi b/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
>>> index 9e63328..05b9afdd 100644
>>> --- a/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
>>> +++ b/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
>>> @@ -510,7 +510,6 @@
>>> &mmc_0 {
>>> status = "okay";
>>> mmc-pwrseq = <&emmc_pwrseq>;
>>> - cd-gpios = <&gpc0 2 GPIO_ACTIVE_LOW>;
>>> card-detect-delay = <200>;
>>> samsung,dw-mshc-ciu-div = <3>;
>>> samsung,dw-mshc-sdr-timing = <0 4>;
>>> --
>>> 2.10.1
>>>
>>
>>
>
>

2016-11-22 08:19:41

by Jaehoon Chung

[permalink] [raw]
Subject: Re: [PATCH] ARM: dts: exynos: remove the cd-gpios property for eMMC of odroid-xu3/4

On 11/22/2016 04:51 PM, Andrzej Hajda wrote:
> On 22.11.2016 02:24, Jaehoon Chung wrote:
>> On 11/22/2016 02:06 AM, Krzysztof Kozlowski wrote:
>>> On Mon, Nov 21, 2016 at 04:10:32PM +0900, Jaehoon Chung wrote:
>>>> Odroid-xu3/4 didn't need to use the cd-gpios for detecting card.
>>>> Because Host controller has the CDETECT register through SDx_CDN line.
>>>> Host controller can know whether card is inserted or not with this
>>>> register.
>>>>
>>>> When i have checked the Odroid-xu3/4, they are using CDETECT register.
>>>> (Not using exteranl cd-gpio.)
>>> Makes sense. Just one question: the sd0_cd pinctrl setting should stay,
>>> right?
>> Right, It needs to use SD0_CD function.
>> I have tested on Odroid-XU3/XU4.
>>
>> Tested with the below cases.
>>
>> 1) On boot with SD-card (without eMMC)
>> - Inserted eMMC : Detected
>> - Removed eMMC : Detected
>>
>> 2) On boot with Sd-card (with eMMC)
>> - Detected
>>
>> 3) On boot with eMMC
>> - Detected
>
> I suspect that MMC device (or its parts) should be always awake to keep
> working CDETECT register. With cd-gpio it should be possible to power it
> off when unused but still having detection working, am I right? I am not
> familiar enough with the code to be certain that it improves PM but it
> could be the case.

CDETECT register is used only "card is present or not". not needs to keep power..

>
> My other question is about polling thread, original patch was developed
> to avoid polling thread which caused occasional hangs, crashes and
> unnecessary work. Since then lot of mmc code changed and I do not follow
> these changes. So my question is if this patch will not re-enable polling?

This patch didn't use polling scheme. It just uses the CDETECT register for detecting.
And Host controller has enabled the Card detect bit at INTMSK register.
(For interrupt handling)

Best Regards,
Jaehoon Chung

>
> Regards
> Andrzej
>
>>
>> Best Regards,
>> Jaehoon Chung
>>
>>> Best regards,
>>> Krzysztof
>>>
>>>> Fixes: fb1aeedb61ad ("ARM: dts: add mmc detect gpio for exynos5422-odroidxu3")
>>>> Signed-off-by: Jaehoon Chung <[email protected]>
>>>> ---
>>>> arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi | 1 -
>>>> 1 file changed, 1 deletion(-)
>>>>
>>>> diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi b/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
>>>> index 9e63328..05b9afdd 100644
>>>> --- a/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
>>>> +++ b/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
>>>> @@ -510,7 +510,6 @@
>>>> &mmc_0 {
>>>> status = "okay";
>>>> mmc-pwrseq = <&emmc_pwrseq>;
>>>> - cd-gpios = <&gpc0 2 GPIO_ACTIVE_LOW>;
>>>> card-detect-delay = <200>;
>>>> samsung,dw-mshc-ciu-div = <3>;
>>>> samsung,dw-mshc-sdr-timing = <0 4>;
>>>> --
>>>> 2.10.1
>>>>
>>>
>>>
>>
>>
>
>
>

2016-11-23 17:20:55

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH] ARM: dts: exynos: remove the cd-gpios property for eMMC of odroid-xu3/4

On Tue, Nov 22, 2016 at 05:19:30PM +0900, Jaehoon Chung wrote:
> On 11/22/2016 04:51 PM, Andrzej Hajda wrote:
> > On 22.11.2016 02:24, Jaehoon Chung wrote:
> >> On 11/22/2016 02:06 AM, Krzysztof Kozlowski wrote:
> >>> On Mon, Nov 21, 2016 at 04:10:32PM +0900, Jaehoon Chung wrote:
> >>>> Odroid-xu3/4 didn't need to use the cd-gpios for detecting card.
> >>>> Because Host controller has the CDETECT register through SDx_CDN line.
> >>>> Host controller can know whether card is inserted or not with this
> >>>> register.
> >>>>
> >>>> When i have checked the Odroid-xu3/4, they are using CDETECT register.
> >>>> (Not using exteranl cd-gpio.)
> >>> Makes sense. Just one question: the sd0_cd pinctrl setting should stay,
> >>> right?

Thanks, applied with removal of Fixes tag because commit description did
not mention any issue, error or wrong behavior to fix.

Best regards,
Krzysztof