/*
 * NOTE: Autogenerated file by gen_board_pinctrl.py
 * for MK66FN2M0VMD18/signal_configuration.xml
 *
 * Copyright (c) 2022, NXP
 * SPDX-License-Identifier: Apache-2.0
 */


#include <nxp/kinetis/MK66FN2M0VMD18-pinctrl.h>

&pinctrl {
	mdio_default: mdio_default {
		group0 {
			pinmux = <RMII0_MDIO_PTB0>;
			drive-strength = "low";
			drive-open-drain;
			bias-pull-up;
			slew-rate = "fast";
		};
		group1 {
			pinmux = <RMII0_MDC_PTB1>;
			drive-strength = "low";
			slew-rate = "fast";
		};
	};

	enet_default: enet_default {
		group0 {
			pinmux = <RMII0_RXER_PTA5>,
				<RMII0_RXD1_PTA12>,
				<RMII0_RXD0_PTA13>,
				<RMII0_CRS_DV_PTA14>,
				<RMII0_TXEN_PTA15>,
				<RMII0_TXD1_PTA17>,
				<RMII0_TXD0_PTA16>;
			drive-strength = "low";
			slew-rate = "fast";
		};
	};

	flexcan0_default: flexcan0_default {
		group0 {
			pinmux = <CAN0_RX_PTB19>,
				<CAN0_TX_PTB18>;
			drive-strength = "low";
			slew-rate = "fast";
		};
	};

	flexcan1_default: flexcan1_default {
		group0 {
			pinmux = <CAN1_RX_PTC16>,
				<CAN1_TX_PTC17>;
			drive-strength = "low";
			slew-rate = "fast";
		};
	};

	ftm0_default: ftm0_default {
		group0 {
			pinmux = <FTM0_CH0_PTC1>,
				<FTM0_CH3_PTA6>,
				<FTM0_CH4_PTD4>,
				<FTM0_CH5_PTD5>;
			drive-strength = "low";
			slew-rate = "fast";
		};
	};

	/* conflicts with UART2 */
	ftm3_default: ftm3_default {
		group0 {
			pinmux = <FTM3_CH1_PTD1>,
				<FTM3_CH4_PTC8>,
				<FTM3_CH5_PTC9>,
				<FTM3_CH6_PTE11>,
				<FTM3_CH7_PTE12>;
			drive-strength = "low";
			slew-rate = "fast";
		};
	};

	i2c0_default: i2c0_default {
		group0 {
			pinmux = <I2C0_SCL_PTE24>;
			drive-strength = "low";
			slew-rate = "fast";
		};
		group1 {
			pinmux = <I2C0_SDA_PTE25>;
			drive-strength = "low";
			slew-rate = "fast";
			drive-open-drain;
		};
	};

	i2c1_default: i2c1_default {
		group0 {
			pinmux = <I2C1_SCL_PTC10>;
			drive-strength = "low";
			slew-rate = "fast";
		};
		group1 {
			pinmux = <I2C1_SDA_PTC11>;
			drive-strength = "low";
			slew-rate = "fast";
			drive-open-drain;
		};
	};

	lpuart0_default: lpuart0_default {
		group0 {
			pinmux = <LPUART0_RX_PTD8>;
			drive-strength = "low";
			bias-pull-up;
			slew-rate = "fast";
		};
		group1 {
			pinmux = <LPUART0_TX_PTD9>;
			drive-strength = "low";
			slew-rate = "fast";
		};
	};

	spi0_default: spi0_default {
		group0 {
			pinmux = <SPI0_PCS2_PTC2>,
				<SPI0_SCK_PTC5>,
				<SPI0_SIN_PTC7>,
				<SPI0_SOUT_PTC6>;
			drive-strength = "low";
			slew-rate = "fast";
		};
	};

	spi1_default: spi1_default {
		group0 {
			pinmux = <SPI1_PCS0_PTB10>,
				<SPI1_PCS1_PTB9>,
				<SPI1_SCK_PTB11>,
				<SPI1_SIN_PTB17>,
				<SPI1_SOUT_PTB16>;
			drive-strength = "low";
			slew-rate = "fast";
		};
	};

	spi2_default: spi2_default {
		group0 {
			pinmux = <SPI2_PCS0_PTB20>,
				<SPI2_SCK_PTB21>,
				<SPI2_SIN_PTB23>,
				<SPI2_SOUT_PTB22>;
			drive-strength = "low";
			slew-rate = "fast";
		};
	};

	uart0_default: uart0_default {
		group0 {
			pinmux = <UART0_RX_PTA1>,
				<UART0_TX_PTA2>;
			drive-strength = "low";
			slew-rate = "fast";
		};
	};

	uart1_default: uart1_default {
		group0 {
			pinmux = <UART1_RX_PTC3>,
				<UART1_TX_PTC4>;
			drive-strength = "low";
			slew-rate = "fast";
		};
	};

	/* conflicts with FTM3 */
	uart2_default: uart2_default {
		group0 {
			pinmux = <UART2_RX_PTD2>,
				<UART2_TX_PTD3>;
			drive-strength = "low";
			slew-rate = "fast";
		};
	};

	uart4_default: uart4_default {
		group0 {
			pinmux = <UART4_CTS_b_PTC13>,
				<UART4_RTS_b_PTE27>,
				<UART4_RX_PTC14>,
				<UART4_TX_PTC15>;
			drive-strength = "low";
			slew-rate = "fast";
		};
	};

};
