Message ID | 20230325183409.7695-1-kyarlagadda@nvidia.com (mailing list archive) |
---|---|
Headers | show |
Series | Tegra TPM driver with HW flow control | expand |
On Sun, Mar 26, 2023 at 12:04:06AM +0530, Krishna Yarlagadda wrote: > TPM devices may insert wait state on last clock cycle of ADDR phase. > For SPI controllers that support full-duplex transfers, this can be > detected using software by reading the MISO line. For SPI controllers > that only support half-duplex transfers, such as the Tegra QSPI, it is > not possible to detect the wait signal from software. The QSPI > controller in Tegra234 and Tegra241 implement hardware detection of the > wait signal which can be enabled in the controller for TPM devices. > > Add HW flow control in TIS driver and a flag in SPI data to indicate > wait detection is required in HW. SPI controller driver determines if > this is supported. Add HW detection in Tegra QSPI controller. > > Updates in this patch set > - Tegra QSPI identifies itself as half duplex. > - TPM TIS SPI driver skips flow control for half duplex and send > transfers in single message for controller to handle it. > - TPM device identifies as TPM device for controller to detect and > enable HW TPM wait poll feature. > > Verified with a TPM device on Tegra241 ref board using TPM2 tools. > > V9 > - renamed tpm spi transfer functions > V8: > - fix compile warning. > V7: > - updated patch description. > - TPM flag set in probe. > - minor comments. > V6: > - Fix typo in chip name Tegra234. > - Debug logs change skipped to be sent later. > - Consistent usage of soc flag. > V5: > - No SPI bus locking. > V4: > - Split api change to different patch. > - Describe TPM HW flow control. > V3: > - Use SPI device mode flag and SPI controller flags. > - Drop usage of device tree flags. > - Generic TPM half duplex controller handling. > - HW & SW flow control for TPM. Drop additional driver. > V2: > - Fix dt schema errors. > > Krishna Yarlagadda (3): > spi: Add TPM HW flow flag > tpm_tis-spi: Add hardware wait polling > spi: tegra210-quad: Enable TPM wait polling > > drivers/char/tpm/tpm_tis_spi_main.c | 91 ++++++++++++++++++++++++++++- > drivers/spi/spi-tegra210-quad.c | 14 +++++ > include/linux/spi/spi.h | 16 ++++- > 3 files changed, 116 insertions(+), 5 deletions(-) > > -- > 2.17.1 > Looks quite sane to me. Can anyone peer test these (i.e. provide tested-by)? BR, Jarkko