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

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

&pinctrl {
	/* Mode Straps configuration DP83825 */
	pinmux_enet: pinmux_enet {
		group0 {
			pinmux = <&iomuxc_gpio_b1_10_enet_ref_clk>;
			bias-disable;
			drive-strength = "r0-6";
			slew-rate = "slow";
			nxp,speed = "100-mhz";
			input-enable;
		};
		group1 {
			pinmux = <&iomuxc_gpio_b1_04_enet_rx_data0>,
				<&iomuxc_gpio_b1_05_enet_rx_data1>,
				<&iomuxc_gpio_b1_06_enet_rx_en>,
				<&iomuxc_gpio_b1_07_enet_tx_data0>,
				<&iomuxc_gpio_b1_08_enet_tx_data1>,
				<&iomuxc_gpio_b1_09_enet_tx_en>,
				<&iomuxc_gpio_b1_11_enet_rx_er>;
			drive-strength = "r0-5";
			bias-pull-up;
			bias-pull-up-value = "100k";
			slew-rate = "fast";
			nxp,speed = "200-mhz";
		};
	};

	pinmux_enet_mdio: pinmux_enet_mdio {
		group0 {
			pinmux = <&iomuxc_gpio_b1_14_enet_mdc>,
				<&iomuxc_gpio_b1_15_enet_mdio>,
				<&iomuxc_gpio_b0_15_gpio2_io15>,
				<&iomuxc_gpio_b0_14_gpio2_io14>;
			drive-strength = "r0-5";
			bias-pull-up;
			bias-pull-up-value = "100k";
			slew-rate = "fast";
			nxp,speed = "200-mhz";
		};
	};

	/* FLEXCAN1 TX, RX on Teensy-Pins 22/23 */
	pinmux_flexcan1: pinmux_flexcan1 {
		group0 {
			pinmux = <&iomuxc_gpio_ad_b1_08_flexcan1_tx>,
				<&iomuxc_gpio_ad_b1_09_flexcan1_rx>;
			drive-strength = "r0-6";
			slew-rate = "slow";
			nxp,speed = "100-mhz";
			input-enable;
		};
	};

	/* FLEXCAN2 TX, RX on Teensy-Pins 1/0 */
	pinmux_flexcan2: pinmux_flexcan2 {
		group0 {
			pinmux = <&iomuxc_gpio_ad_b0_02_flexcan2_tx>,
				<&iomuxc_gpio_ad_b0_03_flexcan2_rx>;
			drive-strength = "r0-6";
			slew-rate = "slow";
			nxp,speed = "100-mhz";
			input-enable;
		};
	};

	/* FLEXCAN3 TX, RX on Teensy-Pins 31/30 */
	pinmux_flexcan3: pinmux_flexcan3 {
		group0 {
			pinmux = <&iomuxc_gpio_emc_36_flexcan3_tx>,
				<&iomuxc_gpio_emc_37_flexcan3_rx>;
			drive-strength = "r0-6";
			slew-rate = "slow";
			nxp,speed = "100-mhz";
			input-enable;
		};
	};

	/* LPI2C1 SCL, SDA on Teensy-Pins 19/18 */
	pinmux_lpi2c1: pinmux_lpi2c1 {
		group0 {
			pinmux = <&iomuxc_gpio_ad_b1_01_lpi2c1_sda>,
				<&iomuxc_gpio_ad_b1_00_lpi2c1_scl>;
			drive-strength = "r0-6";
			drive-open-drain;
			slew-rate = "slow";
			nxp,speed = "100-mhz";
			input-enable;
		};
	};

	/* LPI2C3 SCL, SDA on Teensy-Pins 16/17 */
	pinmux_lpi2c3: pinmux_lpi2c3 {
		group0 {
			pinmux = <&iomuxc_gpio_ad_b1_07_lpi2c3_scl>,
				<&iomuxc_gpio_ad_b1_06_lpi2c3_sda>;
			drive-strength = "r0-6";
			drive-open-drain;
			slew-rate = "slow";
			nxp,speed = "100-mhz";
			input-enable;
		};
	};

	/* LPI2C4 SCL, SDA on Teensy-Pins 24/25 */
	pinmux_lpi2c4: pinmux_lpi2c4 {
		group0 {
			pinmux = <&iomuxc_gpio_ad_b0_12_lpi2c4_scl>,
				<&iomuxc_gpio_ad_b0_13_lpi2c4_sda>;
			drive-strength = "r0-6";
			drive-open-drain;
			slew-rate = "slow";
			nxp,speed = "100-mhz";
			input-enable;
		};
	};

	/* LPSPI3 MISO, MOSI, SCK, CS on Teensy-Pins 39/26/27/38 */
	pinmux_lpspi3: pinmux_lpspi3 {
		group0 {
			pinmux = <&iomuxc_gpio_ad_b1_12_lpspi3_pcs0>,
				<&iomuxc_gpio_ad_b1_15_lpspi3_sck>,
				<&iomuxc_gpio_ad_b1_13_lpspi3_sdi>,
				<&iomuxc_gpio_ad_b1_14_lpspi3_sdo>;
			drive-strength = "r0-6";
			slew-rate = "slow";
			nxp,speed = "100-mhz";
		};
	};

	/* LPSPI4 MISO, MOSI, SCK, CS on Teensy-Pins 12/11/13/10 */
	pinmux_lpspi4: pinmux_lpspi4 {
		group0 {
			pinmux = <&iomuxc_gpio_b0_00_lpspi4_pcs0>,
				<&iomuxc_gpio_b0_03_lpspi4_sck>,
				<&iomuxc_gpio_b0_01_lpspi4_sdi>,
				<&iomuxc_gpio_b0_02_lpspi4_sdo>;
			drive-strength = "r0-6";
			slew-rate = "slow";
			nxp,speed = "100-mhz";
		};
	};

	/* LPUART1 TX/RX on Teensy-Pins 24/25 */
	pinmux_lpuart1: pinmux_lpuart1 {
		group0 {
			pinmux = <&iomuxc_gpio_ad_b0_13_lpuart1_rx>,
				<&iomuxc_gpio_ad_b0_12_lpuart1_tx>;
			drive-strength = "r0-6";
			slew-rate = "slow";
			nxp,speed = "100-mhz";
		};
	};

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

	/* LPUART2 TX/RX on Teensy-Pins 14/15 */
	pinmux_lpuart2: pinmux_lpuart2 {
		group0 {
			pinmux = <&iomuxc_gpio_ad_b1_03_lpuart2_rx>,
				<&iomuxc_gpio_ad_b1_02_lpuart2_tx>;
			drive-strength = "r0-6";
			slew-rate = "slow";
			nxp,speed = "100-mhz";
		};
	};

	pinmux_lpuart2_sleep: pinmux_lpuart2_sleep {
		group0 {
			pinmux = <&iomuxc_gpio_ad_b1_03_gpio1_io19>;
			drive-strength = "r0-6";
			bias-pull-up;
			bias-pull-up-value = "100k";
			slew-rate = "slow";
			nxp,speed = "100-mhz";
		};
		group1 {
			pinmux = <&iomuxc_gpio_ad_b1_02_lpuart2_tx>;
			drive-strength = "r0-6";
			slew-rate = "slow";
			nxp,speed = "100-mhz";
		};
	};

	/* LPUART3 TX/RX on Teensy-Pins 17/16 */
	pinmux_lpuart3: pinmux_lpuart3 {
		group0 {
			pinmux = <&iomuxc_gpio_ad_b1_07_lpuart3_rx>,
				<&iomuxc_gpio_ad_b1_06_lpuart3_tx>;
			drive-strength = "r0-6";
			slew-rate = "slow";
			nxp,speed = "100-mhz";
		};
	};

	pinmux_lpuart3_sleep: pinmux_lpuart3_sleep {
		group0 {
			pinmux = <&iomuxc_gpio_ad_b1_07_gpio1_io23>;
			drive-strength = "r0-6";
			bias-pull-up;
			bias-pull-up-value = "100k";
			slew-rate = "slow";
			nxp,speed = "100-mhz";
		};
		group1 {
			pinmux = <&iomuxc_gpio_ad_b1_06_lpuart3_tx>;
			drive-strength = "r0-6";
			slew-rate = "slow";
			nxp,speed = "100-mhz";
		};
	};

	/* LPUART4 TX/RX on Teensy-Pins 8/7 */
	pinmux_lpuart4: pinmux_lpuart4 {
		group0 {
			pinmux = <&iomuxc_gpio_b1_01_lpuart4_rx>,
				<&iomuxc_gpio_b1_00_lpuart4_tx>;
			drive-strength = "r0-6";
			slew-rate = "slow";
			nxp,speed = "100-mhz";
		};
	};

	pinmux_lpuart4_sleep: pinmux_lpuart4_sleep {
		group0 {
			pinmux = <&iomuxc_gpio_b1_01_gpio2_io17>;
			drive-strength = "r0-6";
			bias-pull-up;
			bias-pull-up-value = "100k";
			slew-rate = "slow";
			nxp,speed = "100-mhz";
		};
		group1 {
			pinmux = <&iomuxc_gpio_b1_00_lpuart4_tx>;
			drive-strength = "r0-6";
			slew-rate = "slow";
			nxp,speed = "100-mhz";
		};
	};

	/* LPUART5 TX/RX on Teensy-Pins 35/34 */
	pinmux_lpuart5: pinmux_lpuart5 {
		group0 {
			pinmux = <&iomuxc_gpio_b1_13_lpuart5_rx>,
				<&iomuxc_gpio_b1_12_lpuart5_tx>;
			drive-strength = "r0-6";
			slew-rate = "slow";
			nxp,speed = "100-mhz";
		};
	};

	pinmux_lpuart5_sleep: pinmux_lpuart5_sleep {
		group0 {
			pinmux = <&iomuxc_gpio_b1_13_gpio2_io29>;
			drive-strength = "r0-6";
			bias-pull-up;
			bias-pull-up-value = "100k";
			slew-rate = "slow";
			nxp,speed = "100-mhz";
		};
		group1 {
			pinmux = <&iomuxc_gpio_b1_12_lpuart5_tx>;
			drive-strength = "r0-6";
			slew-rate = "slow";
			nxp,speed = "100-mhz";
		};
	};

	/* LPUART6 TX/RX on Teensy-Pins 1/0 */
	pinmux_lpuart6: pinmux_lpuart6 {
		group0 {
			pinmux = <&iomuxc_gpio_ad_b0_03_lpuart6_rx>,
				<&iomuxc_gpio_ad_b0_02_lpuart6_tx>;
			drive-strength = "r0-6";
			slew-rate = "slow";
			nxp,speed = "100-mhz";
		};
	};

	pinmux_lpuart6_sleep: pinmux_lpuart6_sleep {
		group0 {
			pinmux = <&iomuxc_gpio_ad_b0_03_gpio1_io03>;
			drive-strength = "r0-6";
			bias-pull-up;
			bias-pull-up-value = "100k";
			slew-rate = "slow";
			nxp,speed = "100-mhz";
		};
		group1 {
			pinmux = <&iomuxc_gpio_ad_b0_02_lpuart6_tx>;
			drive-strength = "r0-6";
			slew-rate = "slow";
			nxp,speed = "100-mhz";
		};
	};

	/* LPUART7 TX/RX on Teensy-Pins 29/28 */
	pinmux_lpuart7: pinmux_lpuart7 {
		group0 {
			pinmux = <&iomuxc_gpio_emc_31_lpuart7_tx>,
				<&iomuxc_gpio_emc_32_lpuart7_rx>;
			drive-strength = "r0-6";
			slew-rate = "slow";
			nxp,speed = "100-mhz";
		};
	};

	pinmux_lpuart7_sleep: pinmux_lpuart7_sleep {
		group0 {
			pinmux = <&iomuxc_gpio_emc_31_gpio4_io31>;
			drive-strength = "r0-6";
			bias-pull-up;
			bias-pull-up-value = "100k";
			slew-rate = "slow";
			nxp,speed = "100-mhz";
		};
		group1 {
			pinmux = <&iomuxc_gpio_emc_32_lpuart7_rx>;
			drive-strength = "r0-6";
			slew-rate = "slow";
			nxp,speed = "100-mhz";
		};
	};

	/* LPUART8 TX/RX on Teensy-Pins 20/21 */
	pinmux_lpuart8: pinmux_lpuart8 {
		group0 {
			pinmux = <&iomuxc_gpio_ad_b1_11_lpuart8_rx>,
				<&iomuxc_gpio_ad_b1_10_lpuart8_tx>;
			drive-strength = "r0-6";
			slew-rate = "slow";
			nxp,speed = "100-mhz";
		};
	};

	pinmux_lpuart8_sleep: pinmux_lpuart8_sleep {
		group0 {
			pinmux = <&iomuxc_gpio_ad_b1_11_gpio1_io27>;
			drive-strength = "r0-6";
			bias-pull-up;
			bias-pull-up-value = "100k";
			slew-rate = "slow";
			nxp,speed = "100-mhz";
		};
		group1 {
			pinmux = <&iomuxc_gpio_ad_b1_10_lpuart8_tx>;
			drive-strength = "r0-6";
			slew-rate = "slow";
			nxp,speed = "100-mhz";
		};
	};

	pinmux_usdhc1: pinmux_usdhc1 {
		group0 {
			pinmux = <&iomuxc_gpio_sd_b0_01_usdhc1_clk>;
			bias-disable;
			drive-strength = "r0";
			input-schmitt-enable;
			slew-rate = "fast";
			nxp,speed = "100-mhz";
		};
		group1 {
			pinmux = <&iomuxc_gpio_sd_b0_00_usdhc1_cmd>,
				<&iomuxc_gpio_sd_b0_02_usdhc1_data0>,
				<&iomuxc_gpio_sd_b0_03_usdhc1_data1>,
				<&iomuxc_gpio_sd_b0_04_usdhc1_data2>,
				<&iomuxc_gpio_sd_b0_05_usdhc1_data3>;
			drive-strength = "r0";
			input-schmitt-enable;
			bias-pull-up;
			bias-pull-up-value = "47k";
			slew-rate = "fast";
			nxp,speed = "100-mhz";
		};
		group2 {
			pinmux = <&iomuxc_gpio_emc_41_usdhc1_vselect>;
			drive-strength = "r0-4";
			input-schmitt-enable;
			bias-pull-up;
			bias-pull-up-value = "47k";
			slew-rate = "fast";
			nxp,speed = "100-mhz";
		};
	};

	/* fast pinmux settings for USDHC (over 100 Mhz) */
	pinmux_usdhc1_fast: pinmux_usdhc1_fast {
		group0 {
			pinmux = <&iomuxc_gpio_sd_b0_01_usdhc1_clk>;
			bias-disable;
			drive-strength = "r0-7";
			input-schmitt-enable;
			slew-rate = "fast";
			nxp,speed = "200-mhz";
		};
		group1 {
			pinmux = <&iomuxc_gpio_sd_b0_00_usdhc1_cmd>,
				<&iomuxc_gpio_sd_b0_02_usdhc1_data0>,
				<&iomuxc_gpio_sd_b0_03_usdhc1_data1>,
				<&iomuxc_gpio_sd_b0_04_usdhc1_data2>,
				<&iomuxc_gpio_sd_b0_05_usdhc1_data3>;
			drive-strength = "r0-7";
			input-schmitt-enable;
			bias-pull-up;
			bias-pull-up-value = "47k";
			slew-rate = "fast";
			nxp,speed = "200-mhz";
		};
	};

	/* medium pinmux settings for USDHC (under 100 Mhz) */
	pinmux_usdhc1_med: pinmux_usdhc1_med {
		group0 {
			pinmux = <&iomuxc_gpio_sd_b0_01_usdhc1_clk>;
			bias-disable;
			drive-strength = "r0-7";
			input-schmitt-enable;
			slew-rate = "fast";
			nxp,speed = "100-mhz";
		};
		group1 {
			pinmux = <&iomuxc_gpio_sd_b0_00_usdhc1_cmd>,
				<&iomuxc_gpio_sd_b0_02_usdhc1_data0>,
				<&iomuxc_gpio_sd_b0_03_usdhc1_data1>,
				<&iomuxc_gpio_sd_b0_04_usdhc1_data2>,
				<&iomuxc_gpio_sd_b0_05_usdhc1_data3>;
			drive-strength = "r0-7";
			input-schmitt-enable;
			bias-pull-up;
			bias-pull-up-value = "47k";
			slew-rate = "fast";
			nxp,speed = "100-mhz";
		};
	};

	/* slow pinmux settings for USDHC (under 50 Mhz) */
	pinmux_usdhc1_slow: pinmux_usdhc1_slow {
		group0 {
			pinmux = <&iomuxc_gpio_sd_b0_01_usdhc1_clk>;
			bias-disable;
			drive-strength = "r0-7";
			input-schmitt-enable;
			slew-rate = "fast";
			nxp,speed = "50-mhz";
		};
		group1 {
			pinmux = <&iomuxc_gpio_sd_b0_00_usdhc1_cmd>,
				<&iomuxc_gpio_sd_b0_02_usdhc1_data0>,
				<&iomuxc_gpio_sd_b0_03_usdhc1_data1>,
				<&iomuxc_gpio_sd_b0_04_usdhc1_data2>,
				<&iomuxc_gpio_sd_b0_05_usdhc1_data3>;
			drive-strength = "r0-7";
			input-schmitt-enable;
			bias-pull-up;
			bias-pull-up-value = "47k";
			slew-rate = "fast";
			nxp,speed = "50-mhz";
		};
	};

};

