I am trying to enable TPM on an imx8mm processor with an Infineon slb9670 chip attaches to the ecspi1 lines.
I am getting the following errors
[ 1.098492] tpm_tis_spi spi0.0: 2.0 TPM (device-id 0x1B, rev-id 16)
[ 1.118373] tpm tpm0: tpm_transmit: tpm_send: error -5
[ 1.123520] tpm tpm0: TPM self test failed
[ 1.127637] tpm_tis_spi: probe of spi0.0 failed with error -5
My device tree contains the following
pinctrl_ecspi1: ecspi1grp {
fsl,pins =<
MX8MM_IOMUXC_ECSPI1_SCLK_ECSPI1_SCLK 0x156
MX8MM_IOMUXC_ECSPI1_MOSI_ECSPI1_MOSI 0x156
MX8MM_IOMUXC_ECSPI1_MISO_ECSPI1_MISO 0x156
// MX8MM_IOMUXC_ECSPI1_SS0_ECSPI1_SS0 0x156
>;
};
pinctrl_ecspi1_cs: ecspi1cs {
fsl,pins = <
MX8MM_IOMUXC_ECSPI1_SS0_ECSPI1_SS0 0x156
>;
};
pinctrl_spi1_ss0: spi1_ss0 {
fsl,pins = <
MX8MM_IOMUXC_ECSPI1_SS0_GPIO5_IO9 0x40000
>;
};
pinctrl_ecspi1_reset: ecspi1reset {
fsl,pins = <
MX8MM_IOMUXC_GPIO1_IO14_GPIO1_IO14 0x40000
>;
&ecspi1 {
#address-cells = <1>;
#size-cells = <0>;
fsl,spi-num-chipselects = <1>;
cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_ecspi1> ,<&pinctrl_spi1_ss0>, <&pinctrl_ecspi1_reset>;
status = "okay";
tpm0: slb9670@0 {
compatible = "infineon,slb9670","tcg,tpm_tis-spi";
reg = <0>;
status = "okay";
};
Anybody have any suggestions??
Hi Richard
reason may be that one pad is configured twice (pinctrl_ecspi1_cs, pinctrl_spi1_ss0):
MX8MM_IOMUXC_ECSPI1_SS0_ECSPI1_SS0, MX8MM_IOMUXC_ECSPI1_SS0_GPIO5_IO9
one can look at pinctrl_ecspi1 example on
Best regards
igor