Skip to content

Commit 153c418

Browse files
rhsskfabiobaltieri
authored andcommitted
pinctrl: gecko: fix broken UART when SPI is enabled on Series 2
When SPI is enabled, pinctrl driver configures all the pins in UART pinctrl config as gpioModeDisabled. Signed-off-by: Rihards Skuja <[email protected]>
1 parent c5f8427 commit 153c418

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

drivers/pinctrl/pinctrl_gecko.c

+6-4
Original file line numberDiff line numberDiff line change
@@ -249,6 +249,8 @@ int pinctrl_configure_pins(const pinctrl_soc_pin_t *pins, uint8_t pin_cnt, uintp
249249
GPIO->USARTROUTE[usart_num].CLKROUTE =
250250
(pin_config.pin << _GPIO_USART_CLKROUTE_PIN_SHIFT) |
251251
(pin_config.port << _GPIO_USART_CLKROUTE_PORT_SHIFT);
252+
GPIO_PinModeSet(pin_config.port, pin_config.pin, pin_config.mode,
253+
pin_config.out);
252254
break;
253255

254256
case GECKO_FUN_SPI_MOSI:
@@ -258,6 +260,8 @@ int pinctrl_configure_pins(const pinctrl_soc_pin_t *pins, uint8_t pin_cnt, uintp
258260
GPIO->USARTROUTE[usart_num].TXROUTE =
259261
(pin_config.pin << _GPIO_USART_TXROUTE_PIN_SHIFT) |
260262
(pin_config.port << _GPIO_USART_TXROUTE_PORT_SHIFT);
263+
GPIO_PinModeSet(pin_config.port, pin_config.pin, pin_config.mode,
264+
pin_config.out);
261265
break;
262266

263267
case GECKO_FUN_SPI_MISO:
@@ -267,17 +271,15 @@ int pinctrl_configure_pins(const pinctrl_soc_pin_t *pins, uint8_t pin_cnt, uintp
267271
GPIO->USARTROUTE[usart_num].RXROUTE =
268272
(pin_config.pin << _GPIO_USART_RXROUTE_PIN_SHIFT) |
269273
(pin_config.port << _GPIO_USART_RXROUTE_PORT_SHIFT);
274+
GPIO_PinModeSet(pin_config.port, pin_config.pin, pin_config.mode,
275+
pin_config.out);
270276
break;
271277
#endif /* CONFIG_SOC_GECKO_SERIES1 */
272278
#endif /* CONFIG_SPI_GECKO */
273279

274280
default:
275281
return -ENOTSUP;
276282
}
277-
#if defined(CONFIG_SPI_GECKO) && !defined(CONFIG_SOC_GECKO_SERIES1)
278-
GPIO_PinModeSet(pin_config.port, pin_config.pin,
279-
pin_config.mode, pin_config.out);
280-
#endif /* defined(CONFIG_SPI_GECKO) && !defined(CONFIG_SOC_GECKO_SERIES1) */
281283
}
282284

283285
return 0;

0 commit comments

Comments
 (0)