/** * ti_i2c_set_alen - Set chip's i2c address length * @bus_addr - I2C bus number * @dev_addr - I2C eeprom id * @alen - I2C address length in bytes * * DM_I2C by default sets the address length to be used to 1. This * function allows this address length to be changed to match the * eeprom used for board detection. */ int __maybe_unused ti_i2c_set_alen(int bus_addr, int dev_addr, int alen) { struct udevice *dev; struct udevice *bus; int rc; rc = uclass_get_device_by_seq(UCLASS_I2C, bus_addr, &bus); if (rc) return rc; rc = i2c_get_chip(bus, dev_addr, 1, &dev); if (rc) return rc; rc = i2c_set_chip_offset_len(dev, alen); if (rc) return rc; return 0; }
static int st33zp24_i2c_probe(struct udevice *dev) { struct tpm_chip *chip = dev_get_priv(dev); /* Default timeouts */ chip->timeout_a = TIS_SHORT_TIMEOUT_MS; chip->timeout_b = TIS_LONG_TIMEOUT_MS; chip->timeout_c = TIS_SHORT_TIMEOUT_MS; chip->timeout_d = TIS_SHORT_TIMEOUT_MS; chip->locality = LOCALITY0; i2c_set_chip_offset_len(dev, 0); debug("ST33ZP24 I2C TPM from STMicroelectronics found\n"); return 0; }