/*
 * Copyright 2017 - Alexandre Torgue <alexandre.torgue@st.com>
 *
 * This file is dual-licensed: you can use it either under the terms
 * of the GPL or the X11 license, at your option. Note that this dual
 * licensing only applies to this file, and not this project as a
 * whole.
 *
 *  a) This file is free software; you can redistribute it and/or
 *     modify it under the terms of the GNU General Public License as
 *     published by the Free Software Foundation; either version 2 of the
 *     License, or (at your option) any later version.
 *
 *     This file is distributed in the hope that it will be useful,
 *     but WITHOUT ANY WARRANTY; without even the implied warranty of
 *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *     GNU General Public License for more details.
 *
 * Or, alternatively,
 *
 *  b) Permission is hereby granted, free of charge, to any person
 *     obtaining a copy of this software and associated documentation
 *     files (the "Software"), to deal in the Software without
 *     restriction, including without limitation the rights to use,
 *     copy, modify, merge, publish, distribute, sublicense, and/or
 *     sell copies of the Software, and to permit persons to whom the
 *     Software is furnished to do so, subject to the following
 *     conditions:
 *
 *     The above copyright notice and this permission notice shall be
 *     included in all copies or substantial portions of the Software.
 *
 *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
 *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
 *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
 *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 *     OTHER DEALINGS IN THE SOFTWARE.
 */

#include <dt-bindings/pinctrl/stm32-pinfunc.h>

