diff --git a/libraries/mbed/targets/hal/TARGET_Atmel/TARGET_SAM0/i2c_api.c b/libraries/mbed/targets/hal/TARGET_Atmel/TARGET_SAM0/i2c_api.c index 73e01f7b07..dbd93226de 100644 --- a/libraries/mbed/targets/hal/TARGET_Atmel/TARGET_SAM0/i2c_api.c +++ b/libraries/mbed/targets/hal/TARGET_Atmel/TARGET_SAM0/i2c_api.c @@ -671,8 +671,13 @@ int i2c_slave_receive(i2c_t *obj) /* Slave is read addressed */ return 1; } else { - /* Slave is write addressed */ - return 3; + if (!(i2c_module->DATA.reg & 0xFF)) { + /* General call address detected */ + return 2; + } else { + /* Slave is write addressed */ + return 3; + } } }