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


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

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

	i2c1_default: i2c1_default {
		group0 {
			pinmux = <I2C1_SCL_PTC2>,
				<I2C1_SDA_PTC3>;
			drive-strength = "low";
			slew-rate = "slow";
		};
	};

	lpuart0_default: lpuart0_default {
		group0 {
			pinmux = <UART0_TX_PTC7>;
			drive-strength = "low";
			slew-rate = "fast";
		};
		group1 {
			pinmux = <UART0_RX_PTC6>;
			drive-strength = "low";
			slew-rate = "slow";
		};
	};

	spi0_default: spi0_default {
		group0 {
			pinmux = <SPI0_SCK_PTC16>,
				<SPI0_SIN_PTC18>,
				<SPI0_SOUT_PTC17>,
				<SPI0_PCS0_PTC19>;
			drive-strength = "low";
			slew-rate = "fast";
		};
	};

	tmp2_default: tmp2_default {
		group0 {
			pinmux = <TPM2_CH0_PTA18>,
				<TPM2_CH1_PTA19>;
			drive-strength = "low";
			slew-rate = "fast";
		};
	};

	tpm0_default: tpm0_default {
		group0 {
			pinmux = <TPM0_CH2_PTC1>;
			drive-strength = "low";
			slew-rate = "slow";
		};
	};

};