&pinctrl {

	i2c1_pins_a: i2c1-0 {
		pins {
			pinmux = <STM32_PINMUX('B', 6, AF4)>, /* I2C1_SCL */
				 <STM32_PINMUX('B', 7, AF4)>; /* I2C1_SDA */
			bias-disable;
			drive-open-drain;
			slew-rate = <0>;
		};
	};

	ethernet_rmii: rmii-0 {
		pins {
			pinmux = <STM32_PINMUX('G', 11, AF11)>,
				 <STM32_PINMUX('G', 13, AF11)>,
				 <STM32_PINMUX('G', 12, AF11)>,
				 <STM32_PINMUX('C', 4, AF11)>,
				 <STM32_PINMUX('C', 5, AF11)>,
				 <STM32_PINMUX('A', 7, AF11)>,
				 <STM32_PINMUX('C', 1, AF11)>,
				 <STM32_PINMUX('A', 2, AF11)>,
				 <STM32_PINMUX('A', 1, AF11)>;
			slew-rate = <2>;
		};
	};

	sdmmc1_b4_pins_a: sdmmc1-b4-0 {
		pins {
			pinmux = <STM32_PINMUX('C', 8, AF12)>, /* SDMMC1_D0 */
				 <STM32_PINMUX('C', 9, AF12)>, /* SDMMC1_D1 */
				 <STM32_PINMUX('C', 10, AF12)>, /* SDMMC1_D2 */
				 <STM32_PINMUX('C', 11, AF12)>, /* SDMMC1_D3 */
				 <STM32_PINMUX('C', 12, AF12)>, /* SDMMC1_CK */
				 <STM32_PINMUX('D', 2, AF12)>; /* SDMMC1_CMD */
			slew-rate = <3>;
			drive-push-pull;
			bias-disable;
		};
	};

	sdmmc1_b4_od_pins_a: sdmmc1-b4-od-0 {
		pins1 {
			pinmux = <STM32_PINMUX('C', 8, AF12)>, /* SDMMC1_D0 */
				 <STM32_PINMUX('C', 9, AF12)>, /* SDMMC1_D1 */
				 <STM32_PINMUX('C', 10, AF12)>, /* SDMMC1_D2 */
				 <STM32_PINMUX('C', 11, AF12)>, /* SDMMC1_D3 */
				 <STM32_PINMUX('C', 12, AF12)>; /* SDMMC1_CK */
			slew-rate = <3>;
			drive-push-pull;
			bias-disable;
		};
		pins2 {
			pinmux = <STM32_PINMUX('D', 2, AF12)>; /* SDMMC1_CMD */
			slew-rate = <3>;
			drive-open-drain;
			bias-disable;
		};
	};

	sdmmc1_b4_sleep_pins_a: sdmmc1-b4-sleep-0 {
		pins {
			pinmux = <STM32_PINMUX('C', 8, ANALOG)>, /* SDMMC1_D0 */
				 <STM32_PINMUX('C', 9, ANALOG)>, /* SDMMC1_D1 */
				 <STM32_PINMUX('C', 10, ANALOG)>, /* SDMMC1_D2 */
				 <STM32_PINMUX('C', 11, ANALOG)>, /* SDMMC1_D3 */
				 <STM32_PINMUX('C', 12, ANALOG)>, /* SDMMC1_CK */
				 <STM32_PINMUX('D', 2, ANALOG)>; /* SDMMC1_CMD */
		};
	};

	sdmmc1_dir_pins_a: sdmmc1-dir-0 {
		pins1 {
			pinmux = <STM32_PINMUX('C', 6, AF8)>, /* SDMMC1_D0DIR */
				 <STM32_PINMUX('C', 7, AF8)>, /* SDMMC1_D123DIR */
				 <STM32_PINMUX('B', 9, AF7)>; /* SDMMC1_CDIR */
			slew-rate = <3>;
			drive-push-pull;
			bias-pull-up;
		};
		pins2 {
			pinmux = <STM32_PINMUX('B', 8, AF7)>; /* SDMMC1_CKIN */
			bias-pull-up;
		};
	};

	sdmmc1_dir_sleep_pins_a: sdmmc1-dir-sleep-0 {
		pins {
			pinmux = <STM32_PINMUX('C', 6, ANALOG)>, /* SDMMC1_D0DIR */
				 <STM32_PINMUX('C', 7, ANALOG)>, /* SDMMC1_D123DIR */
				 <STM32_PINMUX('B', 9, ANALOG)>, /* SDMMC1_CDIR */
				 <STM32_PINMUX('B', 8, ANALOG)>; /* SDMMC1_CKIN */
		};
	};

	sdmmc2_b4_pins_a: sdmmc2-b4-0 {
		pins {
			pinmux = <STM32_PINMUX('B', 14, AF9)>, /* SDMMC1_D0 */
				 <STM32_PINMUX('B', 15, AF9)>, /* SDMMC1_D1 */
				 <STM32_PINMUX('B', 3, AF9)>, /* SDMMC1_D2 */
				 <STM32_PINMUX('B', 4, AF9)>, /* SDMMC1_D3 */
				 <STM32_PINMUX('D', 6, AF11)>, /* SDMMC1_CK */
				 <STM32_PINMUX('D', 7, AF11)>; /* SDMMC1_CMD */
			slew-rate = <3>;
			drive-push-pull;
			bias-disable;
		};
	};

	sdmmc2_b4_od_pins_a: sdmmc2-b4-od-0 {
		pins1 {
			pinmux = <STM32_PINMUX('B', 14, AF9)>, /* SDMMC2_D0 */
				 <STM32_PINMUX('B', 15, AF9)>, /* SDMMC1_D1 */
				 <STM32_PINMUX('B', 3, AF9)>, /* SDMMC1_D2 */
				 <STM32_PINMUX('B', 4, AF9)>, /* SDMMC1_D3 */
				 <STM32_PINMUX('D', 6, AF11)>; /* SDMMC1_CK */
			slew-rate = <3>;
			drive-push-pull;
			bias-disable;
		};
		pins2 {
			pinmux = <STM32_PINMUX('D', 7, AF11)>; /* SDMMC1_CMD */
			slew-rate = <3>;
			drive-open-drain;
			bias-disable;
		};
	};

	sdmmc2_b4_sleep_pins_a: sdmmc2-b4-sleep-0 {
		pins {
			pinmux = <STM32_PINMUX('B', 14, ANALOG)>, /* SDMMC1_D0 */
				 <STM32_PINMUX('B', 15, ANALOG)>, /* SDMMC1_D1 */
				 <STM32_PINMUX('B', 3, ANALOG)>, /* SDMMC1_D2 */
				 <STM32_PINMUX('B', 4, ANALOG)>, /* SDMMC1_D3 */
				 <STM32_PINMUX('D', 6, ANALOG)>, /* SDMMC1_CK */
				 <STM32_PINMUX('D', 7, ANALOG)>; /* SDMMC1_CMD */
		};
	};

	spi1_pins: spi1-0 {
		pins1 {
			pinmux = <STM32_PINMUX('A', 5, AF5)>,
				/* SPI1_CLK */
				 <STM32_PINMUX('B', 5, AF5)>;
				/* SPI1_MOSI */
			bias-disable;
			drive-push-pull;
			slew-rate = <2>;
		};
		pins2 {
			pinmux = <STM32_PINMUX('G', 9, AF5)>;
				/* SPI1_MISO */
			bias-disable;
		};
	};

	uart4_pins: uart4-0 {
		pins1 {
			pinmux = <STM32_PINMUX('A', 0, AF8)>; /* UART4_TX */
			bias-disable;
			drive-push-pull;
			slew-rate = <0>;
		};
		pins2 {
			pinmux = <STM32_PINMUX('I', 9, AF8)>; /* UART4_RX */
			bias-disable;
		};
	};

	usart1_pins: usart1-0 {
		pins1 {
			pinmux = <STM32_PINMUX('B', 14, AF4)>; /* USART1_TX */
			bias-disable;
			drive-push-pull;
			slew-rate = <0>;
		};
		pins2 {
			pinmux = <STM32_PINMUX('B', 15, AF4)>; /* USART1_RX */
			bias-disable;
		};
	};

	usart2_pins: usart2-0 {
		pins1 {
			pinmux = <STM32_PINMUX('D', 5, AF7)>; /* USART2_TX */
			bias-disable;
			drive-push-pull;
			slew-rate = <0>;
		};
		pins2 {
			pinmux = <STM32_PINMUX('D', 6, AF7)>; /* USART2_RX */
			bias-disable;
		};
	};

	usart3_pins: usart3-0 {
		pins1 {
			pinmux = <STM32_PINMUX('B', 10, AF7)>, /* USART3_TX */
				 <STM32_PINMUX('D', 12, AF7)>; /* USART3_RTS_DE */
			bias-disable;
			drive-push-pull;
			slew-rate = <0>;
		};
		pins2 {
			pinmux = <STM32_PINMUX('B', 11, AF7)>, /* USART3_RX */
				 <STM32_PINMUX('D', 11, AF7)>; /* USART3_CTS_NSS */
			bias-disable;
		};
	};

	usbotg_hs_pins_a: usbotg-hs-0 {
		pins {
			pinmux = <STM32_PINMUX('H', 4, AF10)>,	/* ULPI_NXT */
					 <STM32_PINMUX('I', 11, AF10)>, /* ULPI_DIR> */
					 <STM32_PINMUX('C', 0, AF10)>,	/* ULPI_STP> */
					 <STM32_PINMUX('A', 5, AF10)>,	/* ULPI_CK> */
					 <STM32_PINMUX('A', 3, AF10)>,	/* ULPI_D0> */
					 <STM32_PINMUX('B', 0, AF10)>,	/* ULPI_D1> */
					 <STM32_PINMUX('B', 1, AF10)>,	/* ULPI_D2> */
					 <STM32_PINMUX('B', 10, AF10)>, /* ULPI_D3> */
					 <STM32_PINMUX('B', 11, AF10)>, /* ULPI_D4> */
					 <STM32_PINMUX('B', 12, AF10)>, /* ULPI_D5> */
					 <STM32_PINMUX('B', 13, AF10)>, /* ULPI_D6> */
					 <STM32_PINMUX('B', 5, AF10)>;	/* ULPI_D7> */
			bias-disable;
			drive-push-pull;
			slew-rate = <2>;
		};
	};
};

