No SPI Device on iMX8X, BSP 3.0b3

Hello,
I want to use the spidev interface with BSP 3.0b3 on a Colibri iMX8X (Carrier Board Iris) over the LPSPI interface.
I tried the “Linux Console Image Colibri iMX8X 3.0b3”.
After a successful boot, no “/dev/spidev…” showed up.

Next I tried the same thing on BDP 3.0b2, with very different results.
The device file showed up and “Clock”, “MISO”, “MOSI” were working fine, just the “Chip Select” was constantly high and didn’t go down to low while sending. In contrast to BSP 3.0b3 (where the kernel module is built-in) I had to “modprobe spidev” manually to get the /dev/ files to show up. Because I could not download the old pre-built Image, I used the BSP yocto layers to test this. I built the Image with a vanilla kernel config and devicetree (fsl-imx8qxp-colibri-dsihdmi-eval-v3-colibri-imx8x).

Hi @Bachelorand and Welcome to the Toradex Community!

By default our BSP uses the MCP2515 SPI CAN controller as available on our Colibri Evaluation board V3.x. Therefore the can device is activated and the SPI Device is deactivated as described here.

In Future, we will update the Documentation for Colibri iMX8, but meanwhile you can use the following patch.

diff --git a/arch/arm64/boot/dts/freescale/fsl-imx8qxp-colibri-eval-v3.dtsi b/arch/arm64/boot/dts/freescale/fsl-imx8qxp-colibri-eval-v3.dtsi
index 8fe89b10aa6a..3c8e12e65a49 100644
--- a/arch/arm64/boot/dts/freescale/fsl-imx8qxp-colibri-eval-v3.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-imx8qxp-colibri-eval-v3.dtsi
@@ -128,14 +128,14 @@
                spi-max-frequency = <10000000>;
                vdd-supply = <&reg_3v3>;
                xceiver-supply = <&reg_5v0>;
-               status = "okay";
+               status = "disabled";
        };
 
        spidev0: spidev@0 {
                compatible = "toradex,evalspi";
                reg = <0>;
                spi-max-frequency = <10000000>;
-               status = "disabled";
+               status = "okay";
        };
 };

Best regards,
Jaski