/*
 * Copyright (c) 2022, Gerson Fernando Budke <nandojve@gmail.com>
 * SPDX-License-Identifier: Apache-2.0
 */

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

&pinctrl {
	pwm_default: pwm_default {
		group1 {
			pinmux = <PA19F_TCC0_WO3>;
		};
	};

	sercom1_i2c_default: sercom1_i2c_default {
		group1 {
			pinmux = <PA16C_SERCOM1_PAD0>,
				 <PA17C_SERCOM1_PAD1>;
		};
	};

	sercom4_spi_default: sercom4_spi_default {
		group1 {
			pinmux = <PC19F_SERCOM4_PAD0>,
				 <PB31F_SERCOM4_PAD1>,
				 <PB30F_SERCOM4_PAD2>,
				 <PC18F_SERCOM4_PAD3>;
		};
	};
	sercom5_spi_default: sercom5_spi_default {
		group1 {
			pinmux = <PB2D_SERCOM5_PAD0>,
				 <PB22D_SERCOM5_PAD2>,
				 <PB23D_SERCOM5_PAD3>;
		};
	};

	sercom0_uart_default: sercom0_uart_default {
		group1 {
			pinmux = <PA4D_SERCOM0_PAD0>,
				 <PA5D_SERCOM0_PAD1>;
		};
	};

	usb_dc_default: usb_dc_default {
		group1 {
			pinmux = <PA25G_USB_DP>,
				 <PA24G_USB_DM>;
		};
	};
};
