/*
 * Copyright (c) 2022, NXP
 * SPDX-License-Identifier: Apache-2.0
 *
 * Note: File generated by gen_board_pinctrl.py
 * from mimxrt1010_evk.mex
 */

#include <nxp/nxp_imx/rt/mimxrt1011dae5a-pinctrl.dtsi>

&pinctrl {
	/* ADC Channels 1 and 2, exposed as pins 10 and 12 on J26 of EVK */
	pinmux_adc1: pinmux_adc1 {
		group0 {
			pinmux = <&iomuxc_gpio_ad_01_adc1_in1>,
				<&iomuxc_gpio_ad_02_adc1_in2>;
			drive-strength = "r0-4";
			slew-rate = "slow";
			nxp,speed = "100-mhz";
		};
	};

	pinmux_lpi2c1: pinmux_lpi2c1 {
		group0 {
			pinmux = <&iomuxc_gpio_01_lpi2c1_sda>, <&iomuxc_gpio_02_lpi2c1_scl>;
			drive-strength = "r0-4";
			drive-open-drain;
			slew-rate = "slow";
			nxp,speed = "100-mhz";
			input-enable;
		};
	};

	pinmux_lpspi1: pinmux_lpspi1 {
		group0 {
			pinmux = <&iomuxc_gpio_ad_06_lpspi1_sck>,
				<&iomuxc_gpio_ad_05_lpspi1_pcs0>,
				<&iomuxc_gpio_ad_04_lpspi1_sdo>,
				<&iomuxc_gpio_ad_03_lpspi1_sdi>;
			drive-strength = "r0-4";
			slew-rate = "slow";
			nxp,speed = "100-mhz";
		};
	};

	/* MCUX SDK sets the drive strength of pins on RT1010 to 4 by default */
	pinmux_lpuart1: pinmux_lpuart1 {
		group0 {
			pinmux = <&iomuxc_gpio_09_lpuart1_rxd>,
				<&iomuxc_gpio_10_lpuart1_txd>;
			drive-strength = "r0-4";
			slew-rate = "slow";
			nxp,speed = "100-mhz";
		};
	};

	pinmux_lpuart1_sleep: pinmux_lpuart1_sleep {
		group0 {
			pinmux = <&iomuxc_gpio_09_gpiomux_io09>;
			drive-strength = "r0-4";
			bias-pull-up;
			bias-pull-up-value = "100k";
			slew-rate = "slow";
			nxp,speed = "100-mhz";
		};
		group1 {
			pinmux = <&iomuxc_gpio_10_lpuart1_txd>;
			drive-strength = "r0-4";
			slew-rate = "slow";
			nxp,speed = "100-mhz";
		};
	};

	/* conflicts with adc1 */
	pinmux_lpuart4: pinmux_lpuart4 {
		group0 {
			pinmux = <&iomuxc_gpio_ad_01_lpuart4_rxd>,
				<&iomuxc_gpio_ad_02_lpuart4_txd>;
			drive-strength = "r0-4";
			slew-rate = "slow";
			nxp,speed = "100-mhz";
		};
	};

	/* conflicts with adc1 */
	pinmux_lpuart4_sleep: pinmux_lpuart4_sleep {
		group0 {
			pinmux = <&iomuxc_gpio_ad_01_gpiomux_io15>;
			drive-strength = "r0-4";
			bias-pull-up;
			bias-pull-up-value = "100k";
			slew-rate = "slow";
			nxp,speed = "100-mhz";
		};
		group1 {
			pinmux = <&iomuxc_gpio_ad_02_lpuart4_txd>;
			drive-strength = "r0-4";
			slew-rate = "slow";
			nxp,speed = "100-mhz";
		};
	};

	pinmux_sai1: pinmux_sai1 {
		group0 {
			pinmux = <&iomuxc_gpio_08_sai1_mclk>,
				<&iomuxc_gpio_03_sai1_rx_data0>,
				<&iomuxc_gpio_04_sai1_tx_data0>,
				<&iomuxc_gpio_07_sai1_tx_sync>,
				<&iomuxc_gpio_06_sai1_tx_bclk>;
			drive-strength = "r0-4";
			slew-rate = "slow";
			nxp,speed = "100-mhz";
		};
	};

};

