# Mmc1: Timeout waiting for hardware interrupt

**URL:** <https://community.morsemicro.com/t/mmc1-timeout-waiting-for-hardware-interrupt/130>\
**Category:** Software\
**Created:** [October 29, 2024, 6:27pm UTC](https://community.morsemicro.com/t/mmc1-timeout-waiting-for-hardware-interrupt/130 "2024-10-29T18:27:57Z")\
**Posts on this page:** 6\
**Page:** 3

<div class="post-metadata">

**Author:** ![SanderV](https://avatars.discourse-cdn.com/v4/letter/s/e9a140/32.png) [@SanderV](https://community.morsemicro.com/u/SanderV)\
**Post date:** [December 18, 2024, 5:17am UTC](https://community.morsemicro.com/t/mmc1-timeout-waiting-for-hardware-interrupt/130/42 "2024-12-18T05:17:15Z")

</div>

Finally got it working!

I was testing on a module that didn’t have the reset line connected. Connected the Reset line and now it works as expected!

Now there is still more work to be done optimizing settings etc, but I will start a new thread in case I need help.

Thanks for your support these past few months! Hopefully it will be useful to others in the future as well

---

<div class="post-metadata">

**Author:** ![masonwardle](https://sea1.discourse-cdn.com/flex001/user_avatar/community.morsemicro.com/masonwardle/32/65_2.png) [@masonwardle](https://community.morsemicro.com/u/masonwardle)\
**Post date:** [December 18, 2024, 3:45pm UTC](https://community.morsemicro.com/t/mmc1-timeout-waiting-for-hardware-interrupt/130/43 "2024-12-18T15:45:30Z")

</div>

@ajudge Do you plan to create a KB article or otherwise summarize your findings from this post?

---

<div class="post-metadata">

**Author:** ![ajudge](https://avatars.discourse-cdn.com/v4/letter/a/c2a13f/32.png) [@ajudge](https://community.morsemicro.com/u/ajudge)\
**Post date:** [December 19, 2024, 5:28am UTC](https://community.morsemicro.com/t/mmc1-timeout-waiting-for-hardware-interrupt/130/44 "2024-12-19T05:28:14Z")

</div>

@masonwardle it’s definitely on the list. Hopefully will form part of a general hardware focused platform porting guide.

---

<div class="post-metadata">

**Author:** ![tharvey](https://avatars.discourse-cdn.com/v4/letter/t/e79b87/32.png) [@tharvey](https://community.morsemicro.com/u/tharvey)\
**Post date:** [December 23, 2024, 9:26pm UTC](https://community.morsemicro.com/t/mmc1-timeout-waiting-for-hardware-interrupt/130/45 "2024-12-23T21:26:05Z")

</div>

I managed to figure out that the card I was using had a hard pull-up on its RESET# line and required a fundamental reset. Simply driving it low then high again before loading the driver resolved my SDIO issues. The way the driver is written the reset-gpios dt prop doesn’t help here as the morse\_hw\_reset function isn’t called on an sdio\_probe.

The device is working fine on an IMX8MP board as long as I use MORSE\_SDIO\_RW\_ADDR\_BOUNDARY\_MASK=0xffff0004

---

<div class="post-metadata">

**Author:** ![james.haggerty](https://avatars.discourse-cdn.com/v4/letter/j/c68b51/32.png) [@james.haggerty](https://community.morsemicro.com/u/james.haggerty)\
**Post date:** [December 24, 2024, 2:54am UTC](https://community.morsemicro.com/t/mmc1-timeout-waiting-for-hardware-interrupt/130/46 "2024-12-24T02:54:30Z")

</div>

> [@tharvey](#):
>
> The way the driver is written the reset-gpios dt prop doesn’t help here as the morse\_hw\_reset function isn’t called on an sdio\_probe.

Yes, this is frustrating, but I believe it’s not actually straightforward for the driver itself to do the reset cleanly as it won’t be loaded until it’s detected, and it won’t be detected until the reset has happened. Some options we’ve used in the past are to work around this in user space (as I imagine you’ve done - see [our morsechipreset.sh script](https://github.com/MorseMicro/morse-feed/blob/main/kernel/morse-bundle/files/morse/scripts/chipreset.sh) for an example), or modify your SDIO/MMC driver to toggle any necessary GPIOs before the probe (ideally by specifying them in device tree).

---

<div class="post-metadata">

**Author:** ![ajudge](https://avatars.discourse-cdn.com/v4/letter/a/c2a13f/32.png) [@ajudge](https://community.morsemicro.com/u/ajudge)\
**Post date:** [December 24, 2024, 3:10am UTC](https://community.morsemicro.com/t/mmc1-timeout-waiting-for-hardware-interrupt/130/47 "2024-12-24T03:10:54Z")

</div>

Glad to hear you resolved your issues @tharvey. And thanks again for your earlier contributions to this thread!

As @james.haggerty mentions, performing the reset in the driver probe can upset some mmc host controllers configured with a `non-removable` device property. We do have a patch floating around to add a reset to the driver if you’re happy to use something like `broken-cd` to poll for device presence.

There was some internal discussion around using an `mmc-pwrseq-simple` node to handle this reset instead. There were some quirks with the initial attempts, but I might revisit this again to be certain.

[Previous page](https://community.morsemicro.com/t/mmc1-timeout-waiting-for-hardware-interrupt/130.md?page=2)
