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


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

&pinctrl {
	adc0_default: adc0_default {
		group0 {
			pinmux = <ADC0_SE14_PTC0>;
			drive-strength = "low";
			slew-rate = "fast";
		};
	};

	adc1_default: adc1_default {
		group0 {
			pinmux = <ADC1_SE14_PTB10>;
			drive-strength = "low";
			slew-rate = "fast";
		};
	};

	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_TXD0_PTA16>,
				<RMII0_TXD1_PTA17>,
				<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";
		};
	};

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

	ftm3_default: ftm3_default {
		group0 {
			pinmux = <FTM3_CH4_PTC8>,
				<FTM3_CH5_PTC9>;
			drive-strength = "low";
			slew-rate = "fast";
		};
	};

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

	/* PTC16 and PTC17 conflict with uart3 pins */
	ptp_default: ptp_default {
		group0 {
			pinmux = <ENET0_1588_TMR0_PTC16>,
				<ENET0_1588_TMR1_PTC17>,
				<ENET0_1588_TMR2_PTC18>;
			drive-strength = "low";
			slew-rate = "fast";
		};
	};

	/* pins conflict with uart2 */
	spi0_default: spi0_default {
		group0 {
			pinmux = <SPI0_PCS0_PTD0>,
				<SPI0_SCK_PTD1>,
				<SPI0_SOUT_PTD2>,
				<SPI0_SIN_PTD3>;
			drive-strength = "low";
			slew-rate = "fast";
		};
	};

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

	/* pins conflict with spi0 */
	uart2_default: uart2_default {
		group0 {
			pinmux = <UART2_CTS_b_PTD1>,
				<UART2_RTS_b_PTD0>,
				<UART2_RX_PTD2>,
				<UART2_TX_PTD3>;
			drive-strength = "low";
			slew-rate = "fast";
		};
	};

	/* PTC16 and PTC17 conflict with PTP timer pins */
	uart3_default: uart3_default {
		group0 {
			pinmux = <UART3_RX_PTC16>,
				<UART3_TX_PTC17>;
			drive-strength = "low";
			slew-rate = "fast";
		};
	};

};
