#define HSI2C_INT_RX_OVERRUN (1u << 5)
#define HSI2C_INT_TRAILING (1u << 6)
#define HSI2C_INT_I2C (1u << 9)
+#define HSI2C_INT_NODEV (1u << 10)
#define HSI2C_RX_INT (HSI2C_INT_RX_ALMOSTFULL | \
HSI2C_INT_RX_UNDERRUN | \
HSI2C_INT_RX_OVERRUN | \
dev_err(i2c->dev, "HSI2C Error Interrupt "
"occurred(IS:0x%08x, TR:0x%08x)\n",
(unsigned int)reg_val, (unsigned int)trans_status);
+
+ if (reg_val & HSI2C_INT_NODEV) {
+ dev_err(i2c->dev, "HSI2C NO ACK occured\n");
+ goto out;
+ }
+
i2c->trans_done = -ENXIO;
exynos5_i2c_stop(i2c);
goto out;