/*
 * 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_tx_gpio21: uart0_tx_gpio21 {
		pinmux = <UART0_TX_GPIO21>;
	};

	uart0_rx_gpio20: uart0_rx_gpio20 {
		pinmux = <UART0_RX_GPIO20>;
		bias-pull-up;
	};

	spim2_miso_gpio2: spim2_miso_gpio2 {
		pinmux = <SPIM2_MISO_GPIO2>;
	};

	spim2_mosi_gpio7: spim2_mosi_gpio7 {
		pinmux = <SPIM2_MOSI_GPIO7>;
		output-low;
	};

	spim2_sclk_gpio6: spim2_sclk_gpio6 {
		pinmux = <SPIM2_SCLK_GPIO6>;
	};

	spim2_csel_gpio10: spim2_csel_gpio10 {
		pinmux = <SPIM2_CSEL_GPIO10>;
	};

	i2c0_sda_gpio1: i2c0_sda_gpio1 {
		pinmux = <I2C0_SDA_GPIO1>;
		bias-pull-up;
		drive-open-drain;
		output-high;
	};

	i2c0_scl_gpio3: i2c0_scl_gpio3 {
		pinmux = <I2C0_SCL_GPIO3>;
		bias-pull-up;
		drive-open-drain;
		output-high;
	};

};
