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


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

&pinctrl {
	ftm0_default: ftm0_default {
		group0 {
			pinmux = <FTM0_CH6_PTA1>,
				<FTM0_CH7_PTA2>;
			drive-strength = "low";
			bias-pull-up;
			slew-rate = "fast";
		};
		group1 {
			pinmux = <FTM0_CH5_PTD5>;
			drive-strength = "low";
			slew-rate = "fast";
		};
	};

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

	spi0_default: spi0_default {
		group0 {
			pinmux = <SPI0_PCS4_PTC0>,
				<SPI0_SCK_PTD1>,
				<SPI0_SIN_PTD3>,
				<SPI0_SOUT_PTD2>;
			drive-strength = "low";
			slew-rate = "fast";
		};
	};

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

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

};
