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


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

&pinctrl {
	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";
		};
	};

	pinmux_flexcomm4_i2c: pinmux_flexcomm4_i2c {
		group0 {
			pinmux = <FC4_RXD_SDA_MOSI_DATA_PIO1_21>,
				<FC4_TXD_SCL_MISO_WS_PIO1_20>;
			slew-rate = "standard";
		};
	};

	pinmux_hs_lspi: pinmux_hs_lspi {
		group0 {
			pinmux = <HS_SPI_MOSI_PIO0_26>,
				<HS_SPI_SSEL1_PIO1_1>,
				<HS_SPI_SCK_PIO1_2>,
				<HS_SPI_MISO_PIO1_3>;
			bias-pull-up;
			slew-rate = "standard";
		};
	};

	pinmux_lpadc0: pinmux_lpadc0 {
		group0 {
			pinmux = <ADC0_CH0_PIO0_23>,
				<ADC0_CH1_PIO0_10>;
			slew-rate = "standard";
			nxp,analog-mode;
		};
	};

};
