|
@@ -298,10 +298,19 @@ int board_late_init(void)
|
|
|
bootcount_inc();
|
|
|
|
|
|
if (bootcount > PEX_SWITCH_NOT_FOUNT_LIMIT) {
|
|
|
- printf("Issuing power-switch via uC!\n");
|
|
|
+ struct udevice *dev;
|
|
|
|
|
|
printf("Issuing power-switch via uC!\n");
|
|
|
- i2c_set_bus_num(STM_I2C_BUS);
|
|
|
+ ret = i2c_get_chip_for_busnum(STM_I2C_BUS, STM_I2C_ADDR,
|
|
|
+ 1, &dev);
|
|
|
+ if (ret) {
|
|
|
+ printf("Error selecting STM on I2C bus (ret=%d)\n",
|
|
|
+ ret);
|
|
|
+ printf("Issuing soft-reset...\n");
|
|
|
+ /* default handling: SOFT reset */
|
|
|
+ do_reset(NULL, 0, 0, NULL);
|
|
|
+ }
|
|
|
+
|
|
|
i2c_buf[0] = STM_I2C_ADDR << 1;
|
|
|
i2c_buf[1] = 0xc5; /* cmd */
|
|
|
i2c_buf[2] = 0x01; /* enable */
|
|
@@ -313,7 +322,7 @@ int board_late_init(void)
|
|
|
i2c_buf[6] = 0x00;
|
|
|
i2c_buf[7] = crc8(0x72, &i2c_buf[0], 7);
|
|
|
|
|
|
- ret = i2c_write(STM_I2C_ADDR, 0, 0, &i2c_buf[1], 7);
|
|
|
+ ret = dm_i2c_write(dev, 0, &i2c_buf[1], 7);
|
|
|
if (ret) {
|
|
|
printf("I2C write error (ret=%d)\n", ret);
|
|
|
printf("Issuing soft-reset...\n");
|