/*
 * Copyright (c) 2022 Espressif Systems (Shanghai) Co., Ltd.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

#include <zephyr/dt-bindings/pinctrl/esp-pinctrl-common.h>
#include <dt-bindings/pinctrl/esp32c3-pinctrl.h>
#include <zephyr/dt-bindings/pinctrl/esp32c3-gpio-sigmap.h>

&pinctrl {

	uart0_default: uart0_default {
		group1 {
			pinmux = <UART0_TX_GPIO21>;
			output-high;
		};
		group2 {
			pinmux = <UART0_RX_GPIO20>;
			bias-pull-up;
		};
	};

	spim2_default: spim2_default {
		group1 {
			pinmux = <SPIM2_MISO_GPIO2>,
				 <SPIM2_SCLK_GPIO6>,
				 <SPIM2_CSEL_GPIO10>;
		};
		group2 {
			pinmux = <SPIM2_MOSI_GPIO7>;
			output-low;
		};
	};

	i2c0_default: i2c0_default {
		group1 {
			pinmux = <I2C0_SDA_GPIO1>,
				 <I2C0_SCL_GPIO3>;
			bias-pull-up;
			drive-open-drain;
			output-high;
		};
	};

	twai_default: twai_default {
		group1 {
			pinmux = <TWAI_TX_GPIO4>,
				 <TWAI_RX_GPIO5>;
		};
	};
};
