/*
 * Copyright (c) 2022 Vaishnav Achath
 *
 * SPDX-License-Identifier: Apache-2.0
 */

#include <zephyr/dt-bindings/pinctrl/cc13xx_cc26xx-pinctrl.h>

&pinctrl {
	/* UART0 */
	uart0_tx_default: uart0_tx_default {
		pinmux = <13 IOC_PORT_MCU_UART0_TX>;
		bias-disable;
	};
	uart0_rx_default: uart0_rx_default {
		pinmux = <12 IOC_PORT_MCU_UART0_RX>;
		bias-disable;
		input-enable;
	};

	/* UART1 */
	uart1_tx_default: uart1_tx_default {
		pinmux = <22 IOC_PORT_MCU_UART1_TX>;
		bias-disable;
	};
	uart1_rx_default: uart1_rx_default {
		pinmux = <24 IOC_PORT_MCU_UART1_RX>;
		bias-disable;
		input-enable;
	};

	/* I2C0 */
	i2c0_scl_default: i2c0_scl_default {
		pinmux = <4 IOC_PORT_MCU_I2C_MSSCL>;
		bias-pull-up;
		drive-open-drain;
		input-enable;
	};
	i2c0_sda_default: i2c0_sda_default {
		pinmux = <5 IOC_PORT_MCU_I2C_MSSDA>;
		bias-pull-up;
		drive-open-drain;
		input-enable;
	};
	i2c0_scl_sleep: i2c0_scl_sleep {
		pinmux = <4 IOC_PORT_GPIO>;
		bias-disable;
	};
	i2c0_sda_sleep: i2c0_sda_sleep {
		pinmux = <5 IOC_PORT_GPIO>;
		bias-disable;
	};

	/* SPI0 */
	spi0_sck_default: spi0_sck_default {
		pinmux = <10 IOC_PORT_MCU_SSI0_CLK>;
		bias-disable;
	};
	spi0_mosi_default: spi0_mosi_default {
		pinmux = <9 IOC_PORT_MCU_SSI0_TX>;
		bias-disable;
	};
	spi0_miso_default: spi0_miso_default {
		pinmux = <8 IOC_PORT_MCU_SSI0_RX>;
		bias-disable;
		input-enable;
	};
	spi0_cs_default: spi0_cs_default {
		pinmux = <11 IOC_PORT_MCU_SSI0_FSS>;
		bias-disable;
	};
};
