From e844ca9e4f8f39b17088f9d3d1deef6206cda2c1 Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Fri, 28 Apr 2017 14:44:01 +0200 Subject: [PATCH] pinmux: stm32: Add support for Nucleo L432KC Add pinmux configuration for the Nucleo L432KC board Signed-off-by: Neil Armstrong --- drivers/pinmux/Makefile | 1 + .../pinmux/stm32/pinmux_board_nucleo_l432kc.c | 46 +++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 drivers/pinmux/stm32/pinmux_board_nucleo_l432kc.c diff --git a/drivers/pinmux/Makefile b/drivers/pinmux/Makefile index 95f20ebbdc9..b50ac5fd66c 100644 --- a/drivers/pinmux/Makefile +++ b/drivers/pinmux/Makefile @@ -14,6 +14,7 @@ obj-$(CONFIG_BOARD_NUCLEO_F401RE) += stm32/pinmux_board_nucleo_f401re.o obj-$(CONFIG_BOARD_NUCLEO_F411RE) += stm32/pinmux_board_nucleo_f411re.o obj-$(CONFIG_BOARD_96B_CARBON) += stm32/pinmux_board_carbon.o obj-$(CONFIG_BOARD_NUCLEO_L476RG) += stm32/pinmux_board_nucleo_l476rg.o +obj-$(CONFIG_BOARD_NUCLEO_L432KC) += stm32/pinmux_board_nucleo_l432kc.o obj-$(CONFIG_BOARD_DISCO_L475_IOT1) += stm32/pinmux_board_disco_l475_iot1.o obj-$(CONFIG_BOARD_OLIMEXINO_STM32) += stm32/pinmux_board_olimexino_stm32.o obj-$(CONFIG_BOARD_STM32_MINI_A15) += stm32/pinmux_board_stm32_mini_a15.o diff --git a/drivers/pinmux/stm32/pinmux_board_nucleo_l432kc.c b/drivers/pinmux/stm32/pinmux_board_nucleo_l432kc.c new file mode 100644 index 00000000000..9ee4e4a48f1 --- /dev/null +++ b/drivers/pinmux/stm32/pinmux_board_nucleo_l432kc.c @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2016 Open-RnD Sp. z o.o. + * Copyright (c) 2016 BayLibre, SAS + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include +#include +#include +#include +#include +#include "pinmux/pinmux.h" + +#include "pinmux_stm32.h" + +/* pin assignments for NUCLEO-L432KC board */ +static const struct pin_config pinconf[] = { +#ifdef CONFIG_UART_STM32_PORT_1 + {STM32_PIN_PA9, STM32L4X_PINMUX_FUNC_PA9_USART1_TX}, + {STM32_PIN_PA10, STM32L4X_PINMUX_FUNC_PA10_USART1_RX}, +#endif /* CONFIG_UART_STM32_PORT_1 */ +#ifdef CONFIG_UART_STM32_PORT_2 + {STM32_PIN_PA2, STM32L4X_PINMUX_FUNC_PA2_USART2_TX}, + {STM32_PIN_PA3, STM32L4X_PINMUX_FUNC_PA3_USART2_RX}, +#endif /* CONFIG_UART_STM32_PORT_2 */ +#ifdef CONFIG_I2C_1 + {STM32_PIN_PB6, STM32L4X_PINMUX_FUNC_PB6_I2C1_SCL}, + {STM32_PIN_PB7, STM32L4X_PINMUX_FUNC_PB7_I2C1_SDA}, +#endif /* CONFIG_I2C_1 */ +#ifdef CONFIG_PWM_STM32_2 + {STM32_PIN_PA0, STM32L4X_PINMUX_FUNC_PA0_PWM2_CH1}, +#endif /* CONFIG_PWM_STM32_2 */ +}; + +static int pinmux_stm32_init(struct device *port) +{ + ARG_UNUSED(port); + + stm32_setup_pins(pinconf, ARRAY_SIZE(pinconf)); + + return 0; +} + +SYS_INIT(pinmux_stm32_init, PRE_KERNEL_1, + CONFIG_PINMUX_STM32_DEVICE_INITIALIZATION_PRIORITY);