Skip to content

Commit 285f558

Browse files
gmarullnashif
authored andcommitted
drivers: serial: gd32: use pinctrl
Use the pinctrl API to configure peripheral pins. Signed-off-by: Gerard Marull-Paretas <[email protected]>
1 parent 037869e commit 285f558

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

drivers/serial/usart_gd32.c

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,13 @@
55

66
#define DT_DRV_COMPAT gd_gd32_usart
77

8+
#include <drivers/pinctrl.h>
89
#include <drivers/uart.h>
910

1011
struct gd32_usart_config {
1112
uint32_t reg;
1213
uint32_t rcu_periph_clock;
14+
const struct pinctrl_dev_config *pcfg;
1315
};
1416

1517
struct gd32_usart_data {
@@ -20,8 +22,12 @@ static int usart_gd32_init(const struct device *dev)
2022
{
2123
const struct gd32_usart_config *const cfg = dev->config;
2224
struct gd32_usart_data *const data = dev->data;
25+
int ret;
2326

24-
/* NOTE: pins are configured at board_init till pinctrl be available */
27+
ret = pinctrl_apply_state(cfg->pcfg, PINCTRL_STATE_DEFAULT);
28+
if (ret < 0) {
29+
return ret;
30+
}
2531

2632
rcu_periph_clock_enable(cfg->rcu_periph_clock);
2733
usart_deinit(cfg->reg);
@@ -100,12 +106,14 @@ static const struct uart_driver_api usart_gd32_driver_api = {
100106
};
101107

102108
#define GD32_USART_INIT(n) \
109+
PINCTRL_DT_INST_DEFINE(n) \
103110
static struct gd32_usart_data usart##n##_gd32_data = { \
104111
.baud_rate = DT_INST_PROP(n, current_speed), \
105112
}; \
106113
static const struct gd32_usart_config usart##n##_gd32_config = { \
107114
.reg = DT_INST_REG_ADDR(n), \
108115
.rcu_periph_clock = DT_INST_PROP(n, rcu_periph_clock), \
116+
.pcfg = PINCTRL_DT_INST_DEV_CONFIG_GET(n), \
109117
}; \
110118
DEVICE_DT_INST_DEFINE(n, &usart_gd32_init, \
111119
NULL, \

dts/bindings/serial/gd,gd32-usart.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ description: GigaDevice USART
55

66
compatible: "gd,gd32-usart"
77

8-
include: uart-controller.yaml
8+
include: [uart-controller.yaml, pinctrl-device.yaml]
99

1010
properties:
1111
reg:

0 commit comments

Comments
 (0)