Ok thanks @lht856 the link was really helpful, it is working now!
Here are the steps for Manjaro or Arch linux users:
Download the spi-enable.zip from the seeed wiki
Install iasl and cpio:
pacman -Syu iasl cpio
Unzip spi-enable.zip and generate .aml files using iasl:
$: cd ~/Downloads
$: unzip spi-enable.zip
$: cd spi-enable
$: iasl spidev1.0.asl
$: iasl spidev1.1.asl
Change to root user and change to /tmp directory to work in:
$: su -
$: cd /tmp
Make a directory to patch the acpi tables:
$: mkdir -p kernel/firmware/acpi
Move the generated .aml files into the directory (replace USER with your username):
$: mv /home/USER/Downloads/spi-enable/*.aml /tmp/kernel/firmware/acpi/
Now create a new cpio image with the directory and .aml files:
$: find kernel | cpio -H newc --create > /boot/initramfs-custom.img
Append your current initramfs image to the end of the custom image:
note: your initramfs image might have a different name depending on the kernel, so do ls /boot
and replace the .img name in the following commands with one that matches your kernel.
$: cat /boot/initramfs-5.13-x86_64.img >> /boot/initramfs-custom.img
Backup your current initramfs image:
$: cp /boot/initramfs-5.13-x86_64.img /boot/initramfs-5.13-x86_64.img.backup
Now replace your original initramfs image with the custom image:
$: mv /boot/initramfs-custom.img /boot/initramfs-5.13-x86_64.img
Verify that the .aml files have been added:
$: lsinitcpio /boot/initramfs-5.13-x86_64.img | head
The output should be:
kernel
kernel/firmware
kernel/firmware/acpi
kernel/firmware/acpi/spidev1.1.aml
kernel/firmware/acpi/spidev1.0.aml
now reboot and do ls /dev/spi*
you should see the ports now!
I don’t know how to automate this on Arch linux so it will be written over the next time a kernel updates.