Skip to content

Commit 22a8977

Browse files
committed
Add HAL API for i2c pinmap
Add the functions i2c_master_sda_pinmap, i2c_master_scl_pinmap, i2c_slave_sda_pinmap and i2c_slave_scl_pinmap to all targets.
1 parent 7e8695a commit 22a8977

File tree

57 files changed

+1159
-1
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

57 files changed

+1159
-1
lines changed

hal/i2c_api.h

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
#define MBED_I2C_API_H
2222

2323
#include "device.h"
24+
#include "pinmap.h"
2425
#include "hal/buffer.h"
2526

2627
#if DEVICE_I2C_ASYNCH
@@ -146,6 +147,42 @@ int i2c_byte_read(i2c_t *obj, int last);
146147
*/
147148
int i2c_byte_write(i2c_t *obj, int data);
148149

150+
/** Get the pins that support I2C SDA
151+
*
152+
* Return a PinMap array of pins that support I2C SDA in
153+
* master mode. The array is terminated with {NC, NC, 0}.
154+
*
155+
* @return PinMap array
156+
*/
157+
const PinMap *i2c_master_sda_pinmap(void);
158+
159+
/** Get the pins that support I2C SCL
160+
*
161+
* Return a PinMap array of pins that support I2C SCL in
162+
* master mode. The array is terminated with {NC, NC, 0}.
163+
*
164+
* @return PinMap array
165+
*/
166+
const PinMap *i2c_master_scl_pinmap(void);
167+
168+
/** Get the pins that support I2C SDA
169+
*
170+
* Return a PinMap array of pins that support I2C SDA in
171+
* slave mode. The array is terminated with {NC, NC, 0}.
172+
*
173+
* @return PinMap array
174+
*/
175+
const PinMap *i2c_slave_sda_pinmap(void);
176+
177+
/** Get the pins that support I2C SCL
178+
*
179+
* Return a PinMap array of pins that support I2C SCL in
180+
* slave mode. The array is terminated with {NC, NC, 0}.
181+
*
182+
* @return PinMap array
183+
*/
184+
const PinMap *i2c_slave_scl_pinmap(void);
185+
149186
/**@}*/
150187

151188
#if DEVICE_I2CSLAVE

targets/TARGET_ARM_FM/TARGET_FVP_MPS2/i2c_api.c

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -587,3 +587,23 @@ int i2c_byte_write(i2c_t *obj, int data)
587587
{
588588
return 0;
589589
}
590+
591+
const PinMap *i2c_master_sda_pinmap()
592+
{
593+
return PinMap_I2C_SDA;
594+
}
595+
596+
const PinMap *i2c_master_scl_pinmap()
597+
{
598+
return PinMap_I2C_SCL;
599+
}
600+
601+
const PinMap *i2c_slave_sda_pinmap()
602+
{
603+
return PinMap_I2C_SDA;
604+
}
605+
606+
const PinMap *i2c_slave_scl_pinmap()
607+
{
608+
return PinMap_I2C_SCL;
609+
}

targets/TARGET_ARM_SSG/TARGET_BEETLE/i2c_api.c

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -506,3 +506,23 @@ int i2c_slave_write(i2c_t *obj, const char *data, int length) {
506506

507507
void i2c_slave_address(i2c_t *obj, int idx, uint32_t address, uint32_t mask) {
508508
}
509+
510+
const PinMap *i2c_master_sda_pinmap()
511+
{
512+
return PinMap_I2C_SDA;
513+
}
514+
515+
const PinMap *i2c_master_scl_pinmap()
516+
{
517+
return PinMap_I2C_SCL;
518+
}
519+
520+
const PinMap *i2c_slave_sda_pinmap()
521+
{
522+
return PinMap_I2C_SDA;
523+
}
524+
525+
const PinMap *i2c_slave_scl_pinmap()
526+
{
527+
return PinMap_I2C_SCL;
528+
}

targets/TARGET_ARM_SSG/TARGET_CM3DS_MPS2/i2c_api.c

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -271,3 +271,23 @@ int i2c_byte_write(i2c_t *obj, int data)
271271

272272
return ack;
273273
}
274+
275+
const PinMap *i2c_master_sda_pinmap()
276+
{
277+
return PinMap_I2C_SDA;
278+
}
279+
280+
const PinMap *i2c_master_scl_pinmap()
281+
{
282+
return PinMap_I2C_SCL;
283+
}
284+
285+
const PinMap *i2c_slave_sda_pinmap()
286+
{
287+
return PinMap_I2C_SDA;
288+
}
289+
290+
const PinMap *i2c_slave_scl_pinmap()
291+
{
292+
return PinMap_I2C_SCL;
293+
}

