I am trying to get Halow working with these hardware setup over SPI
- Raspberry Pi 5
- Seeed WM1302 pi hat
- Seeed WM6108 mini PCI card (with Quectel FGH100M-H and mm6108)
Software packages used:
- OS: Raspberry Linux
- Kernel version: 6.12.47 (stable_20250916)
- Morse rpi-linux patch 6.12.21
- Morse driver 1.16.x
- Morse firmware: mm6108.bin and bcd_fgh100mhaamd.bin
I found useful information from these:
- HaLow Integration on Raspberry Pi 5 ,
- Raspberry Pi Zero 2W with FGH100M .
- zero2w_80211ah/README.md at main · ykhan1999/zero2w_80211ah · GitHub
- MM_APPNOTE-24_Linux_Porting_Guide_V2
did the followings
- patched the kernel source with Morse rpi-linux - manually resolved a few conflicts
- configured the kernel with necessary flags for CRYPTO
- built Image, modules, dtbs with .config and System.map
- built Morse driver (morse.ko and 80211ah.ko) against the patched kernel
- download firmware *bin files
- wrote the dts, compiled
My DTS: morse-mm610x-spi-overlay.dts
/dts-v1/;
/plugin/;
/ {
compatible = "brcm,bcm2835", "brcm,bcm2836", "brcm,bcm2708", "brcm,bcm2709", "brcm,bcm2711";
fragment@0 {
target = <&spi0>;
__overlay__ {
pinctrl-0 = <&spi0_pins &spi0_cs_pins>;
cs-gpios = <&gpio 8 1>;
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
mm6108: mm6108@0 {
compatible = "morse,mm610x-spi";
reg = <0>; /* CE0 */
reset-gpios = <&gpio 17 1>;
power-gpios = <&gpio 23 0>,
<&gpio 24 0>;
spi-irq-gpios = <&gpio 5 0>;
spi-max-frequency = <10000000>;
status = "okay";
};
spidev@1 { reg = <1>; status = "disabled"; };
spidev@2 { reg = <2>; status = "disabled"; };
};
};
fragment@1 {
target = <&gpio>;
__overlay__ {
spi0_pins: spi0_pins {
brcm,pins = <9 10 11>;
brcm,function = <4 4 4>;
brcm,pull = <2 2 2>;
};
spi0_cs_pins: spi0_cs_pins {
brcm,pins = <8>;
brcm,function = <1>;
brcm,pull = <2>;
};
mm6108_pins: mm6108_pins {
brcm,pins = <17 23 24>;
brcm,function = <1 1 1>;
brcm,pull = <0 0 0>;
};
};
};
};
Then I deployed them to the SDcard running on RPi 5, created symbolic link to bcf_boardtype_0801.bin.
After reboot. I got these SPI errors “chip select 0 already in use”
[ 2.226925] rp1-firmware rp1_firmware: RP1 Firmware version eb39cfd516f8c90628aa9d91f52370aade5d0a55
[ 2.229240] spi spi0.0: chipselect 0 already in use
[ 2.229249] spi_master spi0: spi_device register error /axi/pcie@1000120000/rp1/spi@50000/spidev@0
[ 2.229256] spi_master spi0: Failed to create SPI device for /axi/pcie@1000120000/rp1/spi@50000/spidev@0
and the driver didn’t load
[ 9.892319] dot11ah: loading out-of-tree module taints kernel.
[ 9.893016] Morse Micro Dot11ah driver registration. Version 0-rel_1_16_4_2025_Sep_18
[ 10.185262] morse micro driver registration. Version 0-rel_1_16_4_2025_Sep_18
[ 10.185706] morse_spi spi0.0: morse_spi_probe: failed to init SPI with CMD63 (ret:-61)
[ 10.185719] morse_spi_probe failed. The driver has not been loaded!
[ 10.185721] morse_spi spi0.0: probe with driver morse_spi failed with error -61
My config.txt has these lines, and my DTBO has lines to disable spidev@
dtoverlay=spi0-0cs
dtoverlay=morse-mm610x-spi-overlay
Can someone help me get pass this issue? Thanks
NOTE: I followed Yourself’s repo and blacklisted morse, morse_spi, dot11ah from autostart.