Skip to content

Commit 6be0d1f

Browse files
committed
Merge branch 'JordanMajd-patch_samd51_i2c_slave'
2 parents 1ab7cb6 + feb846a commit 6be0d1f

File tree

15 files changed

+119
-8
lines changed

15 files changed

+119
-8
lines changed

libraries/Wire/Wire.cpp

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -287,6 +287,13 @@ void TwoWire::onService(void)
287287
void WIRE_IT_HANDLER(void) {
288288
Wire.onService();
289289
}
290+
291+
#if defined(__SAMD51__)
292+
void WIRE_IT_HANDLER_0(void) { Wire.onService(); }
293+
void WIRE_IT_HANDLER_1(void) { Wire.onService(); }
294+
void WIRE_IT_HANDLER_2(void) { Wire.onService(); }
295+
void WIRE_IT_HANDLER_3(void) { Wire.onService(); }
296+
#endif // __SAMD51__
290297
#endif
291298

292299
#if WIRE_INTERFACES_COUNT > 1
@@ -295,6 +302,13 @@ void TwoWire::onService(void)
295302
void WIRE1_IT_HANDLER(void) {
296303
Wire1.onService();
297304
}
305+
306+
#if defined(__SAMD51__)
307+
void WIRE1_IT_HANDLER_0(void) { Wire1.onService(); }
308+
void WIRE1_IT_HANDLER_1(void) { Wire1.onService(); }
309+
void WIRE1_IT_HANDLER_2(void) { Wire1.onService(); }
310+
void WIRE1_IT_HANDLER_3(void) { Wire1.onService(); }
311+
#endif // __SAMD51__
298312
#endif
299313

300314
#if WIRE_INTERFACES_COUNT > 2
@@ -303,6 +317,13 @@ void TwoWire::onService(void)
303317
void WIRE2_IT_HANDLER(void) {
304318
Wire2.onService();
305319
}
320+
321+
#if defined(__SAMD51__)
322+
void WIRE2_IT_HANDLER_0(void) { Wire2.onService(); }
323+
void WIRE2_IT_HANDLER_1(void) { Wire2.onService(); }
324+
void WIRE2_IT_HANDLER_2(void) { Wire2.onService(); }
325+
void WIRE2_IT_HANDLER_3(void) { Wire2.onService(); }
326+
#endif // __SAMD51__
306327
#endif
307328

308329
#if WIRE_INTERFACES_COUNT > 3
@@ -311,6 +332,13 @@ void TwoWire::onService(void)
311332
void WIRE3_IT_HANDLER(void) {
312333
Wire3.onService();
313334
}
335+
336+
#if defined(__SAMD51__)
337+
void WIRE3_IT_HANDLER_0(void) { Wire3.onService(); }
338+
void WIRE3_IT_HANDLER_1(void) { Wire3.onService(); }
339+
void WIRE3_IT_HANDLER_2(void) { Wire3.onService(); }
340+
void WIRE3_IT_HANDLER_3(void) { Wire3.onService(); }
341+
#endif // __SAMD51__
314342
#endif
315343

316344
#if WIRE_INTERFACES_COUNT > 4
@@ -319,6 +347,13 @@ void TwoWire::onService(void)
319347
void WIRE4_IT_HANDLER(void) {
320348
Wire4.onService();
321349
}
350+
351+
#if defined(__SAMD51__)
352+
void WIRE4_IT_HANDLER_0(void) { Wire4.onService(); }
353+
void WIRE4_IT_HANDLER_1(void) { Wire4.onService(); }
354+
void WIRE4_IT_HANDLER_2(void) { Wire4.onService(); }
355+
void WIRE4_IT_HANDLER_3(void) { Wire4.onService(); }
356+
#endif // __SAMD51__
322357
#endif
323358