targets/TARGET_ARM_SSG/TARGET_IOTSS/i2c_api.c

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -521,3 +521,23 @@ int i2c_byte_read(i2c_t *obj, int last) {
521521
int i2c_byte_write(i2c_t *obj, int data) {
522522
return 0;
523523
}
524+
525+
const PinMap *i2c_master_sda_pinmap()
526+
{
527+
return PinMap_I2C_SDA;
528+
}
529+
530+
const PinMap *i2c_master_scl_pinmap()
531+
{
532+
return PinMap_I2C_SCL;
533+
}
534+
535+
const PinMap *i2c_slave_sda_pinmap()
536+
{
537+
return PinMap_I2C_SDA;
538+
}
539+
540+
const PinMap *i2c_slave_scl_pinmap()
541+
{
542+
return PinMap_I2C_SCL;
543+
}

targets/TARGET_ARM_SSG/TARGET_MPS2/i2c_api.c

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -531,3 +531,23 @@ int i2c_byte_read(i2c_t *obj, int last) {
531531
int i2c_byte_write(i2c_t *obj, int data) {
532532
return 0;
533533
}
534+
535+
const PinMap *i2c_master_sda_pinmap()
536+
{
537+
return PinMap_I2C_SDA;
538+
}
539+
540+
const PinMap *i2c_master_scl_pinmap()
541+
{
542+
return PinMap_I2C_SCL;
543+
}
544+
545+
const PinMap *i2c_slave_sda_pinmap()
546+
{
547+
return PinMap_I2C_SDA;
548+
}
549+
550+
const PinMap *i2c_slave_scl_pinmap()
551+
{
552+
return PinMap_I2C_SCL;
553+
}

targets/TARGET_Analog_Devices/TARGET_ADUCM302X/TARGET_ADUCM3029/api/i2c_api.c

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,4 +221,24 @@ int i2c_byte_write(i2c_t *obj, int data)
221221
return -1;
222222
}
223223

224+
const PinMap *i2c_master_sda_pinmap()
225+
{
226+
return PinMap_I2C_SDA;
227+
}
228+
229+
const PinMap *i2c_master_scl_pinmap()
230+
{
231+
return PinMap_I2C_SCL;
232+
}
233+
234+
const PinMap *i2c_slave_sda_pinmap()
235+
{
236+
return PinMap_I2C_SDA;
237+
}
238+
239+
const PinMap *i2c_slave_scl_pinmap()
240+
{
241+
return PinMap_I2C_SCL;
242+
}
243+
224244
#endif // #if DEVICE_I2C

targets/TARGET_Analog_Devices/TARGET_ADUCM4X50/TARGET_ADUCM4050/api/i2c_api.c

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,4 +221,24 @@ int i2c_byte_write(i2c_t *obj, int data)
221221
return -1;
222222
}
223223

224+
const PinMap *i2c_master_sda_pinmap()
225+
{
226+
return PinMap_I2C_SDA;
227+
}
228+
229+
const PinMap *i2c_master_scl_pinmap()
230+
{
231+
return PinMap_I2C_SCL;
232+
}
233+
234+
const PinMap *i2c_slave_sda_pinmap()
235+
{
236+
return PinMap_I2C_SDA;
237+
}
238+
239+
const PinMap *i2c_slave_scl_pinmap()
240+
{
241+
return PinMap_I2C_SCL;
242+
}
243+
224244
#endif // #if DEVICE_I2C

targets/TARGET_Atmel/TARGET_SAM_CortexM0P/i2c_api.c

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -573,6 +573,26 @@ int i2c_byte_write(i2c_t *obj, int data)
573573
return 0;
574574
}
575575

576+
const PinMap *i2c_master_sda_pinmap()
577+
{
578+
return PinMap_SERCOM_PAD;
579+
}
580+
581+
const PinMap *i2c_master_scl_pinmap()
582+
{
583+
return PinMap_SERCOM_PAD;
584+
}
585+
586+
const PinMap *i2c_slave_sda_pinmap()
587+
{
588+
return PinMap_SERCOM_PAD;
589+
}
590+
591+
const PinMap *i2c_slave_scl_pinmap()
592+
{
593+
return PinMap_SERCOM_PAD;
594+
}
595+
576596

577597
#if DEVICE_I2CSLAVE
578598

targets/TARGET_Atmel/TARGET_SAM_CortexM4/i2c_api.c

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -425,6 +425,26 @@ int i2c_byte_write(i2c_t *obj, int data)
425425
return ACK;
426426
}
427427

