imx35 missing sdio interrupt

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

imx35 missing sdio interrupt

ソリューションへジャンプ
2,088件の閲覧回数
sudheerd
Contributor I

Hello.

 

I have a product based on imx35, Linux kernel 2.6.31. At times, when doing read/write to the SD card, I am getting the error "mmc0: Timeout waiting for hardware interrupt."

I found that there is an errata on this (ENGcm11186 "eSDHC misses SDIO interrupt when CINT is disabled").

 

Gmane -- PATCH mmc: sdhci esdhc imx: Fix SDIO interrupts

 

In the patch, it was mentioned that "Currently SDIO interrupts do not work on i.MX53 and maybe others".

 

So my questions are,

 

1. is this errata applicable to imx35?

 

2. Seems the patch for this issue is meant for latest kernels. Can someone help me in applying the patch to the 2.6.31 driver? I have attached the 2.6.31 mx_sdhci.c source.

 

 

Thanks

Sudheer

Original Attachment has been moved to: mx_sdhci.c.zip

0 件の賞賛
返信
1 解決策
1,810件の閲覧回数
CommunityBot
Community Manager
This an automatic process.

We are marking this post as solved, due to the either low activity or any reply marked as correct.

If you have additional questions, please create a new post and reference to this closed post.

NXP Community!

元の投稿で解決策を見る

0 件の賞賛
返信
2 返答(返信)
1,811件の閲覧回数
CommunityBot
Community Manager
This an automatic process.

We are marking this post as solved, due to the either low activity or any reply marked as correct.

If you have additional questions, please create a new post and reference to this closed post.

NXP Community!
0 件の賞賛
返信
1,810件の閲覧回数
Yuri
NXP Employee
NXP Employee

  As for the question 1. :

Strictly speaking, the erratum ENGcm11186 is not specified for i.MX35.
Nevertheless – why do not try to apply the recommended workaround
(in any case, it should not influence on normal operations of the i.MX35 too).


---

The workaround interrupt service steps are as follows:

  1. 1. Clear CINTIEN bit in IRQSTATEN (CINTSEN) and IRQSIGEN.
  2. 2. Reset the interrupt factors in the SDIO card and write 1 to clear CINT interrupt in IRQSTAT.
  3. 3. Clear and then set D3CD bit in the PROCTL register. Clearing D3CD bit sets the reverse signal

of DAT1 to low, even if DAT1 is low. After D3CD bit is re-enabled, the eSDHC can catch the

posedge of the reversed DAT1 signal, if the DAT1 line is still low.

  1. 4. Re-enable CINTIEN bit in IRQSTATEN and IRQSIGEN.

---


Have a great day,
Yuri

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 件の賞賛
返信