324359
#if WIRE_INTERFACES_COUNT > 5
@@ -327,5 +362,12 @@ void TwoWire::onService(void)
327362
void WIRE5_IT_HANDLER(void) {
328363
Wire5.onService();
329364
}
365+
366+
#if defined(__SAMD51__)
367+
void WIRE5_IT_HANDLER_0(void) { Wire5.onService(); }
368+
void WIRE5_IT_HANDLER_1(void) { Wire5.onService(); }
369+
void WIRE5_IT_HANDLER_2(void) { Wire5.onService(); }
370+
void WIRE5_IT_HANDLER_3(void) { Wire5.onService(); }
371+
#endif // __SAMD51__
330372
#endif
331373

variants/feather_m4/variant.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,10 @@ static const uint8_t SCK = PIN_SPI_SCK ;
157157
#define PIN_WIRE_SCL (22u)
158158
#define PERIPH_WIRE sercom2
159159
#define WIRE_IT_HANDLER SERCOM2_Handler
160+
#define WIRE_IT_HANDLER_0 SERCOM2_0_Handler
161+
#define WIRE_IT_HANDLER_1 SERCOM2_1_Handler
162+
#define WIRE_IT_HANDLER_2 SERCOM2_2_Handler
163+
#define WIRE_IT_HANDLER_3 SERCOM2_3_Handler
160164

161165
static const uint8_t SDA = PIN_WIRE_SDA;
162166
static const uint8_t SCL = PIN_WIRE_SCL;

variants/grand_central_m4/variant.h

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,10 @@ static const uint8_t SCK1 = PIN_SPI1_SCK;
217217
#define PIN_WIRE_SCL (63)
218218
#define PERIPH_WIRE sercom3
219219
#define WIRE_IT_HANDLER SERCOM3_Handler
220+
#define WIRE_IT_HANDLER_0 SERCOM3_0_Handler
221+
#define WIRE_IT_HANDLER_1 SERCOM3_1_Handler
222+
#define WIRE_IT_HANDLER_2 SERCOM3_2_Handler
223+
#define WIRE_IT_HANDLER_3 SERCOM3_3_Handler
220224

221225
static const uint8_t SDA = PIN_WIRE_SDA;
222226
static const uint8_t SCL = PIN_WIRE_SCL;
@@ -225,6 +229,10 @@ static const uint8_t SCL = PIN_WIRE_SCL;
225229
#define PIN_WIRE1_SCL (24)
226230
#define PERIPH_WIRE1 sercom6
227231
#define WIRE1_IT_HANDLER SERCOM6_Handler
232+
#define WIRE1_IT_HANDLER_0 SERCOM6_0_Handler
233+
#define WIRE1_IT_HANDLER_1 SERCOM6_1_Handler
234+
#define WIRE1_IT_HANDLER_2 SERCOM6_2_Handler
235+
#define WIRE1_IT_HANDLER_3 SERCOM6_3_Handler
228236

229237
static const uint8_t SDA1 = PIN_WIRE1_SDA;
230238
static const uint8_t SCL1 = PIN_WIRE1_SCL;
@@ -331,4 +339,4 @@ extern Uart Serial1;
331339
#define SERIAL_PORT_HARDWARE Serial1
332340
#define SERIAL_PORT_HARDWARE_OPEN Serial1
333341

334-
#endif /* _VARIANT_METRO_M4_ */
342+
#endif /* _VARIANT_GRAND_CENTRAL_M4_ */

variants/hallowing_m4/variant.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,10 @@ static const uint8_t SCK1 = PIN_SPI1_SCK ;
167167
#define PIN_WIRE_SCL (25u)
168168
#define PERIPH_WIRE sercom2
169169
#define WIRE_IT_HANDLER SERCOM2_Handler
170+
#define WIRE_IT_HANDLER_0 SERCOM2_0_Handler
171+
#define WIRE_IT_HANDLER_1 SERCOM2_1_Handler
172+
#define WIRE_IT_HANDLER_2 SERCOM2_2_Handler
173+
#define WIRE_IT_HANDLER_3 SERCOM2_3_Handler
170174

171175
static const uint8_t SDA = PIN_WIRE_SDA;
172176
static const uint8_t SCL = PIN_WIRE_SCL;

