Skip to main content
thp9
Associate II
May 6, 2020
Solved

Error activating spi module in Yocto Linux project

  • May 6, 2020
  • 3 replies
  • 5440 views

Hello,

I have a Yocto Project with st-stm32mp1 layer, using Poky distribution along with customized CubeMX machine that I created using st-stm32mp1-addons layers

I need to use the spi5 module, so I activated it through CubeMX for the "A7NS" runtime context.

I compiled and run the machine, but during boot I get this message:

[ 1.533147] spi_stm32 44009000.spi: clk rate = 0               

[ 1.536942] spi_stm32: probe of 44009000.spi failed with error -22  

I also tried with spi1 and got the same error message.

All my kernel variables are default ( SPI=y, SPI_MASTER=y, SPI_STM32=y, SPI_SPIDEV=y)

I also haven't touch any clock configuration in CubeMX, everything should be default.

I uploaded my boot log as attachment, you can find the error message at line 223. There are two messages because I tried with both spi1 and spi5.

I have also uploaded my machine configuration file, along with the cubeMX project

Any idea why this would happen ?

Thanks for your help,

Best answer by thp9

I fixed this problem after removing a redefinition of RCC generated by CubeMX under tf-a dts file. There were 2 configurations of RCC defined: first one with spi clock configured as it should, and another at the end of the file under section "user code addons" in which the spi clock was disabled for a reason unknown

3 replies

TDK
Super User
May 6, 2020

This is the STM32 MCU forum. The STM32 MPU forum is here:

https://community.st.com/stm32mpu

You'll probably have better luck asking there.

"If you feel a post has answered your question, please click ""Accept as Solution""."
thp9
thp9Author
Associate II
May 6, 2020

My post is not listed on a single forum but multiple ones according to the topics I have chosen below my post. Some topics may be sub topics of STM32 MCU this is why you saw it there, but it's also there in the MPU forums.

TDK
Super User
May 6, 2020

I had no idea the forum worked that way. Thanks for the explanation. Probably STM32CubeMX is a member of both.

"If you feel a post has answered your question, please click ""Accept as Solution""."
thp9
thp9AuthorBest answer
Associate II
May 13, 2020

I fixed this problem after removing a redefinition of RCC generated by CubeMX under tf-a dts file. There were 2 configurations of RCC defined: first one with spi clock configured as it should, and another at the end of the file under section "user code addons" in which the spi clock was disabled for a reason unknown

RPiet.1
Associate
March 4, 2021

Hi. Do you mind writing what exactly have you done ? I have modified tf-a dts to enable in my case SPI45 clocks but it didn't help much and I still get clk rate = 0.

AMill.9
Associate
March 15, 2023

Hi,

I have the same error and I wasn't able to see a redifined RCC generated by CubeMX in my tf-a dts file. I 'm using the buildroot config: st_stm32mp157f_dk2_demo_defconfig provided by github buildroot-external-st repository (new member so can't add link)

After generating from CubeMX I added the following user code in my linux-dts and uboot-dts files:

&spi5{

pinctrl-names = "default", "sleep";

pinctrl-0 = <&spi5_pins_mx>;

pinctrl-1 = <&spi5_sleep_pins_mx>;

 cs-gpios= <&gpiof 6 0>;

status = "okay";

/* USER CODE BEGIN spi5 */

 spidev@0{

  compatible = "linux,spidev";

  reg = <0>;

  spi-max-frequency = <4000000>;

 };

/* USER CODE END spi5 */

};

I also ensured:

CLK_SPI2S23_PLL3Q

CLK_SPI45_PCLK2

are set in my tfa-dts file

I'm out of ideas for solving this and would appreciate if anyone could help me troubleshoot

debugging
Lead
August 5, 2024

@AMill.9 After 1.5 years, have you fond a solution ? I cannot get SPI2 to work. No /dev/spi device. Also had to add the clocks and protection in OP-TEE. but no luck.