SPI TPM module support fail on jetpack 5.0.2/5.1 on jetson xavier agx

Hi,
If the SPI device device needs CS pin to be set to cs-gpios, please apply the patch and give it a try:

diff --git a/drivers/spi/spi-tegra114.c b/drivers/spi/spi-tegra114.c
index 26aa7cb29cbc..20c9799ba448 100644
--- a/drivers/spi/spi-tegra114.c
+++ b/drivers/spi/spi-tegra114.c
@@ -1517,10 +1517,22 @@ static int tegra_spi_transfer_one_message(struct spi_controller *ctrl,
 				tegra_spi_transfer_delay(xfer->delay_usecs);
 			}
 		} else if (xfer->cs_change) {
+			/* CS should de-asserted
+			 * at the end of current transfer
+			 */
 			if (cstate && cstate->cs_gpio_valid)
 				gpio_set_value(spi->cs_gpio, gval);
-			tegra_spi_writel(tspi, cmd1, SPI_COMMAND1);
+			if (!tspi->is_hw_based_cs) {
+				u32 cmd1_ncs = (cmd1 & SPI_CS_SW_VAL)
+						? cmd1 & ~SPI_CS_SW_VAL
+						: cmd1 |  SPI_CS_SW_VAL;
+				tegra_spi_writel(tspi, cmd1_ncs, SPI_COMMAND1);
+			}
 			tegra_spi_transfer_delay(xfer->delay_usecs);
+			/* CS should asserted again for the next transfer */
+			tegra_spi_writel(tspi, cmd1, SPI_COMMAND1);
+			if (cstate && cstate->cs_gpio_valid)
+				gpio_set_value(spi->cs_gpio, !gval);
 		}
 
 	}
@@ -1863,7 +1875,6 @@ static int tegra_spi_probe(struct platform_device *pdev)
 	tspi = spi_controller_get_devdata(ctrl);
 
 	/* the spi->mode bits understood by this driver: */
-	ctrl->use_gpio_descriptors = true;
 	ctrl->mode_bits = SPI_CPOL | SPI_CPHA | SPI_CS_HIGH | SPI_LSB_FIRST |
 			    SPI_TX_DUAL | SPI_RX_DUAL | SPI_3WIRE;
 	ctrl->bits_per_word_mask = SPI_BPW_RANGE_MASK(4, 32);

1 Like