From f8423a1b459e3dd8ef2f19f966cabe161224d6e6 Mon Sep 17 00:00:00 2001 From: Gerard Marull-Paretas Date: Tue, 25 Jan 2022 20:25:48 +0100 Subject: [PATCH] drivers: serial: xmc4xxx: drop usage of uart_device_config Create a driver specific configuration structure, containing the required fields only. Signed-off-by: Gerard Marull-Paretas --- drivers/serial/uart_xmc4xxx.c | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/drivers/serial/uart_xmc4xxx.c b/drivers/serial/uart_xmc4xxx.c index 556516e1232..70a6c454115 100644 --- a/drivers/serial/uart_xmc4xxx.c +++ b/drivers/serial/uart_xmc4xxx.c @@ -11,42 +11,44 @@ #include #include +struct uart_xmc4xx_config { + XMC_USIC_CH_t *uart; +}; + struct uart_xmc4xxx_data { XMC_UART_CH_CONFIG_t config; }; static int uart_xmc4xxx_poll_in(const struct device *dev, unsigned char *c) { - const struct uart_device_config *config = dev->config; + const struct uart_xmc4xx_config *config = dev->config; - *(uint16_t *)c = - XMC_UART_CH_GetReceivedData((XMC_USIC_CH_t *)config->base); + *(uint16_t *)c = XMC_UART_CH_GetReceivedData(config->uart); return 0; } static void uart_xmc4xxx_poll_out(const struct device *dev, unsigned char c) { - const struct uart_device_config *config = dev->config; + const struct uart_xmc4xx_config *config = dev->config; - XMC_UART_CH_Transmit((XMC_USIC_CH_t *)config->base, (uint16_t)c); + XMC_UART_CH_Transmit(config->uart, (uint16_t)c); } static int uart_xmc4xxx_init(const struct device *dev) { - const struct uart_device_config *config = dev->config; + const struct uart_xmc4xx_config *config = dev->config; struct uart_xmc4xxx_data *data = dev->data; - XMC_USIC_CH_t *uart = (XMC_USIC_CH_t *)config->base; data->config.data_bits = 8U; data->config.stop_bits = 1U; /* configure PIN 0.0 and 0.1 as UART */ - XMC_UART_CH_Init(uart, &(data->config)); + XMC_UART_CH_Init(config->uart, &(data->config)); XMC_GPIO_SetMode(P0_0, XMC_GPIO_MODE_INPUT_TRISTATE); - XMC_UART_CH_SetInputSource(uart, XMC_UART_CH_INPUT_RXD, + XMC_UART_CH_SetInputSource(config->uart, XMC_UART_CH_INPUT_RXD, USIC1_C1_DX0_P0_0); - XMC_UART_CH_Start(uart); + XMC_UART_CH_Start(config->uart); XMC_GPIO_SetMode(P0_1, XMC_GPIO_MODE_OUTPUT_PUSH_PULL | P0_1_AF_U1C1_DOUT0); @@ -64,8 +66,8 @@ static struct uart_xmc4xxx_data xmc4xxx_data_##index = { \ .config.baudrate = DT_INST_PROP(index, current_speed) \ }; \ \ -static const struct uart_device_config xmc4xxx_config_##index = { \ - .base = (void *)DT_INST_REG_ADDR(index), \ +static const struct uart_xmc4xx_config xmc4xxx_config_##index = { \ + .uart = (XMC_USIC_CH_t *)DT_INST_REG_ADDR(index), \ }; \ \ DEVICE_DT_INST_DEFINE(index, &uart_xmc4xxx_init, \