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


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

&pinctrl {
	enet_default: enet_default {
		group0 {
			pinmux = <RMII0_MDIO_PTB0>;
			drive-strength = "low";
			drive-open-drain;
			bias-pull-up;
			slew-rate = "fast";
		};
		group1 {
			pinmux = <RMII0_RXER_PTA5>,
				<RMII0_RXD1_PTA12>,
				<RMII0_RXD0_PTA13>,
				<RMII0_CRS_DV_PTA14>,
				<RMII0_TXEN_PTA15>,
				<RMII0_TXD1_PTA17>,
				<RMII0_TXD0_PTA16>,
				<RMII0_MDC_PTB1>;
			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";
		};
	};

};
