Skip to content

Commit 34c1766

Browse files
committed
Add HAL API for serial pinmap
Add the functions serial_tx_pinmap, serial_rx_pinmap, serial_cts_pinmap and serial_rts_pinmap to all targets.
1 parent 2ed1dc2 commit 34c1766

File tree

71 files changed

+1857
-2
lines changed

Some content is hidden

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

71 files changed

+1857
-2
lines changed

hal/serial_api.h

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

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

@@ -220,6 +221,42 @@ void serial_pinout_tx(PinName tx);
220221
*/
221222
void serial_set_flow_control(serial_t *obj, FlowControl type, PinName rxflow, PinName txflow);
222223

224+
/** Get the pins that support Serial TX
225+
*
226+
* Return a PinMap array of pins that support Serial TX. The
227+
* array is terminated with {NC, NC, 0}.
228+
*
229+
* @return PinMap array
230+
*/
231+
const PinMap *serial_tx_pinmap(void);
232+
233+
/** Get the pins that support Serial RX
234+
*
235+
* Return a PinMap array of pins that support Serial RX. The
236+
* array is terminated with {NC, NC, 0}.
237+
*
238+
* @return PinMap array
239+
*/
240+
const PinMap *serial_rx_pinmap(void);
241+
242+
/** Get the pins that support Serial CTS
243+
*
244+
* Return a PinMap array of pins that support Serial CTS. The
245+
* array is terminated with {NC, NC, 0}.
246+
*
247+
* @return PinMap array
248+
*/
249+
const PinMap *serial_cts_pinmap(void);
250+
251+
/** Get the pins that support Serial RTS
252+
*
253+
* Return a PinMap array of pins that support Serial RTS. The
254+
* array is terminated with {NC, NC, 0}.
255+
*
256+
* @return PinMap array
257+
*/
258+
const PinMap *serial_rts_pinmap(void);
259+
223260
#if DEVICE_SERIAL_ASYNCH
224261

225262
/**@}*/

