<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic i.MX8 ECSPI1 and TLB SLB9670 in i.MX Processors</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/i-MX8-ECSPI1-and-TLB-SLB9670/m-p/1578713#M199703</link>
    <description>&lt;P&gt;Hello, I am trying to integrate an Infineon TPM SLB9670 into an i.MX8MP system. The TPM is connected via ECSPI1 and is the only device on that bus. The Linux kernel is 5.4.188 through Yocto Dunfell.&amp;nbsp; The TPM device driver fails to initialize.&amp;nbsp; I added some printk's, and see that during &lt;FONT face="courier new,courier"&gt;tpm_tis_spi_probe()&lt;/FONT&gt;, it invokes &lt;FONT face="courier new,courier"&gt;tpm_tis_core_init()&lt;/FONT&gt;, an SPI transfer is started, and sometimes fails with error -110.&amp;nbsp; This corresponds to an &lt;FONT face="courier new,courier"&gt;ETIMEOUT&lt;/FONT&gt;, and is caused by the spi transfer failing after 50 attempts.&amp;nbsp; After that, the tpm_tis_core_init returns an error -19, and the TPM does not initialize:&lt;BR /&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;[ 5.109788] tpm: tpm_tis_spi_probe&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;[ 5.109809] tpm: tpm_tis_spi_transfer start addr=0 len=1&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;[ 5.110840] tpm: tpm_tis_spi_transfer fin=-110&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;[ 5.110845] tpm: tpm_tis_spi_transfer start addr=8 len=4&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;[ 5.110934] tpm: tpm_tis_spi_transfer fin=0&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;[ 5.110936] tpm: tpm_tis_spi_transfer start addr=8 len=4&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;[ 5.111850] tpm: tpm_tis_spi_transfer fin=-110&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;[ 5.111853] tpm: tpm_tis_core_init returned -19&lt;/FONT&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;I added mod wire to the SS0 and clock lines and used an o-scope.&amp;nbsp; It looks right (SS0 drops, there is a delay, and then the i.MX8 runs the clock, and then SS0 is released back up).&amp;nbsp; Note that the SS0 is pulled-up by the NXP (see pin mux below).&lt;/P&gt;&lt;P&gt;I followed guidance in these forums and disabled the DMA in the .dtsi and can see that its no longer listed in the /sys/devicetree entries.&amp;nbsp; I also dropped the clock - the iMX8 is using an 80MHz clock, the SLB9670 is powered by 1.8V, so it should run less than 25MHz, and the slowest possible clock is achieved with a pre-scalar of 7, so 11.4 MHz.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The Linux config (from /proc/config.gz):&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;root@imx8mplus:/tmp# grep TPM config &lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;CONFIG_TCG_TPM=y&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;CONFIG_HW_RANDOM_TPM=y&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;# CONFIG_TCG_VTPM_PROXY is not set&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;# CONFIG_TCG_FTPM_TEE is not set&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;# CONFIG_MFD_STPMIC1 is not set&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;# CONFIG_PWM_IMX_TPM is not set&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;The TPM is connected via the ECSPI1 bus as shown:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="tbriggs6_0-1673036526060.png" style="width: 245px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/206349i822A0D32ECA290CE/image-dimensions/245x218?v=v2" width="245" height="218" role="button" title="tbriggs6_0-1673036526060.png" alt="tbriggs6_0-1673036526060.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;There are three parts of the device tree:&lt;BR /&gt;&lt;BR /&gt;&lt;U&gt;&lt;STRONG&gt;imx8mp.dtsi:&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;ecspi1&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;spi@30820000&lt;/SPAN&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #address-cells = &amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #size-cells = &amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; compatible = &lt;/SPAN&gt;&lt;SPAN&gt;"fsl,imx8mp-ecspi"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"fsl,imx6ul-ecspi"&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; reg = &amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;0x30820000&lt;/SPAN&gt; &lt;SPAN&gt;0x10000&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; interrupts = &amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;GIC_SPI&lt;/SPAN&gt; &lt;SPAN&gt;31&lt;/SPAN&gt; &lt;SPAN&gt;IRQ_TYPE_LEVEL_HIGH&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; clocks = &amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;amp;clk&lt;/SPAN&gt; &lt;SPAN&gt;IMX8MP_CLK_ECSPI1_ROOT&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;,&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;amp;clk&lt;/SPAN&gt; &lt;SPAN&gt;IMX8MP_CLK_ECSPI1_ROOT&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; clock-names = &lt;/SPAN&gt;&lt;SPAN&gt;"ipg"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"per"&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; assigned-clock-rates = &amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;80000000&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; assigned-clocks = &amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;amp;clk&lt;/SPAN&gt; &lt;SPAN&gt;IMX8MP_CLK_ECSPI1&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; assigned-clock-parents = &amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;amp;clk&lt;/SPAN&gt; &lt;SPAN&gt;IMX8MP_SYS_PLL1_800M&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // per&amp;nbsp;&lt;A href="https://community.nxp.com/t5/i-MX-Processors/TPM-SLB9670-initialization-failed-on-i-MX8-ECSPI2/m-p/1003715/thread-id/148763" target="_blank"&gt;https://community.nxp.com/t5/i-MX-Processors/TPM-SLB9670-initialization-failed-on-i-MX8-ECSPI2/m-p/1003715/thread-id/148763&lt;/A&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // dmas = &amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;amp;sdma1&lt;/SPAN&gt; &lt;SPAN&gt;0&lt;/SPAN&gt; &lt;SPAN&gt;7&lt;/SPAN&gt; &lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;, &amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;amp;sdma1&lt;/SPAN&gt; &lt;SPAN&gt;1&lt;/SPAN&gt; &lt;SPAN&gt;7&lt;/SPAN&gt; &lt;SPAN&gt;2&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // dma-names = &lt;/SPAN&gt;&lt;SPAN&gt;"rx"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"tx"&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; status = &lt;/SPAN&gt;&lt;SPAN&gt;"disabled"&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; };&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;U&gt;&lt;STRONG&gt;imx8mp-product.dts&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;amp;ecspi1&lt;/SPAN&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; #address-cells = &amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; #size-cells = &amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; fsl,spi-num-chipselects = &amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; pinctrl-names = &lt;/SPAN&gt;&lt;SPAN&gt;"default"&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; pinctrl-0 = &amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;amp;pinctrl_ecspi1&lt;/SPAN&gt; &lt;SPAN&gt;&amp;amp;pinctrl_ecspi1_cs&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; cs-gpios = &amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;amp;gpio5&lt;/SPAN&gt; &lt;SPAN&gt;9&lt;/SPAN&gt; &lt;SPAN&gt;GPIO_ACTIVE_LOW&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; status = &lt;/SPAN&gt;&lt;SPAN&gt;"okay"&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;tpm0&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;spi@0&lt;/SPAN&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; reg = &amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; compatible = &lt;/SPAN&gt;&lt;SPAN&gt;"infineon,slb9670"&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; spi-max-frequency = &amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;11428571&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; status = &lt;/SPAN&gt;&lt;SPAN&gt;"okay"&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; };&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;};&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;U&gt;&lt;STRONG&gt;And later, in the .dts, the pinmux:&lt;/STRONG&gt;&lt;/U&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;pinctrl_ecspi1&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;ecspi1grp&lt;/SPAN&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; fsl,pins = &amp;lt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;MX8MP_IOMUXC_ECSPI1_MISO__ECSPI1_MISO&lt;/SPAN&gt;&lt;SPAN&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;0x82&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;MX8MP_IOMUXC_ECSPI1_MOSI__ECSPI1_MOSI&lt;/SPAN&gt;&lt;SPAN&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;0x82&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;MX8MP_IOMUXC_ECSPI1_SCLK__ECSPI1_SCLK&lt;/SPAN&gt;&lt;SPAN&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;0x82&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; };&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;pinctrl_ecspi1_cs&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;ecspi1cs&lt;/SPAN&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; fsl,pins = &amp;lt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;MX8MP_IOMUXC_ECSPI1_SS0__GPIO5_IO09&lt;/SPAN&gt;&lt;SPAN&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;0x146&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; };&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
    <pubDate>Fri, 06 Jan 2023 20:41:58 GMT</pubDate>
    <dc:creator>tbriggs6</dc:creator>
    <dc:date>2023-01-06T20:41:58Z</dc:date>
    <item>
      <title>i.MX8 ECSPI1 and TLB SLB9670</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX8-ECSPI1-and-TLB-SLB9670/m-p/1578713#M199703</link>
      <description>&lt;P&gt;Hello, I am trying to integrate an Infineon TPM SLB9670 into an i.MX8MP system. The TPM is connected via ECSPI1 and is the only device on that bus. The Linux kernel is 5.4.188 through Yocto Dunfell.&amp;nbsp; The TPM device driver fails to initialize.&amp;nbsp; I added some printk's, and see that during &lt;FONT face="courier new,courier"&gt;tpm_tis_spi_probe()&lt;/FONT&gt;, it invokes &lt;FONT face="courier new,courier"&gt;tpm_tis_core_init()&lt;/FONT&gt;, an SPI transfer is started, and sometimes fails with error -110.&amp;nbsp; This corresponds to an &lt;FONT face="courier new,courier"&gt;ETIMEOUT&lt;/FONT&gt;, and is caused by the spi transfer failing after 50 attempts.&amp;nbsp; After that, the tpm_tis_core_init returns an error -19, and the TPM does not initialize:&lt;BR /&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;[ 5.109788] tpm: tpm_tis_spi_probe&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;[ 5.109809] tpm: tpm_tis_spi_transfer start addr=0 len=1&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;[ 5.110840] tpm: tpm_tis_spi_transfer fin=-110&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;[ 5.110845] tpm: tpm_tis_spi_transfer start addr=8 len=4&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;[ 5.110934] tpm: tpm_tis_spi_transfer fin=0&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;[ 5.110936] tpm: tpm_tis_spi_transfer start addr=8 len=4&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;[ 5.111850] tpm: tpm_tis_spi_transfer fin=-110&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;[ 5.111853] tpm: tpm_tis_core_init returned -19&lt;/FONT&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;I added mod wire to the SS0 and clock lines and used an o-scope.&amp;nbsp; It looks right (SS0 drops, there is a delay, and then the i.MX8 runs the clock, and then SS0 is released back up).&amp;nbsp; Note that the SS0 is pulled-up by the NXP (see pin mux below).&lt;/P&gt;&lt;P&gt;I followed guidance in these forums and disabled the DMA in the .dtsi and can see that its no longer listed in the /sys/devicetree entries.&amp;nbsp; I also dropped the clock - the iMX8 is using an 80MHz clock, the SLB9670 is powered by 1.8V, so it should run less than 25MHz, and the slowest possible clock is achieved with a pre-scalar of 7, so 11.4 MHz.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The Linux config (from /proc/config.gz):&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;root@imx8mplus:/tmp# grep TPM config &lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;CONFIG_TCG_TPM=y&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;CONFIG_HW_RANDOM_TPM=y&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;# CONFIG_TCG_VTPM_PROXY is not set&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;# CONFIG_TCG_FTPM_TEE is not set&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;# CONFIG_MFD_STPMIC1 is not set&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;# CONFIG_PWM_IMX_TPM is not set&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;The TPM is connected via the ECSPI1 bus as shown:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="tbriggs6_0-1673036526060.png" style="width: 245px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/206349i822A0D32ECA290CE/image-dimensions/245x218?v=v2" width="245" height="218" role="button" title="tbriggs6_0-1673036526060.png" alt="tbriggs6_0-1673036526060.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;There are three parts of the device tree:&lt;BR /&gt;&lt;BR /&gt;&lt;U&gt;&lt;STRONG&gt;imx8mp.dtsi:&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;ecspi1&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;spi@30820000&lt;/SPAN&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #address-cells = &amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #size-cells = &amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; compatible = &lt;/SPAN&gt;&lt;SPAN&gt;"fsl,imx8mp-ecspi"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"fsl,imx6ul-ecspi"&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; reg = &amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;0x30820000&lt;/SPAN&gt; &lt;SPAN&gt;0x10000&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; interrupts = &amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;GIC_SPI&lt;/SPAN&gt; &lt;SPAN&gt;31&lt;/SPAN&gt; &lt;SPAN&gt;IRQ_TYPE_LEVEL_HIGH&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; clocks = &amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;amp;clk&lt;/SPAN&gt; &lt;SPAN&gt;IMX8MP_CLK_ECSPI1_ROOT&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;,&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;amp;clk&lt;/SPAN&gt; &lt;SPAN&gt;IMX8MP_CLK_ECSPI1_ROOT&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; clock-names = &lt;/SPAN&gt;&lt;SPAN&gt;"ipg"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"per"&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; assigned-clock-rates = &amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;80000000&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; assigned-clocks = &amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;amp;clk&lt;/SPAN&gt; &lt;SPAN&gt;IMX8MP_CLK_ECSPI1&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; assigned-clock-parents = &amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;amp;clk&lt;/SPAN&gt; &lt;SPAN&gt;IMX8MP_SYS_PLL1_800M&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // per&amp;nbsp;&lt;A href="https://community.nxp.com/t5/i-MX-Processors/TPM-SLB9670-initialization-failed-on-i-MX8-ECSPI2/m-p/1003715/thread-id/148763" target="_blank"&gt;https://community.nxp.com/t5/i-MX-Processors/TPM-SLB9670-initialization-failed-on-i-MX8-ECSPI2/m-p/1003715/thread-id/148763&lt;/A&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // dmas = &amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;amp;sdma1&lt;/SPAN&gt; &lt;SPAN&gt;0&lt;/SPAN&gt; &lt;SPAN&gt;7&lt;/SPAN&gt; &lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;, &amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;amp;sdma1&lt;/SPAN&gt; &lt;SPAN&gt;1&lt;/SPAN&gt; &lt;SPAN&gt;7&lt;/SPAN&gt; &lt;SPAN&gt;2&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // dma-names = &lt;/SPAN&gt;&lt;SPAN&gt;"rx"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;"tx"&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; status = &lt;/SPAN&gt;&lt;SPAN&gt;"disabled"&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; };&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;U&gt;&lt;STRONG&gt;imx8mp-product.dts&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;amp;ecspi1&lt;/SPAN&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; #address-cells = &amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; #size-cells = &amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; fsl,spi-num-chipselects = &amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;1&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; pinctrl-names = &lt;/SPAN&gt;&lt;SPAN&gt;"default"&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; pinctrl-0 = &amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;amp;pinctrl_ecspi1&lt;/SPAN&gt; &lt;SPAN&gt;&amp;amp;pinctrl_ecspi1_cs&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; cs-gpios = &amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;amp;gpio5&lt;/SPAN&gt; &lt;SPAN&gt;9&lt;/SPAN&gt; &lt;SPAN&gt;GPIO_ACTIVE_LOW&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; status = &lt;/SPAN&gt;&lt;SPAN&gt;"okay"&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;tpm0&lt;/SPAN&gt;&lt;SPAN&gt;:&lt;/SPAN&gt;&lt;SPAN&gt;spi@0&lt;/SPAN&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; reg = &amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; compatible = &lt;/SPAN&gt;&lt;SPAN&gt;"infineon,slb9670"&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; spi-max-frequency = &amp;lt;&lt;/SPAN&gt;&lt;SPAN&gt;11428571&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; status = &lt;/SPAN&gt;&lt;SPAN&gt;"okay"&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; };&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;};&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;U&gt;&lt;STRONG&gt;And later, in the .dts, the pinmux:&lt;/STRONG&gt;&lt;/U&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;pinctrl_ecspi1&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;ecspi1grp&lt;/SPAN&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; fsl,pins = &amp;lt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;MX8MP_IOMUXC_ECSPI1_MISO__ECSPI1_MISO&lt;/SPAN&gt;&lt;SPAN&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;0x82&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;MX8MP_IOMUXC_ECSPI1_MOSI__ECSPI1_MOSI&lt;/SPAN&gt;&lt;SPAN&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;0x82&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;MX8MP_IOMUXC_ECSPI1_SCLK__ECSPI1_SCLK&lt;/SPAN&gt;&lt;SPAN&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;0x82&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; };&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;pinctrl_ecspi1_cs&lt;/SPAN&gt;&lt;SPAN&gt;: &lt;/SPAN&gt;&lt;SPAN&gt;ecspi1cs&lt;/SPAN&gt;&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; fsl,pins = &amp;lt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN&gt;MX8MP_IOMUXC_ECSPI1_SS0__GPIO5_IO09&lt;/SPAN&gt;&lt;SPAN&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;0x146&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="courier new,courier" size="2"&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; };&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Fri, 06 Jan 2023 20:41:58 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX8-ECSPI1-and-TLB-SLB9670/m-p/1578713#M199703</guid>
      <dc:creator>tbriggs6</dc:creator>
      <dc:date>2023-01-06T20:41:58Z</dc:date>
    </item>
    <item>
      <title>Re: i.MX8 ECSPI1 and TLB SLB9670</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX8-ECSPI1-and-TLB-SLB9670/m-p/1583025#M200155</link>
      <description>&lt;P&gt;Have you check the signal MOSI and MISO?&lt;/P&gt;</description>
      <pubDate>Mon, 16 Jan 2023 08:57:41 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX8-ECSPI1-and-TLB-SLB9670/m-p/1583025#M200155</guid>
      <dc:creator>jimmychan</dc:creator>
      <dc:date>2023-01-16T08:57:41Z</dc:date>
    </item>
  </channel>
</rss>

