diff mbox

[PATCHv3,1/2] ARM: dts: socfpga: Fix SD card detect

Message ID 1413908111-28165-2-git-send-email-dinguyen@opensource.altera.com (mailing list archive)
State New, archived
Headers show

Commit Message

dinguyen@opensource.altera.com Oct. 21, 2014, 4:15 p.m. UTC
From: Dinh Nguyen <dinguyen@opensource.altera.com>

Without this patch, the booting the SOCFPGA platform would hang at the
SDMMC driver loading. The issue, debugged by Doug Anderson, turned out
to be that the GPIO bank used by the SD card-detect was not set to
status="okay".

Suggested-by: Doug Anderson <dianders@chromium.org>
Signed-off-by: Dinh Nguyen <dinguyen@opensource.altera.com>
---
v3: Correctly degugged the issue to be a gpio node not having status="okay"
---
 arch/arm/boot/dts/socfpga_cyclone5_socdk.dts | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

Steffen Trumtrar Oct. 21, 2014, 5:10 p.m. UTC | #1
Hi!

On Tue, Oct 21, 2014 at 11:15:10AM -0500, dinguyen@opensource.altera.com wrote:
> From: Dinh Nguyen <dinguyen@opensource.altera.com>
> 
> Without this patch, the booting the SOCFPGA platform would hang at the
> SDMMC driver loading. The issue, debugged by Doug Anderson, turned out
> to be that the GPIO bank used by the SD card-detect was not set to
> status="okay".
> 
> Suggested-by: Doug Anderson <dianders@chromium.org>
> Signed-off-by: Dinh Nguyen <dinguyen@opensource.altera.com>
> ---
> v3: Correctly degugged the issue to be a gpio node not having status="okay"
> ---
>  arch/arm/boot/dts/socfpga_cyclone5_socdk.dts | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/arch/arm/boot/dts/socfpga_cyclone5_socdk.dts b/arch/arm/boot/dts/socfpga_cyclone5_socdk.dts
> index d7296a5..03a3745 100644
> --- a/arch/arm/boot/dts/socfpga_cyclone5_socdk.dts
> +++ b/arch/arm/boot/dts/socfpga_cyclone5_socdk.dts
> @@ -37,6 +37,12 @@
>  		 */
>  		ethernet0 = &gmac1;
>  	};
> +
> +	soc {
> +		gpio@ff709000 {
> +			status = "okay";
> +		};
> +	};
>  };
>  

Looks weird. Don't you need to enable the GPIO bank instead:

	&gpio1 {
		status = "okay";
	}

???

Regards,
Steffen
dinguyen@opensource.altera.com Oct. 21, 2014, 6:48 p.m. UTC | #2
On 10/21/2014 12:10 PM, Steffen Trumtrar wrote:
> Hi!
> 
> On Tue, Oct 21, 2014 at 11:15:10AM -0500, dinguyen@opensource.altera.com wrote:
>> From: Dinh Nguyen <dinguyen@opensource.altera.com>
>>
>> Without this patch, the booting the SOCFPGA platform would hang at the
>> SDMMC driver loading. The issue, debugged by Doug Anderson, turned out
>> to be that the GPIO bank used by the SD card-detect was not set to
>> status="okay".
>>
>> Suggested-by: Doug Anderson <dianders@chromium.org>
>> Signed-off-by: Dinh Nguyen <dinguyen@opensource.altera.com>
>> ---
>> v3: Correctly degugged the issue to be a gpio node not having status="okay"
>> ---
>>  arch/arm/boot/dts/socfpga_cyclone5_socdk.dts | 6 ++++++
>>  1 file changed, 6 insertions(+)
>>
>> diff --git a/arch/arm/boot/dts/socfpga_cyclone5_socdk.dts b/arch/arm/boot/dts/socfpga_cyclone5_socdk.dts
>> index d7296a5..03a3745 100644
>> --- a/arch/arm/boot/dts/socfpga_cyclone5_socdk.dts
>> +++ b/arch/arm/boot/dts/socfpga_cyclone5_socdk.dts
>> @@ -37,6 +37,12 @@
>>  		 */
>>  		ethernet0 = &gmac1;
>>  	};
>> +
>> +	soc {
>> +		gpio@ff709000 {
>> +			status = "okay";
>> +		};
>> +	};
>>  };
>>  
> 
> Looks weird. Don't you need to enable the GPIO bank instead:
> 
> 	&gpio1 {
> 		status = "okay";
> 	}
> 

No, this will not work as gpio1 is already a node inside gpio@ff709000.
The reason for this was that the Designware GPIO IP can support 1, 2 or
3 gpio ports of varying widths. [1][2]

Dinh

[1]
http://article.gmane.org/gmane.linux.drivers.devicetree/72771/match=dw+apb+gpio
[2] http://article.gmane.org/gmane.linux.kernel/1671576/match=dw+apb+gpio
Doug Anderson Oct. 22, 2014, 3:45 p.m. UTC | #3
Dinh,

(without the HTML mail this time, sorry)

