/*
 * NOTE: File generated by lpc_cfg_utils.py
 * from LPC55S36.mex
 *
 * Copyright 2022 NXP
 * SPDX-License-Identifier: Apache-2.0
 */


#include <nxp/lpc/LPC55S36JBD100-pinctrl.h>

&pinctrl {
	/* Configures pin routing and optionally pin electrical features. */
	pinmux_flexcomm0_usart: pinmux_flexcomm0_usart {
		group0 {
			pinmux = <FC0_RXD_SDA_MOSI_DATA_PIO0_29>,
				<FC0_TXD_SCL_MISO_WS_PIO0_30>;
			slew-rate = "standard";
		};
	};

	/* Configures pin routing and optionally pin electrical features. */
	pinmux_flexcomm2_i2c: pinmux_flexcomm2_i2c {
		group0 {
			pinmux = <FC2_CTS_SDA_SSEL0_PIO1_26>,
				<FC2_TXD_SCL_MISO_WS_PIO1_25>;
			slew-rate = "standard";
		};
	};

	/* Configures pin routing and optionally pin electrical features. */
	pinmux_hs_lspi_default: pinmux_hs_lspi_default {
		group0 {
			pinmux = <HS_SPI_MISO_PIO1_3>,
				<HS_SPI_MOSI_PIO0_26>,
				<HS_SPI_SCK_PIO1_2>,
				<HS_SPI_SSEL0_PIO0_20>;
			slew-rate = "standard";
		};
	};

	/* Configures pin routing and optionally pin electrical features. */
	pinmux_sctimer_default: pinmux_sctimer_default {
		group0 {
			pinmux = <SCT0_OUT0_PIO1_4>,
				<SCT0_OUT2_PIO0_15>;
			slew-rate = "standard";
		};
	};

};