targets/TARGET_ARM_FM/TARGET_FVP_MPS2/serial_api.c

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -382,3 +382,34 @@ void serial_set_flow_control(serial_t *obj, FlowControl type, PinName rxflow, Pi
382382
{
383383
}
384384

385+
const PinMap *serial_tx_pinmap()
386+
{
387+
return PinMap_UART_TX;
388+
}
389+
390+
const PinMap *serial_rx_pinmap()
391+
{
392+
return PinMap_UART_RX;
393+
}
394+
395+
const PinMap *serial_cts_pinmap()
396+
{
397+
#if !DEVICE_SERIAL_FC
398+
static const PinMap PinMap_UART_CTS[] = {
399+
{NC, NC, 0}
400+
};
401+
#endif
402+
403+
return PinMap_UART_CTS;
404+
}
405+
406+
const PinMap *serial_rts_pinmap()
407+
{
408+
#if !DEVICE_SERIAL_FC
409+
static const PinMap PinMap_UART_RTS[] = {
410+
{NC, NC, 0}
411+
};
412+
#endif
413+
414+
return PinMap_UART_RTS;
415+
}

targets/TARGET_ARM_SSG/TARGET_BEETLE/serial_api.c

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -328,3 +328,35 @@ void serial_break_clear(serial_t *obj) {
328328
void serial_set_flow_control(serial_t *obj, FlowControl type,
329329
PinName rxflow, PinName txflow) {
330330
}
331+
332+
const PinMap *serial_tx_pinmap()
333+
{
334+
return PinMap_UART_TX;
335+
}
336+
337+
const PinMap *serial_rx_pinmap()
338+
{
339+
return PinMap_UART_RX;
340+
}
341+
342+
const PinMap *serial_cts_pinmap()
343+
{
344+
#if !DEVICE_SERIAL_FC
345+
static const PinMap PinMap_UART_CTS[] = {
346+
{NC, NC, 0}
347+
};
348+
#endif
349+
350+
return PinMap_UART_CTS;
351+
}
352+
353+
const PinMap *serial_rts_pinmap()
354+
{
355+
#if !DEVICE_SERIAL_FC
356+
static const PinMap PinMap_UART_RTS[] = {
357+
{NC, NC, 0}
358+
};
359+
#endif
360+
361+
return PinMap_UART_RTS;
362+
}

targets/TARGET_ARM_SSG/TARGET_CM3DS_MPS2/serial_api.c

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -391,3 +391,34 @@ void serial_set_flow_control(serial_t *obj, FlowControl type, PinName rxflow,
391391
error("serial_set_flow_control function not supported");
392392
}
393393

394+
const PinMap *serial_tx_pinmap()
395+
{
396+
return PinMap_UART_TX;
397+
}
398+
399+
const PinMap *serial_rx_pinmap()
400+
{
401+
return PinMap_UART_RX;
402+
}
403+
404+
const PinMap *serial_cts_pinmap()
405+
{
406+
#if !DEVICE_SERIAL_FC
407+
static const PinMap PinMap_UART_CTS[] = {
408+
{NC, NC, 0}
409+
};
410+
#endif
411+
412+
return PinMap_UART_CTS;
413+
}
414+
415+
const PinMap *serial_rts_pinmap()
416+
{
417+
#if !DEVICE_SERIAL_FC
418+
static const PinMap PinMap_UART_RTS[] = {
419+
{NC, NC, 0}
420+
};
421+
#endif
422+
423+
return PinMap_UART_RTS;
424+
}

targets/TARGET_ARM_SSG/TARGET_IOTSS/serial_api.c

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -365,3 +365,35 @@ void serial_break_clear(serial_t *obj) {
365365
void serial_set_flow_control(serial_t *obj, FlowControl type, PinName rxflow, PinName txflow) {
366366
}
367367

368+
const PinMap *serial_tx_pinmap()
369+
{
370+
return PinMap_UART_TX;
371+
}
372+
373+
const PinMap *serial_rx_pinmap()
374+
{
375+
return PinMap_UART_RX;
376+
}
377+
378+
const PinMap *serial_cts_pinmap()
379+
{
380+
#if !DEVICE_SERIAL_FC
381+
static const PinMap PinMap_UART_CTS[] = {
382+
{NC, NC, 0}
383+
};
384+
#endif
385+
386+
return PinMap_UART_CTS;
387+
}
388+
389+
const PinMap *serial_rts_pinmap()
390+
{
391+
#if !DEVICE_SERIAL_FC
392+
static const PinMap PinMap_UART_RTS[] = {
393+
{NC, NC, 0}
394+
};
395+
#endif
396+
397+
return PinMap_UART_RTS;
398+
}
399+

targets/TARGET_ARM_SSG/TARGET_MPS2/serial_api.c

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -370,3 +370,35 @@ void serial_break_clear(serial_t *obj) {
370370
void serial_set_flow_control(serial_t *obj, FlowControl type, PinName rxflow, PinName txflow) {
371371
}
372372

373+
const PinMap *serial_tx_pinmap()
374+
{
375+
return PinMap_UART_TX;
376+
}
377+
378+
const PinMap *serial_rx_pinmap()
379+
{
380+
return PinMap_UART_RX;
381+
}
382+
383+
const PinMap *serial_cts_pinmap()
384+
{
385+
#if !DEVICE_SERIAL_FC
386+
static const PinMap PinMap_UART_CTS[] = {
387+
{NC, NC, 0}
388+
};
389+
#endif
390+
391+
return PinMap_UART_CTS;
392+
}
393+
394+
const PinMap *serial_rts_pinmap()
395+
{
396+
#if !DEVICE_SERIAL_FC
397+
static const PinMap PinMap_UART_RTS[] = {
398+
{NC, NC, 0}
399+
};
400+
#endif
401+
402+
return PinMap_UART_RTS;
403+
}
404+

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

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -292,4 +292,36 @@ void serial_irq_handler(serial_t *obj, uart_irq_handler handler, uint32_t id)
292292
irq_handler = handler;
293293
serial_irq_ids[0] = id;
294294
}
295+
296+
const PinMap *serial_tx_pinmap()
297+
{
298+
return PinMap_UART_TX;
299+
}
300+
301+
const PinMap *serial_rx_pinmap()
302+
{
303+
return PinMap_UART_RX;
304+
}
305+
306+
const PinMap *serial_cts_pinmap()
307+
{
308+
#if !DEVICE_SERIAL_FC
309+
static const PinMap PinMap_UART_CTS[] = {
310+
{NC, NC, 0}
311+
};
312+
#endif
313+
314+
return PinMap_UART_CTS;
315+
}
316+
317+
const PinMap *serial_rts_pinmap()
318+
{
319+
#if !DEVICE_SERIAL_FC
320+
static const PinMap PinMap_UART_RTS[] = {
321+
{NC, NC, 0}
322+
};
323+
#endif
324+
325+
return PinMap_UART_RTS;
326+
}
295327
#endif

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

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -248,4 +248,36 @@ void serial_irq_handler(serial_t *obj, uart_irq_handler handler, uint32_t id)
248248
serial_irq_ids[obj->index] = id;
249249
}
250250

251+
const PinMap *serial_tx_pinmap()
252+
{
253+
return PinMap_UART_TX;
254+
}
255+
256+
const PinMap *serial_rx_pinmap()
257+
{
258+
return PinMap_UART_RX;
259+
}
260+
261+
const PinMap *serial_cts_pinmap()
262+
{
263+
#if !DEVICE_SERIAL_FC
264+
static const PinMap PinMap_UART_CTS[] = {
265+
{NC, NC, 0}
266+
};
267+
#endif
268+
269+
return PinMap_UART_CTS;
270+
}
271+
272+
const PinMap *serial_rts_pinmap()
273+
{
274+
#if !DEVICE_SERIAL_FC
275+
static const PinMap PinMap_UART_RTS[] = {
276+
{NC, NC, 0}
277+
};
278+
#endif
279+
280+
return PinMap_UART_RTS;
281+
}
282+
251283
#endif

targets/TARGET_Atmel/TARGET_SAM_CortexM0P/serial_api.c

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -823,6 +823,26 @@ int serial_writable(serial_t *obj)
823823
return status;
824824
}
825825

826+
const PinMap *serial_tx_pinmap()
827+
{
828+
return PinMap_SERCOM_PAD;
829+
}
830+
831+
const PinMap *serial_rx_pinmap()
832+
{
833+
return PinMap_SERCOM_PAD;
834+
}
835+
836+
const PinMap *serial_cts_pinmap()
837+
{
838+
return PinMap_SERCOM_PAD;
839+
}
840+
841+
const PinMap *serial_rts_pinmap()
842+
{
843+
return PinMap_SERCOM_PAD;
844+
}
845+
826846
/************************************************************************************
827847
* ASYNCHRONOUS HAL *
828848
************************************************************************************/

targets/TARGET_Atmel/TARGET_SAM_CortexM4/serial_api.c

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -579,6 +579,26 @@ int serial_writable(serial_t *obj)
579579
return status;
580580
}
581581

