/*
 * 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>;
			drive-strength = "low";
			bias-pull-up;
			slew-rate = "fast";
		};
		group1 {
			pinmux = <CAN0_TX_PTB18>;
			drive-strength = "low";
			slew-rate = "fast";
		};
	};

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

	ftm0_default: ftm0_default {
		group0 {
			pinmux = <FTM0_CH1_PTA4>;
			drive-strength = "low";
			bias-pull-up;
			slew-rate = "fast";
		};
		group1 {
			pinmux = <FTM0_CH0_PTC1>,
				<FTM0_CH4_PTD4>,
				<FTM0_CH5_PTD5>;
			drive-strength = "low";
			slew-rate = "fast";
		};
	};

	/* conflicts with UART2 */
	ftm3_default: ftm3_default {
		group0 {
			pinmux = <FTM3_CH3_PTD3>,
				<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>,
				<I2C0_SDA_PTE25>;
			drive-strength = "low";
			slew-rate = "fast";
		};
	};

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

	lpuart0_default: lpuart0_default {
		group0 {
			pinmux = <LPUART0_RX_PTD8>,
				<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";
			bias-pull-up;
			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_PTC12>,
				<UART4_RX_PTC14>,
				<UART4_TX_PTC15>;
			drive-strength = "low";
			slew-rate = "fast";
		};
	};

};
