2020-05-06 08:28 AM
Hi,
I am working on a project where the hardware platform is based on STM32MP157c and the OS is Linux 4.19.9 .
I am facing on a issue about device tree spi configuration.
Following SPI_overview on wiki.st.com kernel config has been modified with:
CONFIG_SPI=y
CONFIG_SPI_MASTER=y
CONFIG_SPI_STM32=y
CONFIG_SPI_SPIDEV=y
while dts file has been modified adding spi2 DT configuration:
&spi2{
pinctrl-names = "default", "sleep";
pinctrl-0 = <&spi2_pins_mx>;
pinctrl-1 = <&spi2_sleep_pins_mx>;
cs-gpios = <&gpioi 0 0>;
status = "okay";
/* USER CODE BEGIN spi2 */
spidev@0x00 {
compatible = "spidev";
#address-cells = <1>;
#size-cells = <0>;
reg = <0>; /* CS #0 */
spi-max-frequency = <10000000>;
};
/* USER CODE END spi2 */
};
When the system goes up on /dev "spi" is not present and the dmesg reports the following error:
[ 1.782858] spi_stm32 4000b000.spi: clk rate = 0
[ 1.786353] spi_stm32: probe of 4000b000.spi failed with error -22
Attached config and dts files
Kind Regards
Renato
2020-05-12 11:57 PM
Hello,
did you configure the SPI kernel clock source in RCC ?
You could try to build a dummy project using CubeMx and retrofit the right portions in your Device Tree files (likely TF-A ones)
Regards.
2020-05-13 02:29 AM
Hi Patrick,
after the changes on RCC on TF-A dbs file, as suggested, the spi is now available.
Thanks a lot
Best Regards
Renato
2020-05-13 02:40 AM
Hello,
I was trying to solve the same issue as the author described during the whole last week
I remember having checked RCC configuration and SPI (spi5 I use) was configured as it should. However after reading your post I checked again, and found something weird on my tf-a dts file: even though it had a first definition of RCC with spi5 configured, at the end of my file in section "user code addons" there was a redefinition of RCC config with spi5 not configured. I removed this redefinition and the issue resolved. I don't understand why CubeMX put it there but removing it fixed my problem.
I uploaded this dts file so you may see it yourself, because I think this may be a CubeMX bug.