Spi接口如何设置读取数据时miso为低电平

我在SPI0接了一个TPM芯片:slb9672
下面是设备树:

spi@3210000{
			status = "okay";
			spi@0 {
				status = "disabled";
			};
			slb9670: slb9670@0{
				compatible = "infineon,slb9670";
				reg = <0>;
				spi-max-frequency = <10000000>;
				status = "okay";
				controller-data {
					nvidia,enable-hw-based-cs;
					nvidia,rx-clk-tap-delay = <0x10>;
					nvidia,tx-clk-tap-delay = <0x0>;
				};
			};
		};

pinmux配置如下:

在安装模块tpm_tis_spi.ko时用逻辑分析器抓取读取数据时SPI波形如下:


图中MOSI是高电平,而正常工作时应该是低电平,请问应该如何修改?

我使用的SDK是Jetson_Linux 36.3,定制载板

Hi qiaowei.

MOSI is output pin. Please try configuring the column Req. Initial State to Drive 1 if you want it high at idle.

我需要MOSI空闲时是低电平,我修改了pinmux为Drive 0


生成设备树之后重新烧录了QSPI
但是我用逻辑分析仪测试MOSI还是高电平
怎么看修改是否生效?我在TRM文档中QSPI PAD Control Registers里面没有找到相关的寄存器

Could you share the result of the following command on your board?

$ sudo busybox devmem 0x0243d040

How about your clock? Idle with low level?
May I know what’s the SPI mode you want to use?
It should be configured in your SPI application.

执行这条命令结果是0x00000400
我看文档中这个寄存器是SPI1的,我使用的是SPI0
下面是读取其他寄存器的值:
image

是的,时钟空闲时是低电平,时钟信号是正确的
SPI应用程序是使用的Jetson Linux中的驱动:tpm_tis_core.ko和tpm_tis_spi.ko

SPI0 from Module is exact the SPI1 from SoC so that 0x0243d040 should be the correct register for your 89, SPI0_MOSI showing in pinmux spreadsheet.

0x400 means it is configured for SPI usage with none pull.
Could you try configure 0x404 for it to check?

$ sudo busybox devmem 0x0243d040 w 0x404
$ sudo busybox devmem 0x0243d040

Please let me know which SPI mode would you like to use.
and what do you configure the SPI mode in your application?

Is this still an issue to support? Any result can be shared?

谢谢,不需要了,我在论坛上找到答案了