// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-3-Clause)
/*
 * Copyright (C) 2023-2024, STMicroelectronics - All Rights Reserved
 * Author: Alexandre Torgue <alexandre.torgue@foss.st.com> for STMicroelectronics.
 */
#include <dt-bindings/pinctrl/stm32-pinfunc.h>

&pinctrl {
	/omit-if-no-ref/
	sdmmc1_b4_pins_a: sdmmc1-b4-0 {
		pins1 {
			pinmux = <STM32_PINMUX('E', 4, AF10)>, /* SDMMC1_D0 */
				 <STM32_PINMUX('E', 5, AF10)>, /* SDMMC1_D1 */
				 <STM32_PINMUX('E', 0, AF10)>, /* SDMMC1_D2 */
				 <STM32_PINMUX('E', 1, AF10)>, /* SDMMC1_D3 */
				 <STM32_PINMUX('E', 2, AF10)>; /* SDMMC1_CMD */
			slew-rate = <2>;
			drive-push-pull;
			bias-disable;
		};
		pins2 {
			pinmux = <STM32_PINMUX('E', 3, AF10)>; /* SDMMC1_CK */
			slew-rate = <3>;
			drive-push-pull;
			bias-disable;
		};
	};

	/omit-if-no-ref/
	sdmmc2_b4_pins_a: sdmmc2-b4-0 {
		pins1 {
			pinmux = <STM32_PINMUX('E', 13, AF12)>, /* SDMMC2_D0 */
				 <STM32_PINMUX('E', 11, AF12)>, /* SDMMC2_D1 */
				 <STM32_PINMUX('E', 8, AF12)>, /* SDMMC2_D2 */
				 <STM32_PINMUX('E', 12, AF12)>, /* SDMMC2_D3 */
				 <STM32_PINMUX('E', 15, AF12)>; /* SDMMC2_CMD */
			slew-rate = <2>;
			drive-push-pull;
			bias-pull-up;
		};
		pins2 {
			pinmux = <STM32_PINMUX('E', 14, AF12)>; /* SDMMC2_CK */
			slew-rate = <3>;
			drive-push-pull;
			bias-pull-up;
		};
	};

	/omit-if-no-ref/
	sdmmc2_d47_pins_a: sdmmc2-d47-0 {
		pins {
			pinmux = <STM32_PINMUX('E', 10, AF12)>, /* SDMMC2_D4 */
				 <STM32_PINMUX('E', 9, AF12)>, /* SDMMC2_D5 */
				 <STM32_PINMUX('E', 6, AF12)>, /* SDMMC2_D6 */
				 <STM32_PINMUX('E', 7, AF12)>; /* SDMMC2_D7 */
			slew-rate = <2>;
			drive-push-pull;
			bias-pull-up;
		};
	};

	/omit-if-no-ref/
	usart2_pins_a: usart2-0 {
		pins1 {
			pinmux = <STM32_PINMUX('A', 4, AF6)>; /* USART2_TX */
			bias-disable;
			drive-push-pull;
			slew-rate = <0>;
		};
		pins2 {
			pinmux = <STM32_PINMUX('A', 8, AF8)>; /* USART2_RX */
			bias-disable;
		};
	};
};
