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


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

&pinctrl {
	pinmux_flexcomm0_usart: pinmux_flexcomm0_usart {
		group0 {
			pinmux = <FC0_RXD_SDA_MOSI_PIO0_0>,
				<FC0_TXD_SCL_MISO_PIO0_1>;
			slew-rate = "standard";
		};
	};

	pinmux_flexcomm4_i2c: pinmux_flexcomm4_i2c {
		group0 {
			pinmux = <FC4_RTS_SCL_SSEL1_PIO0_25>,
				<FC4_CTS_SDA_SSEL0_PIO0_26>;
		};
	};

	pinmux_flexcomm5_spi: pinmux_flexcomm5_spi {
		group0 {
			pinmux = <FC5_SSEL2_PIO1_1>;
			bias-pull-up;
		};
		group1 {
			pinmux = <FC5_TXD_SCL_MISO_PIO0_18>,
				<FC5_SCK_PIO0_19>,
				<FC5_RXD_SDA_MOSI_PIO0_20>;
			bias-pull-up;
			slew-rate = "standard";
		};
	};

};
