/*
 * Copyright (c) 2023 Lukas Jung <lukas.jung@mailbox.org>
 * SPDX-License-Identifier: Apache-2.0
 */

#include <dt-bindings/pinctrl/samd51p-pinctrl.h>

&pinctrl {
	sercom0_uart_default: sercom0_uart_default {
		group1 {
			pinmux = <PB24C_SERCOM0_PAD0>,
				 <PB25C_SERCOM0_PAD1>;
		};
	};

	sercom2_spi_default: sercom2_spi_default {
		group1 {
			pinmux = <PB26C_SERCOM2_PAD0>,
				 <PB27C_SERCOM2_PAD1>,
				 <PB29C_SERCOM2_PAD3>;
		};
	};

	sercom3_i2c_default: sercom3_i2c_default {
		group1 {
			pinmux = <PB20C_SERCOM3_PAD0>,
				 <PB21C_SERCOM3_PAD1>;
		};
	};

	sercom7_spi_default: sercom7_spi_default {
		group1 {
			pinmux = <PD8C_SERCOM7_PAD0>,
				 <PD9C_SERCOM7_PAD1>,
				 <PD11C_SERCOM7_PAD3>;
		};
	};

	usb_dc_default: usb_dc_default {
		group1 {
			pinmux = <PA25H_USB_DP>,
				 <PA24H_USB_DM>;
		};
	};
};