variants/itsybitsy_m4/variant.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,10 @@ static const uint8_t SCK = PIN_SPI_SCK ;
151151
#define PIN_WIRE_SCL (22u)
152152
#define PERIPH_WIRE sercom2
153153
#define WIRE_IT_HANDLER SERCOM2_Handler
154+
#define WIRE_IT_HANDLER_0 SERCOM2_0_Handler
155+
#define WIRE_IT_HANDLER_1 SERCOM2_1_Handler
156+
#define WIRE_IT_HANDLER_2 SERCOM2_2_Handler
157+
#define WIRE_IT_HANDLER_3 SERCOM2_3_Handler
154158

155159
static const uint8_t SDA = PIN_WIRE_SDA;
156160
static const uint8_t SCL = PIN_WIRE_SCL;
@@ -244,5 +248,5 @@ extern Uart Serial1;
244248
#define SERIAL_PORT_HARDWARE Serial1
245249
#define SERIAL_PORT_HARDWARE_OPEN Serial1
246250

247-
#endif /* _VARIANT_MERTO_M4_ */
251+
#endif /* _VARIANT_ITSYBITSY_M4_ */
248252

variants/metro_m4/variant.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,10 @@ static const uint8_t SCK = PIN_SPI_SCK ;
159159
#define PIN_WIRE_SCL (23u)
160160
#define PERIPH_WIRE sercom5
161161
#define WIRE_IT_HANDLER SERCOM5_Handler
162+
#define WIRE_IT_HANDLER_0 SERCOM5_0_Handler
163+
#define WIRE_IT_HANDLER_1 SERCOM5_1_Handler
164+
#define WIRE_IT_HANDLER_2 SERCOM5_2_Handler
165+
#define WIRE_IT_HANDLER_3 SERCOM5_3_Handler
162166

163167
static const uint8_t SDA = PIN_WIRE_SDA;
164168
static const uint8_t SCL = PIN_WIRE_SCL;

variants/metro_m4_airlift/variant.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,10 @@ static const uint8_t SCK = PIN_SPI_SCK ;
176176
#define PIN_WIRE_SCL (23u)
177177
#define PERIPH_WIRE sercom5
178178
#define WIRE_IT_HANDLER SERCOM5_Handler
179+
#define WIRE_IT_HANDLER_0 SERCOM5_0_Handler
180+
#define WIRE_IT_HANDLER_1 SERCOM5_1_Handler
181+
#define WIRE_IT_HANDLER_2 SERCOM5_2_Handler
182+
#define WIRE_IT_HANDLER_3 SERCOM5_3_Handler
179183

180184
static const uint8_t SDA = PIN_WIRE_SDA;
181185
static const uint8_t SCL = PIN_WIRE_SCL;

variants/monster_m4sk/variant.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,10 @@ static const uint8_t SCK2 = PIN_SPI_SCK ;
173173
#define PIN_WIRE_SCL (19u)
174174
#define PERIPH_WIRE sercom1
175175
#define WIRE_IT_HANDLER SERCOM1_Handler
176+
#define WIRE_IT_HANDLER_0 SERCOM1_0_Handler
177+
#define WIRE_IT_HANDLER_1 SERCOM1_1_Handler
178+
#define WIRE_IT_HANDLER_2 SERCOM1_2_Handler
179+
#define WIRE_IT_HANDLER_3 SERCOM1_3_Handler
176180

177181
static const uint8_t SDA = PIN_WIRE_SDA;
178182
static const uint8_t SCL = PIN_WIRE_SCL;

variants/pybadge_airlift_m4/variant.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,10 @@ static const uint8_t SCK1 = PIN_SPI1_SCK ;
184184
#define PIN_WIRE_SCL (25u)
185185
#define PERIPH_WIRE sercom2
186186
#define WIRE_IT_HANDLER SERCOM2_Handler
187+
#define WIRE_IT_HANDLER_0 SERCOM2_0_Handler
188+
#define WIRE_IT_HANDLER_1 SERCOM2_1_Handler
189+
#define WIRE_IT_HANDLER_2 SERCOM2_2_Handler
190+
#define WIRE_IT_HANDLER_3 SERCOM2_3_Handler
187191

