/*
 * Copyright (c) 2023, NXP
 * SPDX-License-Identifier: Apache-2.0
 *
 * Note: File generated by imx_cfg_utils.py
 * from mimxrt1040_evk.mex
 */

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

&pinctrl {
	/* Route ADC1 IN3 and IN4 to J33 pins 1 and 2 */
	pinmux_adc1: pinmux_adc1 {
		group0 {
			pinmux = <&iomuxc_gpio_ad_b0_14_adc1_in3>,
				<&iomuxc_gpio_ad_b0_15_adc1_in4>;
			drive-strength = "r0-6";
			slew-rate = "slow";
			nxp,speed = "100-mhz";
		};
	};

	/* Route PWM1 A3 to J16, pin 6 on arduino header */
	pinmux_flexpwm1_pwm3: pinmux_flexpwm1_pwm3 {
		group0 {
			pinmux = <&iomuxc_gpio_ad_b0_10_flexpwm1_pwma3>;
			drive-strength = "r0-6";
			slew-rate = "fast";
			nxp,speed = "100-mhz";
		};
	};

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

	/* Conflicts with lpspi1 pin routing. SDA: J17 pin 3, SCL: J17 pin 6 */
	pinmux_lpi2c3: pinmux_lpi2c3 {
		group0 {
			pinmux = <&iomuxc_gpio_sd_b0_00_lpi2c3_scl>,
				<&iomuxc_gpio_sd_b0_01_lpi2c3_sda>;
			drive-strength = "r0-6";
			slew-rate = "slow";
			nxp,speed = "100-mhz";
			input-enable;
		};
	};

	/* Note that R350, R346, and R360 must be populated to use SPI */
	pinmux_lpspi1: pinmux_lpspi1 {
		group0 {
			pinmux = <&iomuxc_gpio_sd_b0_02_lpspi1_sdo>,
				<&iomuxc_gpio_sd_b0_03_lpspi1_sdi>,
				<&iomuxc_gpio_sd_b0_00_lpspi1_sck>;
			drive-strength = "r0-6";
			slew-rate = "slow";
			nxp,speed = "100-mhz";
		};
	};

	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";
			bias-pull-up;
			bias-pull-up-value = "100k";
			slew-rate = "slow";
			nxp,speed = "50-mhz";
		};
		group1 {
			pinmux = <&iomuxc_gpio_ad_b0_12_lpuart1_tx>;
			drive-strength = "r0-6";
			slew-rate = "slow";
			nxp,speed = "100-mhz";
		};
	};

};