582+
const PinMap *serial_tx_pinmap()
583+
{
584+
return PinMap_UART_TX;
585+
}
586+
587+
const PinMap *serial_rx_pinmap()
588+
{
589+
return PinMap_UART_RX;
590+
}
591+
592+
const PinMap *serial_cts_pinmap()
593+
{
594+
return PinMap_UART_CTS;
595+
}
596+
597+
const PinMap *serial_rts_pinmap()
598+
{
599+
return PinMap_UART_RTS;
600+
}
601+
582602
/************************************************************************************
583603
* ASYNCHRONOUS HAL *
584604
************************************************************************************/

targets/TARGET_Cypress/TARGET_PSOC6/serial_api.c

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -695,6 +695,25 @@ void serial_set_flow_control(serial_t *obj_in, FlowControl type, PinName rxflow,
695695
serial_init_peripheral(obj);
696696
}
697697

698+
const PinMap *serial_tx_pinmap()
699+
{
700+
return PinMap_UART_TX;
701+
}
702+
703+
const PinMap *serial_rx_pinmap()
704+
{
705+
return PinMap_UART_RX;
706+
}
707+
708+
const PinMap *serial_cts_pinmap()
709+
{
710+
return PinMap_UART_CTS;
711+
}
712+
713+
const PinMap *serial_rts_pinmap()
714+
{
715+
return PinMap_UART_RTS;
716+
}
698717

699718
#if DEVICE_SERIAL_ASYNCH
700719

0 commit comments

Comments
 (0)