Skip to content

Commit a85ff1c

Browse files
JordanMajdturmary
authored andcommitted
Add the SAMD51s 4 i2c interrupts to ensure slave support
from adafruit#185
1 parent fe314ce commit a85ff1c

File tree

1 file changed

+48
-18
lines changed

1 file changed

+48
-18
lines changed

libraries/Wire/Wire.cpp

Lines changed: 48 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -284,48 +284,78 @@ void TwoWire::onService(void)
284284
#endif // PERIPH_WIRE
285285
TwoWire Wire(&PERIPH_WIRE, PIN_WIRE_SDA, PIN_WIRE_SCL);
286286

287-
void WIRE_IT_HANDLER(void) {
288-
Wire.onService();
289-
}
287+
void WIRE_IT_HANDLER(void) { Wire.onService(); }
288+
289+
#if defined(__SAMD51__)
290+
void WIRE_IT_HANDLER_0(void) { Wire.onService(); }
291+
void WIRE_IT_HANDLER_1(void) { Wire.onService(); }
292+
void WIRE_IT_HANDLER_2(void) { Wire.onService(); }
293+
void WIRE_IT_HANDLER_3(void) { Wire.onService(); }
294+
#endif // __SAMD51__
290295
#endif
291296

292297
#if WIRE_INTERFACES_COUNT > 1
293298
TwoWire Wire1(&PERIPH_WIRE1, PIN_WIRE1_SDA, PIN_WIRE1_SCL);
294299

295-
void WIRE1_IT_HANDLER(void) {
296-
Wire1.onService();
297-
}
300+
void WIRE1_IT_HANDLER(void) { Wire1.onService(); }
301+
302+
#if defined(__SAMD51__)
303+
void WIRE1_IT_HANDLER_0(void) { Wire1.onService(); }
304+
void WIRE1_IT_HANDLER_1(void) { Wire1.onService(); }
305+
void WIRE1_IT_HANDLER_2(void) { Wire1.onService(); }
306+
void WIRE1_IT_HANDLER_3(void) { Wire1.onService(); }
307+
#endif // __SAMD51__
298308
#endif
299309

300310
#if WIRE_INTERFACES_COUNT > 2
301311
TwoWire Wire2(&PERIPH_WIRE2, PIN_WIRE2_SDA, PIN_WIRE2_SCL);
302312

303-
void WIRE2_IT_HANDLER(void) {
304-
Wire2.onService();
305-
}
313+
void WIRE2_IT_HANDLER(void) { Wire2.onService(); }
314+
315+
#if defined(__SAMD51__)
316+
void WIRE2_IT_HANDLER_0(void) { Wire2.onService(); }
317+
void WIRE2_IT_HANDLER_1(void) { Wire2.onService(); }
318+
void WIRE2_IT_HANDLER_2(void) { Wire2.onService(); }
319+
void WIRE2_IT_HANDLER_3(void) { Wire2.onService(); }
320+
#endif // __SAMD51__
306321
#endif
307322

308323
#if WIRE_INTERFACES_COUNT > 3
309324
TwoWire Wire3(&PERIPH_WIRE3, PIN_WIRE3_SDA, PIN_WIRE3_SCL);
310325

311-
void WIRE3_IT_HANDLER(void) {
312-
Wire3.onService();
313-
}
326+
void WIRE3_IT_HANDLER(void) { Wire3.onService(); }
327+
328+
#if defined(__SAMD51__)
329+
void WIRE3_IT_HANDLER_0(void) { Wire3.onService(); }
330+
void WIRE3_IT_HANDLER_1(void) { Wire3.onService(); }
331+
void WIRE3_IT_HANDLER_2(void) { Wire3.onService(); }
332+
void WIRE3_IT_HANDLER_3(void) { Wire3.onService(); }
333+
#endif // __SAMD51__
314334
#endif
315335

316336
#if WIRE_INTERFACES_COUNT > 4
317337
TwoWire Wire4(&PERIPH_WIRE4, PIN_WIRE4_SDA, PIN_WIRE4_SCL);
318338

319-
void WIRE4_IT_HANDLER(void) {
320-
Wire4.onService();
321-
}
339+
void WIRE4_IT_HANDLER(void) { Wire4.onService(); }
340+
341+
#if defined(__SAMD51__)
342+
void WIRE4_IT_HANDLER_0(void) { Wire4.onService(); }
343+
void WIRE4_IT_HANDLER_1(void) { Wire4.onService(); }
344+
void WIRE4_IT_HANDLER_2(void) { Wire4.onService(); }
345+
void WIRE4_IT_HANDLER_3(void) { Wire4.onService(); }
346+
#endif // __SAMD51__
322347
#endif
323348

324349
#if WIRE_INTERFACES_COUNT > 5
325350
TwoWire Wire5(&PERIPH_WIRE5, PIN_WIRE5_SDA, PIN_WIRE5_SCL);
326351

327-
void WIRE5_IT_HANDLER(void) {
328-
Wire5.onService();
329-
}
352+
void WIRE5_IT_HANDLER(void) { Wire5.onService(); }
353+
354+
#if defined(__SAMD51__)
355+
void WIRE5_IT_HANDLER_0(void) { Wire5.onService(); }
356+
void WIRE5_IT_HANDLER_1(void) { Wire5.onService(); }
357+
void WIRE5_IT_HANDLER_2(void) { Wire5.onService(); }
358+
void WIRE5_IT_HANDLER_3(void) { Wire5.onService(); }
359+
#endif // __SAMD51__
330360
#endif
331361

0 commit comments

Comments
 (0)