SPI fails to initialize when building for v3.3.0

Hello,

I wanted to update my project (Custom board using the nRF54L15 ) to the v3.3.0 SDK since this fixed a BLE bug with the v3.0.1. version.

To my knowledge I did not change anything regarding the SPI during this but now my first log message is:

[00:00:00.002,501] spi_nrfx_spim: Failed to initialize nrfx driver: -22
[00:00:00.002,516] LIS2DW12: Not able to read dev id
*** Booting My Application v2.0.0-unstable-ef772d323076 ***
*** Using nRF Connect SDK v3.3.0-ba167d9f3db4 ***
*** Using Zephyr...Code

(After this I built for v3.0.1 to compare where this does not fail.)

-22 is the error code for invalid parameters.
If I tracked it correctly this is coming from checks in the hal module but there I get lost in the details.

My devietree configuration is almost the same as for the nRF54l15DK:
//relevant parts of the overlay
&pinctrl {
    /omit-if-no-ref/ spi00_default: spi00_default {
        group1 {
            psels = <NRF_PSEL(SPIM_SCK, 2, 1)>,
                    <NRF_PSEL(SPIM_MOSI, 2, 8)>,
                    <NRF_PSEL(SPIM_MISO, 2, 4)>;
        };
    };

    /omit-if-no-ref/ spi00_sleep: spi00_sleep {
        group1 {
            psels = <NRF_PSEL(SPIM_SCK, 2, 1)>,
                    <NRF_PSEL(SPIM_MOSI, 2, 8)>,
                    <NRF_PSEL(SPIM_MISO, 2, 4)>;
            low-power-enable;
        };
    };

&spi00 {
    status = "okay";
    cs-gpios = <&gpio2 5 GPIO_ACTIVE_LOW>;
    lis2dw12: lis2dw12@0 {
        compatible = "st,lis2dw12";
        reg = <0>;
        spi-max-frequency = <10000000>;
        irq-gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
        status = "okay";
    };
};


I verifyed with nRF54 Pinlayout (QFN48 (QFAA) package) that the Pins should provide the intended functionality.

I am was considering wheter some change with TF-M for secure peripherals might be the cause but building without TF-M produces the same error.

1. Did the new version add any new settings/constraints I would have to consider?
2. Can I comment out the parameter check in the initilization function without risking damage to my board?

Thanks in advance
Jonathan Lange

Related