428+
const PinMap *i2c_master_sda_pinmap()
429+
{
430+
return PinMap_I2C_SDA;
431+
}
432+
433+
const PinMap *i2c_master_scl_pinmap()
434+
{
435+
return PinMap_I2C_SCL;
436+
}
437+
438+
const PinMap *i2c_slave_sda_pinmap()
439+
{
440+
return PinMap_I2C_SDA;
441+
}
442+
443+
const PinMap *i2c_slave_scl_pinmap()
444+
{
445+
return PinMap_I2C_SCL;
446+
}
447+
428448
/**@}*/
429449

430450
#if DEVICE_I2CSLAVE
@@ -712,4 +732,4 @@ void i2c_abort_asynch(i2c_t *obj)
712732
NVIC_DisableIRQ(obj->i2c.irq_type);
713733
}
714734

715-
#endif
735+
#endif

targets/TARGET_Cypress/TARGET_PSOC6/i2c_api.c

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -500,6 +500,26 @@ int i2c_byte_write(i2c_t *obj_in, int data)
500500
}
501501
}
502502

503+
const PinMap *i2c_master_sda_pinmap()
504+
{
505+
return PinMap_I2C_SDA;
506+
}
507+
508+
const PinMap *i2c_master_scl_pinmap()
509+
{
510+
return PinMap_I2C_SCL;
511+
}
512+
513+
const PinMap *i2c_slave_sda_pinmap()
514+
{
515+
return PinMap_I2C_SDA;
516+
}
517+
518+
const PinMap *i2c_slave_scl_pinmap()
519+
{
520+
return PinMap_I2C_SCL;
521+
}
522+
503523
#if DEVICE_I2C_ASYNCH
504524

505525
void i2c_transfer_asynch(i2c_t *obj_in,

targets/TARGET_Cypress/TARGET_PSOC6_FUTURE/i2c_api.c

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -445,6 +445,26 @@ int i2c_byte_write(i2c_t *obj_in, int data)
445445
}
446446
}
447447

448+
const PinMap *i2c_master_sda_pinmap()
449+
{
450+
return PinMap_I2C_SDA;
451+
}
452+
453+
const PinMap *i2c_master_scl_pinmap()
454+
{
455+
return PinMap_I2C_SCL;
456+
}
457+
458+
const PinMap *i2c_slave_sda_pinmap()
459+
{
460+
return PinMap_I2C_SDA;
461+
}
462+
463+
const PinMap *i2c_slave_scl_pinmap()
464+
{
465+
return PinMap_I2C_SCL;
466+
}
467+
448468
#if DEVICE_I2C_ASYNCH
449469

450470
void i2c_transfer_asynch(i2c_t *obj_in,

targets/TARGET_Freescale/TARGET_K20XX/i2c_api.c

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -285,6 +285,26 @@ int i2c_byte_write(i2c_t *obj, int data) {
285285
return !i2c_do_write(obj, (data & 0xFF));
286286
}
287287

288+
const PinMap *i2c_master_sda_pinmap()
289+
{
290+
return PinMap_I2C_SDA;
291+
}
292+
293+
const PinMap *i2c_master_scl_pinmap()
294+
{
295+
return PinMap_I2C_SCL;
296+
}
297+
298+
const PinMap *i2c_slave_sda_pinmap()
299+
{
300+
return PinMap_I2C_SDA;
301+
}
302+
303+
const PinMap *i2c_slave_scl_pinmap()
304+
{
305+
return PinMap_I2C_SCL;
306+
}
307+
288308

289309
#if DEVICE_I2CSLAVE
290310
void i2c_slave_mode(i2c_t *obj, int enable_slave) {

targets/TARGET_Freescale/TARGET_KLXX/i2c_api.c

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -291,6 +291,26 @@ int i2c_byte_write(i2c_t *obj, int data) {
291291
return !i2c_do_write(obj, (data & 0xFF));
292292
}
293293

294+
const PinMap *i2c_master_sda_pinmap()
295+
{
296+
return PinMap_I2C_SDA;
297+
}
298+
299+
const PinMap *i2c_master_scl_pinmap()
300+
{
301+
return PinMap_I2C_SCL;
302+
}
303+
304+
const PinMap *i2c_slave_sda_pinmap()
305+
{
306+
return PinMap_I2C_SDA;
307+
}
308+
309+
const PinMap *i2c_slave_scl_pinmap()
310+
{
311+
return PinMap_I2C_SCL;
312+
}
313+
294314

295315
#if DEVICE_I2CSLAVE
296316
void i2c_slave_mode(i2c_t *obj, int enable_slave) {

0 commit comments

Comments
 (0)