188192
static const uint8_t SDA = PIN_WIRE_SDA;
189193
static const uint8_t SCL = PIN_WIRE_SCL;
@@ -260,5 +264,5 @@ extern Uart Serial1;
260264
#define SERIAL_PORT_HARDWARE Serial1
261265
#define SERIAL_PORT_HARDWARE_OPEN Serial1
262266

263-
#endif /* _VARIANT_FEATHER_M4_ */
267+
#endif /* _VARIANT_PYBADGE_AIRLIFT_M4_ */
264268

variants/pybadge_m4/variant.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,10 @@ static const uint8_t SCK2 = PIN_SPI2_SCK ;
185185
#define PIN_WIRE_SCL (25u)
186186
#define PERIPH_WIRE sercom2
187187
#define WIRE_IT_HANDLER SERCOM2_Handler
188+
#define WIRE_IT_HANDLER_0 SERCOM2_0_Handler
189+
#define WIRE_IT_HANDLER_1 SERCOM2_1_Handler
190+
#define WIRE_IT_HANDLER_2 SERCOM2_2_Handler
191+
#define WIRE_IT_HANDLER_3 SERCOM2_3_Handler
188192

189193
static const uint8_t SDA = PIN_WIRE_SDA;
190194
static const uint8_t SCL = PIN_WIRE_SCL;
@@ -261,5 +265,5 @@ extern Uart Serial1;
261265
#define SERIAL_PORT_HARDWARE Serial1
262266
#define SERIAL_PORT_HARDWARE_OPEN Serial1
263267

264-
#endif /* _VARIANT_FEATHER_M4_ */
268+
#endif /* _VARIANT_PYBADGE_M4_ */
265269

variants/pygamer_advance_m4/variant.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,10 @@ static const uint8_t SCK1 = PIN_SPI1_SCK ;
176176
#define PIN_WIRE_SCL (27u)
177177
#define PERIPH_WIRE sercom2
178178
#define WIRE_IT_HANDLER SERCOM2_Handler
179+
#define WIRE_IT_HANDLER_0 SERCOM2_0_Handler
180+
#define WIRE_IT_HANDLER_1 SERCOM2_1_Handler
181+
#define WIRE_IT_HANDLER_2 SERCOM2_2_Handler
182+
#define WIRE_IT_HANDLER_3 SERCOM2_3_Handler
179183

180184
static const uint8_t SDA = PIN_WIRE_SDA;
181185
static const uint8_t SCL = PIN_WIRE_SCL;

variants/pygamer_m4/variant.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,10 @@ static const uint8_t SCK1 = PIN_SPI1_SCK ;
176176
#define PIN_WIRE_SCL (27u)
177177
#define PERIPH_WIRE sercom2
178178
#define WIRE_IT_HANDLER SERCOM2_Handler
179+
#define WIRE_IT_HANDLER_0 SERCOM2_0_Handler
180+
#define WIRE_IT_HANDLER_1 SERCOM2_1_Handler
181+
#define WIRE_IT_HANDLER_2 SERCOM2_2_Handler
182+
#define WIRE_IT_HANDLER_3 SERCOM2_3_Handler
179183

180184
static const uint8_t SDA = PIN_WIRE_SDA;
181185
static const uint8_t SCL = PIN_WIRE_SCL;
@@ -252,5 +256,5 @@ extern Uart Serial1;
252256
#define SERIAL_PORT_HARDWARE Serial1
253257
#define SERIAL_PORT_HARDWARE_OPEN Serial1
254258

255-
#endif /* _VARIANT_FEATHER_M4_ */
259+
#endif /* _VARIANT_PYGAMER_M4_ */
256260

variants/pyportal_m4/variant.h

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,11 @@ static const uint8_t SCK = PIN_SPI_SCK;
175175
#define PIN_WIRE_SCL (28u)
176176
#define PERIPH_WIRE sercom5
177177
#define WIRE_IT_HANDLER SERCOM5_Handler
178+
#define WIRE_IT_HANDLER_0 SERCOM5_0_Handler
179+
#define WIRE_IT_HANDLER_1 SERCOM5_1_Handler
180+
#define WIRE_IT_HANDLER_2 SERCOM5_2_Handler
181+
#define WIRE_IT_HANDLER_3 SERCOM5_3_Handler
182+
178183

