imx35 missing sdio interrupt

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

imx35 missing sdio interrupt

Jump to solution
961 Views
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 Kudos
1 Solution
683 Views
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!

View solution in original post

0 Kudos
2 Replies
684 Views
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 Kudos
683 Views
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 Kudos