# Morse Micro MM6108 Integration on i.MX8MP (SPI Response Issue)

**URL:** <https://community.morsemicro.com/t/morse-micro-mm6108-integration-on-i-mx8mp-spi-response-issue/339>\
**Category:** Linux\
**Created:** [March 4, 2025, 10:17pm UTC](https://community.morsemicro.com/t/morse-micro-mm6108-integration-on-i-mx8mp-spi-response-issue/339 "2025-03-04T22:17:13Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![arti.rajput](https://avatars.discourse-cdn.com/v4/letter/a/c67d28/32.png) [@arti.rajput](https://community.morsemicro.com/u/arti.rajput)\
**Post date:** [March 4, 2025, 10:17pm UTC](https://community.morsemicro.com/t/morse-micro-mm6108-integration-on-i-mx8mp-spi-response-issue/339/1 "2025-03-04T22:17:13Z")

</div>

Hi,

We are trying to integrate the Morse Micro MM6108 chip on i.MX8MP hardware using the ECSPI2 interface. Below is my device tree configuration:

&ecspi2 {  
#address-cells = \<1\>;  
#size-cells = \<0\>;  
fsl,spi-num-chipselects = \<1\>;  
pinctrl-names = “default”;  
pinctrl-0 = \<&pinctrl\_ecspi2 &pinctrl\_ecspi2\_cs\>;  
cs-gpios = \<&gpio5 13 GPIO\_ACTIVE\_LOW\>;  
status = “okay”;

```
morse_wifi: morse-micro@0 {
	compatible = "morse,mm610x-spi";
	reg = <0>;
	pinctrl-names = "default";
	reset-gpios = <&gpio5 8 GPIO_ACTIVE_LOW>;
	interrupt-parent = <&gpio5>;
	interrupts = <9 IRQ_TYPE_LEVEL_HIGH>;
	spi-max-frequency = <1000000>;
	status = "okay";
};

```

};

With this setup, I am observing the following kernel logs:

[17.576937] Morse Micro Dot11ah driver registration. Version 0-rel\_1\_14\_1\_2024\_Dec\_05  
[17.622720] morse micro driver registration. Version 0-rel\_1\_14\_1\_2024\_Dec\_05  
[17.623376] morse\_spi spi1.0: morse\_spi\_find\_response: SPI response error  
[17.623382] morse\_spi spi1.0: morse\_spi\_probe: SD\_IO\_RESET  
[17.623713] morse\_spi spi1.0: morse\_spi\_find\_response: SPI response error  
[17.624048] morse\_spi spi1.0: morse\_spi\_find\_response: SPI response missing  
[17.624053] morse\_spi spi1.0: morse\_spi\_probe: SD\_IO\_RESET  
[17.624440] morse\_spi spi1.0: morse\_spi\_find\_response: SPI response missing  
[17.624779] morse\_spi spi1.0: morse\_spi\_find\_response: SPI response error  
[17.624785] morse\_spi spi1.0: morse\_spi\_probe: SD\_IO\_RESET  
[17.624971] morse\_spi spi1.0: morse\_spi\_find\_response: SPI response missing  
[17.624977] morse\_spi spi1.0: morse\_spi\_probe: failed to init SPI with CMD63 (ret:-71)  
[17.624997] morse\_spi\_probe failed. The driver has not been loaded!  
[17.625001] morse\_spi: probe of spi1.0 failed with error -71

We have also measured the SPI signals using a logic analyzer. It appears that the MM6108 is responding, but the returned data is random:  
0xFF, 0x9F, 0xBF

Could you please advise:

1. Are there any specific hardware requirements (e.g., SPI pull-ups, clock phase/polarity settings) that we should follow for the MM6108?
2. Is there any issue in our device tree configuration that could cause the SPI response errors?

Any additional debugging steps you recommend?

Looking forward to your guidance.

Thanks

---

<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:** [March 6, 2025, 6:10am UTC](https://community.morsemicro.com/t/morse-micro-mm6108-integration-on-i-mx8mp-spi-response-issue/339/2 "2025-03-06T06:10:50Z")

</div>

Hi @arti.rajput

It looks like the chip is failing to respond at all to the host. CMD63 is the first command sent by our driver.

For your device tree configuration, we use a custom property - `spi-irq-gpios` to configure the SPI interrupt GPIO. Please add this to the `morse_wifi` node.

Regarding pull-ups, it is important that the SD\_D2 pin of the Morse Micro chip has a pull up. For initial development, you may want to insert pullups on all data lines. The clock line _shouldn’t_ need a pull-up, but it can be helpful to leave a footprint there - just in case.

Can you share the logic analyser capture you have on hand?

---

<div class="post-metadata">

**Author:** ![arti.rajput](https://avatars.discourse-cdn.com/v4/letter/a/c67d28/32.png) [@arti.rajput](https://community.morsemicro.com/u/arti.rajput)\
**Post date:** [March 6, 2025, 6:37am UTC](https://community.morsemicro.com/t/morse-micro-mm6108-integration-on-i-mx8mp-spi-response-issue/339/3 "2025-03-06T06:37:57Z")

</div>

Hi @ajudge ,

Thanks for your response.

Here is my updated device tree node with the spi-irq-gpios property added as suggested:

&ecspi2 {  
#address-cells = \<1\>;  
#size-cells = \<0\>;  
fsl,spi-num-chipselects = \<1\>;  
pinctrl-names = “default”;  
pinctrl-0 = \<&pinctrl\_ecspi2 &pinctrl\_ecspi2\_cs\>;  
cs-gpios = \<&gpio5 13 GPIO\_ACTIVE\_LOW\>;  
status = “okay”;

```
morse_wifi: morse-micro@0 {
	compatible = "morse,mm610x-spi";
	reg = <0>;
	reset-gpios = <&gpio5 8 0>;
	power-gpios = <&gpio3 21 0>,
	              <&gpio3 23 0>;
	spi-irq-gpios = <&gpio5 9 0>;
	spi-max-frequency = <1000000>;
	status = "okay";
};

```

};

Attached below is a snapshot of the logic analyzer capture.

 ![Screenshot from 2025-03-06 11-28-49](https://us1.discourse-cdn.com/flex001/uploads/morsemicro/original/1X/9cf7216f19bcd32939e18e4d0ab31a3a3eff40c3.png)

We have applied all the patches from morsemicro\_kernel\_patches\_rel\_1\_14\_1\_2024\_Dec\_05.

Regarding the pull-ups, could you confirm if they are mandatory? Specifically, is the pull-up on SD\_D2 essential, or should we consider adding pull-ups on all data lines for initial testing?

Additionally, apart from the above patches, can you confirm if any other software changes are required to ensure proper initialization?

Thanks,

---

<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:** [March 6, 2025, 6:44am UTC](https://community.morsemicro.com/t/morse-micro-mm6108-integration-on-i-mx8mp-spi-response-issue/339/4 "2025-03-06T06:44:21Z")

</div>

Aside from the kernel patches, there shouldn’t be any other software changes you need to make. I shared our Linux porting guide application note in this thread if it is of benefit to you: [Raspberry Pi Zero 2W WiFi HaLow Module (MM6108-MF08651-US) Integration](https://community.morsemicro.com/t/raspberry-pi-zero-2w-wifi-halow-module-mm6108-mf08651-us-integration/332)

The pull up on SD\_D2 is essential. Other pull ups on data lines are often not necessary, so long as the host is actively driving the lines (configured “push-pull”). I would recommend putting pull up resistors on these data lines during initial development, and remove them if you need to tune aggressively for power save.

The pull-up on the clock line should **not** be needed. However, I have seen one instance where it was. Possibly a host misbehaving - we haven’t had a chance to do a deeper analysis on the device. If you’re designing a board, I would recommend putting a footprint for a pull up on that line, but leave it unpopulated.

Please share the actual logic analyser files if you can. It allows me to more closely examine the trace.

---

<div class="post-metadata">

**Author:** ![arti.rajput](https://avatars.discourse-cdn.com/v4/letter/a/c67d28/32.png) [@arti.rajput](https://community.morsemicro.com/u/arti.rajput)\
**Post date:** [March 6, 2025, 6:59am UTC](https://community.morsemicro.com/t/morse-micro-mm6108-integration-on-i-mx8mp-spi-response-issue/339/5 "2025-03-06T06:59:02Z")

</div>

Hi @ajudge ,  
Please find the attached capture files.  
[Session 0.sal](https://community.morsemicro.com/uploads/short-url/f7pYz64hZysfdRyxo43jzT38oBb.sal) (4.5 KB)

We have created our own PCB by taking the below document as reference:

 ![Screenshot from 2025-03-06 12-24-32](https://us1.discourse-cdn.com/flex001/uploads/morsemicro/original/1X/8b6e872bb801bb2f921e13a85705247d4e5b8b39.png)

As you can see there is no pull up connected to the data lines

While for SDIO, there are pull-ups:

 ![Screenshot from 2025-03-06 12-28-24](https://us1.discourse-cdn.com/flex001/uploads/morsemicro/original/1X/59f8ace6235a3fd440319ac488cf4093394e8f0d.png)

Thanks

---

<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:** [March 6, 2025, 7:25am UTC](https://community.morsemicro.com/t/morse-micro-mm6108-integration-on-i-mx8mp-spi-response-issue/339/6 "2025-03-06T07:25:27Z")

</div>

Yes, for the SPI lines that reference is correct. It has the SD\_D2 pull-up which is essential, and you will likely find that any other pull up on the data lines is unnecessary.  
However, as mentioned, I think it is a good idea to have footprints present on the other lines during initial hardware bring up in case you require a pull up.

There is a small gap in this reference design though for designs using Linux. Our Linux driver doesn’t “drive” the RESET line high, it only drives it low or puts it into a Hi-Z state. So you will want to be configuring a pull up on the RESET line.  
You should be able to do this in device tree by adjusting the [pad\_setting](https://www.kernel.org/doc/Documentation/devicetree/bindings/pinctrl/fsl%2Cimx8mp-pinctrl.yaml) for the given GPIO, but otherwise an external pullup will work.

I’ll raise this gap with the hardware team.

I’ll take a closer look at the LA captures shortly. Thanks for sending them through!

---

<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:** [March 7, 2025, 11:54am UTC](https://community.morsemicro.com/t/morse-micro-mm6108-integration-on-i-mx8mp-spi-response-issue/339/7 "2025-03-07T11:54:15Z")

</div>

Hi @arti.rajput

Something I forgot to mention earlier. If you have access to the MM6108 datasheet, take note of footnote 4 of Table 2. The RESET\_N and WAKE pins are in the VBAT domain. So RESET\_N must be pulled up to 3V3 even if you are using 1V8 logic.

---

<div class="post-metadata">

**Author:** ![arti.rajput](https://avatars.discourse-cdn.com/v4/letter/a/c67d28/32.png) [@arti.rajput](https://community.morsemicro.com/u/arti.rajput)\
**Post date:** [March 10, 2025, 10:28am UTC](https://community.morsemicro.com/t/morse-micro-mm6108-integration-on-i-mx8mp-spi-response-issue/339/8 "2025-03-10T10:28:44Z")

</div>

Hi @ajudge,  
Yes the reset pin is pull up.  
Do you have any update on the logic analyser capture?

---

<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:** [March 10, 2025, 12:07pm UTC](https://community.morsemicro.com/t/morse-micro-mm6108-integration-on-i-mx8mp-spi-response-issue/339/9 "2025-03-10T12:07:56Z")

</div>

Please assess the signal integrity of your clock line (or, your logic analyzer settings). From this part of the capture. The clock is heavily disturbed - there are oscillations that do not meet the expected 1us you would expect for 1 MHz.

 ![image](https://us1.discourse-cdn.com/flex001/uploads/morsemicro/original/1X/256d3d66451ffebe56355c21459dae7667ba320d.png)

There are also what look like unexpected oscillations on the enable line. Is the logic level for the analyzer configured for the right VH/VL? Is there something else in the signal driving, or otherwise disturbing this line?  
It could be that the lines are configured for open drain. Make sure they’re configured as push-pull or have pull ups.

I note that earlier in the trace the enable line asserted during an initial clock transition.

---

<div class="post-metadata">

**Author:** ![mpisini](https://avatars.discourse-cdn.com/v4/letter/m/49beb7/32.png) [@mpisini](https://community.morsemicro.com/u/mpisini)\
**Post date:** [May 5, 2025, 11:46pm UTC](https://community.morsemicro.com/t/morse-micro-mm6108-integration-on-i-mx8mp-spi-response-issue/339/10 "2025-05-05T23:46:16Z")

</div>

Hey @ajudge would you mind pointing me to the download link for the schematics referenced earlier in the thread (“Recommended Usage Schematics”)?

> [@Morse Micro MM6108 Integration on i.MX8MP (SPI Response Issue)](https://community.morsemicro.com/t/morse-micro-mm6108-integration-on-i-mx8mp-spi-response-issue/339/5):
>
> Hi @ajudge , Please find the attached capture files. [Session 0.sal](https://community.morsemicro.com/uploads/short-url/f7pYz64hZysfdRyxo43jzT38oBb.sal) (4.5 KB) We have created our own PCB by taking the below document as reference: As you can see there is no pull up connected to the data lines While for SDIO, there are pull-ups: Thanks

Thank you!

---

<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:** [June 13, 2025, 4:42pm UTC](https://community.morsemicro.com/t/morse-micro-mm6108-integration-on-i-mx8mp-spi-response-issue/339/11 "2025-06-13T16:42:22Z")

</div>

@mpisini  
My apologies for the late reply here! The recommended usage schematics are available in the module datasheet as from [MM6108-MF08651-US Data Sheet (DS100)](https://www.morsemicro.com/download/mm6108-mf08651-us-data-sheet-ds100/)  
A whole lot of documentation has been made public through the website. Please see [Downloads Dashboard](https://www.morsemicro.com/downloads-dashboard/) for a variety of App Notes and evaluation kit reference design files too
