Can't activate ecspi1 and ecspi2 in the DTS

Hello,

we are currently trying to activate four SPIs (ecspi1 - ecspi4), but face problems when using the imx7-colibri.dtsi.

We deleted the whole of pinctrl_gpio2, but still get an error from u-boot that it can’t claim MX7D_PAD_ECSPI1_SCLK for ecspi1.

Does anyone have an idea how to get this and also other pins free so that we can activate the spi?

Best Regards,
Pascal

So you need in in U-Boot, Linux or both?

BTW: BSP 2.8b3 is no longer supported. Please upgrade to a stable or the latest beta version BSP at your earliest convenience.

The SPI is only needed in Linux, but when u-boot boots it tries to load the DTB which then results in error message regarding the SPI.

Could you provide the complete bootlog in a file? What changes have you done for the SPI? Please provide these changes in file. Thanks.

I provided the dmesg output of the boot process and also the changed imx7-colibri.dtsi.

If you need anything else please let me know.

link text

Thanks for the files. The issue is that the pins MX7D_PAD_ECSPI1_SCLK and MX7D_PAD_ENET1_RGMII_RD2 are already used somewhere else, so you should check for them in the device tree files and make sure the pins you want to use for SPI are not occupied by any other function.

Hi! In the files provided and also the other device trees the pin MX7D_PAD_ECSPI1_SCLK is only used by

	pinctrl_ecspi1: ecspi1-grp {
		fsl,pins = <
			MX7D_PAD_ECSPI1_MISO__ECSPI1_MISO		0x2
			MX7D_PAD_ECSPI1_MOSI__ECSPI1_MOSI		0x2
			MX7D_PAD_ECSPI1_SCLK__ECSPI1_SCLK		0x2
		>;
	};

Could there be another reason why u-boot has the impression this pin is already used?

hi
I think you did not compile the device tree file you sent me for the bootlog. Anyway I compiled your file and correct the errors. Find the corrected file here.
Now there should be no errors concerning multiplexing. To use the new SPI outputs, you will still need to create the Spidev Nodes similar to this example. Look here for further Information about devicetree customization.

Hi

Thank you for you Input. We double checked (hopefully) everything.

So I took our .dtb file which is currently loaded and compiled it back into one .dts Re-Compiled.

Regarding the MX7D_PAD_ECSPI1_SCLK: It is used in gpio2-grp beside our SPI so this group should be populated and also ecspi1. But this is not the case…

				gpio2-grp {
					fsl,pins;
				};

After that we took our file and compiled again and got the same error. We then checked again if we made an error in our carrier board level .dtsi but weren’t able to find conflict which would cause that error.

Is there some driver which automatically loads some iomux functions?

which device tree file did you compile? Please make sure to compile the eMMC version since iMX7D is using eMMC Flash.