/*
 * Copyright (c) 2022 Friedt Professional Engineering Services, Inc
 *
 * 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>;
		};
		group2 {
			pinmux = <UART0_RX_GPIO20>;
		};
	};

	spim2_default: spim2_default {
		group1 {
			pinmux = <SPIM2_MISO_GPIO4>,
				 <SPIM2_SCLK_GPIO5>,
				 <SPIM2_CSEL_GPIO6>;
		};
		group2 {
			pinmux = <SPIM2_MOSI_GPIO7>;
			output-low;
		};
	};

	i2c0_default: i2c0_default {
		group1 {
			pinmux = <I2C0_SDA_GPIO2>,
				 <I2C0_SCL_GPIO8>;
			/* Note: external 10k pull-ups on GPIO2 and GPIO8 */
			drive-open-drain;
			output-high;
		};
	};

};
