#include <linux/of.h>
#include <linux/property.h>
+/* Dummy I2C transfer length for SWCZ010 workaround */
+#define TPS65910_DUMMY_XFER_LEN 1
+
static const struct resource rtc_resources[] = {
{
.start = TPS65910_IRQ_RTC_ALARM,
* first I2C transfer. So issue a dummy transfer before the first
* real transfer.
*/
- i2c_master_send(i2c, "", 1);
+ ret = i2c_master_send(i2c, "", TPS65910_DUMMY_XFER_LEN);
+ if (ret != TPS65910_DUMMY_XFER_LEN) {
+ int err;
+
+ if (ret < 0)
+ err = ret;
+ else
+ err = -EIO;
+
+ return dev_err_probe(&i2c->dev, err, "dummy transfer failed\n");
+ }
+
tps65910->regmap = devm_regmap_init_i2c(i2c, &tps65910_regmap_config);
if (IS_ERR(tps65910->regmap)) {
ret = PTR_ERR(tps65910->regmap);