On Tue, Oct 21, 2014 at 11:48 AM, Dinh Nguyen
<dinguyen@opensource.altera.com> wrote:
> On 10/21/2014 12:10 PM, Steffen Trumtrar wrote:
>> Hi!
>>
>> On Tue, Oct 21, 2014 at 11:15:10AM -0500, dinguyen@opensource.altera.com wrote:
>>> From: Dinh Nguyen <dinguyen@opensource.altera.com>
>>>
>>> Without this patch, the booting the SOCFPGA platform would hang at the
>>> SDMMC driver loading. The issue, debugged by Doug Anderson, turned out
>>> to be that the GPIO bank used by the SD card-detect was not set to
>>> status="okay".
>>>
>>> Suggested-by: Doug Anderson <dianders@chromium.org>
>>> Signed-off-by: Dinh Nguyen <dinguyen@opensource.altera.com>
>>> ---
>>> v3: Correctly degugged the issue to be a gpio node not having status="okay"
>>> ---
>>>  arch/arm/boot/dts/socfpga_cyclone5_socdk.dts | 6 ++++++
>>>  1 file changed, 6 insertions(+)
>>>
>>> diff --git a/arch/arm/boot/dts/socfpga_cyclone5_socdk.dts b/arch/arm/boot/dts/socfpga_cyclone5_socdk.dts
>>> index d7296a5..03a3745 100644
>>> --- a/arch/arm/boot/dts/socfpga_cyclone5_socdk.dts
>>> +++ b/arch/arm/boot/dts/socfpga_cyclone5_socdk.dts
>>> @@ -37,6 +37,12 @@
>>>               */
>>>              ethernet0 = &gmac1;
>>>      };
>>> +
>>> +    soc {
>>> +            gpio@ff709000 {
>>> +                    status = "okay";
>>> +            };
>>> +    };

I haven't dug into the details you provided about the GPIO
infrastructure of socfpga, but it does seem like it might be nice to
some easier way to reference things in
"arch/arm/boot/dts/socfpga.dtsi".

Looking at other examples they call the "gpio@ff708000" "gpio0" and
the sub node something like "porta".  Given that this is the only
reference to the GPIO, it seems like now would be the time to change
it.

-Doug
dinguyen@opensource.altera.com Oct. 22, 2014, 3:47 p.m. UTC | #4
On 10/22/14, 10:45 AM, Doug Anderson wrote:
> Dinh,
> 
> (without the HTML mail this time, sorry)
> 
> On Tue, Oct 21, 2014 at 11:48 AM, Dinh Nguyen
> <dinguyen@opensource.altera.com> wrote:
>> On 10/21/2014 12:10 PM, Steffen Trumtrar wrote:
>>> Hi!
>>>
>>> On Tue, Oct 21, 2014 at 11:15:10AM -0500, dinguyen@opensource.altera.com wrote:
>>>> From: Dinh Nguyen <dinguyen@opensource.altera.com>
>>>>
>>>> Without this patch, the booting the SOCFPGA platform would hang at the
>>>> SDMMC driver loading. The issue, debugged by Doug Anderson, turned out
>>>> to be that the GPIO bank used by the SD card-detect was not set to
>>>> status="okay".
>>>>
>>>> Suggested-by: Doug Anderson <dianders@chromium.org>
>>>> Signed-off-by: Dinh Nguyen <dinguyen@opensource.altera.com>
>>>> ---
>>>> v3: Correctly degugged the issue to be a gpio node not having status="okay"
>>>> ---
>>>>  arch/arm/boot/dts/socfpga_cyclone5_socdk.dts | 6 ++++++
>>>>  1 file changed, 6 insertions(+)
>>>>
>>>> diff --git a/arch/arm/boot/dts/socfpga_cyclone5_socdk.dts b/arch/arm/boot/dts/socfpga_cyclone5_socdk.dts
>>>> index d7296a5..03a3745 100644
>>>> --- a/arch/arm/boot/dts/socfpga_cyclone5_socdk.dts
>>>> +++ b/arch/arm/boot/dts/socfpga_cyclone5_socdk.dts
>>>> @@ -37,6 +37,12 @@
>>>>               */
>>>>              ethernet0 = &gmac1;
>>>>      };
>>>> +
>>>> +    soc {
>>>> +            gpio@ff709000 {
>>>> +                    status = "okay";
>>>> +            };
>>>> +    };
> 
> I haven't dug into the details you provided about the GPIO
> infrastructure of socfpga, but it does seem like it might be nice to
> some easier way to reference things in
> "arch/arm/boot/dts/socfpga.dtsi".
> 
> Looking at other examples they call the "gpio@ff708000" "gpio0" and
> the sub node something like "porta".  Given that this is the only
> reference to the GPIO, it seems like now would be the time to change
> it.

Yeah...I like your idea. Let met get a new patch for that...

Thanks,
Dinh
diff mbox

Patch

diff --git a/arch/arm/boot/dts/socfpga_cyclone5_socdk.dts b/arch/arm/boot/dts/socfpga_cyclone5_socdk.dts
index d7296a5..03a3745 100644
--- a/arch/arm/boot/dts/socfpga_cyclone5_socdk.dts
+++ b/arch/arm/boot/dts/socfpga_cyclone5_socdk.dts
@@ -37,6 +37,12 @@ 
 		 */
 		ethernet0 = &gmac1;
 	};
+
+	soc {
+		gpio@ff709000 {
+			status = "okay";
+		};
+	};
 };
 
 &gmac1 {