if (!tpm_dev)
return -ENOMEM;
- chip = tpm_register_hardware(&client->dev, &st_i2c_tpm);
- if (!chip) {
- dev_info(&client->dev, "fail chip\n");
- return -ENODEV;
- }
+ chip = tpmm_chip_alloc(&client->dev, &st_i2c_tpm);
+ if (IS_ERR(chip))
+ return PTR_ERR(chip);
TPM_VPRIV(chip) = tpm_dev;
tpm_dev->client = client;
tpm_get_timeouts(chip);
tpm_do_selftest(chip);
- dev_info(chip->dev, "TPM I2C Initialized\n");
- return 0;
+ return tpm_chip_register(chip);
_tpm_clean_answer:
- tpm_remove_hardware(chip->dev);
dev_info(chip->dev, "TPM I2C initialisation fail\n");
return ret;
}
(struct tpm_chip *) i2c_get_clientdata(client);
if (chip)
- tpm_remove_hardware(chip->dev);
+ tpm_chip_unregister(chip);
return 0;
}