179184
static const uint8_t SDA = PIN_WIRE_SDA;
180185
static const uint8_t SCL = PIN_WIRE_SCL;
@@ -245,5 +250,5 @@ extern Uart Serial1;
245250
#define SERIAL_PORT_HARDWARE Serial1
246251
#define SERIAL_PORT_HARDWARE_OPEN Serial1
247252

248-
#endif /* _VARIANT_METRO_M4_ */
253+
#endif /* _VARIANT_PYPORTAL_M4_ */
249254

variants/pyportal_m4_titano/variant.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,10 @@ static const uint8_t SCK = PIN_SPI_SCK;
175175
#define PIN_WIRE_SCL (28u)
176176
#define PERIPH_WIRE sercom5
177177
#define WIRE_IT_HANDLER SERCOM5_Handler
178+
#define WIRE_IT_HANDLER_0 SERCOM5_0_Handler
179+
#define WIRE_IT_HANDLER_1 SERCOM5_1_Handler
180+
#define WIRE_IT_HANDLER_2 SERCOM5_2_Handler
181+
#define WIRE_IT_HANDLER_3 SERCOM5_3_Handler
178182

179183
static const uint8_t SDA = PIN_WIRE_SDA;
180184
static const uint8_t SCL = PIN_WIRE_SCL;
@@ -245,5 +249,5 @@ extern Uart Serial1;
245249
#define SERIAL_PORT_HARDWARE Serial1
246250
#define SERIAL_PORT_HARDWARE_OPEN Serial1
247251

248-
#endif /* _VARIANT_METRO_M4_ */
252+
#endif /* _VARIANT_PYPORTAL_M4_TITANO_ */
249253

variants/trellis_m4/variant.h

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,13 @@ static const uint8_t SCK = PIN_SPI_SCK ;
156156
#define PIN_WIRE_SCL (22u)
157157
#define PERIPH_WIRE sercom4
158158
#define WIRE_IT_HANDLER SERCOM4_Handler
159+
160+
// Sercom interrupt handlers for I2C slave not set; they are used by Serial1
161+
// #define WIRE_IT_HANDLER_0 SERCOM4_0_Handler
162+
// #define WIRE_IT_HANDLER_1 SERCOM4_1_Handler
163+
// #define WIRE_IT_HANDLER_2 SERCOM4_2_Handler
164+
// #define WIRE_IT_HANDLER_3 SERCOM4_3_Handler
165+
159166
static const uint8_t SDA = PIN_WIRE_SDA;
160167
static const uint8_t SCL = PIN_WIRE_SCL;
161168

@@ -164,6 +171,11 @@ static const uint8_t SCL = PIN_WIRE_SCL;
164171
#define PIN_WIRE1_SCL (1u)
165172
#define PERIPH_WIRE1 sercom2
166173
#define WIRE1_IT_HANDLER SERCOM2_Handler
174+
#define WIRE1_IT_HANDLER_0 SERCOM2_0_Handler
175+
#define WIRE1_IT_HANDLER_1 SERCOM2_1_Handler
176+
#define WIRE1_IT_HANDLER_2 SERCOM2_2_Handler
177+
#define WIRE1_IT_HANDLER_3 SERCOM2_3_Handler
178+
167179
static const uint8_t SDA1 = PIN_WIRE_SDA;
168180
static const uint8_t SCL1 = PIN_WIRE_SCL;
169181

@@ -241,5 +253,5 @@ extern Uart Serial1;
241253
#define SERIAL_PORT_HARDWARE_OPEN Serial1
242254

243255

244-
#endif /* _VARIANT_MERTO_M4_ */
256+
#endif /* _VARIANT_TRELLIS_M4_ */
245257

0 commit comments

Comments
 (0)