Skip to content

Commit

Permalink
Merge pull request RIOT-OS#13001 from dylad/pr/sam0_uart_hw_fc
Browse files Browse the repository at this point in the history
sam0/uart: add hardware flow control support
  • Loading branch information
dylad authored Dec 26, 2019
2 parents 676d0d3 + fc9549b commit 29664c1
Show file tree
Hide file tree
Showing 19 changed files with 193 additions and 53 deletions.
8 changes: 8 additions & 0 deletions boards/arduino-mkrwan1300/include/periph_conf.h
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,10 @@ static const uart_conf_t uart_config[] = {
.dev = &SERCOM5->USART,
.rx_pin = GPIO_PIN(PB,23), /* ARDUINO_PIN_13, RX Pin */
.tx_pin = GPIO_PIN(PB,22), /* ARDUINO_PIN_14, TX Pin */
#ifdef MODULE_SAM0_PERIPH_UART_HW_FC
.rts_pin = GPIO_UNDEF,
.cts_pin = GPIO_UNDEF,
#endif
.mux = GPIO_MUX_D,
.rx_pad = UART_PAD_RX_3,
.tx_pad = UART_PAD_TX_2,
Expand All @@ -50,6 +54,10 @@ static const uart_conf_t uart_config[] = {
.dev = &SERCOM4->USART,
.rx_pin = GPIO_PIN(PA,15),
.tx_pin = GPIO_PIN(PA,12),
#ifdef MODULE_SAM0_PERIPH_UART_HW_FC
.rts_pin = GPIO_UNDEF,
.cts_pin = GPIO_UNDEF,
#endif
.mux = GPIO_MUX_D,
.rx_pad = UART_PAD_RX_3,
.tx_pad = UART_PAD_TX_0,
Expand Down
8 changes: 8 additions & 0 deletions boards/arduino-zero/include/periph_conf.h
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,10 @@ static const uart_conf_t uart_config[] = {
.dev = &SERCOM5->USART,
.rx_pin = GPIO_PIN(PB,23),
.tx_pin = GPIO_PIN(PB,22),
#ifdef MODULE_SAM0_PERIPH_UART_HW_FC
.rts_pin = GPIO_UNDEF,
.cts_pin = GPIO_UNDEF,
#endif
.mux = GPIO_MUX_D,
.rx_pad = UART_PAD_RX_3,
.tx_pad = UART_PAD_TX_2,
Expand All @@ -142,6 +146,10 @@ static const uart_conf_t uart_config[] = {
.dev = &SERCOM0->USART,
.rx_pin = GPIO_PIN(PA,11),
.tx_pin = GPIO_PIN(PA,10),
#ifdef MODULE_SAM0_PERIPH_UART_HW_FC
.rts_pin = GPIO_UNDEF,
.cts_pin = GPIO_UNDEF,
#endif
.mux = GPIO_MUX_C,
.rx_pad = UART_PAD_RX_3,
.tx_pad = UART_PAD_TX_2,
Expand Down
4 changes: 4 additions & 0 deletions boards/common/arduino-mkr/include/periph_conf.h
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,10 @@ static const uart_conf_t uart_config[] = {
.dev = &SERCOM5->USART,
.rx_pin = GPIO_PIN(PB,23), /* ARDUINO_PIN_13, RX Pin */
.tx_pin = GPIO_PIN(PB,22), /* ARDUINO_PIN_14, TX Pin */
#ifdef MODULE_SAM0_PERIPH_UART_HW_FC
.rts_pin = GPIO_UNDEF,
.cts_pin = GPIO_UNDEF,
#endif
.mux = GPIO_MUX_D,
.rx_pad = UART_PAD_RX_3,
.tx_pad = UART_PAD_TX_2,
Expand Down
8 changes: 6 additions & 2 deletions boards/common/saml1x/include/periph_conf.h
Original file line number Diff line number Diff line change
Expand Up @@ -61,8 +61,12 @@ static const tc32_conf_t timer_config[] = {
static const uart_conf_t uart_config[] = {
{ /* Virtual COM Port */
.dev = &SERCOM2->USART,
.rx_pin = GPIO_PIN(PA,25),
.tx_pin = GPIO_PIN(PA,24),
.rx_pin = GPIO_PIN(PA, 25),
.tx_pin = GPIO_PIN(PA, 24),
#ifdef MODULE_SAM0_PERIPH_UART_HW_FC
.rts_pin = GPIO_UNDEF,
.cts_pin = GPIO_UNDEF,
#endif
.mux = GPIO_MUX_D,
.rx_pad = UART_PAD_RX_3,
.tx_pad = UART_PAD_TX_2,
Expand Down
18 changes: 11 additions & 7 deletions boards/feather-m0/include/periph_conf.h
Original file line number Diff line number Diff line change
Expand Up @@ -124,13 +124,17 @@ static const tc32_conf_t timer_config[] = {
*/
static const uart_conf_t uart_config[] = {
{
.dev = &SERCOM0->USART,
.rx_pin = GPIO_PIN(PA, 11), /* RX pin */
.tx_pin = GPIO_PIN(PA, 10), /* TX pin */
.mux = GPIO_MUX_C,
.rx_pad = UART_PAD_RX_3,
.tx_pad = UART_PAD_TX_2,
.flags = UART_FLAG_NONE,
.dev = &SERCOM0->USART,
.rx_pin = GPIO_PIN(PA, 11), /* RX pin */
.tx_pin = GPIO_PIN(PA, 10), /* TX pin */
#ifdef MODULE_SAM0_PERIPH_UART_HW_FC
.rts_pin = GPIO_UNDEF,
.cts_pin = GPIO_UNDEF,
#endif
.mux = GPIO_MUX_C,
.rx_pad = UART_PAD_RX_3,
.tx_pad = UART_PAD_TX_2,
.flags = UART_FLAG_NONE,
.gclk_src = GCLK_CLKCTRL_GEN_GCLK0,
}
};
Expand Down
40 changes: 26 additions & 14 deletions boards/samd21-xpro/include/periph_conf.h
Original file line number Diff line number Diff line change
Expand Up @@ -138,30 +138,42 @@ static const uart_conf_t uart_config[] = {
.dev = &SERCOM3->USART,
.rx_pin = GPIO_PIN(PA,23),
.tx_pin = GPIO_PIN(PA,22),
#ifdef MODULE_SAM0_PERIPH_UART_HW_FC
.rts_pin = GPIO_UNDEF,
.cts_pin = GPIO_UNDEF,
#endif
.mux = GPIO_MUX_C,
.rx_pad = UART_PAD_RX_1,
.tx_pad = UART_PAD_TX_0,
.flags = UART_FLAG_NONE,
.gclk_src = GCLK_CLKCTRL_GEN_GCLK0
},
{ /* EXT1 */
.dev = &SERCOM4->USART,
.rx_pin = GPIO_PIN(PB,9),
.tx_pin = GPIO_PIN(PB,8),
.mux = GPIO_MUX_D,
.rx_pad = UART_PAD_RX_1,
.tx_pad = UART_PAD_TX_0,
.flags = UART_FLAG_NONE,
.dev = &SERCOM4->USART,
.rx_pin = GPIO_PIN(PB,9),
.tx_pin = GPIO_PIN(PB,8),
#ifdef MODULE_SAM0_PERIPH_UART_HW_FC
.rts_pin = GPIO_UNDEF,
.cts_pin = GPIO_UNDEF,
#endif
.mux = GPIO_MUX_D,
.rx_pad = UART_PAD_RX_1,
.tx_pad = UART_PAD_TX_0,
.flags = UART_FLAG_NONE,
.gclk_src = GCLK_CLKCTRL_GEN_GCLK0
},
{ /* EXT2/3 */
.dev = &SERCOM4->USART,
.rx_pin = GPIO_PIN(PB,11),
.tx_pin = GPIO_PIN(PB,10),
.mux = GPIO_MUX_D,
.rx_pad = UART_PAD_RX_3,
.tx_pad = UART_PAD_TX_2,
.flags = UART_FLAG_NONE,
.dev = &SERCOM4->USART,
.rx_pin = GPIO_PIN(PB,11),
.tx_pin = GPIO_PIN(PB,10),
#ifdef MODULE_SAM0_PERIPH_UART_HW_FC
.rts_pin = GPIO_UNDEF,
.cts_pin = GPIO_UNDEF,
#endif
.mux = GPIO_MUX_D,
.rx_pad = UART_PAD_RX_3,
.tx_pad = UART_PAD_TX_2,
.flags = UART_FLAG_NONE,
.gclk_src = GCLK_CLKCTRL_GEN_GCLK0
}
};
Expand Down
8 changes: 6 additions & 2 deletions boards/same54-xpro/include/periph_conf.h
Original file line number Diff line number Diff line change
Expand Up @@ -76,8 +76,12 @@ static const tc32_conf_t timer_config[] = {
static const uart_conf_t uart_config[] = {
{ /* Virtual COM Port */
.dev = &SERCOM2->USART,
.rx_pin = GPIO_PIN(PB,24),
.tx_pin = GPIO_PIN(PB,25),
.rx_pin = GPIO_PIN(PB, 24),
.tx_pin = GPIO_PIN(PB, 25),
#ifdef MODULE_SAM0_PERIPH_UART_HW_FC
.rts_pin = GPIO_UNDEF,
.cts_pin = GPIO_UNDEF,
#endif
.mux = GPIO_MUX_D,
.rx_pad = UART_PAD_RX_1,
.tx_pad = UART_PAD_TX_0,
Expand Down
8 changes: 8 additions & 0 deletions boards/saml21-xpro/include/periph_conf.h
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,10 @@ static const uart_conf_t uart_config[] = {
.dev = &SERCOM3->USART,
.rx_pin = GPIO_PIN(PA,23),
.tx_pin = GPIO_PIN(PA,22),
#ifdef MODULE_SAM0_PERIPH_UART_HW_FC
.rts_pin = GPIO_UNDEF,
.cts_pin = GPIO_UNDEF,
#endif
.mux = GPIO_MUX_C,
.rx_pad = UART_PAD_RX_1,
.tx_pad = UART_PAD_TX_0,
Expand All @@ -76,6 +80,10 @@ static const uart_conf_t uart_config[] = {
.dev = &SERCOM4->USART,
.rx_pin = GPIO_PIN(PB, 9),
.tx_pin = GPIO_PIN(PB, 8),
#ifdef MODULE_SAM0_PERIPH_UART_HW_FC
.rts_pin = GPIO_UNDEF,
.cts_pin = GPIO_UNDEF,
#endif
.mux = GPIO_MUX_D,
.rx_pad = UART_PAD_RX_1,
.tx_pad = UART_PAD_TX_0,
Expand Down
36 changes: 22 additions & 14 deletions boards/samr21-xpro/include/periph_conf.h
Original file line number Diff line number Diff line change
Expand Up @@ -135,23 +135,31 @@ static const tc32_conf_t timer_config[] = {
*/
static const uart_conf_t uart_config[] = {
{
.dev = &SERCOM0->USART,
.rx_pin = GPIO_PIN(PA,5),
.tx_pin = GPIO_PIN(PA,4),
.mux = GPIO_MUX_D,
.rx_pad = UART_PAD_RX_1,
.tx_pad = UART_PAD_TX_0,
.flags = UART_FLAG_NONE,
.dev = &SERCOM0->USART,
.rx_pin = GPIO_PIN(PA,5),
.tx_pin = GPIO_PIN(PA,4),
#ifdef MODULE_SAM0_PERIPH_UART_HW_FC
.rts_pin = GPIO_UNDEF,
.cts_pin = GPIO_UNDEF,
#endif
.mux = GPIO_MUX_D,
.rx_pad = UART_PAD_RX_1,
.tx_pad = UART_PAD_TX_0,
.flags = UART_FLAG_NONE,
.gclk_src = GCLK_CLKCTRL_GEN_GCLK0
},
{
.dev = &SERCOM5->USART,
.rx_pin = GPIO_PIN(PA,23),
.tx_pin = GPIO_PIN(PA,22),
.mux = GPIO_MUX_D,
.rx_pad = UART_PAD_RX_1,
.tx_pad = UART_PAD_TX_0,
.flags = UART_FLAG_NONE,
.dev = &SERCOM5->USART,
.rx_pin = GPIO_PIN(PA,23),
.tx_pin = GPIO_PIN(PA,22),
#ifdef MODULE_SAM0_PERIPH_UART_HW_FC
.rts_pin = GPIO_UNDEF,
.cts_pin = GPIO_UNDEF,
#endif
.mux = GPIO_MUX_D,
.rx_pad = UART_PAD_RX_1,
.tx_pad = UART_PAD_TX_0,
.flags = UART_FLAG_NONE,
.gclk_src = GCLK_CLKCTRL_GEN_GCLK0
}
};
Expand Down
4 changes: 4 additions & 0 deletions boards/samr30-xpro/include/periph_conf.h
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,10 @@ static const uart_conf_t uart_config[] = {
.dev = &SERCOM0->USART,
.rx_pin = GPIO_PIN(PA,5),
.tx_pin = GPIO_PIN(PA,4),
#ifdef MODULE_SAM0_PERIPH_UART_HW_FC
.rts_pin = GPIO_UNDEF,
.cts_pin = GPIO_UNDEF,
#endif
.mux = GPIO_MUX_D,
.rx_pad = UART_PAD_RX_1,
.tx_pad = UART_PAD_TX_0,
Expand Down
4 changes: 4 additions & 0 deletions boards/samr34-xpro/include/periph_conf.h
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,10 @@ static const uart_conf_t uart_config[] = {
.dev = &SERCOM0->USART,
.rx_pin = GPIO_PIN(PA, 5),
.tx_pin = GPIO_PIN(PA, 4),
#ifdef MODULE_SAM0_PERIPH_UART_HW_FC
.rts_pin = GPIO_UNDEF,
.cts_pin = GPIO_UNDEF,
#endif
.mux = GPIO_MUX_D,
.rx_pad = UART_PAD_RX_1,
.tx_pad = UART_PAD_TX_0,
Expand Down
36 changes: 22 additions & 14 deletions boards/sensebox_samd21/include/periph_conf.h
Original file line number Diff line number Diff line change
Expand Up @@ -125,23 +125,31 @@ static const tc32_conf_t timer_config[] = {
*/
static const uart_conf_t uart_config[] = {
{
.dev = &SERCOM3->USART,
.rx_pin = GPIO_PIN(PA, 23),
.tx_pin = GPIO_PIN(PA, 22),
.mux = GPIO_MUX_C,
.rx_pad = UART_PAD_RX_1,
.tx_pad = UART_PAD_TX_0,
.flags = UART_FLAG_NONE,
.dev = &SERCOM3->USART,
.rx_pin = GPIO_PIN(PA, 23),
.tx_pin = GPIO_PIN(PA, 22),
#ifdef MODULE_SAM0_PERIPH_UART_HW_FC
.rts_pin = GPIO_UNDEF,
.cts_pin = GPIO_UNDEF,
#endif
.mux = GPIO_MUX_C,
.rx_pad = UART_PAD_RX_1,
.tx_pad = UART_PAD_TX_0,
.flags = UART_FLAG_NONE,
.gclk_src = GCLK_CLKCTRL_GEN_GCLK0,
},
{
.dev = &SERCOM4->USART,
.rx_pin = GPIO_PIN(PB, 9),
.tx_pin = GPIO_PIN(PB, 8),
.mux = GPIO_MUX_D,
.rx_pad = UART_PAD_RX_1,
.tx_pad = UART_PAD_TX_0,
.flags = UART_FLAG_NONE,
.dev = &SERCOM4->USART,
.rx_pin = GPIO_PIN(PB, 9),
.tx_pin = GPIO_PIN(PB, 8),
#ifdef MODULE_SAM0_PERIPH_UART_HW_FC
.rts_pin = GPIO_UNDEF,
.cts_pin = GPIO_UNDEF,
#endif
.mux = GPIO_MUX_D,
.rx_pad = UART_PAD_RX_1,
.tx_pad = UART_PAD_TX_0,
.flags = UART_FLAG_NONE,
.gclk_src = GCLK_CLKCTRL_GEN_GCLK0,
}
};
Expand Down
16 changes: 16 additions & 0 deletions boards/sodaq-autonomo/include/periph_conf.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,10 @@ static const uart_conf_t uart_config[] = {
.dev = &SERCOM0->USART,
.rx_pin = GPIO_PIN(PA,9),
.tx_pin = GPIO_PIN(PA,10),
#ifdef MODULE_SAM0_PERIPH_UART_HW_FC
.rts_pin = GPIO_UNDEF,
.cts_pin = GPIO_UNDEF,
#endif
.mux = GPIO_MUX_C,
.rx_pad = UART_PAD_RX_1,
.tx_pad = UART_PAD_TX_2,
Expand All @@ -54,6 +58,10 @@ static const uart_conf_t uart_config[] = {
.dev = &SERCOM5->USART,
.rx_pin = GPIO_PIN(PB,31),
.tx_pin = GPIO_PIN(PB,30),
#ifdef MODULE_SAM0_PERIPH_UART_HW_FC
.rts_pin = GPIO_UNDEF,
.cts_pin = GPIO_UNDEF,
#endif
.mux = GPIO_MUX_D,
.rx_pad = UART_PAD_RX_1,
.tx_pad = UART_PAD_TX_0_RTS_2_CTS_3,
Expand All @@ -64,6 +72,10 @@ static const uart_conf_t uart_config[] = {
.dev = &SERCOM4->USART,
.rx_pin = GPIO_PIN(PB,13),
.tx_pin = GPIO_PIN(PB,14),
#ifdef MODULE_SAM0_PERIPH_UART_HW_FC
.rts_pin = GPIO_UNDEF,
.cts_pin = GPIO_UNDEF,
#endif
.mux = GPIO_MUX_C,
.rx_pad = UART_PAD_RX_1,
.tx_pad = UART_PAD_TX_2,
Expand All @@ -74,6 +86,10 @@ static const uart_conf_t uart_config[] = {
.dev = &SERCOM1->USART,
.rx_pin = GPIO_PIN(PA,17),
.tx_pin = GPIO_PIN(PA,18),
#ifdef MODULE_SAM0_PERIPH_UART_HW_FC
.rts_pin = GPIO_UNDEF,
.cts_pin = GPIO_UNDEF,
#endif
.mux = GPIO_MUX_C,
.rx_pad = UART_PAD_RX_1,
.tx_pad = UART_PAD_TX_2,
Expand Down
12 changes: 12 additions & 0 deletions boards/sodaq-explorer/include/periph_conf.h
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,10 @@ static const uart_conf_t uart_config[] = {
.dev = &SERCOM5->USART,
.rx_pin = GPIO_PIN(PB,31), /* D0, RX Pin */
.tx_pin = GPIO_PIN(PB,30), /* D1, TX Pin */
#ifdef MODULE_SAM0_PERIPH_UART_HW_FC
.rts_pin = GPIO_UNDEF,
.cts_pin = GPIO_UNDEF,
#endif
.mux = GPIO_MUX_D,
.rx_pad = UART_PAD_RX_1,
.tx_pad = UART_PAD_TX_0_RTS_2_CTS_3,
Expand All @@ -50,6 +54,10 @@ static const uart_conf_t uart_config[] = {
.dev = &SERCOM4->USART,
.rx_pin = GPIO_PIN(PB,13),
.tx_pin = GPIO_PIN(PB,14),
#ifdef MODULE_SAM0_PERIPH_UART_HW_FC
.rts_pin = GPIO_UNDEF,
.cts_pin = GPIO_UNDEF,
#endif
.mux = GPIO_MUX_C,
.rx_pad = UART_PAD_RX_1,
.tx_pad = UART_PAD_TX_2,
Expand All @@ -60,6 +68,10 @@ static const uart_conf_t uart_config[] = {
.dev = &SERCOM0->USART,
.rx_pin = GPIO_PIN(PA,5),
.tx_pin = GPIO_PIN(PA,6),
#ifdef MODULE_SAM0_PERIPH_UART_HW_FC
.rts_pin = GPIO_UNDEF,
.cts_pin = GPIO_UNDEF,
#endif
.mux = GPIO_MUX_D,
.rx_pad = UART_PAD_RX_1,
.tx_pad = UART_PAD_TX_2,
Expand Down
Loading

0 comments on commit 29664c1

Please sign in to comment.